fix(firstleg): allow domestic history container details
This commit is contained in:
+1
@@ -66,6 +66,7 @@ class ContainerControllerContractTest {
|
||||
.contains("/api/platform/v1/containers/{id}/ocean-booking-link:")
|
||||
.contains("/api/platform/v1/containers/domestic:")
|
||||
.contains("/api/platform/v1/containers/overseas:")
|
||||
.contains("国内ACTIVE与HISTORY共用该只读详情,已真实离仓柜仍可打开")
|
||||
.contains("scope, in: query, required: true")
|
||||
.contains("首次关联允许 WAIT_LOADING 或已有预排货的 EDITING 模拟柜")
|
||||
.contains("RELEASED oceanBookingId")
|
||||
|
||||
+30
@@ -19,6 +19,7 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@@ -83,6 +84,35 @@ class ContainerWorkbenchServiceTest {
|
||||
verifyNoInteractions(carrierSchedules);
|
||||
}
|
||||
|
||||
@Test
|
||||
void domesticHistoryDetailKeepsTheDepartedContainerAndItsUniqueLoadingPlan() {
|
||||
ContainerBookingEntity container = container();
|
||||
container.setOutboundConfirmedAt(LocalDateTime.of(2026, 9, 8, 10, 0));
|
||||
when(repository.find(11L)).thenReturn(container);
|
||||
when(repository.departed(11L)).thenReturn(true);
|
||||
when(carrierSchedules.containerActualFacts(List.of(11L))).thenReturn(List.of(facts("DEPARTED_WAREHOUSE")));
|
||||
|
||||
var result = service.domesticDetail(11L, Set.of("platform:firstleg:container:list"));
|
||||
|
||||
assertThat(result.workbenchStage()).isEqualTo("DEPARTED_WAREHOUSE");
|
||||
assertThat(result.container().getPlanId()).isEqualTo(31L);
|
||||
assertThat(result.container().getPlanNo()).isEqualTo("LP-260908-0001");
|
||||
assertThat(result.allowedActions()).isEmpty();
|
||||
verify(repository, never()).departed(11L);
|
||||
verifyNoInteractions(terminalDrayages);
|
||||
}
|
||||
|
||||
@Test
|
||||
void domesticDetailStillRejectsContainersOutsideTheActiveMasterSet() {
|
||||
when(repository.find(404L)).thenReturn(null);
|
||||
|
||||
assertThatThrownBy(() -> service.domesticDetail(404L, Set.of("platform:firstleg:container:list")))
|
||||
.isInstanceOf(com.baiyue.common.core.exception.BizException.class)
|
||||
.hasMessage("货柜不存在");
|
||||
|
||||
verifyNoInteractions(carrierSchedules, terminalDrayages);
|
||||
}
|
||||
|
||||
private static Query query(WorkbenchScope scope) {
|
||||
return new Query(null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, scope, 1, 20);
|
||||
|
||||
Reference in New Issue
Block a user