From 314ce09b5dc457b56bb123c419185af4883bafc9 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Mon, 31 Aug 2026 12:39:24 +0800 Subject: [PATCH] fix(firstleg): load container overview transport history --- .../mapper/ContainerOverviewMapper.java | 4 ++-- .../ContainerOverviewSqlContractTest.java | 3 ++- .../service/ContainerOverviewServiceTest.java | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/firstleg/src/main/java/com/baiyue/firstleg/mapper/ContainerOverviewMapper.java b/firstleg/src/main/java/com/baiyue/firstleg/mapper/ContainerOverviewMapper.java index 27fe1ccaa..6a4e75de3 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/mapper/ContainerOverviewMapper.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/mapper/ContainerOverviewMapper.java @@ -12,11 +12,11 @@ import java.util.List; JSON_UNQUOTE(JSON_EXTRACT(history.after_snapshot,'$.voyageNo')) afterVoyageNo, history.operation_id operationId,history.operation_reason reason, history.operator_id operatorId,history.operator_name operatorName, - history.occurred_at createdAt + history.created_at createdAt FROM fl_loading_plan_history history JOIN fl_loading_plan plan ON plan.id=history.loading_plan_id WHERE plan.container_booking_id=#{id} AND history.action_type='UPDATE_PRELOAD_TRANSPORT' - ORDER BY history.occurred_at,history.id + ORDER BY history.created_at,history.id """) List transport(@Param("id") long id); @Select("SELECT id,action,reason,operator_id operatorId,operator_name operatorName,occurred_at occurredAt,request_hash requestHash FROM fl_container_exception_history WHERE container_booking_id=#{id} ORDER BY occurred_at,id") List exceptions(@Param("id") long id); @Insert("INSERT INTO fl_container_exception_history(id,container_booking_id,action,reason,operator_id,operator_name,operation_id,request_hash,occurred_at) VALUES(#{id},#{bookingId},#{action},#{reason},#{operatorId},#{operatorName},#{operationId},#{requestHash},CURRENT_TIMESTAMP(3))") int insertException(@Param("id") long id,@Param("bookingId") long bookingId,@Param("action") String action,@Param("reason") String reason,@Param("operatorId") long operatorId,@Param("operatorName") String operatorName,@Param("operationId") String operationId,@Param("requestHash") String requestHash); diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/ContainerOverviewSqlContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/ContainerOverviewSqlContractTest.java index d472982e2..49fb75be2 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/repository/ContainerOverviewSqlContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/ContainerOverviewSqlContractTest.java @@ -43,7 +43,8 @@ class ContainerOverviewSqlContractTest { .getAnnotation(Select.class).value()); assertThat(sql) .contains("fl_loading_plan_history", "action_type='UPDATE_PRELOAD_TRANSPORT'") - .contains("before_snapshot", "after_snapshot", "operation_reason") + .contains("before_snapshot", "after_snapshot", "operation_reason", "history.created_at") + .doesNotContain("history.occurred_at") .doesNotContain("fl_container_transport_history"); } diff --git a/firstleg/src/test/java/com/baiyue/firstleg/service/ContainerOverviewServiceTest.java b/firstleg/src/test/java/com/baiyue/firstleg/service/ContainerOverviewServiceTest.java index 2dec3ef77..f27f5d3c2 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/service/ContainerOverviewServiceTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/service/ContainerOverviewServiceTest.java @@ -78,6 +78,29 @@ class ContainerOverviewServiceTest { }); } + @Test void overviewAllowsDraftContainerWithoutReleasedBookingOrPhysicalContainerNumber() { + ContainerBookingEntity booking = new ContainerBookingEntity(); + booking.setId(41L); + booking.setCabinetNo("CAB-260830-0017"); + booking.setContainerNo(null); + booking.setOceanBookingId(null); + booking.setVersion(0); + when(containers.find(41L)).thenReturn(booking); + when(mapper.documents(41L)).thenReturn(java.util.List.of()); + when(mapper.exceptions(41L)).thenReturn(java.util.List.of()); + when(mapper.transport(41L)).thenReturn(java.util.List.of()); + + var overview = service.overview(41L); + + assertThat(overview.container().cabinetNo()).isEqualTo("CAB-260830-0017"); + assertThat(overview.container().containerNo()).isNull(); + assertThat(overview.container().version()).isZero(); + assertThat(overview.loadingPlanId()).isNull(); + assertThat(overview.pda()).isNull(); + assertThat(overview.documents()).isEmpty(); + assertThat(overview.timeline()).isEmpty(); + } + @Test void downloadsOnlyActivePhotoOwnedByContainerLoadingPlan() { ContainerBookingEntity booking = new ContainerBookingEntity(); booking.setId(41L); when(containers.find(41L)).thenReturn(booking);