| 20:34:49.334 | trace | yii\base\Application::bootstrap | Bootstrap with yii\log\Dispatcher |
| 20:34:49.334 | trace | yii\base\Module::getModule | Loading module: debug |
| 20:34:49.335 | trace | yii\base\Application::bootstrap | Bootstrap with yii\debug\Module::bootstrap() |
| 20:34:49.335 | trace | yii\redis\Connection::open | Opening redis DB connection: redis.server.local:6379, database=1 |
| 20:34:49.335 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: SELECT |
| 20:34:49.335 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.336 | info | time tracing start | 1784032489336195072 |
| 20:34:49.336 | trace | yii\web\UrlManager::parseRequest | No matching URL rules. Using default URL parsing logic. |
| 20:34:49.336 | trace | yii\web\Application::handleRequest | Route requested: 'v2/project/of-client' |
| 20:34:49.336 | trace | yii\base\Module::getModule | Loading module: v2 |
| 20:34:49.337 | info | yii\web\Session::open | Session started |
| 20:34:49.338 | info | yii\db\Connection::open | Opening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta |
| 20:34:49.339 | info | yii\db\Command::query | SELECT * FROM "global"."vw_user_login" WHERE "access_token"='wXfR6UQn7fW_MTEa9o-7H8Ixg0fJU0Zm' |
| 20:34:49.340 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.341 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 20:34:49.341 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.342 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 20:34:49.342 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1000 |
| 20:34:49.343 | trace | yii\base\Controller::runAction | Route to run: v2/project/of-client |
| 20:34:49.344 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.346 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
| 20:34:49.346 | trace | yii\base\InlineAction::runWithParams | Running action: app\modules\v2\controllers\ProjectController::actionOfClient() |
| 20:34:49.346 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_clients" WHERE ("id"='3411') AND ("deleted"=FALSE) |
| 20:34:49.347 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.347 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 20:34:49.348 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.348 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 20:34:49.349 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.350 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.352 | info | yii\db\Command::query | SELECT COUNT(*) FROM (SELECT p.*,
(p.budget / 100 * p.profit_pct) as profits,
now() - status_updated_at as remain,
now() - progress_updated_at as progress_remain,
now() - forecast_updated_at as forecast_remain,
extract(epoch from (now() - max(sl.end_at))) / 86400 AS lost_contact_days,
max(sl.end_at) as last_contact,
extract(epoch from (now() - max(arrive.end_at))) / 86400 AS last_arrive_days,
max(arrive.end_at) as last_arrive,
case when p.end_at IS NOT NULL THEN p.end_at - p.created_at ELSE now() - p.created_at END as duration,
(SELECT sum(amount) FROM a57be577deb434.tbl_invoices i WHERE i.project_id = p.id) as issued_invoices FROM "a57be577deb434"."tbl_projects" "p" LEFT JOIN "a57be577deb434"."tbl_project_remind_receivers" "prr" ON prr.project_id = p.id LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON p.client_id = c.id LEFT JOIN "a57be577deb434"."tbl_clients" "usedclient" ON p.used_client = usedclient.id LEFT JOIN "a57be577deb434"."tbl_sales_group_relationships" "sgr" ON sgr.sales_id = c.sales_rep LEFT JOIN "a57be577deb434"."tbl_work_logs" "arrive" ON (arrive.project_id = p.id) AND ("arrive"."scenario_id"=1) AND ("arrive"."is_draft"=FALSE) AND ("arrive"."location_in_id" IS NOT NULL) AND ("arrive"."location_out_id" IS NOT NULL) AND ("arrive"."client_id" IS NOT NULL) LEFT JOIN "a57be577deb434"."tbl_work_logs" "sl" ON sl.project_id = p.id LEFT JOIN "a57be577deb434"."tbl_term_taxonomy_relationships" "ttr" ON ttr.object_id = p.id AND ttr.term_id = 10 LEFT JOIN "a57be577deb434"."tbl_term_taxonomy_relationships" "ttr2" ON ttr2.object_id = p.id AND ttr2.term_id = 13 LEFT JOIN "a57be577deb434"."tbl_project_architects" "pa" ON "pa"."project_id" = "p"."id" LEFT JOIN "a57be577deb434"."tbl_engineer_group_relationships" "egr" ON egr.engineer_id = pa.engineer_id WHERE ("c"."deleted"=FALSE) AND (c.id is not null) AND ((c.sales_rep IS NULL) OR ("c"."sales_rep" IN (5049, 5500, 5301, 5499, 5022, 5209, 5026, 5293, 5309, 5356, 5329, 5299, 5303, 5302, 5332, 5047, 1026, 5096, 5070, 5448, 5420, 1029, 1001, 5037, 5087, 1008, 5048, 5043, 5045, 5230, 5031, 5088, 5208, 1003, 5467, 5294, 5357, 5044, 1030, 5076, 5300, 5027, 5089, 5311, 5066, 5069, 5364, 1009, 5295, 1013, 5128, 5203, 1025, 5032, 5075, 5476, 1004, 5072, 5033, 5359, 5412, 5409, 5229, 1005, 5304, 5449, 5358, 1006, 5093)) OR ("prr"."user_id"=1000) OR ("c"."id" IN (SELECT "client_id" FROM "a57be577deb434"."tbl_user_visit_clients" WHERE "user_id"=1000))) AND ("p"."client_id"=3411) GROUP BY "p"."id" ORDER BY "bargain_date" DESC, "p"."created_at" DESC) "c" |
| 20:34:49.360 | info | yii\db\Command::query | SELECT p.*,
(p.budget / 100 * p.profit_pct) as profits,
now() - status_updated_at as remain,
now() - progress_updated_at as progress_remain,
now() - forecast_updated_at as forecast_remain,
extract(epoch from (now() - max(sl.end_at))) / 86400 AS lost_contact_days,
max(sl.end_at) as last_contact,
extract(epoch from (now() - max(arrive.end_at))) / 86400 AS last_arrive_days,
max(arrive.end_at) as last_arrive,
case when p.end_at IS NOT NULL THEN p.end_at - p.created_at ELSE now() - p.created_at END as duration,
(SELECT sum(amount) FROM a57be577deb434.tbl_invoices i WHERE i.project_id = p.id) as issued_invoices FROM "a57be577deb434"."tbl_projects" "p" LEFT JOIN "a57be577deb434"."tbl_project_remind_receivers" "prr" ON prr.project_id = p.id LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON p.client_id = c.id LEFT JOIN "a57be577deb434"."tbl_clients" "usedclient" ON p.used_client = usedclient.id LEFT JOIN "a57be577deb434"."tbl_sales_group_relationships" "sgr" ON sgr.sales_id = c.sales_rep LEFT JOIN "a57be577deb434"."tbl_work_logs" "arrive" ON (arrive.project_id = p.id) AND ("arrive"."scenario_id"=1) AND ("arrive"."is_draft"=FALSE) AND ("arrive"."location_in_id" IS NOT NULL) AND ("arrive"."location_out_id" IS NOT NULL) AND ("arrive"."client_id" IS NOT NULL) LEFT JOIN "a57be577deb434"."tbl_work_logs" "sl" ON sl.project_id = p.id LEFT JOIN "a57be577deb434"."tbl_term_taxonomy_relationships" "ttr" ON ttr.object_id = p.id AND ttr.term_id = 10 LEFT JOIN "a57be577deb434"."tbl_term_taxonomy_relationships" "ttr2" ON ttr2.object_id = p.id AND ttr2.term_id = 13 LEFT JOIN "a57be577deb434"."tbl_project_architects" "pa" ON "pa"."project_id" = "p"."id" LEFT JOIN "a57be577deb434"."tbl_engineer_group_relationships" "egr" ON egr.engineer_id = pa.engineer_id WHERE ("c"."deleted"=FALSE) AND (c.id is not null) AND ((c.sales_rep IS NULL) OR ("c"."sales_rep" IN (5049, 5500, 5301, 5499, 5022, 5209, 5026, 5293, 5309, 5356, 5329, 5299, 5303, 5302, 5332, 5047, 1026, 5096, 5070, 5448, 5420, 1029, 1001, 5037, 5087, 1008, 5048, 5043, 5045, 5230, 5031, 5088, 5208, 1003, 5467, 5294, 5357, 5044, 1030, 5076, 5300, 5027, 5089, 5311, 5066, 5069, 5364, 1009, 5295, 1013, 5128, 5203, 1025, 5032, 5075, 5476, 1004, 5072, 5033, 5359, 5412, 5409, 5229, 1005, 5304, 5449, 5358, 1006, 5093)) OR ("prr"."user_id"=1000) OR ("c"."id" IN (SELECT "client_id" FROM "a57be577deb434"."tbl_user_visit_clients" WHERE "user_id"=1000))) AND ("p"."client_id"=3411) GROUP BY "p"."id" ORDER BY "bargain_date" DESC, "p"."created_at" DESC LIMIT 10 |
| 20:34:49.368 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "logo", "client_type", "client_class", "client_industry", "sales_rep" FROM "a57be577deb434"."tbl_clients" WHERE "id"=3411 |
| 20:34:49.369 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=5300 |
| 20:34:49.369 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=5300) |
| 20:34:49.370 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_types" WHERE "id"=5 |
| 20:34:49.370 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "notice_days", "color" FROM "a57be577deb434"."tbl_client_classes" WHERE "id"=43 |
| 20:34:49.371 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_industries" WHERE "id"=9 |
| 20:34:49.372 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "type" AS "name" FROM "a57be577deb434"."tbl_contract_types" WHERE "id"=1 |
| 20:34:49.372 | info | yii\db\Command::query | SELECT "project_id", "contribution" AS "value", "engineer_id" AS "key", "u"."name" FROM "a57be577deb434"."tbl_project_architects" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON engineer_id = u.id WHERE "a57be577deb434"."tbl_project_architects"."project_id"=4020 ORDER BY "contribution" DESC, "engineer_id" |
| 20:34:49.373 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "project_status" AS "name", "color" FROM "a57be577deb434"."tbl_project_statuses" WHERE "id"=5 |
| 20:34:49.373 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "project_progress" AS "name", "description" FROM "a57be577deb434"."tbl_project_progresses" WHERE "id"=2 |
| 20:34:49.374 | info | yii\db\Command::query | SELECT id, product_type_id, product_type_id as key, name, coalesce(budget, 0) as budget, coalesce(pct, 0) as pct, coalesce(profit, 0) as profit, project_id FROM "a57be577deb434"."tbl_project_product_types" WHERE "project_id"=4020 |
| 20:34:49.375 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=4020 |
| 20:34:49.375 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "description" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=13) AND ("id" IN (5, 226, 164, 181, 184, 189, 349, 359)) ORDER BY "sort" |
| 20:34:49.376 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=4020 |
| 20:34:49.376 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=10) AND ("id" IN (5, 226, 164, 181, 184, 189, 349, 359)) ORDER BY "sort" |
| 20:34:49.377 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=4020 |
| 20:34:49.377 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=9) AND ("id" IN (5, 226, 164, 181, 184, 189, 349, 359)) ORDER BY "sort" |
| 20:34:49.378 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=5300 |
| 20:34:49.378 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=5300) |
| 20:34:49.379 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_departments" WHERE "id"=1 |
| 20:34:49.379 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1011 |
| 20:34:49.380 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1011) |
| 20:34:49.380 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=3411 |
| 20:34:49.381 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=5300 |
| 20:34:49.381 | info | yii\db\Command::query | SELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=5300) |
| 20:34:49.381 | info | yii\db\Command::query | SELECT "c"."project_id", sum(ca.points) as points FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN (SELECT "case_id", sum(points) as points FROM "a57be577deb434"."tbl_case_assignments" GROUP BY "case_id") "ca" ON ca.case_id = c.id WHERE "c"."project_id"=4020 GROUP BY "c"."project_id" |
| 20:34:49.384 | info | yii\db\Command::query | SELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_work_logs" WHERE ("is_draft"=FALSE) AND ("project_id"=4020) GROUP BY "project_id" |
| 20:34:49.384 | info | yii\db\Command::query | SELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_cases" WHERE "project_id"=4020 GROUP BY "project_id" |
| 20:34:49.385 | info | yii\db\Command::query | SELECT "project_id", EXTRACT(epoch FROM sum(end_at - start_at)) /3600 AS hours, count(id) as times FROM "a57be577deb434"."tbl_work_logs" WHERE ("is_draft"=FALSE) AND ("scenario_id"=1) AND (("location_in_id" IS NOT NULL) AND ("location_out_id" IS NOT NULL) AND ("client_id" IS NOT NULL)) AND ("project_id"=4020) GROUP BY "project_id" |
| 20:34:49.386 | info | yii\db\Command::query | SELECT "c"."project_id", sum(hours), sum(times) as times FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN (SELECT "case_id", EXTRACT(epoch FROM sum(left_at - arrived_at)) /3600 AS hours, count(id) as times FROM "a57be577deb434"."tbl_implement_records" WHERE "is_draft"=FALSE GROUP BY "case_id") "i" ON i.case_id = c.id WHERE ("case_type"=2) AND ("c"."project_id"=4020) GROUP BY "c"."project_id" |
| 20:34:49.388 | info | yii\db\Command::query | SELECT "c"."project_id", sum(hours), sum(times) as times FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN (SELECT "case_id", EXTRACT(epoch FROM sum(end_at - start_at)) /3600 AS hours, count(id) as times FROM "a57be577deb434"."tbl_pre_sales" WHERE "is_draft"=FALSE GROUP BY "case_id") "i" ON i.case_id = c.id WHERE ("case_type"=1) AND ("c"."project_id"=4020) GROUP BY "c"."project_id" |
| 20:34:49.390 | info | yii\db\Command::query | SELECT "project_id", EXTRACT(epoch FROM sum(end_at - start_at)) /3600 AS hours, count(id) as times FROM "a57be577deb434"."tbl_work_logs" WHERE ("is_draft"=FALSE) AND ("scenario_id"=2) AND ("project_id"=4020) GROUP BY "project_id" |
| 20:34:49.390 | info | yii\db\Command::query | SELECT "project_id", sum(amount) AS sum FROM "a57be577deb434"."tbl_reimbursements" WHERE ("status" IN (2, 3)) AND ("project_id"=4020) GROUP BY "project_id" |
| 20:34:49.393 | info | yii\db\Command::query | SELECT "id", "from_project", "payment_collection_remind_ahead", "serial_no", "is_settle", "is_deliver", "is_outbound", "erp_settle_amount", "erp_un_settle_amount", "including_tax", "amount" FROM "a57be577deb434"."tbl_sales_contracts" WHERE "from_project"=4020 |
| 20:34:49.393 | info | yii\db\Command::query | SELECT "id", "user_id", "user_id" AS "key", "project_id" FROM "a57be577deb434"."tbl_project_remind_receivers" WHERE "project_id"=4020 |
| 20:34:49.394 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_product_rels" WHERE "project_id"=4020 ORDER BY "id" |
| 20:34:49.395 | info | yii\db\Command::query | SELECT "object_id", count(*) as comment FROM "a57be577deb434"."tbl_comments" WHERE ("object_type"=1) AND ("object_id"=4020) GROUP BY "object_id" |
| 20:34:49.413 | info | yii\db\Command::query | SELECT "object_id", count(*) AS unread FROM "a57be577deb434"."tbl_unread_comments" WHERE ("object_type"=1) AND (remind_user_id = 1000 AND is_read = false) AND ("object_id"=4020) GROUP BY "object_id" |
| 20:34:49.429 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_contact_points" WHERE "project_id"=4020 |
| 20:34:49.430 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_erp_sales_orders" WHERE ("status" IN (2, 5)) AND ("project_id"=4020) |
| 20:34:49.431 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_used_clients" WHERE "project_id"=4020 |
| 20:34:49.432 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_used_client_payment_collection_remind_receivers" WHERE "project_used_client_id"=225 |
| 20:34:49.433 | info | yii\db\Command::query | SELECT "id", "id" AS "key", "project_used_client_id", "remind_date", "amount", "remind_date" AS "name", "amount" AS "value", "overdue_days" FROM "a57be577deb434"."tbl_project_used_client_payment_collection_remind_dates" WHERE "project_used_client_id"=225 |
| 20:34:49.433 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_used_client_payments" WHERE "project_used_client_id"=225 |
| 20:34:49.434 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_project_used_client_invoices" WHERE "project_used_client_id"=225 |
| 20:34:49.435 | info | yii\db\Command::query | SELECT * FROM "a57be577deb434"."tbl_erp_sales_orders" WHERE ("status"=1) AND ("project_id"=4020) |
| 20:34:49.436 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking permission: viewProduct |
| 20:34:49.436 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: StoreKeeper |
| 20:34:49.436 | trace | uranus\rbac\DbManager::checkAccessFromCache | Checking role: Admin |
| 20:34:49.436 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: GET |
| 20:34:49.437 | trace | yii\redis\Connection::executeCommand | Executing Redis Command: MGET |
| 20:34:49.437 | info | yii\db\Command::query | INSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "version_code", "url", "request", "response", "php_error", "time", "duration") VALUES (200, 'a57be577deb434', 1000, 2, 1161, 'v2/project/of-client', '{"access_token":"wXfR6UQn7fW_MTEa9o-7H8Ixg0fJU0Zm","device_type":"2","id":"3411","page":"1","posttime":"1784032512","token":"809d2dd384b9875c38ff4dc0f6c88e5a","version_code":"1161"}', '{"code":200,"data":{"list":[{"id":4020,"client_id":3411,"project_status":5,"project_progress":2,"budget":"0","profit_pct":"0","bargain_date":"2025-12-31","description":null,"created_by":5300,"created_at":"2025-10-27 17:01:21","updated_at":"2025-12-22 14:10:19","engineer_id":null,"project_title":"(\u672a\u8bbe\u7f6e)","collected":"0","status_updated_at":"2025-12-22 14:10:19.159783+08","success_rate":null,"comment":"2025\/10\/24\u5317\u4eac\u57ce\u5efa\u4e9a\u6cf0\u5efa\u8bbe\u96c6\u56e2\u6709\u9650\u516c\u53f8\u4fe1\u606f\u90e8\u7ecf\u7406\u6c6a\u51a0\u6743\u4ecb\u7ecd\uff1a\u516c\u53f8\u76ee\u524d\u4f7f\u7528\u591a\u4e2a\u54c1\u724c\u7684\u7f51\u7edc\u5b89\u5168\u4ea7\u54c1\uff0c\u4e5f\u6709\u6df1\u4fe1\u670d\u7684\u4ea7\u54c1\uff0c\u660e\u5e74\u5e74\u521d\u4f1a\u6709\u65b0\u589e\u9700\u6c42\uff08\u9632\u706b\u5899 \u4ea4\u6362\u673a\uff0c\u8def\u7531\u5668VPN\uff09\uff0c\u76ee\u524d\u65b0\u5efa\u4e86\u4e00\u4e2a\u516c\u53f8\uff0c\u6b63\u5728\u88c5\u4fee\uff0c\u660e\u5e74\u5e74\u521d\u4f1a\u6709\u91c7\u8d2d\u9700\u6c42\uff0c\u9884\u7b97\u6839\u636e\u5b9e\u9645\u91c7\u8d2d\u4e3a\u51c6\uff0c\u662f\u51b3\u7b56\u4eba\uff0c\u540c\u610f\u6df1\u4fe1\u670d\u5408\u4f5c\u4f19\u4f34\u8054\u7cfb\u3002\u624b\u673a\uff1a13521525850\uff08\u540c\u5fae\u4fe1\uff09\u90ae\u7bb1\uff1ayatai6760@126.com\u3002","contract_type":1,"progress_updated_at":"2025-11-03 11:31:50.044515+08","forecast_updated_at":"2025-12-22 14:10:19.159783+08","end_at":"2025-12-22 14:10:19","pinyin_shortcut":"wsz","creator":1011,"used_client":null,"from_contact":null,"total_contact_point":null,"paid_contact_point":null,"project_product_version_id":null,"is_sales_order_ready":true,"collected_plan":0,"change_status_to":null,"is_verify":false,"profits":"0.00000000000000000000","remain":"204 days 06:24:30.201666","progress_remain":"253 days 09:02:59.316934","forecast_remain":"204 days 06:24:30.201666","lost_contact_days":null,"last_contact":"","last_arrive_days":null,"last_arrive":null,"duration":"55 days 21:08:58.114701","issued_invoices":null,"client":{"id":3411,"key":3411,"name":"\u5317\u4eac\u57ce\u5efa\u4e9a\u6cf0\u5efa\u8bbe\u96c6\u56e2\u6709\u9650\u516c\u53f8","logo":null,"client_type":5,"client_class":43,"client_industry":9,"sales_rep":5300,"salesRep":{"id":5300,"key":5300,"name":"\u82cf\u6e05\u4e91","sex":"F","avatar":{"id":141,"user_id":5300,"name":"\/files\/cdn\/a57be577deb434\/avatar\/14dfd1a0-6df5-354a-8afd-f0a76fa8e852.png"}},"clientType":{"id":5,"key":5,"name":"\u836f\u54c1\u96f6\u552e\u4f01\u4e1a\uff08\u5355\u4f53\uff09"},"clientClass":{"id":43,"key":43,"name":"\u6f5c\u529b\u5ba2\u6237","notice_days":60,"color":"#1EE6DC"},"clientIndustry":{"id":9,"key":9,"name":"\u5730\u4ea7"}},"usedClient":null,"contractType":{"id":1,"key":1,"name":"\u4ea7\u54c1\u9500\u552e"},"projectArchitects":[],"projectStatus":{"id":5,"key":5,"name":"\u5546\u673a\u6401\u7f6e","color":"#222222"},"projectProgress":{"id":2,"key":2,"name":"\u786e\u8ba4\u95ee\u9898","description":"\u5b9a\u4e49\uff1a\u786e\u8ba4\u5ba2\u6237\u5f53\u524d\u9047\u5230\u7684\u5b9e\u9645\u95ee\u9898\uff0c \u6216\u8005\u5f85\u529e\u4efb\u52a1\uff0c\u6216\u8005\u9762\u4e34\u54ea\u4e9b\u6311\u6218\uff1f\n \u65b9\u6cd5\uff1a\u7b2c\u4e00\u6b65\uff1a5why\u6cd5\u8be2\u95ee\u771f\u95ee\u9898 \u7b2c\u4e8c\u6b65\uff1a\u53cd\u95ee\u5982\u679c\u4e0d\u89e3\u51b3\u4f1a\u600e\u6837\uff1f"},"projectProductTypes":[{"id":4,"product_type_id":4,"key":4,"name":"\u7f51\u7edc\u8bbe\u5907 ","budget":"0","pct":"0","profit":"0","project_id":4020}],"salesForecast":{"id":181,"key":181,"name":"\u6211\u81ea\u5df1\u505a\u5e84","description":"\u5382\u5546\u542c\u6211\u652f\u914d\uff0c\u7ed9\u6211\u597d\u4ef7\u683c\u3002\n\u5ba2\u6237\u542c\u6211\u652f\u914d\uff0c\u6309\u7167\u6211\u7684\u65b9\u5f0f\u91c7\u8d2d\u3002"},"opportunityFrom":null,"purchaseType":{"id":164,"key":164,"name":"\u591a\u5bb6\u6bd4\u4ef7"},"createdBy":{"id":5300,"key":5300,"name":"\u82cf\u6e05\u4e91","sex":"F","department_id":1,"avatar":{"id":141,"user_id":5300,"name":"\/files\/cdn\/a57be577deb434\/avatar\/14dfd1a0-6df5-354a-8afd-f0a76fa8e852.png"},"department":{"id":1,"key":1,"name":"\u9500\u552e\u90e8"}},"projectCreator":{"id":1011,"key":1011,"name":"\u97e9\u96c5\u82b3","sex":"F","department_id":3,"avatar":{"id":17,"user_id":1011,"name":"\/files\/cdn\/a57be577deb434\/avatar\/b54747f4-248d-380e-93bc-0f62f769e70d.png"}},"salesRep":{"id":5300,"key":5300,"name":"\u82cf\u6e05\u4e91","sex":"F","avatar":{"id":141,"user_id":5300,"name":"\/files\/cdn\/a57be577deb434\/avatar\/14dfd1a0-6df5-354a-8afd-f0a76fa8e852.png"}},"casePoints":null,"workLogCount":null,"caseCount":null,"salesTimeCount":null,"implementTimeCount":null,"presalesTimeCount":null,"engineerTimeCount":null,"reimbursementAmountSum":null,"buildContract":null,"projectRemindReceivers":[],"projectProductRels":[],"commentCount":{"object_id":4020,"comment":1},"unreadComments":null,"fromContact":null,"projectContactPoints":[],"erpSalesOrder":null,"projectUsedClient":{"id":225,"project_id":4020,"used_client":null,"budget":null,"profit":null,"profit_pct":null,"collected_plan":null,"remind_ahead":null,"usedClient":null,"projectUsedClientPaymentCollectionRemindReceivers":[],"projectUsedClientPaymentCollectionRemindDates":[],"projectUsedClientPayments":[],"projectUsedClientInvoices":[],"invoiced":0,"collected":0,"un_invoiced":0,"un_collected":0,"remind_ahead_display":"\u4e0d\u63d0\u9192","project_used_client_collected_plan":0,"project_used_client_collected_plan_pct":""},"erpSalesOrderVerify":null,"remain_display":204,"progress_remain_display":253,"forecast_remain_display":204,"projectProductTotalAmount":0,"projectProductAllAmount":true,"projectProductTotalCost":0,"projectProductAllCost":true,"projectProductTotalNumber":0,"unissued_invoice":0,"is_exceeded":false,"can_update":true,"can_delete":true,"unread":0,"last_arrive_days_display":null,"project_status_display":"\u5546\u673a\u6401\u7f6e","is_collected":false,"bgcolor":"#222222","can_invoice":false,"can_payment":false,"duration_display":55,"contract_type_display":"\u4ea7\u54c1\u9500\u552e","can_change_status":true,"is_admin":true,"lost_contact_days_display":null,"can_view_product":true,"budget_display":"0","contact_points_status_display":"\u672a\u8bbe\u7f6e","total_contact_paid_point":0,"total_contact_un_paid_point":0,"verify_display":0,"un_collected":0,"un_invoiced":0,"object_type":1,"can_view_verify_list":true,"verifyList":[]}],"pagenation":{"totalcount":1,"thispage":1,"pagesize":10},"can_create":true},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"ip":"18.163.125.22","ua":"jinchangxiao\/2.3.158 (iPhone 12 mini; iOS 26.2; Scale\/3.00)"}', FALSE, '2026-07-14 20:34:49', 101181952) RETURNING "id" |