Log Messages

总计114条数据
TimeLevelCategoryMessage
 
16:17:32.330traceyii\base\Application::bootstrapBootstrap with yii\log\Dispatcher
16:17:32.330traceyii\base\Module::getModuleLoading module: debug
16:17:32.330traceyii\base\Application::bootstrapBootstrap with yii\debug\Module::bootstrap()
16:17:32.331traceyii\redis\Connection::openOpening redis DB connection: redis.server.local:6379, database=1
16:17:32.331traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
16:17:32.331traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.331traceyii\base\Module::getModuleLoading module: gii
16:17:32.331traceyii\base\Application::bootstrapBootstrap with yii\gii\Module::bootstrap()
16:17:32.331traceyii\web\UrlManager::parseRequestNo matching URL rules. Using default URL parsing logic.
16:17:32.331traceyii\web\Application::handleRequestRoute requested: 'v2/project/get-edit'
16:17:32.331traceyii\base\Module::getModuleLoading module: v2
16:17:32.332infoyii\web\Session::openSession started
16:17:32.332infoyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
16:17:32.334infoyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "access_token"='LpLquexa4MxJRClJNdb9gPVa_MzadLnu'
16:17:32.337traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.337traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.337traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.337traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.338infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.339traceyii\base\Controller::runActionRoute to run: v2/project/get-edit
16:17:32.339traceyii\base\InlineAction::runWithParamsRunning action: app\modules\v2\controllers\ProjectController::actionGetEdit()
16:17:32.339infoyii\db\Command::querySELECT p.*, now() - status_updated_at AS remain, now() - progress_updated_at AS progress_remain, now() - forecast_updated_at AS forecast_remain, CASE WHEN p.end_at IS NOT NULL THEN p.end_at - p.created_at ELSE now() - p.created_at END AS duration, 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, (SELECT sum(amount) FROM a57be577deb434.tbl_invoices AS i WHERE i.project_id = p.id) AS issued_invoices FROM "a57be577deb434"."tbl_projects" "p" LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON p.client_id = c.id 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 WHERE "p"."id"='3809' GROUP BY "p"."id"
16:17:32.342traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.342traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.343infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "logo", "client_type", "client_class", "client_industry", "sales_rep" FROM "a57be577deb434"."tbl_clients" WHERE "id"=3304
16:17:32.344infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.344infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1001)
16:17:32.345infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_types" WHERE "id"=5
16:17:32.345infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "notice_days", "color" FROM "a57be577deb434"."tbl_client_classes" WHERE "id"=43
16:17:32.345infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_industries" WHERE "id"=13
16:17:32.346infoyii\db\Command::querySELECT "id", "id" AS "key", "type" AS "name" FROM "a57be577deb434"."tbl_contract_types" WHERE "id"=1
16:17:32.346infoyii\db\Command::querySELECT "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"=3809 ORDER BY "contribution" DESC, "engineer_id"
16:17:32.347infoyii\db\Command::querySELECT "id", "id" AS "key", "project_status" AS "name", "color" FROM "a57be577deb434"."tbl_project_statuses" WHERE "id"=3
16:17:32.347infoyii\db\Command::querySELECT "id", "id" AS "key", "project_progress" AS "name", "description" FROM "a57be577deb434"."tbl_project_progresses" WHERE "id"=9
16:17:32.348infoyii\db\Command::querySELECT 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"=3809
16:17:32.348infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3809
16:17:32.349infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "description" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=13) AND ("id" IN (5, 226, 165, 136, 172)) ORDER BY "sort"
16:17:32.349infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3809
16:17:32.350infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=10) AND ("id" IN (5, 226, 165, 136, 172)) ORDER BY "sort"
16:17:32.350infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3809
16:17:32.350infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=9) AND ("id" IN (5, 226, 165, 136, 172)) ORDER BY "sort"
16:17:32.351infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.351infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1001)
16:17:32.351infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_departments" WHERE "id"=4
16:17:32.352infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.352infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1001)
16:17:32.352infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=3304
16:17:32.353infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.353infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1001)
16:17:32.353infoyii\db\Command::querySELECT "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"=3809 GROUP BY "c"."project_id"
16:17:32.355infoyii\db\Command::querySELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_work_logs" WHERE ("is_draft"=FALSE) AND ("project_id"=3809) GROUP BY "project_id"
16:17:32.355infoyii\db\Command::querySELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_cases" WHERE "project_id"=3809 GROUP BY "project_id"
16:17:32.356infoyii\db\Command::querySELECT "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"=3809) GROUP BY "project_id"
16:17:32.357infoyii\db\Command::querySELECT "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"=3809) GROUP BY "c"."project_id"
16:17:32.358infoyii\db\Command::querySELECT "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"=3809) GROUP BY "c"."project_id"
16:17:32.359infoyii\db\Command::querySELECT "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"=3809) GROUP BY "project_id"
16:17:32.360infoyii\db\Command::querySELECT "project_id", sum(amount) AS sum FROM "a57be577deb434"."tbl_reimbursements" WHERE ("status" IN (3, 2)) AND ("project_id"=3809) GROUP BY "project_id"
16:17:32.361infoyii\db\Command::querySELECT "id", "from_project", "payment_collection_remind_ahead", "serial_no", "is_settle", "is_deliver", "is_outbound" FROM "a57be577deb434"."tbl_sales_contracts" WHERE "from_project"=3809
16:17:32.362infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=105) AND ("object_id"=3843)
16:17:32.364infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "extension", "path", "orig_name" FROM "a57be577deb434"."tbl_attachments" WHERE "id"=24777
16:17:32.364infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=106) AND ("object_id"=3843)
16:17:32.365infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_attachement_relationships" WHERE ("object_type"=107) AND ("object_id"=3843)
16:17:32.366infoyii\db\Command::querySELECT "id", "id" AS "key", "contract_id", "amount" AS "value", "created_by", "created_at", "collected_date" FROM "a57be577deb434"."tbl_sales_contract_payments" WHERE "contract_id"=3843 ORDER BY "id"
16:17:32.367infoyii\db\Command::querySELECT "id", "id" AS "key", "contract_id", "amount" AS "value", "attachment_id", "from_date" FROM "a57be577deb434"."tbl_sales_contract_invoices" WHERE "contract_id"=3843 ORDER BY "id"
16:17:32.368infoyii\db\Command::querySELECT "id", "id" AS "key", "contract_id", "remind_date" AS "name", "amount" AS "value", "overdue_days" FROM "a57be577deb434"."tbl_sales_contract_payment_collection_remind_dates" WHERE "contract_id"=3843 ORDER BY "remind_date"
16:17:32.368infoyii\db\Command::querySELECT "id", "user_id", "user_id" AS "key", "contract_id" FROM "a57be577deb434"."tbl_sales_contract_payment_collection_remind_receivers" WHERE "contract_id"=3843
16:17:32.369infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id" IN (1005, 1001)
16:17:32.369infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id" IN (1001, 1005))
16:17:32.369infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_sales_supplier_rels" WHERE "contract_id"=3843
16:17:32.370infoyii\db\Command::querySELECT "id", "user_id", "user_id" AS "key", "project_id" FROM "a57be577deb434"."tbl_project_remind_receivers" WHERE "project_id"=3809
16:17:32.370infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
16:17:32.371infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1001)
16:17:32.371infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_product_rels" WHERE "project_id"=3809
16:17:32.371infoyii\db\Command::querySELECT "object_id", count(*) as comment FROM "a57be577deb434"."tbl_comments" WHERE ("object_type"=1) AND ("object_id"=3809) GROUP BY "object_id"
16:17:32.389infoyii\db\Command::querySELECT "object_id", count(*) AS unread FROM "a57be577deb434"."tbl_unread_comments" WHERE ("object_type"=1) AND (remind_user_id = 1001 AND is_read = false) AND ("object_id"=3809) GROUP BY "object_id"
16:17:32.405infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_contact_points" WHERE "project_id"=3809
16:17:32.405infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_clients" WHERE "project_id"=3809
16:17:32.406infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_payment_collection_remind_receivers" WHERE "project_used_client_id"=106
16:17:32.406infoyii\db\Command::querySELECT "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"=106
16:17:32.407infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_payments" WHERE "project_used_client_id"=106
16:17:32.407infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_invoices" WHERE "project_used_client_id"=106
16:17:32.408infoyii\db\Command::querySELECT s.id, project_id, client_id, schedule_title, complete_at, start_at, end_at, created_by, is_complete, is_closed, complete_description, set_top_at, CASE WHEN is_complete = true THEN 3 WHEN is_complete = false AND end_at <= NOW() THEN 2 ELSE 1 END AS sort FROM "a57be577deb434"."tbl_schedules" "s" LEFT JOIN "a57be577deb434"."tbl_schedule_carbon_copy_rels" "ccr" ON ccr.schedule_id = s.id WHERE (("is_complete"=FALSE) OR ("complete_at" >= '2025-06-13')) AND ((("is_public"=1) AND ("created_by" != 1001)) OR ("created_by"=1001) OR ("ccr"."user_id"=1001)) AND ("s"."project_id"=3809) ORDER BY set_top_at DESC nulls last, sort ASC, CASE WHEN is_complete = true THEN complete_at END DESC, CASE WHEN is_complete = false THEN end_at END ASC, end_at DESC
16:17:32.409traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.409traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.409infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=3304
16:17:32.410infoyii\db\Command::querySELECT EXISTS(SELECT * FROM "a57be577deb434"."tbl_user_visit_clients" WHERE ("user_id"=1001) AND ("client_id"=3304))
16:17:32.410traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.411traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.412traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.413traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: viewProduct
16:17:32.413traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Accountant
16:17:32.413traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
16:17:32.413infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_product_types" WHERE "is_delete"=FALSE ORDER BY "order", "id"
16:17:32.414infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=13) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
16:17:32.414infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=9) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
16:17:32.414infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=10) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
16:17:32.415infoyii\db\Command::querySELECT "id" AS "key", "project_progress" AS "name" FROM "a57be577deb434"."tbl_project_progresses" WHERE "is_delete"=FALSE ORDER BY "order"
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus3
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus4
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus5
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
16:17:32.415traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
16:17:32.415infoyii\db\Command::querySELECT "id" AS "key", "project_status" AS "name", "color" FROM "a57be577deb434"."tbl_project_statuses" WHERE "id" IN (1, 2, 3, 4, 5) ORDER BY "order"
16:17:32.416infoyii\db\Command::querySELECT "id" AS "key", "type" AS "name" FROM "a57be577deb434"."tbl_contract_types" WHERE "is_delete"=FALSE ORDER BY "sort"
16:17:32.416infoyii\db\Command::querySELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[2025-06-27 16:17:32, 2025-06-27 16:17:32]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY pinyin1 nulls first, namecut1 nulls first, pinyin2 nulls first, namecut2 nulls first, pinyin3 nulls first, namecut3 nulls first, pinyin4 nulls first, namecut4 nulls first
16:17:32.417traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.417traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.417traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
16:17:32.417traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
16:17:32.418infoyii\db\Command::queryINSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "version_code", "url", "request", "response", "php_error", "time") VALUES (200, 'a57be577deb434', 1001, 7, 165, 'v2/project/get-edit', '{"id":"3809","posttime":"1751012252","access_token":"LpLquexa4MxJRClJNdb9gPVa_MzadLnu","device_type":"7","version_code":"165","token":"bec2953b84ec20f2ef0dd095d1e9d86a"}', '{"code":200,"data":{"model":{"id":3809,"client_id":3304,"project_status":3,"project_progress":9,"budget":"1","profit_pct":"100","bargain_date":"2025-06-11","description":"","created_by":1001,"created_at":"2025-06-11 10:59:46","updated_at":"2025-06-27 14:39:02","engineer_id":null,"project_title":"\u6d4b\u8bd5\u9ed8\u8ba4\u9009\u4e2d\u660e\u786e\u9700\u6c42","collected":"0","status_updated_at":"2025-06-11 11:06:41.464262+08","success_rate":null,"comment":"","contract_type":1,"progress_updated_at":"2025-06-11 10:59:46.429638+08","forecast_updated_at":"2025-06-11 11:10:21.558113+08","end_at":"2025-06-11 11:10:21","pinyin_shortcut":"csmrxzmqxq","creator":1001,"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":3000,"remain":"16 days 05:10:50.876752","progress_remain":"16 days 05:17:45.911376","forecast_remain":"16 days 05:07:10.782901","duration":"00:10:35.128475","lost_contact_days":null,"last_contact":"","last_arrive_days":null,"last_arrive":null,"issued_invoices":null,"client":{"id":3304,"key":3304,"name":"\u5317\u4eac\u6708\u521d\u79d1\u6280\u6709\u9650\u516c\u53f8\uff08\u8fc7\u5355\uff09","logo":null,"client_type":5,"client_class":43,"client_industry":13,"sales_rep":1001,"salesRep":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"}},"clientType":{"id":5,"key":5,"name":"\u5546\u4e1a"},"clientClass":{"id":43,"key":43,"name":"\u6f5c\u529b\u5ba2\u6237","notice_days":60,"color":"#1EE6DC"},"clientIndustry":{"id":13,"key":13,"name":"SI\/ISV"}},"usedClient":null,"contractType":{"id":1,"key":1,"name":"\u4ea7\u54c1\u9500\u552e"},"projectArchitects":[],"projectStatus":{"id":3,"key":3,"name":"\u5546\u673a\u6210\u4ea4","color":"#53cd02"},"projectProgress":{"id":9,"key":9,"name":"\u7b7e\u8ba2\u5408\u540c","description":"\u5b9a\u4e49\uff1a\u786e\u8ba4\u4ea7\u54c1\u914d\u7f6e\uff0c\u4ea7\u54c1\u6570\u91cf\uff0c\u4ea7\u54c1\u4ef7\u683c\uff0c\u4ed8\u6b3e\u65b9\u5f0f\uff0c\u5230\u8d27\u65e5\u671f\uff0c\u8fdd\u7ea6\u6761\u6b3e\uff0c\u9a8c\u6536\u6807\u51c6\u3002 \n\u65b9\u6cd5\uff1a\u6309\u7167\u516c\u53f8\u5408\u540c\u8303\u672c\u6216\u6309\u7167\u5ba2\u6237\u8303\u672c\u7b7e\u8ba2\u5408\u540c\u3002"},"projectProductTypes":[{"id":2,"product_type_id":2,"key":2,"name":"\u670d\u52a1\u5668","budget":"1","pct":"100","profit":"1","project_id":3809}],"salesForecast":{"id":172,"key":172,"name":"\u6211\u4e0e\u5382\u5546\u8054\u624b","description":"\u4e0e\u5382\u5546\u8054\u624b\u5171\u540c\u641e\u5b9a\u5ba2\u6237\uff0c\u5229\u6da6\u5404\u536050%"},"opportunityFrom":null,"purchaseType":{"id":165,"key":165,"name":"\u534f\u8bae\u4f9b\u8d27"},"createdBy":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","department_id":4,"avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"},"department":{"id":4,"key":4,"name":"\u603b\u7ecf\u7406"}},"projectCreator":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","department_id":4,"avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"}},"salesRep":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"}},"casePoints":null,"workLogCount":null,"caseCount":null,"salesTimeCount":null,"implementTimeCount":null,"presalesTimeCount":null,"engineerTimeCount":null,"reimbursementAmountSum":null,"buildContract":{"id":3843,"from_project":3809,"payment_collection_remind_ahead":"1 day","serial_no":"TS-LRC-20250611001","is_settle":false,"is_deliver":false,"is_outbound":false,"contractScans":[{"id":33154,"object_type":105,"object_id":3843,"attachment_id":24777,"attachment":{"id":24777,"key":24777,"name":"36dc6b1c-8a09-3bd7-9444-1382484072e9","extension":"pdf","path":"\/v2\/attachment\/preview\/LpLquexa4MxJRClJNdb9gPVa_MzadLnu\/36dc6b1c-8a09-3bd7-9444-1382484072e9\/InvSqrt.pdf","orig_name":"InvSqrt.pdf"}}],"receiptScans":[],"verifyScans":[],"salesContractPayments":[],"salesContractInvoices":[],"salesContractPaymentCollectionRemindDates":[{"id":2382,"key":2382,"contract_id":3843,"name":"2025-06-11","value":"3000","overdue_days":null,"pct":300000,"collect_status":"\u903e\u671f16\u5929"}],"salesContractPaymentCollectionRemindReceivers":[{"id":8223,"user_id":1005,"key":1005,"contract_id":3843,"user":{"id":1005,"key":1005,"name":"\u8d75\u6657\u7131","sex":"F","avatar":{"id":16,"user_id":1005,"name":"\/files\/cdn\/a57be577deb434\/avatar\/56876dde-37eb-39fc-853a-47eaef6510e5.png"}}},{"id":8224,"user_id":1001,"key":1001,"contract_id":3843,"user":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"}}}],"salesSupplierRels":[],"payment_collection_remind_ahead_display":"1\u5929"},"projectRemindReceivers":[{"id":1537,"user_id":1001,"key":1001,"project_id":3809,"user":{"id":1001,"key":1001,"name":"\u5218\u4eba\u8bda","sex":"M","avatar":{"id":2,"user_id":1001,"name":"\/files\/cdn\/a57be577deb434\/avatar\/9f73cfbd-bae6-3b50-b7ac-61b936c40727.png"}}}],"projectProductRels":[],"commentCount":{"object_id":3809,"comment":2},"unreadComments":null,"fromContact":null,"projectContactPoints":[],"projectUsedClient":{"id":106,"project_id":3809,"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":""},"schedules":[],"remain_display":16,"progress_remain_display":16,"forecast_remain_display":16,"projectProductTotalAmount":0,"projectProductAllAmount":true,"projectProductTotalCost":0,"projectProductAllCost":true,"projectProductTotalNumber":0,"unissued_invoice":1,"is_exceeded":false,"can_update":true,"can_delete":true,"unread":0,"last_arrive_days_display":null,"project_status_display":"\u5546\u673a\u6210\u4ea4","is_collected":false,"bgcolor":"#53cd02","can_invoice":true,"can_payment":true,"duration_display":1,"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":"1","contact_points_status_display":"\u672a\u8bbe\u7f6e","is_only_cp":false},"options":[{"key":"Projects[projectProductTypes]","name":"\u5546\u673a\u7c7b\u578b","value":[{"key":2,"name":"\u670d\u52a1\u5668"},{"key":3,"name":"\u5b58\u50a8\u8bbe\u5907"},{"key":4,"name":"\u7f51\u7edc\u8bbe\u5907 "},{"key":5,"name":"\u5b89\u5168\u8bbe\u5907"},{"key":88,"name":"\u79c1\u6709\u4e91"},{"key":8,"name":"\u4e91\u684c\u9762"},{"key":7,"name":"\u8f6f\u4ef6"},{"key":10,"name":"\u56fe\u5f62\u5de5\u4f5c\u7ad9"},{"key":69,"name":"\u5907\u4efd"},{"key":11,"name":"\u4e2a\u4eba\u8ba1\u7b97\u673a"},{"key":12,"name":"\u7b14\u8bb0\u672c"},{"key":13,"name":"\u6253\u5370\u673a"},{"key":14,"name":"UPS"},{"key":16,"name":"\u8fd0\u7ef4\u670d\u52a1"},{"key":17,"name":"\u5de5\u63a7\u673a"},{"key":18,"name":"\u673a\u623f\u8bbe\u5907"},{"key":19,"name":"\u6280\u672f\u670d\u52a1"},{"key":20,"name":"\u529e\u516c\u8bbe\u5907"},{"key":21,"name":"\u6570\u7801\u8bbe\u5907"},{"key":22,"name":"\u670d\u52a1"},{"key":23,"name":"\u793c\u54c1"},{"key":75,"name":"\u8f6f\u4ef6\u5f00\u53d1"}]},{"key":"Projects[salesForecast]","name":"\u9500\u552e\u9884\u6d4b","value":[{"key":181,"name":"\u6211\u81ea\u5df1\u505a\u5e84"},{"key":142,"name":"\u6211\u4e0e\u5ba2\u6237\u8054\u624b"},{"key":172,"name":"\u6211\u4e0e\u5382\u5546\u8054\u624b"},{"key":232,"name":"\u5382\u5546\u8fc7\u5355"}]},{"key":"Projects[purchaseType]","name":"\u91c7\u8d2d\u65b9\u5f0f","value":[{"key":128,"name":"\u516c\u5f00\u62db\u6807"},{"key":129,"name":"\u7279\u7ea6\u9080\u6807"},{"key":130,"name":"\u7ade\u4e89\u8c08\u5224"},{"key":164,"name":"\u591a\u5bb6\u6bd4\u4ef7"},{"key":165,"name":"\u534f\u8bae\u4f9b\u8d27"},{"key":182,"name":"\u56f4\u6807"}]},{"key":"Projects[opportunityFrom]","name":"\u5546\u673a\u6765\u6e90","value":[{"key":131,"name":"\u5e7f\u544a\u63a8\u5e7f"},{"key":132,"name":"\u5ba2\u6237\u4ecb\u7ecd"},{"key":167,"name":"\u5382\u5546\u4ecb\u7ecd"},{"key":168,"name":"\u670b\u53cb\u4ecb\u7ecd"},{"key":169,"name":"\u540c\u5b66\u4ecb\u7ecd"},{"key":170,"name":"\u601d\u79d1MSO"},{"key":171,"name":"cold call"},{"key":179,"name":"\u8001\u5ba2\u6237"},{"key":180,"name":"\u5382\u5546\u7529\u5355"}]},{"key":"Projects[project_progress]","name":"\u9500\u552e\u9636\u6bb5","value":[{"key":2,"name":"\u786e\u8ba4\u95ee\u9898"},{"key":3,"name":"\u65b9\u6848\u8bbe\u8ba1"},{"key":4,"name":"\u786e\u8ba4\u65b9\u6848"},{"key":5,"name":"\u5546\u52a1\u62a5\u4ef7"},{"key":6,"name":"\u63a8\u52a8\u6210\u4ea4"},{"key":9,"name":"\u7b7e\u8ba2\u5408\u540c"},{"key":10,"name":"\u4ea4\u8d27\u4e2d"},{"key":49,"name":"\u6536\u6b3e\u4e2d"}]},{"key":"Projects[project_status]","name":"\u5546\u673a\u72b6\u6001","value":[{"key":1,"name":"\u9690\u6027\u9700\u6c42","color":"#ffc000"},{"key":2,"name":"\u660e\u786e\u9700\u6c42","color":"#0064ec"},{"key":3,"name":"\u5546\u673a\u6210\u4ea4","color":"#53cd02"},{"key":4,"name":"\u5546\u673a\u5931\u8d25","color":"#e5000a"},{"key":5,"name":"\u5546\u673a\u6401\u7f6e","color":"#222222"}]},{"key":"Projects[contract_type]","name":"\u5408\u540c\u7c7b\u578b","value":[{"key":1,"name":"\u4ea7\u54c1\u9500\u552e"},{"key":2,"name":"\u8fd0\u7ef4\u670d\u52a1"}]},{"key":"ProjectArchitects[engineer_id]","name":"\u552e\u524d\u652f\u6301","value":[{"key":1017,"name":"\u8f66\u660e\u98de"},{"key":5085,"name":"\u970d\u4e1c\u9633"},{"key":1001,"name":"\u5218\u4eba\u8bda"},{"key":5248,"name":"\u6587\u4f73\u9f99"},{"key":1015,"name":"\u5434\u660a"},{"key":1022,"name":"\u5f90\u7855"},{"key":5296,"name":"\u8d75\u5b87"},{"key":1023,"name":"\u5468\u5b50\u5065"}]},{"key":"Projects[payment_collection_remind_ahead]","name":"\u6536\u6b3e\u63d0\u9192\u65f6\u95f4","value":[{"key":"","name":"\u65e0"},{"key":"1 day","name":"\u63d0\u524d1\u5929"},{"key":"2 days","name":"\u63d0\u524d2\u5929"},{"key":"7 days","name":"\u63d0\u524d7\u5929"},{"key":"15 days","name":"\u63d0\u524d15\u5929"},{"key":"30 days","name":"\u63d0\u524d30\u5929"}]}]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}]}', FALSE, '2025-06-27 16:17:32') RETURNING "id"