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

Log Messages

总计30条数据
TimeLevelCategoryMessage
 
11:42:37.592traceyii\base\Application::bootstrapBootstrap with yii\log\Dispatcher
11:42:37.592traceyii\base\Module::getModuleLoading module: debug
11:42:37.593traceyii\base\Application::bootstrapBootstrap with yii\debug\Module::bootstrap()
11:42:37.593traceyii\redis\Connection::openOpening redis DB connection: redis.server.local:6379, database=1
11:42:37.593traceyii\redis\Connection::executeCommandExecuting Redis Command: SELECT
11:42:37.593traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.593infotime tracing start1780285357593692928
11:42:37.593traceyii\web\UrlManager::parseRequestNo matching URL rules. Using default URL parsing logic.
11:42:37.593traceyii\web\Application::handleRequestRoute requested: 'vue/erp-analysis/list-case-ticket'
11:42:37.593traceyii\base\Module::getModuleLoading module: vue
11:42:37.594infoyii\web\Session::openSession started
11:42:37.595infoyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "id"=1001
11:42:37.595infoyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
11:42:37.596traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.596traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:37.596traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.596traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:37.596infoyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
11:42:37.597traceyii\base\Controller::runActionRoute to run: vue/erp-analysis/list-case-ticket
11:42:37.597traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:37.598traceuranus\rbac\DbManager::checkAccessFromCacheChecking role: Admin
11:42:37.598traceyii\base\InlineAction::runWithParamsRunning action: app\modules\vue\controllers\ErpAnalysisController::actionListCaseTicket()
11:42:37.599infoyii\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:37.904infoyii\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:37.914infoyii\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 120
11:42:38.218traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:38.218traceyii\redis\Connection::executeCommandExecuting Redis Command: MGET
11:42:38.218infoyii\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":"4","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":5429,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231220004001","case_id":6842,"case_no":"IM231220004","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":"0.75","erp_labor_cost_amount":"0.00","hours_spent_display":"0.75h","start_at":"2023-12-20 21:00:00","start_at_display":"2023\/12\/20 21:00","end_at":"2023-12-20 21:45:00","end_at_display":"2023\/12\/20 21:45","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5414,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231215004001","case_id":6827,"case_no":"IM231215004","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.22","erp_labor_cost_amount":"0.00","hours_spent_display":"2.22h","start_at":"2023-12-15 14:00:00","start_at_display":"2023\/12\/15 14:00","end_at":"2023-12-15 16:13:00","end_at_display":"2023\/12\/15 16:13","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5390,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231207002001","case_id":6800,"case_no":"IM231207002","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":5085,"engineer_name":"\u970d\u4e1c\u9633","work_hours":"1.25","erp_labor_cost_amount":"0.00","hours_spent_display":"1.25h","start_at":"2023-12-07 16:00:00","start_at_display":"2023\/12\/07 16:00","end_at":"2023-12-07 17:15:00","end_at_display":"2023\/12\/07 17:15","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5388,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231206005001","case_id":6798,"case_no":"IM231206005","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":5085,"engineer_name":"\u970d\u4e1c\u9633","work_hours":"3.00","erp_labor_cost_amount":"0.00","hours_spent_display":"3h","start_at":"2023-12-06 13:00:00","start_at_display":"2023\/12\/06 13:00","end_at":"2023-12-06 16:00:00","end_at_display":"2023\/12\/06 16:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5383,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231205004001","case_id":6793,"case_no":"IM231205004","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":5085,"engineer_name":"\u970d\u4e1c\u9633","work_hours":"3.34","erp_labor_cost_amount":"0.00","hours_spent_display":"3.34h","start_at":"2023-12-05 10:59:09","start_at_display":"2023\/12\/05 10:59","end_at":"2023-12-05 14:19:27","end_at_display":"2023\/12\/05 14:19","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5334,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231113005001","case_id":6730,"case_no":"IM231113005","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.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2023-11-15 19:00:00","start_at_display":"2023\/11\/15 19:00","end_at":"2023-11-15 20:00:00","end_at_display":"2023\/11\/15 20:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5305,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231107006001","case_id":6710,"case_no":"IM231107006","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":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"8.02","erp_labor_cost_amount":"0.00","hours_spent_display":"8.02h","start_at":"2023-11-07 09:30:00","start_at_display":"2023\/11\/07 09:30","end_at":"2023-11-07 17:31:00","end_at_display":"2023\/11\/07 17:31","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5289,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231031008001","case_id":6692,"case_no":"IM231031008","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":5296,"engineer_name":"\u8d75\u5b87","work_hours":"2.50","erp_labor_cost_amount":"0.00","hours_spent_display":"2.50h","start_at":"2023-11-01 09:00:00","start_at_display":"2023\/11\/01 09:00","end_at":"2023-11-01 11:30:00","end_at_display":"2023\/11\/01 11:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5256,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231023004001","case_id":6657,"case_no":"IM231023004","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"0.70","erp_labor_cost_amount":"0.00","hours_spent_display":"0.70h","start_at":"2023-10-23 15:08:00","start_at_display":"2023\/10\/23 15:08","end_at":"2023-10-23 15:50:00","end_at_display":"2023\/10\/23 15:50","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5249,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231020004001","case_id":6651,"case_no":"IM231020004","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2023-10-20 20:00:00","start_at_display":"2023\/10\/20 20:00","end_at":"2023-10-20 21:00:00","end_at_display":"2023\/10\/20 21:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5247,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231018009002","case_id":6640,"case_no":"IM231018009","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":"0.29","erp_labor_cost_amount":"0.00","hours_spent_display":"0.29h","start_at":"2023-10-20 16:02:08","start_at_display":"2023\/10\/20 16:02","end_at":"2023-10-20 16:19:18","end_at_display":"2023\/10\/20 16:19","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5222,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231016004001","case_id":6625,"case_no":"IM231016004","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":5085,"engineer_name":"\u970d\u4e1c\u9633","work_hours":"0.69","erp_labor_cost_amount":"0.00","hours_spent_display":"0.69h","start_at":"2023-10-16 13:56:40","start_at_display":"2023\/10\/16 13:56","end_at":"2023-10-16 14:38:13","end_at_display":"2023\/10\/16 14:38","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5218,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231013001001","case_id":6619,"case_no":"IM231013001","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.50","erp_labor_cost_amount":"0.00","hours_spent_display":"1.50h","start_at":"2023-10-13 14:00:00","start_at_display":"2023\/10\/13 14:00","end_at":"2023-10-13 15:30:00","end_at_display":"2023\/10\/13 15:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5209,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231009001001","case_id":6608,"case_no":"IM231009001","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":1015,"engineer_name":"\u5434\u660a","work_hours":"0.58","erp_labor_cost_amount":"0.00","hours_spent_display":"0.58h","start_at":"2023-10-09 10:00:00","start_at_display":"2023\/10\/09 10:00","end_at":"2023-10-09 10:35:00","end_at_display":"2023\/10\/09 10:35","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5206,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231008005001","case_id":6606,"case_no":"IM231008005","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":"3.50","erp_labor_cost_amount":"0.00","hours_spent_display":"3.50h","start_at":"2023-10-09 09:00:14","start_at_display":"2023\/10\/09 09:00","end_at":"2023-10-09 12:30:30","end_at_display":"2023\/10\/09 12:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5205,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM231008004001","case_id":6605,"case_no":"IM231008004","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":"3.00","erp_labor_cost_amount":"0.00","hours_spent_display":"3h","start_at":"2023-10-08 13:00:00","start_at_display":"2023\/10\/08 13:00","end_at":"2023-10-08 16:00:00","end_at_display":"2023\/10\/08 16:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":1658,"ticket_type":"preSales","ticket_type_name":"\u552e\u524d","ticket_no":"PS230927001001","case_id":6590,"case_no":"PS230927001","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":1015,"engineer_name":"\u5434\u660a","work_hours":"2.17","erp_labor_cost_amount":"0.00","hours_spent_display":"2.17h","start_at":"2023-09-27 13:35:00","start_at_display":"2023\/09\/27 13:35","end_at":"2023-09-27 15:45:00","end_at_display":"2023\/09\/27 15:45","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5168,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230919001001","case_id":6556,"case_no":"IM230919001","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":"1.79","erp_labor_cost_amount":"0.00","hours_spent_display":"1.79h","start_at":"2023-09-21 09:25:42","start_at_display":"2023\/09\/21 09:25","end_at":"2023-09-21 11:13:19","end_at_display":"2023\/09\/21 11:13","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5151,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230914004001","case_id":6547,"case_no":"IM230914004","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":1015,"engineer_name":"\u5434\u660a","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2023-09-14 10:00:00","start_at_display":"2023\/09\/14 10:00","end_at":"2023-09-14 11:00:00","end_at_display":"2023\/09\/14 11:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5149,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230912006001","case_id":6542,"case_no":"IM230912006","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":1015,"engineer_name":"\u5434\u660a","work_hours":"4.73","erp_labor_cost_amount":"0.00","hours_spent_display":"4.73h","start_at":"2023-09-13 09:47:00","start_at_display":"2023\/09\/13 09:47","end_at":"2023-09-13 14:31:00","end_at_display":"2023\/09\/13 14:31","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5147,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230912002001","case_id":6538,"case_no":"IM230912002","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.05","erp_labor_cost_amount":"0.00","hours_spent_display":"2.05h","start_at":"2023-09-12 07:57:00","start_at_display":"2023\/09\/12 07:57","end_at":"2023-09-12 10:00:00","end_at_display":"2023\/09\/12 10:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5142,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230911001001","case_id":6535,"case_no":"IM230911001","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":"7.47","erp_labor_cost_amount":"0.00","hours_spent_display":"7.47h","start_at":"2023-09-11 09:30:00","start_at_display":"2023\/09\/11 09:30","end_at":"2023-09-11 16:58:00","end_at_display":"2023\/09\/11 16:58","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5133,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230901001001","case_id":6524,"case_no":"IM230901001","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":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2023-09-01 11:30:00","start_at_display":"2023\/09\/01 11:30","end_at":"2023-09-01 12:00:00","end_at_display":"2023\/09\/01 12:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5130,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230830002001","case_id":6521,"case_no":"IM230830002","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.05","erp_labor_cost_amount":"0.00","hours_spent_display":"1.05h","start_at":"2023-08-30 11:00:00","start_at_display":"2023\/08\/30 11:00","end_at":"2023-08-30 12:03:00","end_at_display":"2023\/08\/30 12:03","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5127,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230829001001","case_id":6518,"case_no":"IM230829001","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":"1.22","erp_labor_cost_amount":"0.00","hours_spent_display":"1.22h","start_at":"2023-08-29 14:30:00","start_at_display":"2023\/08\/29 14:30","end_at":"2023-08-29 15:43:00","end_at_display":"2023\/08\/29 15:43","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5074,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230811005001","case_id":6463,"case_no":"IM230811005","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":"1.25","erp_labor_cost_amount":"0.00","hours_spent_display":"1.25h","start_at":"2023-08-11 11:00:00","start_at_display":"2023\/08\/11 11:00","end_at":"2023-08-11 12:15:00","end_at_display":"2023\/08\/11 12:15","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5069,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230809004001","case_id":6454,"case_no":"IM230809004","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"3.43","erp_labor_cost_amount":"0.00","hours_spent_display":"3.43h","start_at":"2023-08-09 19:00:00","start_at_display":"2023\/08\/09 19:00","end_at":"2023-08-09 22:26:00","end_at_display":"2023\/08\/09 22:26","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5062,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230808001001","case_id":6446,"case_no":"IM230808001","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":"1.50","erp_labor_cost_amount":"0.00","hours_spent_display":"1.50h","start_at":"2023-08-08 10:30:00","start_at_display":"2023\/08\/08 10:30","end_at":"2023-08-08 12:00:00","end_at_display":"2023\/08\/08 12:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5034,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230801006001","case_id":6420,"case_no":"IM230801006","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":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"2.50","erp_labor_cost_amount":"0.00","hours_spent_display":"2.50h","start_at":"2023-08-01 15:00:00","start_at_display":"2023\/08\/01 15:00","end_at":"2023-08-01 17:30:00","end_at_display":"2023\/08\/01 17:30","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":5011,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230728001001","case_id":6394,"case_no":"IM230728001","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.67","erp_labor_cost_amount":"0.00","hours_spent_display":"2.67h","start_at":"2023-07-28 08:00:00","start_at_display":"2023\/07\/28 08:00","end_at":"2023-07-28 10:40:00","end_at_display":"2023\/07\/28 10:40","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4939,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230712005001","case_id":6312,"case_no":"IM230712005","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":1023,"engineer_name":"\u5468\u5b50\u5065","work_hours":"1.00","erp_labor_cost_amount":"0.00","hours_spent_display":"1h","start_at":"2023-07-12 09:00:00","start_at_display":"2023\/07\/12 09:00","end_at":"2023-07-12 10:00:00","end_at_display":"2023\/07\/12 10:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4906,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230703001001","case_id":6274,"case_no":"IM230703001","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":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"2.53","erp_labor_cost_amount":"0.00","hours_spent_display":"2.53h","start_at":"2023-07-03 14:04:05","start_at_display":"2023\/07\/03 14:04","end_at":"2023-07-03 16:35:54","end_at_display":"2023\/07\/03 16:35","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4903,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230630003001","case_id":6267,"case_no":"IM230630003","project_id":3204,"project_title":"\u66ff\u6362\u4e3b\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":1015,"engineer_name":"\u5434\u660a","work_hours":"4.52","erp_labor_cost_amount":"0.00","hours_spent_display":"4.52h","start_at":"2023-07-01 16:54:00","start_at_display":"2023\/07\/01 16:54","end_at":"2023-07-01 21:25:00","end_at_display":"2023\/07\/01 21:25","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4892,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230629002001","case_id":6258,"case_no":"IM230629002","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":"1.67","erp_labor_cost_amount":"0.00","hours_spent_display":"1.67h","start_at":"2023-06-29 09:30:00","start_at_display":"2023\/06\/29 09:30","end_at":"2023-06-29 11:10:00","end_at_display":"2023\/06\/29 11:10","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4891,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230629003001","case_id":6259,"case_no":"IM230629003","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":5248,"engineer_name":"\u6587\u4f73\u9f99","work_hours":"0.50","erp_labor_cost_amount":"0.00","hours_spent_display":"0.50h","start_at":"2023-06-29 09:10:00","start_at_display":"2023\/06\/29 09:10","end_at":"2023-06-29 09:40:00","end_at_display":"2023\/06\/29 09:40","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4887,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230628009001","case_id":6255,"case_no":"IM230628009","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":"2023-06-28 14:00:00","start_at_display":"2023\/06\/28 14:00","end_at":"2023-06-28 16:15:00","end_at_display":"2023\/06\/28 16:15","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4883,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230628004001","case_id":6250,"case_no":"IM230628004","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":"1.33","erp_labor_cost_amount":"0.00","hours_spent_display":"1.33h","start_at":"2023-06-28 08:40:00","start_at_display":"2023\/06\/28 08:40","end_at":"2023-06-28 10:00:00","end_at_display":"2023\/06\/28 10:00","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4885,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230628001001","case_id":6247,"case_no":"IM230628001","project_id":3204,"project_title":"\u66ff\u6362\u4e3b\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":"5.07","erp_labor_cost_amount":"0.00","hours_spent_display":"5.07h","start_at":"2023-06-28 06:00:00","start_at_display":"2023\/06\/28 06:00","end_at":"2023-06-28 11:04:00","end_at_display":"2023\/06\/28 11:04","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4877,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230627001001","case_id":6244,"case_no":"IM230627001","project_id":3204,"project_title":"\u66ff\u6362\u4e3b\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":"4.12","erp_labor_cost_amount":"0.00","hours_spent_display":"4.12h","start_at":"2023-06-27 10:51:00","start_at_display":"2023\/06\/27 10:51","end_at":"2023-06-27 14:58:00","end_at_display":"2023\/06\/27 14:58","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}},{"ticket_id":4876,"ticket_type":"implementRecords","ticket_type_name":"\u5b9e\u65bd","ticket_no":"IM230626005001","case_id":6242,"case_no":"IM230626005","project_id":3204,"project_title":"\u66ff\u6362\u4e3b\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":1015,"engineer_name":"\u5434\u660a","work_hours":"5.55","erp_labor_cost_amount":"0.00","hours_spent_display":"5.55h","start_at":"2023-06-27 09:20:00","start_at_display":"2023\/06\/27 09:20","end_at":"2023-06-27 14:53:00","end_at_display":"2023\/06\/27 14:53","salesRep":{"id":1005,"key":1005,"name":"\u8d75\u660e\uff08\u9500\u552e\u4eba\u5458\uff09"}}],"pagenation":{"totalcount":490,"thispage":4,"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:38', 624889088) RETURNING "id"
11:42:38.220traceyii\redis\Connection::executeCommandExecuting Redis Command: GET
11:42:38.220traceyii\redis\Connection::executeCommandExecuting Redis Command: SET