6a1cffac64f04: POST https://beta.jinchangxiao.com/vue/erp-analysis/list-case-ticket at 2026-06-01 11:42:36 am by 221.216.117.119

Log Messages

总计30条数据
TimeLevelCategoryMessage
 
11:42:36.413traceyii\base\Application::bootstrapBootstrap with yii\log\Dispatcher
11:42:36.413traceyii\base\Module::getModuleLoading module: debug
11:42:36.413traceyii\base\Application::bootstrapBootstrap with yii\debug\Module::bootstrap()
11:42:36.413traceyii\redis\Connection::openOpening redis DB connection: redis.server.local:6379, database=1
11:42:36.413traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
11:42:36.413traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:36.414infotime tracing start1780285356414028032
11:42:36.414traceyii\web\UrlManager::parseRequestNo matching URL rules. Using default URL parsing logic.
11:42:36.414traceyii\web\Application::handleRequestRoute requested: 'vue/erp-analysis/list-case-ticket'
11:42:36.414traceyii\base\Module::getModuleLoading module: vue
11:42:36.414infoyii\web\Session::openSession started
11:42:36.415infoyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "id"=1001
11:42:36.415infoyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
11:42:36.416traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:36.416traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:36.416traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:36.417traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:36.417infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
11:42:36.417traceyii\base\Controller::runActionRoute to run: vue/erp-analysis/list-case-ticket
11:42:36.418traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:36.419traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
11:42:36.419traceyii\base\InlineAction::runWithParamsRunning action: app\modules\vue\controllers\ErpAnalysisController::actionListCaseTicket()
11:42:36.419infoyii\db\Command::querySELECT COALESCE(ROUND(sum(summary.erp_labor_cost_amount)::numeric, 2), 0) as erp_labor_cost_amount, COALESCE(ROUND(sum(summary.work_hours)::numeric, 2), 0) as work_hours, COALESCE(ROUND(COALESCE(sum(summary.erp_labor_cost_amount), 0)::numeric / NULLIF(sum(summary.work_hours)::numeric, 0), 2), 0) as average_labor_cost_per_hour FROM (SELECT ct.ticket_id, ct.ticket_type, ct.ticket_type_name, ct.ticket_no, ct.case_id, ct.case_no, ct.project_id, p.project_title, ct.client_id, c.name as client_name, ct.sales_rep_id, sr.name as sales_rep_name, ct.engineer_id, e.name as engineer_name, ROUND(ct.work_hours::numeric, 2) as work_hours, ROUND(COALESCE(tlc.erp_labor_cost_amount, 0)::numeric, 2) as erp_labor_cost_amount, CASE WHEN ROUND(ct.work_hours::numeric, 2) = TRUNC(ROUND(ct.work_hours::numeric, 2)) THEN TRUNC(ROUND(ct.work_hours::numeric, 2))::text || 'h' ELSE ROUND(ct.work_hours::numeric, 2)::text || 'h' END as hours_spent_display, ct.start_at, to_char(ct.start_at, 'YYYY/MM/DD HH24:MI') as start_at_display, ct.end_at, to_char(ct.end_at, 'YYYY/MM/DD HH24:MI') as end_at_display FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON c.id = ct.client_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON p.id = ct.project_id LEFT JOIN "a57be577deb434"."tbl_users" "sr" ON sr.id = ct.sales_rep_id LEFT JOIN "a57be577deb434"."tbl_users" "e" ON e.id = ct.engineer_id LEFT JOIN (SELECT ct.ticket_id, ct.ticket_type, COALESCE(sum(CASE WHEN ct.work_hours > 0 THEN COALESCE(payroll.amount, 0) / GREATEST(( SELECT COUNT(1) FROM generate_series(ct.settle_month::timestamp, (ct.settle_month + interval '1 month - 1 day')::timestamp, interval '1 day') AS work_dates(work_date) LEFT JOIN a57be577deb434.tbl_legal_holidays lh ON lh.edate = work_dates.work_date::date LEFT JOIN a57be577deb434.tbl_punch_strategy_schedules pss ON pss.edate = work_dates.work_date::date AND pss.punch_strategy_id = ps.id WHERE CASE WHEN ps.id IS NULL THEN EXTRACT(ISODOW FROM work_dates.work_date)::integer BETWEEN 1 AND 5 WHEN pss.id IS NOT NULL THEN pss.need_work WHEN ps.legal_holiday AND lh.id IS NOT NULL THEN lh.is_exchange ELSE (ps.week::integer & (1 << (EXTRACT(ISODOW FROM work_dates.work_date)::integer - 1))) <> 0 END ), 1) / GREATEST((CASE WHEN ps.id IS NULL THEN 8 WHEN ps.punch_type = 0 THEN 8 WHEN ps.work_hour IS NOT NULL AND ps.work_hour > 0 THEN ps.work_hour ELSE 8 END), 1) * ct.work_hours ELSE 0 END), 0) as erp_labor_cost_amount FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN (SELECT pay.user_id, pay.settle_month, COALESCE(sum(pay.amount), 0) as amount FROM ((SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_wage_ticket_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_wage_tickets" "t" ON am.erp_wage_ticket_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month") UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_social_insurance_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_social_insurances" "t" ON am.erp_social_insurance_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_provident_fund_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_provident_funds" "t" ON am.erp_provident_fund_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_personal_tax_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_personal_taxs" "t" ON am.erp_personal_tax_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" )) "pay" GROUP BY "pay"."user_id", "pay"."settle_month") "payroll" ON payroll.user_id = ct.engineer_id AND payroll.settle_month = ct.settle_month LEFT JOIN "a57be577deb434"."tbl_punch_strategy_resource_rels" "psrr" ON psrr.user_id = ct.engineer_id LEFT JOIN "a57be577deb434"."tbl_punch_strategies" "ps" ON ps.id = psrr.punch_strategy_id GROUP BY "ct"."ticket_id", "ct"."ticket_type") "tlc" ON tlc.ticket_id = ct.ticket_id AND tlc.ticket_type = ct.ticket_type WHERE "ct"."client_id"='918') "summary"
11:42:36.720infoyii\db\Command::querySELECT COUNT(*) FROM (SELECT ct.ticket_id, ct.ticket_type, ct.ticket_type_name, ct.ticket_no, ct.case_id, ct.case_no, ct.project_id, p.project_title, ct.client_id, c.name as client_name, ct.sales_rep_id, sr.name as sales_rep_name, ct.engineer_id, e.name as engineer_name, ROUND(ct.work_hours::numeric, 2) as work_hours, ROUND(COALESCE(tlc.erp_labor_cost_amount, 0)::numeric, 2) as erp_labor_cost_amount, CASE WHEN ROUND(ct.work_hours::numeric, 2) = TRUNC(ROUND(ct.work_hours::numeric, 2)) THEN TRUNC(ROUND(ct.work_hours::numeric, 2))::text || 'h' ELSE ROUND(ct.work_hours::numeric, 2)::text || 'h' END as hours_spent_display, ct.start_at, to_char(ct.start_at, 'YYYY/MM/DD HH24:MI') as start_at_display, ct.end_at, to_char(ct.end_at, 'YYYY/MM/DD HH24:MI') as end_at_display FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON c.id = ct.client_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON p.id = ct.project_id LEFT JOIN "a57be577deb434"."tbl_users" "sr" ON sr.id = ct.sales_rep_id LEFT JOIN "a57be577deb434"."tbl_users" "e" ON e.id = ct.engineer_id LEFT JOIN (SELECT ct.ticket_id, ct.ticket_type, COALESCE(sum(CASE WHEN ct.work_hours > 0 THEN COALESCE(payroll.amount, 0) / GREATEST(( SELECT COUNT(1) FROM generate_series(ct.settle_month::timestamp, (ct.settle_month + interval '1 month - 1 day')::timestamp, interval '1 day') AS work_dates(work_date) LEFT JOIN a57be577deb434.tbl_legal_holidays lh ON lh.edate = work_dates.work_date::date LEFT JOIN a57be577deb434.tbl_punch_strategy_schedules pss ON pss.edate = work_dates.work_date::date AND pss.punch_strategy_id = ps.id WHERE CASE WHEN ps.id IS NULL THEN EXTRACT(ISODOW FROM work_dates.work_date)::integer BETWEEN 1 AND 5 WHEN pss.id IS NOT NULL THEN pss.need_work WHEN ps.legal_holiday AND lh.id IS NOT NULL THEN lh.is_exchange ELSE (ps.week::integer & (1 << (EXTRACT(ISODOW FROM work_dates.work_date)::integer - 1))) <> 0 END ), 1) / GREATEST((CASE WHEN ps.id IS NULL THEN 8 WHEN ps.punch_type = 0 THEN 8 WHEN ps.work_hour IS NOT NULL AND ps.work_hour > 0 THEN ps.work_hour ELSE 8 END), 1) * ct.work_hours ELSE 0 END), 0) as erp_labor_cost_amount FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN (SELECT pay.user_id, pay.settle_month, COALESCE(sum(pay.amount), 0) as amount FROM ((SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_wage_ticket_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_wage_tickets" "t" ON am.erp_wage_ticket_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month") UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_social_insurance_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_social_insurances" "t" ON am.erp_social_insurance_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_provident_fund_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_provident_funds" "t" ON am.erp_provident_fund_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_personal_tax_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_personal_taxs" "t" ON am.erp_personal_tax_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" )) "pay" GROUP BY "pay"."user_id", "pay"."settle_month") "payroll" ON payroll.user_id = ct.engineer_id AND payroll.settle_month = ct.settle_month LEFT JOIN "a57be577deb434"."tbl_punch_strategy_resource_rels" "psrr" ON psrr.user_id = ct.engineer_id LEFT JOIN "a57be577deb434"."tbl_punch_strategies" "ps" ON ps.id = psrr.punch_strategy_id GROUP BY "ct"."ticket_id", "ct"."ticket_type") "tlc" ON tlc.ticket_id = ct.ticket_id AND tlc.ticket_type = ct.ticket_type WHERE "ct"."client_id"='918' ORDER BY ct.start_at DESC, ct.ticket_id DESC) "c"
11:42:36.731infoyii\db\Command::querySELECT ct.ticket_id, ct.ticket_type, ct.ticket_type_name, ct.ticket_no, ct.case_id, ct.case_no, ct.project_id, p.project_title, ct.client_id, c.name as client_name, ct.sales_rep_id, sr.name as sales_rep_name, ct.engineer_id, e.name as engineer_name, ROUND(ct.work_hours::numeric, 2) as work_hours, ROUND(COALESCE(tlc.erp_labor_cost_amount, 0)::numeric, 2) as erp_labor_cost_amount, CASE WHEN ROUND(ct.work_hours::numeric, 2) = TRUNC(ROUND(ct.work_hours::numeric, 2)) THEN TRUNC(ROUND(ct.work_hours::numeric, 2))::text || 'h' ELSE ROUND(ct.work_hours::numeric, 2)::text || 'h' END as hours_spent_display, ct.start_at, to_char(ct.start_at, 'YYYY/MM/DD HH24:MI') as start_at_display, ct.end_at, to_char(ct.end_at, 'YYYY/MM/DD HH24:MI') as end_at_display FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN "a57be577deb434"."tbl_clients" "c" ON c.id = ct.client_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON p.id = ct.project_id LEFT JOIN "a57be577deb434"."tbl_users" "sr" ON sr.id = ct.sales_rep_id LEFT JOIN "a57be577deb434"."tbl_users" "e" ON e.id = ct.engineer_id LEFT JOIN (SELECT ct.ticket_id, ct.ticket_type, COALESCE(sum(CASE WHEN ct.work_hours > 0 THEN COALESCE(payroll.amount, 0) / GREATEST(( SELECT COUNT(1) FROM generate_series(ct.settle_month::timestamp, (ct.settle_month + interval '1 month - 1 day')::timestamp, interval '1 day') AS work_dates(work_date) LEFT JOIN a57be577deb434.tbl_legal_holidays lh ON lh.edate = work_dates.work_date::date LEFT JOIN a57be577deb434.tbl_punch_strategy_schedules pss ON pss.edate = work_dates.work_date::date AND pss.punch_strategy_id = ps.id WHERE CASE WHEN ps.id IS NULL THEN EXTRACT(ISODOW FROM work_dates.work_date)::integer BETWEEN 1 AND 5 WHEN pss.id IS NOT NULL THEN pss.need_work WHEN ps.legal_holiday AND lh.id IS NOT NULL THEN lh.is_exchange ELSE (ps.week::integer & (1 << (EXTRACT(ISODOW FROM work_dates.work_date)::integer - 1))) <> 0 END ), 1) / GREATEST((CASE WHEN ps.id IS NULL THEN 8 WHEN ps.punch_type = 0 THEN 8 WHEN ps.work_hour IS NOT NULL AND ps.work_hour > 0 THEN ps.work_hour ELSE 8 END), 1) * ct.work_hours ELSE 0 END), 0) as erp_labor_cost_amount FROM ((SELECT p.id as ticket_id, 'preSales' as ticket_type, '售前' as ticket_type_name, p.ticket_no, p.case_id, c.case_no, COALESCE(p.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, p.engineer_id, p.start_at, p.end_at, date_trunc('month', p.start_at)::date as settle_month, EXTRACT(EPOCH FROM (p.end_at - p.start_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_pre_sales" "p" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = p.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(p.client_id, c.client_id) WHERE (p.start_at IS NOT NULL) AND (p.end_at IS NOT NULL) AND (p.end_at > p.start_at) AND (p.engineer_id IS NOT NULL) AND (("p"."is_draft"=FALSE) OR (p.is_draft IS NULL))) UNION ALL ( SELECT i.id as ticket_id, 'implementRecords' as ticket_type, '实施' as ticket_type_name, i.ticket_no, i.case_id, c.case_no, COALESCE(i.client_id, c.client_id) as client_id, c.project_id, cl.sales_rep as sales_rep_id, c.last_engineer as engineer_id, i.arrived_at as start_at, i.left_at as end_at, date_trunc('month', i.arrived_at)::date as settle_month, EXTRACT(EPOCH FROM (i.left_at - i.arrived_at)) / 3600 as work_hours FROM "a57be577deb434"."tbl_implement_records" "i" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON c.id = i.case_id LEFT JOIN "a57be577deb434"."tbl_clients" "cl" ON cl.id = COALESCE(i.client_id, c.client_id) WHERE (i.arrived_at IS NOT NULL) AND (i.left_at IS NOT NULL) AND (i.left_at > i.arrived_at) AND (c.last_engineer IS NOT NULL) AND (("i"."is_draft"=FALSE) OR (i.is_draft IS NULL)) )) "ct" LEFT JOIN (SELECT pay.user_id, pay.settle_month, COALESCE(sum(pay.amount), 0) as amount FROM ((SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_wage_ticket_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_wage_tickets" "t" ON am.erp_wage_ticket_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month") UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_social_insurance_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_social_insurances" "t" ON am.erp_social_insurance_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_provident_fund_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_provident_funds" "t" ON am.erp_provident_fund_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" ) UNION ALL ( SELECT am.user_id, t.settle_month::date as settle_month, COALESCE(sum(am.amount), 0) as amount FROM "a57be577deb434"."tbl_erp_personal_tax_amounts" "am" LEFT JOIN "a57be577deb434"."tbl_erp_personal_taxs" "t" ON am.erp_personal_tax_id = t.id WHERE ("t"."status"=2) AND (am.user_id IS NOT NULL) GROUP BY "am"."user_id", "t"."settle_month" )) "pay" GROUP BY "pay"."user_id", "pay"."settle_month") "payroll" ON payroll.user_id = ct.engineer_id AND payroll.settle_month = ct.settle_month LEFT JOIN "a57be577deb434"."tbl_punch_strategy_resource_rels" "psrr" ON psrr.user_id = ct.engineer_id LEFT JOIN "a57be577deb434"."tbl_punch_strategies" "ps" ON ps.id = psrr.punch_strategy_id GROUP BY "ct"."ticket_id", "ct"."ticket_type") "tlc" ON tlc.ticket_id = ct.ticket_id AND tlc.ticket_type = ct.ticket_type WHERE "ct"."client_id"='918' ORDER BY ct.start_at DESC, ct.ticket_id DESC LIMIT 40 OFFSET 80
11:42:37.111traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.111traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:37.112infoyii\db\Command::queryINSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time", "duration") VALUES (200, 'a57be577deb434', 1001, 5, 'vue/erp-analysis/list-case-ticket', '{"client_id":"918","created_at_period":"","created_at_from":"","created_at_to":"","page":"3","pageSize":"40","listReload":"undefined","web_access_token":"YNQKwEYJYN8muCSh8ExnNlBf2oepDAlv"}', '{"code":2000,"result":{"erp_labor_cost_amount":"257.67","work_hours":"1938.09","average_labor_cost_per_hour":"0.13","list":[{"ticket_id":6139,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240809004001","case_id":7683,"case_no":"IM240809004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-08-09 09:00:00","start_at_display":"2024\/08\/09 09:00","end_at":"2024-08-09 10:00:00","end_at_display":"2024\/08\/09 10:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6136,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240807001001","case_id":7674,"case_no":"IM240807001","project_id":1556,"project_title":"\u670d\u52a1\u5668\u53ca\u5b58\u50a8","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-08-07 08:30:00","start_at_display":"2024\/08\/07 08:30","end_at":"2024-08-07 09:30:00","end_at_display":"2024\/08\/07 09:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6128,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240801003001","case_id":7664,"case_no":"IM240801003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"1.93","erp_labor_cost_amount":"0.00","hours_spent_display":"1.93h","start_at":"2024-08-01 18:58:23","start_at_display":"2024\/08\/01 18:58","end_at":"2024-08-01 20:54:26","end_at_display":"2024\/08\/01 20:54","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6130,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240801002002","case_id":7663,"case_no":"IM240801002","project_id":647,"project_title":"\u6570\u636e\u4e2d\u5fc3","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"5.50","erp_labor_cost_amount":"0.00","hours_spent_display":"5.50h","start_at":"2024-08-01 09:30:00","start_at_display":"2024\/08\/01 09:30","end_at":"2024-08-01 15:00:00","end_at_display":"2024\/08\/01 15:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6100,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240726003001","case_id":7635,"case_no":"IM240726003","project_id":647,"project_title":"\u6570\u636e\u4e2d\u5fc3","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.95","erp_labor_cost_amount":"0.00","hours_spent_display":"1.95h","start_at":"2024-07-26 14:00:00","start_at_display":"2024\/07\/26 14:00","end_at":"2024-07-26 15:57:00","end_at_display":"2024\/07\/26 15:57","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6098,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240725006001","case_id":7629,"case_no":"IM240725006","project_id":647,"project_title":"\u6570\u636e\u4e2d\u5fc3","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"7.00","erp_labor_cost_amount":"0.00","hours_spent_display":"7h","start_at":"2024-07-26 09:30:00","start_at_display":"2024\/07\/26 09:30","end_at":"2024-07-26 16:30:00","end_at_display":"2024\/07\/26 16:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6086,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240724005001","case_id":7620,"case_no":"IM240724005","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.50","erp_labor_cost_amount":"0.00","hours_spent_display":"1.50h","start_at":"2024-07-24 16:00:00","start_at_display":"2024\/07\/24 16:00","end_at":"2024-07-24 17:30:00","end_at_display":"2024\/07\/24 17:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":6081,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240722005001","case_id":7611,"case_no":"IM240722005","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.23","erp_labor_cost_amount":"0.00","hours_spent_display":"2.23h","start_at":"2024-07-23 09:49:06","start_at_display":"2024\/07\/23 09:49","end_at":"2024-07-23 12:02:41","end_at_display":"2024\/07\/23 12:02","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5967,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240626003001","case_id":7487,"case_no":"IM240626003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.67","erp_labor_cost_amount":"0.00","hours_spent_display":"0.67h","start_at":"2024-06-26 09:30:00","start_at_display":"2024\/06\/26 09:30","end_at":"2024-06-26 10:10:00","end_at_display":"2024\/06\/26 10:10","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5941,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240619003001","case_id":7458,"case_no":"IM240619003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"2.00","erp_labor_cost_amount":"0.00","hours_spent_display":"2h","start_at":"2024-06-19 09:00:00","start_at_display":"2024\/06\/19 09:00","end_at":"2024-06-19 11:00:00","end_at_display":"2024\/06\/19 11:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5912,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240614008001","case_id":7430,"case_no":"IM240614008","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2024-06-14 12:00:00","start_at_display":"2024\/06\/14 12:00","end_at":"2024-06-14 12:30:00","end_at_display":"2024\/06\/14 12:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5891,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240612001001","case_id":7406,"case_no":"IM240612001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.50","erp_labor_cost_amount":"0.00","hours_spent_display":"2.50h","start_at":"2024-06-12 09:00:00","start_at_display":"2024\/06\/12 09:00","end_at":"2024-06-12 11:30:00","end_at_display":"2024\/06\/12 11:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5881,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240606004001","case_id":7396,"case_no":"IM240606004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.17","erp_labor_cost_amount":"0.00","hours_spent_display":"1.17h","start_at":"2024-06-06 14:00:00","start_at_display":"2024\/06\/06 14:00","end_at":"2024-06-06 15:10:00","end_at_display":"2024\/06\/06 15:10","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5869,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240603001001","case_id":7382,"case_no":"IM240603001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.67","erp_labor_cost_amount":"0.00","hours_spent_display":"1.67h","start_at":"2024-06-03 14:00:00","start_at_display":"2024\/06\/03 14:00","end_at":"2024-06-03 15:40:00","end_at_display":"2024\/06\/03 15:40","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5835,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240521012001","case_id":7343,"case_no":"IM240521012","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.92","erp_labor_cost_amount":"0.00","hours_spent_display":"2.92h","start_at":"2024-05-22 09:00:00","start_at_display":"2024\/05\/22 09:00","end_at":"2024-05-22 11:55:00","end_at_display":"2024\/05\/22 11:55","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5822,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240520006001","case_id":7330,"case_no":"IM240520006","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.75","erp_labor_cost_amount":"0.00","hours_spent_display":"1.75h","start_at":"2024-05-20 14:00:00","start_at_display":"2024\/05\/20 14:00","end_at":"2024-05-20 15:45:00","end_at_display":"2024\/05\/20 15:45","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5824,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240520005001","case_id":7329,"case_no":"IM240520005","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2024-05-17 17:00:00","start_at_display":"2024\/05\/17 17:00","end_at":"2024-05-17 17:30:00","end_at_display":"2024\/05\/17 17:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5771,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240506009001","case_id":7250,"case_no":"IM240506009","project_id":"","project_title":"","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-05-10 13:53:00","start_at_display":"2024\/05\/10 13:53","end_at":"2024-05-10 14:53:00","end_at_display":"2024\/05\/10 14:53","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5784,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240513001001","case_id":7290,"case_no":"IM240513001","project_id":"","project_title":"","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"2.00","erp_labor_cost_amount":"0.00","hours_spent_display":"2h","start_at":"2024-05-10 09:00:00","start_at_display":"2024\/05\/10 09:00","end_at":"2024-05-10 11:00:00","end_at_display":"2024\/05\/10 11:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5757,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240507012001","case_id":7264,"case_no":"IM240507012","project_id":3029,"project_title":"2022-2023\u5e74\u8fd0\u7ef4\u670d\u52a1","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.25","erp_labor_cost_amount":"0.00","hours_spent_display":"2.25h","start_at":"2024-05-07 21:00:00","start_at_display":"2024\/05\/07 21:00","end_at":"2024-05-07 23:15:00","end_at_display":"2024\/05\/07 23:15","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5756,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240507002001","case_id":7254,"case_no":"IM240507002","project_id":3502,"project_title":"\u673a\u623f\u6d88\u9632\u8bbe\u5907\u53caUPS\u7535\u6c60\u66f4\u6362","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.50","erp_labor_cost_amount":"0.00","hours_spent_display":"1.50h","start_at":"2024-05-07 20:00:00","start_at_display":"2024\/05\/07 20:00","end_at":"2024-05-07 21:30:00","end_at_display":"2024\/05\/07 21:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5733,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240426004001","case_id":7230,"case_no":"IM240426004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-04-26 11:00:00","start_at_display":"2024\/04\/26 11:00","end_at":"2024-04-26 12:00:00","end_at_display":"2024\/04\/26 12:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5727,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240424003001","case_id":7222,"case_no":"IM240424003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2024-04-24 15:30:00","start_at_display":"2024\/04\/24 15:30","end_at":"2024-04-24 16:00:00","end_at_display":"2024\/04\/24 16:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5723,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240422004001","case_id":7210,"case_no":"IM240422004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.84","erp_labor_cost_amount":"0.00","hours_spent_display":"2.84h","start_at":"2024-04-23 11:09:42","start_at_display":"2024\/04\/23 11:09","end_at":"2024-04-23 14:00:21","end_at_display":"2024\/04\/23 14:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5697,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240415001001","case_id":7183,"case_no":"IM240415001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2024-04-15 10:40:00","start_at_display":"2024\/04\/15 10:40","end_at":"2024-04-15 11:10:00","end_at_display":"2024\/04\/15 11:10","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5693,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240411002001","case_id":7178,"case_no":"IM240411002","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"0.90","erp_labor_cost_amount":"0.00","hours_spent_display":"0.90h","start_at":"2024-04-11 10:50:00","start_at_display":"2024\/04\/11 10:50","end_at":"2024-04-11 11:44:00","end_at_display":"2024\/04\/11 11:44","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5691,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240410003001","case_id":7173,"case_no":"IM240410003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.28","erp_labor_cost_amount":"0.00","hours_spent_display":"1.28h","start_at":"2024-04-10 13:30:00","start_at_display":"2024\/04\/10 13:30","end_at":"2024-04-10 14:47:00","end_at_display":"2024\/04\/10 14:47","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5641,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240320001001","case_id":7104,"case_no":"IM240320001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.50","erp_labor_cost_amount":"0.00","hours_spent_display":"1.50h","start_at":"2024-03-20 15:00:00","start_at_display":"2024\/03\/20 15:00","end_at":"2024-03-20 16:30:00","end_at_display":"2024\/03\/20 16:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":1714,"ticket_type":"preSales","ticket_type_name":"\u552e\u524d","ticket_no":"PS240319001001","case_id":7098,"case_no":"PS240319001","project_id":"","project_title":"","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1017,"engineer_name":"\u8f66\u660e\u98de","work_hours":"1.17","erp_labor_cost_amount":"0.00","hours_spent_display":"1.17h","start_at":"2024-03-19 10:00:21","start_at_display":"2024\/03\/19 10:00","end_at":"2024-03-19 11:10:42","end_at_display":"2024\/03\/19 11:10","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5616,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240308001001","case_id":7069,"case_no":"IM240308001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-03-08 11:20:00","start_at_display":"2024\/03\/08 11:20","end_at":"2024-03-08 12:20:00","end_at_display":"2024\/03\/08 12:20","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5601,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240305002001","case_id":7049,"case_no":"IM240305002","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2024-03-05 09:00:00","start_at_display":"2024\/03\/05 09:00","end_at":"2024-03-05 10:00:00","end_at_display":"2024\/03\/05 10:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5577,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240227004001","case_id":7018,"case_no":"IM240227004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"12.82","erp_labor_cost_amount":"0.00","hours_spent_display":"12.82h","start_at":"2024-02-27 09:30:00","start_at_display":"2024\/02\/27 09:30","end_at":"2024-02-27 22:19:00","end_at_display":"2024\/02\/27 22:19","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5562,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240222002001","case_id":7002,"case_no":"IM240222002","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"5.16","erp_labor_cost_amount":"0.00","hours_spent_display":"5.16h","start_at":"2024-02-22 10:28:18","start_at_display":"2024\/02\/22 10:28","end_at":"2024-02-22 15:37:36","end_at_display":"2024\/02\/22 15:37","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5541,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240131006001","case_id":6979,"case_no":"IM240131006","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"1.43","erp_labor_cost_amount":"0.00","hours_spent_display":"1.43h","start_at":"2024-01-31 15:31:13","start_at_display":"2024\/01\/31 15:31","end_at":"2024-01-31 16:57:10","end_at_display":"2024\/01\/31 16:57","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5514,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240125001001","case_id":6945,"case_no":"IM240125001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"9.55","erp_labor_cost_amount":"0.00","hours_spent_display":"9.55h","start_at":"2024-01-25 09:27:00","start_at_display":"2024\/01\/25 09:27","end_at":"2024-01-25 19:00:00","end_at_display":"2024\/01\/25 19:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5482,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240117001001","case_id":6905,"case_no":"IM240117001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5296,"engineer_name":"\u8d75\u5b87","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2024-01-17 08:50:00","start_at_display":"2024\/01\/17 08:50","end_at":"2024-01-17 09:20:00","end_at_display":"2024\/01\/17 09:20","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5470,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240110007001","case_id":6891,"case_no":"IM240110007","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.92","erp_labor_cost_amount":"0.00","hours_spent_display":"0.92h","start_at":"2024-01-10 19:20:00","start_at_display":"2024\/01\/10 19:20","end_at":"2024-01-10 20:15:00","end_at_display":"2024\/01\/10 20:15","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5462,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240104003001","case_id":6879,"case_no":"IM240104003","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"2.00","erp_labor_cost_amount":"0.00","hours_spent_display":"2h","start_at":"2024-01-04 10:00:00","start_at_display":"2024\/01\/04 10:00","end_at":"2024-01-04 12:00:00","end_at_display":"2024\/01\/04 12:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5453,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM240102004001","case_id":6869,"case_no":"IM240102004","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"2.00","erp_labor_cost_amount":"0.00","hours_spent_display":"2h","start_at":"2024-01-02 09:00:00","start_at_display":"2024\/01\/02 09:00","end_at":"2024-01-02 11:00:00","end_at_display":"2024\/01\/02 11:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5445,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231227001001","case_id":6859,"case_no":"IM231227001","project_id":3290,"project_title":"2023\u5e74-2024\u5e74\u7eed\u4fdd\u5408\u540c","client_id":918,"client_name":"\u4e2d\u56fd\u571f\u6728\u5de5\u7a0b\u96c6\u56e2\u6709\u9650\u516c\u53f8","sales_rep_id":1005,"sales_rep_name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09","engineer_id":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"4.00","erp_labor_cost_amount":"0.00","hours_spent_display":"4h","start_at":"2023-12-27 09:00:00","start_at_display":"2023\/12\/27 09:00","end_at":"2023-12-27 13:00:00","end_at_display":"2023\/12\/27 13:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}}],"pagenation":{"totalcount":490,"thispage":3,"pagesize":40}},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0,"ip":"221.216.117.119","ua":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.15; rv:151.0) Gecko\/20100101 Firefox\/151.0"}', FALSE, '2026-06-01 11:42:37', 698078976) RETURNING "id"
11:42:37.114traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.114traceyii\redis\Connection::executeCommandExecuting Redis Command: SET