fix: complete overseas fulfillment acceptance

This commit is contained in:
2026-09-07 14:03:00 +08:00
parent fcf1771967
commit 2c5fda33e7
8 changed files with 44 additions and 4 deletions
@@ -140,6 +140,25 @@ class DeliveryTransferServiceTest {
assertTrue(!result.replayed());
}
@Test
void transferCollectsLxCodesWhenAnInboundCodeBelongsToMultipleTailOrders() {
DispatchOrder dispatch = dispatch(101L, "DSP-101", "TENANT-A");
when(dispatchOrders.lockGlobalByDispatchNo("DSP-101")).thenReturn(dispatch);
when(dispatchItems.findByDispatchOrder("TENANT-A", 101L)).thenReturn(List.of(
item(201L, 501L, "PLT-501", "ONT8", "Ontario", "IN-A", 12)));
LastlegOrder primary = new LastlegOrder();
primary.setCustomerId("TENANT-A"); primary.setInboundCode("IN-A"); primary.setLxCode("LX-1");
LastlegOrder derived = new LastlegOrder();
derived.setCustomerId("TENANT-A"); derived.setInboundCode("IN-A"); derived.setLxCode(null);
when(tailOrders.selectList(any())).thenReturn(List.of(primary, derived), List.of());
service.platformTransfer("DSP-101", "U-1", transferRequest("transfer-duplicate-inbound", null));
ArgumentCaptor<OutboundOrder> outbound = ArgumentCaptor.forClass(OutboundOrder.class);
verify(outboundOrders).insert(outbound.capture());
assertEquals("LX-1", outbound.getValue().getLxCodes());
}
@Test
void sameIdempotencyKeyReturnsExistingDocumentsWithoutWrites() {
DispatchOrder dispatch = dispatch(101L, "DSP-101", "TENANT-A");