Log Messages

总计112条数据
TimeLevelCategoryMessage
 
22:35:42.721traceyii\base\Application::bootstrapBootstrap with yii\log\Dispatcher
22:35:42.721traceyii\base\Module::getModuleLoading module: debug
22:35:42.722traceyii\base\Application::bootstrapBootstrap with yii\debug\Module::bootstrap()
22:35:42.722traceyii\redis\Connection::openOpening redis DB connection: redis.server.local:6379, database=1
22:35:42.722traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
22:35:42.722traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.722traceyii\base\Module::getModuleLoading module: gii
22:35:42.722traceyii\base\Application::bootstrapBootstrap with yii\gii\Module::bootstrap()
22:35:42.722traceyii\web\UrlManager::parseRequestNo matching URL rules. Using default URL parsing logic.
22:35:42.722traceyii\web\Application::handleRequestRoute requested: 'v2/project/get-edit'
22:35:42.722traceyii\base\Module::getModuleLoading module: v2
22:35:42.723infoyii\web\Session::openSession started
22:35:42.723infoyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
22:35:42.725infoyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "access_token"='gIBfXHaGAAjf2tBIfgqsDfRNPly9E9om'
22:35:42.728traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.728traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.728traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.729traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.729infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1000
22:35:42.730traceyii\base\Controller::runActionRoute to run: v2/project/get-edit
22:35:42.730traceyii\base\InlineAction::runWithParamsRunning action: app\modules\v2\controllers\ProjectController::actionGetEdit()
22:35:42.730infoyii\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"='3954' GROUP BY "p"."id"
22:35:42.733traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.733traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.734infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "logo", "client_type", "client_class", "client_industry", "sales_rep" FROM "a57be577deb434"."tbl_clients" WHERE "id"=93
22:35:42.735infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1005
22:35:42.735infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1005)
22:35:42.736infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_types" WHERE "id"=3
22:35:42.736infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "notice_days", "color" FROM "a57be577deb434"."tbl_client_classes" WHERE "id"=47
22:35:42.737infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_client_industries" WHERE "id"=5
22:35:42.737infoyii\db\Command::querySELECT "id", "id" AS "key", "type" AS "name" FROM "a57be577deb434"."tbl_contract_types" WHERE "id"=1
22:35:42.737infoyii\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"=3954 ORDER BY "contribution" DESC, "engineer_id"
22:35:42.738traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.738traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.738infoyii\db\Command::querySELECT "id", "id" AS "key", "project_status" AS "name", "color" FROM "a57be577deb434"."tbl_project_statuses" WHERE "id"=2
22:35:42.739infoyii\db\Command::querySELECT "id", "id" AS "key", "project_progress" AS "name", "description" FROM "a57be577deb434"."tbl_project_progresses" WHERE "id"=4
22:35:42.739infoyii\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"=3954
22:35:42.740infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3954
22:35:42.740infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "description" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=13) AND ("id" IN (215, 164, 142, 184, 189, 349)) ORDER BY "sort"
22:35:42.741infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3954
22:35:42.741infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=10) AND ("id" IN (215, 164, 142, 184, 189, 349)) ORDER BY "sort"
22:35:42.742infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_term_taxonomy_relationships" WHERE "object_id"=3954
22:35:42.742infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=9) AND ("id" IN (215, 164, 142, 184, 189, 349)) ORDER BY "sort"
22:35:42.742infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1005
22:35:42.743infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1005)
22:35:42.743infoyii\db\Command::querySELECT "id", "id" AS "key", "name" FROM "a57be577deb434"."tbl_departments" WHERE "id"=1
22:35:42.743infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1005
22:35:42.744infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1005)
22:35:42.744infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=93
22:35:42.744infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex" FROM "a57be577deb434"."tbl_users" WHERE "id"=1005
22:35:42.745infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1005)
22:35:42.745infoyii\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"=3954 GROUP BY "c"."project_id"
22:35:42.747infoyii\db\Command::querySELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_work_logs" WHERE ("is_draft"=FALSE) AND ("project_id"=3954) GROUP BY "project_id"
22:35:42.747infoyii\db\Command::querySELECT "project_id", count(id) as count FROM "a57be577deb434"."tbl_cases" WHERE "project_id"=3954 GROUP BY "project_id"
22:35:42.748infoyii\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"=3954) GROUP BY "project_id"
22:35:42.748infoyii\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"=3954) GROUP BY "c"."project_id"
22:35:42.750infoyii\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"=3954) GROUP BY "c"."project_id"
22:35:42.751infoyii\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"=3954) GROUP BY "project_id"
22:35:42.751infoyii\db\Command::querySELECT "project_id", sum(amount) AS sum FROM "a57be577deb434"."tbl_reimbursements" WHERE ("status" IN (2, 3)) AND ("project_id"=3954) GROUP BY "project_id"
22:35:42.753infoyii\db\Command::querySELECT "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"=3954
22:35:42.754infoyii\db\Command::querySELECT "id", "user_id", "user_id" AS "key", "project_id" FROM "a57be577deb434"."tbl_project_remind_receivers" WHERE "project_id"=3954
22:35:42.754infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_product_rels" WHERE "project_id"=3954
22:35:42.754infoyii\db\Command::querySELECT "object_id", count(*) as comment FROM "a57be577deb434"."tbl_comments" WHERE ("object_type"=1) AND ("object_id"=3954) GROUP BY "object_id"
22:35:42.774infoyii\db\Command::querySELECT "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"=3954) GROUP BY "object_id"
22:35:42.791infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_contact_points" WHERE "project_id"=3954
22:35:42.792infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_erp_sales_orders" WHERE ("status" IN (2, 5)) AND ("project_id"=3954)
22:35:42.792infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_clients" WHERE "project_id"=3954
22:35:42.793infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_payment_collection_remind_receivers" WHERE "project_used_client_id"=183
22:35:42.793infoyii\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"=183
22:35:42.794infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_payments" WHERE "project_used_client_id"=183
22:35:42.794infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_project_used_client_invoices" WHERE "project_used_client_id"=183
22:35:42.795infoyii\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-08-29')) AND ((("is_public"=1) AND ("created_by" != 1000)) OR ("created_by"=1000) OR ("ccr"."user_id"=1000)) AND ("s"."project_id"=3954) 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
22:35:42.796traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.796infoyii\db\Command::querySELECT d.nspname AS table_schema, c.relname AS table_name, a.attname AS column_name, t.typname AS data_type, a.attlen AS character_maximum_length, pg_catalog.col_description(c.oid, a.attnum) AS column_comment, a.atttypmod AS modifier, a.attnotnull = false AS is_nullable, CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default, coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) AS is_autoinc, array_to_string((select array_agg(enumlabel) from pg_enum where enumtypid=a.atttypid)::varchar[],',') as enum_values, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS numeric_precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 END ELSE null END AS numeric_scale, CAST( information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) AS numeric ) AS size, a.attnum = any (ct.conkey) as is_pkey FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_namespace d ON d.oid = c.relnamespace LEFT join pg_constraint ct on ct.conrelid=c.oid and ct.contype='p' WHERE a.attnum > 0 and t.typname != '' and c.relname = 'tbl_schedules' and d.nspname = 'a57be577deb434' ORDER BY a.attnum;
22:35:42.801infoyii\db\Command::queryselect ct.conname as constraint_name, a.attname as column_name, fc.relname as foreign_table_name, fns.nspname as foreign_table_schema, fa.attname as foreign_column_name from (SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s FROM pg_constraint ct ) AS ct inner join pg_class c on c.oid=ct.conrelid inner join pg_namespace ns on c.relnamespace=ns.oid inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s] left join pg_class fc on fc.oid=ct.confrelid left join pg_namespace fns on fc.relnamespace=fns.oid left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s] where ct.contype='f' and c.relname='tbl_schedules' and ns.nspname='a57be577deb434' order by fns.nspname, fc.relname, a.attnum
22:35:42.805traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.805traceyii\redis\Connection::executeCommandExecuting Redis Command: SET
22:35:42.846infoyii\db\Command::querySELECT "id", "id" AS "key", "name", "sex", "department_id" FROM "a57be577deb434"."tbl_users" WHERE "id"=1005
22:35:42.847infoyii\db\Command::querySELECT "id", "user_id", "meta_value" AS "name" FROM "a57be577deb434"."tbl_user_meta" WHERE ("meta_key"='avatar') AND ("user_id"=1005)
22:35:42.847infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_schedule_descriptions" WHERE "schedule_id"=17928 ORDER BY "created_at" DESC
22:35:42.848traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.849traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.849infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_clients" WHERE "id"=93
22:35:42.849infoyii\db\Command::querySELECT EXISTS(SELECT * FROM "a57be577deb434"."tbl_user_visit_clients" WHERE ("user_id"=1000) AND ("client_id"=93))
22:35:42.850traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.850traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.851traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.852traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: viewProduct
22:35:42.852traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: StoreKeeper
22:35:42.852traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
22:35:42.852infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_product_types" WHERE "is_delete"=FALSE ORDER BY "order", "id"
22:35:42.853infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=13) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
22:35:42.853infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=9) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
22:35:42.854infoyii\db\Command::querySELECT "id" AS "key", "name" FROM "a57be577deb434"."tbl_term_taxonomies" WHERE ("term_id"=10) AND ("is_delete"=FALSE) ORDER BY "sort", "id"
22:35:42.854infoyii\db\Command::querySELECT "id" AS "key", "project_progress" AS "name" FROM "a57be577deb434"."tbl_project_progresses" WHERE "is_delete"=FALSE ORDER BY "order"
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus3
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus4
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking permission: changeProjectStatus5
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: SalesManager
22:35:42.854traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
22:35:42.854infoyii\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"
22:35:42.855infoyii\db\Command::querySELECT "id" AS "key", "type" AS "name" FROM "a57be577deb434"."tbl_contract_types" WHERE "is_delete"=FALSE ORDER BY "sort"
22:35:42.855infoyii\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-09-12 22:35:42, 2025-09-12 22:35:42]'::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
22:35:42.856traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.856traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.857traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
22:35:42.857traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
22:35:42.857infoyii\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', 1000, 0, 266, 'v2/project/get-edit', '{"access_token":"gIBfXHaGAAjf2tBIfgqsDfRNPly9E9om","device_type":"0","version_code":"266","id":"3954","token":"131f5d3b357b8679edfb2709a070545b","posttime":"1757687743"}', '{"code":200,"data":{"model":{"id":3954,"client_id":93,"project_status":2,"project_progress":4,"budget":"130000","profit_pct":"11.53","bargain_date":"2025-10-01","description":"","created_by":1005,"created_at":"2025-08-25 09:17:17","updated_at":"2025-09-12 21:50:39","engineer_id":null,"project_title":"\u7fa4\u6656\u6269\u5bb9","collected":"0","status_updated_at":"2025-09-10 16:43:00.746522+08","success_rate":null,"comment":"","contract_type":1,"progress_updated_at":"2025-08-25 09:17:42.234121+08","forecast_updated_at":"2025-08-25 09:17:42.234121+08","end_at":"","pinyin_shortcut":"qhkr","creator":1005,"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,"remain":"2 days 05:52:41.985738","progress_remain":"18 days 13:18:00.498139","forecast_remain":"18 days 13:18:00.498139","duration":"18 days 13:18:25.451384","lost_contact_days":null,"last_contact":"","last_arrive_days":null,"last_arrive":null,"issued_invoices":null,"client":{"id":93,"key":93,"name":"\u5eb7\u9f99\u5316\u6210(\u5317\u4eac)\u65b0\u836f\u6280\u672f\u80a1\u4efd\u6709\u9650\u516c\u53f8","logo":"","client_type":3,"client_class":47,"client_industry":5,"sales_rep":1005,"salesRep":{"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"}},"clientType":{"id":3,"key":3,"name":"\u5916\u4f01"},"clientClass":{"id":47,"key":47,"name":"\u76ee\u6807\u5ba2\u6237","notice_days":30,"color":"#EB13C3"},"clientIndustry":{"id":5,"key":5,"name":"\u5236\u9020"}},"usedClient":null,"contractType":{"id":1,"key":1,"name":"\u4ea7\u54c1\u9500\u552e"},"projectArchitects":[{"project_id":3954,"value":"1","key":1023,"name":"\u5468\u5b50\u5065"}],"projectStatus":{"id":2,"key":2,"name":"\u660e\u786e\u9700\u6c42","color":"#0064ec"},"projectProgress":{"id":4,"key":4,"name":"\u786e\u8ba4\u65b9\u6848","description":"\u5b9a\u4e49\uff1a\u6839\u636e\u5ba2\u6237\u7684\u53cd\u9988\uff0c\u4e0d\u65ad\u4f18\u5316\u89e3\u51b3\u65b9\u6848\uff0c\u76f4\u5230\u5ba2\u6237\u53e3\u5934\u6216\u4e66\u9762\u8ba4\u53ef\u65b9\u6848\u3002 \n\u65b9\u6cd5\uff1a\u4f7f\u7528\u573a\u666f\uff0c\u95ee\u9898\uff0c\u9700\u6c42\uff0c\u4ea7\u54c1\u53ca\u529f\u80fd\u7684\u65b9\u6cd5\u8bb2\u89e3\u65b9\u6848\u3002"},"projectProductTypes":[{"id":3,"product_type_id":3,"key":3,"name":"\u5b58\u50a8\u8bbe\u5907","budget":"130000","pct":"11.53","profit":"14989","project_id":3954}],"salesForecast":{"id":142,"key":142,"name":"\u6211\u4e0e\u5ba2\u6237\u8054\u624b","description":"\u4e0e\u5ba2\u6237\u8054\u624b\u5411\u5382\u5546\u4e89\u53d6\u6700\u4f18\u60e0\u4ef7\u683c\u3002\u5229\u6da6\u540450%\u3002"},"opportunityFrom":null,"purchaseType":{"id":164,"key":164,"name":"\u591a\u5bb6\u6bd4\u4ef7"},"createdBy":{"id":1005,"key":1005,"name":"\u8d75\u6657\u7131","sex":"F","department_id":1,"avatar":{"id":16,"user_id":1005,"name":"\/files\/cdn\/a57be577deb434\/avatar\/56876dde-37eb-39fc-853a-47eaef6510e5.png"},"department":{"id":1,"key":1,"name":"\u9500\u552e\u90e8"}},"projectCreator":{"id":1005,"key":1005,"name":"\u8d75\u6657\u7131","sex":"F","department_id":1,"avatar":{"id":16,"user_id":1005,"name":"\/files\/cdn\/a57be577deb434\/avatar\/56876dde-37eb-39fc-853a-47eaef6510e5.png"}},"salesRep":{"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"}},"casePoints":null,"workLogCount":null,"caseCount":null,"salesTimeCount":null,"implementTimeCount":null,"presalesTimeCount":null,"engineerTimeCount":null,"reimbursementAmountSum":null,"buildContract":null,"projectRemindReceivers":[],"projectProductRels":[],"commentCount":{"object_id":3954,"comment":1},"unreadComments":null,"fromContact":null,"projectContactPoints":[],"erpSalesOrder":null,"projectUsedClient":{"id":183,"project_id":3954,"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":[{"id":17928,"project_id":3954,"client_id":93,"schedule_title":"\u9500\u552e\u9636\u6bb5\uff1a\u786e\u8ba4\u65b9\u6848\n\u76ee\u7684\uff1a\u5e2e\u52a9\u5ba2\u6237\u9009\u578b\uff0c\u62a5\u9884\u7b97\u3002","complete_at":"","start_at":"","end_at":"","created_by":1005,"is_complete":false,"is_closed":false,"complete_description":null,"set_top_at":null,"sort":1,"createdBy":{"id":1005,"key":1005,"name":"\u8d75\u6657\u7131","sex":"F","department_id":1,"avatar":{"id":16,"user_id":1005,"name":"\/files\/cdn\/a57be577deb434\/avatar\/56876dde-37eb-39fc-853a-47eaef6510e5.png"}},"scheduleDescriptions":[{"id":16075,"schedule_id":17928,"description":"\u4e0a\u5468\u603b\u7ed3\uff1a\u7ed9\u91c7\u8d2d\u62a5\u4ef7\u683c\u3002\u672c\u5468\u8ba1\u5212\uff1a\u548c\u91c7\u8d2d\u6c9f\u901a\u6210\u4ea4\u4ef7\u683c\u3002","created_at":"2025-08-31 21:26:38"},{"id":15956,"schedule_id":17928,"description":"\u4e0a\u5468\u603b\u7ed3\uff1a\u5ba2\u6237\u5904\u5907\u4efd\u7a7a\u95f4\u53ea\u526920T\uff0c\u9700\u8981\u6269\u5bb9\uff0c\u672c\u5468\u8ba1\u5212\uff1a\u786e\u5b9a\u6269\u5bb9\u65b9\u6848\u548c\u4ef7\u683c\u3002","created_at":"2025-08-25 09:19:09"}]}],"remain_display":2,"progress_remain_display":18,"forecast_remain_display":18,"projectProductTotalAmount":0,"projectProductAllAmount":true,"projectProductTotalCost":0,"projectProductAllCost":true,"projectProductTotalNumber":0,"unissued_invoice":130000,"is_exceeded":false,"can_update":true,"can_delete":true,"unread":0,"last_arrive_days_display":null,"project_status_display":"\u660e\u786e\u9700\u6c42","is_collected":false,"bgcolor":"#0064ec","can_invoice":false,"can_payment":false,"duration_display":18,"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":"13\u4e07","contact_points_status_display":"\u672a\u8bbe\u7f6e","verify_display":0,"un_collected":0,"un_invoiced":0,"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":5085,"name":"\u970d\u4e1c\u9633"},{"key":5248,"name":"\u6587\u4f73\u9f99"},{"key":1015,"name":"\u5434\u660a"},{"key":1022,"name":"\u5f90\u7855"},{"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-09-12 22:35:42') RETURNING "id"