This commit is contained in:
2026-09-01 10:00:13 +08:00
parent 249b182e7f
commit 477971dda1
11 changed files with 145 additions and 24 deletions
@@ -78,20 +78,36 @@ public interface OutboundDispatchReadMapper {
@Select("""
SELECT module,action,fromStatus,toStatus,operatorId,operatorName,remark,occurredAt FROM (
SELECT 'INBOUND' module,h.action action,h.from_status fromStatus,h.to_status toStatus,
h.operator_id operatorId,h.operator_name operatorName,h.reason remark,h.occurred_at occurredAt
SELECT CONVERT('INBOUND' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci module,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci action,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci fromStatus,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci toStatus,
h.operator_id operatorId,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci operatorName,
CONVERT(h.reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci remark,h.occurred_at occurredAt
FROM fl_inbound_status_history h WHERE h.tenant_id=#{tenantId} AND h.inbound_id=#{inboundId}
UNION ALL
SELECT 'LOADING_PLAN',h.action_type,h.from_status,h.to_status,h.operator_id,h.operator_name,
h.operation_reason,h.created_at FROM fl_loading_plan_history h WHERE h.loading_plan_id=#{loadingPlanId}
SELECT CONVERT('LOADING_PLAN' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action_type USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.operation_reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_loading_plan_history h WHERE h.loading_plan_id=#{loadingPlanId}
UNION ALL
SELECT 'PDA_PICK',h.action_type,NULL,NULL,h.operator_id,h.operator_name,h.operation_reason,h.created_at
SELECT CONVERT('PDA_PICK' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action_type USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,NULL,NULL,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.operation_reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_loading_pick_history h JOIN fl_loading_pick_task task ON task.id=h.pick_task_id
WHERE task.loading_plan_id=#{loadingPlanId}
UNION ALL
SELECT 'LOADING_EVIDENCE',CASE WHEN e.status='VOID' THEN 'VOID_EVIDENCE' ELSE 'UPSERT_EVIDENCE' END,NULL,NULL,
COALESCE(e.updated_by,e.created_by),COALESCE(e.updated_by_name,e.created_by_name),
CONCAT(e.evidence_type,CASE WHEN e.seal_no IS NULL OR e.seal_no='' THEN '' ELSE CONCAT(':',e.seal_no) END),
SELECT CONVERT('LOADING_EVIDENCE' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(CASE WHEN e.status='VOID' THEN 'VOID_EVIDENCE' ELSE 'UPSERT_EVIDENCE' END USING utf8mb4)
COLLATE utf8mb4_0900_ai_ci,NULL,NULL,COALESCE(e.updated_by,e.created_by),
CONVERT(COALESCE(e.updated_by_name,e.created_by_name) USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(CONCAT(e.evidence_type,CASE WHEN e.seal_no IS NULL OR e.seal_no='' THEN '' ELSE CONCAT(':',e.seal_no) END)
USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
COALESCE(e.updated_at,e.created_at)
FROM fl_loading_cabinet_evidence e
JOIN fl_loading_plan evidence_plan ON evidence_plan.container_booking_id=e.container_booking_id
@@ -99,17 +115,35 @@ public interface OutboundDispatchReadMapper {
AND evidence_item.deleted=0
WHERE evidence_item.account_id=#{tenantId} AND evidence_item.inbound_id=#{inboundId}
UNION ALL
SELECT 'OCEAN_BOOKING',h.action,h.from_status,h.to_status,h.operator_id,h.operator_name,h.reason,h.created_at
SELECT CONVERT('OCEAN_BOOKING' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_ocean_booking_status_history h WHERE h.ocean_booking_id=#{oceanBookingId}
UNION ALL
SELECT 'TRUCK_APPOINTMENT',h.action,h.from_status,h.to_status,h.operator_id,h.operator_name,h.reason,h.created_at
SELECT CONVERT('TRUCK_APPOINTMENT' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_truck_appointment_history h WHERE h.appointment_id=#{truckAppointmentId}
UNION ALL
SELECT 'CUSTOMS',h.action,h.from_status,h.to_status,h.operator_id,h.operator_name,h.remark,h.created_at
SELECT CONVERT('CUSTOMS' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.remark USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_customs_container_history h JOIN fl_customs_container customs_container ON customs_container.id=h.customs_container_id
WHERE customs_container.container_booking_id=#{containerBookingId}
UNION ALL
SELECT 'SAILING_SCHEDULE',h.action,NULL,NULL,h.operator_id,h.operator_name,h.reason,h.created_at
SELECT CONVERT('SAILING_SCHEDULE' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,NULL,NULL,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.reason USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_port_schedule_history h JOIN fl_port_schedule port_schedule ON port_schedule.id=h.port_schedule_id
WHERE port_schedule.customer_id=#{tenantId} AND port_schedule.ocean_booking_id=#{oceanBookingId}
AND port_schedule.container_booking_id=#{containerBookingId}
@@ -123,7 +157,12 @@ public interface OutboundDispatchReadMapper {
AND schedule_inbound.id=#{inboundId}
)
UNION ALL
SELECT 'OUTBOUND_DISPATCH',h.action,h.from_status,h.to_status,h.operator_id,h.operator_name,h.remark,h.created_at
SELECT CONVERT('OUTBOUND_DISPATCH' USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.action USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.from_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.to_status USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.operator_id,
CONVERT(h.operator_name USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,
CONVERT(h.remark USING utf8mb4) COLLATE utf8mb4_0900_ai_ci,h.created_at
FROM fl_outbound_dispatch_history h WHERE h.tenant_id=#{tenantId} AND h.inbound_id=#{inboundId}
AND h.container_booking_id=#{containerBookingId}
) timeline ORDER BY occurredAt,module