fix(firstleg): allow late initial container fill
This commit is contained in:
+1
-1
@@ -69,7 +69,7 @@ class LoadingListControllerContractTest {
|
||||
.contains("beforeSnapshot")
|
||||
.contains("containerNo")
|
||||
.contains("voyageNo")
|
||||
.contains("可首次补录真实集装箱号")
|
||||
.contains("首次补录真实集装箱号")
|
||||
.contains("校验ISO 6346结构、设备类别和校验位")
|
||||
.contains("PDA任务尚未领取且无任何物理作业事实")
|
||||
.contains("/loading-plans/{planId}/confirm")
|
||||
|
||||
+12
@@ -80,6 +80,8 @@ class LoadingListQueryMapperContractTest {
|
||||
void mutationsShouldUseStatusAndOptimisticVersionConditions() throws Exception {
|
||||
String touch = sql("touchEditable", Update.class);
|
||||
String transport = sql("updateTransport", Update.class);
|
||||
String touchInitialFill = sql("touchForInitialContainerFill", Update.class);
|
||||
String initialFill = sql("fillInitialContainerNo", Update.class);
|
||||
String confirmPreload = sql("confirmLinkedPreload", Update.class);
|
||||
String confirmPlan = sql("touchForPreloadConfirmation", Update.class);
|
||||
String advance = sql("advance", Update.class);
|
||||
@@ -98,6 +100,16 @@ class LoadingListQueryMapperContractTest {
|
||||
.contains("fl_loading_pick_task", "fl_loading_pick_assignment")
|
||||
.doesNotContain("DELETE")
|
||||
.doesNotContain("fl_loading_plan_item");
|
||||
assertThat(touchInitialFill)
|
||||
.contains("p.plan_status IN ('EDITING','LOADING')")
|
||||
.contains("p.version=#{expectedVersion}")
|
||||
.contains("b.container_no IS NULL")
|
||||
.doesNotContain("fl_loading_pick_assignment", "item_status");
|
||||
assertThat(initialFill)
|
||||
.contains("p.plan_status IN ('EDITING','LOADING')")
|
||||
.contains("b.container_no IS NULL")
|
||||
.contains("#{containerNo} IS NOT NULL")
|
||||
.doesNotContain("fl_loading_pick_assignment", "item_status");
|
||||
assertThat(advance)
|
||||
.contains("plan_status = #{fromStatus}")
|
||||
.contains("plan_status = #{toStatus}")
|
||||
|
||||
@@ -218,7 +218,7 @@ class LoadingListServiceTest {
|
||||
afterFill.setPreloadPushedAt(missing.getPreloadPushedAt());
|
||||
afterFill.setContainerNo("CSQU3054383");
|
||||
when(repository.aggregate(10L)).thenReturn(loading, missing, afterFill);
|
||||
when(repository.updateTransport(10L, 3, "CSQU3054383", null, 9L, "operator"))
|
||||
when(repository.fillInitialContainerNo(10L, 3, "CSQU3054383", null, 9L, "operator"))
|
||||
.thenReturn(1);
|
||||
when(repository.preloadDetail(afterFill)).thenReturn(
|
||||
new com.baiyue.firstleg.dto.LoadingListDtos.PreloadDetail(null, List.of(), List.of()));
|
||||
@@ -229,10 +229,34 @@ class LoadingListServiceTest {
|
||||
service.updateTransport(10L, 100L, 9L, "operator", "missing-key",
|
||||
new TransportUpdateRequest("CSQU3054383", null, 3, null));
|
||||
|
||||
verify(repository).updateTransport(10L, 3, "CSQU3054383", null, 9L, "operator");
|
||||
verify(repository).fillInitialContainerNo(10L, 3, "CSQU3054383", null, 9L, "operator");
|
||||
verify(loadingPickService).beginIfReady(30L, 9L, "operator");
|
||||
}
|
||||
|
||||
@Test
|
||||
void loadingPlanWithClaimedAndPickedPdaTaskStillAllowsInitialContainerFill() {
|
||||
AggregateRow before = row("LOADING", 7);
|
||||
before.setPreloadPushedAt(java.time.LocalDateTime.now());
|
||||
AggregateRow after = row("LOADING", 8);
|
||||
after.setPreloadPushedAt(before.getPreloadPushedAt());
|
||||
after.setContainerNo("CSQU3054383");
|
||||
when(repository.aggregate(10L)).thenReturn(before, after);
|
||||
when(repository.hasPdaWorkStarted(10L)).thenReturn(true);
|
||||
when(repository.fillInitialContainerNo(10L, 7, "CSQU3054383", "023E", 9L, "operator"))
|
||||
.thenReturn(1);
|
||||
when(repository.preloadDetail(after)).thenReturn(
|
||||
new com.baiyue.firstleg.dto.LoadingListDtos.PreloadDetail(null, List.of(), List.of()));
|
||||
|
||||
service.updateTransport(10L, 100L, 9L, "operator", "late-fill-key",
|
||||
new TransportUpdateRequest("CSQU3054383", "023E", 7, null));
|
||||
|
||||
verify(repository).fillInitialContainerNo(10L, 7, "CSQU3054383", "023E", 9L, "operator");
|
||||
verify(repository, never()).hasPdaWorkStarted(10L);
|
||||
verify(repository).appendHistory(eq(10L), anyString(), eq("UPDATE_PRELOAD_TRANSPORT"),
|
||||
eq("LOADING"), eq("LOADING"), anyString(), anyString(), eq(9L), eq("operator"),
|
||||
org.mockito.ArgumentMatchers.isNull());
|
||||
}
|
||||
|
||||
@Test
|
||||
void correctingExistingContainerNumberStillRequiresReason() {
|
||||
AggregateRow before = row("EDITING", 3);
|
||||
|
||||
Reference in New Issue
Block a user