fix(lastleg): complete stock transfer through linked relabel
This commit is contained in:
+22
@@ -76,6 +76,7 @@ class RelabelApplicationServiceTest {
|
||||
@Mock OutboundPalletItemMapper outboundItems;
|
||||
@Mock OutboundPdaTaskMapper outboundTasks;
|
||||
@Mock WarehouseTransferOrderMapper warehouseTransfers;
|
||||
@Mock com.baiyue.lastleg.transfer.service.WarehouseTransferRelabelCompletionService transferRelabelCompletion;
|
||||
@Mock OverseasFeeSourceService feeSources;
|
||||
@Mock ReturnOrderMapper returnOrders;
|
||||
@Mock com.baiyue.lastleg.relabel.pda.mapper.PdaRelabelTaskMapper pdaTasks;
|
||||
@@ -93,6 +94,7 @@ class RelabelApplicationServiceTest {
|
||||
});
|
||||
lenient().when(pdaTasks.updateWithVersion(any(), any())).thenReturn(1);
|
||||
ReflectionTestUtils.setField(service, "applications", applications);
|
||||
ReflectionTestUtils.setField(service, "transferRelabelCompletion", transferRelabelCompletion);
|
||||
ReflectionTestUtils.setField(service, "items", items);
|
||||
ReflectionTestUtils.setField(service, "histories", histories);
|
||||
ReflectionTestUtils.setField(service, "orders", orders);
|
||||
@@ -704,6 +706,26 @@ class RelabelApplicationServiceTest {
|
||||
assertEquals("WAIT_FBA_DESTINATION", application.getFulfillmentStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void existingStockTransferConfirmationFinalizesOriginalSourcesOnceWithoutIndependentOutbound() {
|
||||
var application=confirmationApplication("EXPRESS",false);application.setLastlegOrderId(88L);
|
||||
var transfer=new WarehouseTransferOrder();transfer.setId(77L);transfer.setCustomerId("10001");
|
||||
transfer.setRelabelNo("FBR-1");transfer.setStatus("WAIT_RELABEL");transfer.setLastlegOrderId(88L);
|
||||
transfer.setAllocationIdempotencyKey("ORIGINAL-SOURCE");transfer.setFbaWarehouseCode("ONT8");
|
||||
var transferOrder=order(88,"10001","LMO-TRANSFER-1","WAIT_RELABEL");
|
||||
when(applications.lockNo("10001","FBR-1")).thenReturn(application);stubDetail(application);
|
||||
when(warehouseTransfers.lockByRelabelNo("10001","FBR-1")).thenReturn(transfer);
|
||||
when(orders.selectById(88L)).thenReturn(transferOrder);
|
||||
var command=new RelabelRequests.CustomerConfirm("CONFIRM-ORIGINAL","accepted");
|
||||
service.confirmCompletion("10001","FBR-1","customer-1",command);
|
||||
assertEquals("ALLOCATED",transfer.getStatus());assertEquals("WAIT_TRANSFER_OUTBOUND",application.getFulfillmentStatus());
|
||||
assertEquals("ALLOCATED",transferOrder.getCurrentStatus());
|
||||
service.confirmCompletion("10001","FBR-1","customer-1",command);
|
||||
verify(transferRelabelCompletion).complete(eq(transfer),eq(application),any(),eq("customer-1"),any());
|
||||
verify(outboundOrders,never()).insert(any(OutboundOrder.class));
|
||||
assertNotNull(transfer.getRelabelCompletedAt());
|
||||
}
|
||||
|
||||
@Test
|
||||
void transferRelabelConfirmationDerivesUniqueDestinationFromRelabelItems() {
|
||||
RelabelApplication application = confirmationApplication("TRUCK", false);
|
||||
|
||||
Reference in New Issue
Block a user