feat: gate overseas receiving and harden phase4 workflows

This commit is contained in:
2026-08-25 10:31:04 +08:00
parent cb78bc6b41
commit 52b9fc382f
93 changed files with 2779 additions and 201 deletions
@@ -37,7 +37,7 @@ class UsTruckOrderControllerTest {
@Test
void platformStatusChangeRequiresManagePermission() {
var request = new UsTruckOrderRequests.ChangeStatus(0L, "DISPATCHED", null);
var request = new UsTruckOrderRequests.ChangeStatus(0L, "CANCELLED", "cancel-1", null);
ResponseStatusException error = assertThrows(ResponseStatusException.class,
() -> platform.changeStatus(user(0L, "PLATFORM", Set.of()), "100", "TK1", request));
assertEquals(403, error.getStatusCode().value());
@@ -45,11 +45,34 @@ class UsTruckOrderControllerTest {
@Test
void platformStatusChangeUsesExplicitTargetTenant() {
var request = new UsTruckOrderRequests.ChangeStatus(0L, "DISPATCHED", "truck assigned");
var request = new UsTruckOrderRequests.ChangeStatus(0L, "CANCELLED", "cancel-1", "cancelled");
platform.changeStatus(user(0L, "PLATFORM", Set.of(UsTruckOrderService.MANAGE_PERMISSION)), "100", "TK1", request);
verify(service).changeStatus("100", "TK1", "7", request);
}
@Test
void platformLifecycleCommandsUseExplicitTargetAndStatusPermission() {
var user = user(0L, "PLATFORM", Set.of(UsTruckOrderService.MANAGE_PERMISSION));
var review = new UsTruckOrderRequests.Review(0L, "APPROVE", "review-1", null);
var overage = new UsTruckOrderRequests.ReviewPalletOverage(2L, "APPROVE", "overage-1", null);
var allocation = new UsTruckOrderRequests.AllocatePallets(3L, java.util.List.of(1L), "allocate-1", null);
var command = new UsTruckOrderRequests.Command(4L, "command-1", null);
platform.review(user, "100", "TK1", review);
platform.reviewPalletOverage(user, "100", "TK1", overage);
platform.allocatePallets(user, "100", "TK1", allocation);
platform.prepareDispatch(user, "100", "TK1", command);
platform.dispatch(user, "100", "TK1", command);
platform.startTransit(user, "100", "TK1", command);
platform.complete(user, "100", "TK1", command);
verify(service).review("100", "TK1", "7", review);
verify(service).reviewPalletOverage("100", "TK1", "7", overage);
verify(service).allocatePallets("100", "TK1", "7", allocation);
verify(service).prepareDispatch("100", "TK1", "7", command);
verify(service).dispatch("100", "TK1", "7", command);
verify(service).startTransit("100", "TK1", "7", command);
verify(service).complete("100", "TK1", "7", command);
}
@Test
void platformCreateUsesExplicitCustomerAndCreatePermission() {
var request = new UsTruckOrderRequests.Create("PORT_PICKUP", "Los Angeles", null,