贴标申请,仓储转运

This commit is contained in:
2026-10-09 15:25:00 +08:00
parent b4b3ae452c
commit 1e15a2838a
4 changed files with 36 additions and 3 deletions
@@ -569,6 +569,38 @@ class RelabelApplicationServiceTest {
assertEquals("COMPLETED", order.getRelabelStatus());
}
@Test
void zeroFeeCompletionPersistsFulfillmentForBothOutboundRoutes() {
for (String route : List.of("PRE_DISPATCH_CREATED", "OUTBOUND_CREATED")) {
RelabelApplication app = application(11L, "FBR-ZERO", "10001", "key", "hash", RelabelApplicationService.READY_FOR_OUTBOUND);
app.setLastlegOrderId(21L);
app.setWalletStatus("NOT_REQUIRED");
app.setChargeAmount(BigDecimal.ZERO);
app.setFulfillmentStatus(route);
if ("OUTBOUND_CREATED".equals(route)) app.setOutboundOrderNo("OUT-ZERO");
LastlegOrder order = order(21L, "10001", "LMO-ZERO", "PROCESSING");
order.setOrderType("RETURN_RELABEL");
order.setRelabelOrderNo(app.getRelabelNo());
when(applications.lockNo("10001", app.getRelabelNo())).thenReturn(app);
when(orders.selectById(21L)).thenReturn(order);
stubDetail(app);
List<String> persistedFulfillment = new java.util.ArrayList<>();
org.mockito.Mockito.doAnswer(invocation -> {
RelabelApplication saved = invocation.getArgument(0);
persistedFulfillment.add(saved.getFulfillmentStatus());
return 1;
}).when(applications).updateById(any(RelabelApplication.class));
service.changeStatus("10001", app.getRelabelNo(), "operator-2",
new RelabelRequests.ChangeStatus("COMPLETED", "finished"));
assertEquals("OUTBOUNDED", persistedFulfillment.get(persistedFulfillment.size() - 1), route);
}
verify(feeSources, never()).publishApproved(any(), any(), any());
verify(walletCommands, never()).publish(any(), anyLong(), any(), any(), any(), any(), anyLong());
verify(inventoryCommands, never()).release(any(), any(), any());
}
@Test
void completingEarlierReturnRelabelDoesNotOverwriteLaterApplicationStatus() {
RelabelApplication application = application(11L, "FBR-FIRST", "10001", "key-1", "hash", RelabelApplicationService.READY_FOR_OUTBOUND);
@@ -136,7 +136,7 @@ class WarehouseTransferServiceTest {
1, 20, null, null, null, null, null, null, null, null));
assertEquals("RL-20260923-000001", result.records().get(0).relabelNo());
assertEquals("COMPLETED", result.records().get(0).relabelApplicationStatus());
assertEquals("COMPLETED", result.records().get(0).relabelStatus());
assertEquals("READY_FOR_DISPATCH", result.records().get(0).relabelFulfillmentStatus());
}
@@ -152,7 +152,7 @@ class WarehouseTransferServiceTest {
1, 20, null, null, null, null, null, null, null, null));
assertEquals(1, result.records().size());
assertNull(result.records().get(0).relabelApplicationStatus());
assertNull(result.records().get(0).relabelStatus());
assertNull(result.records().get(0).relabelFulfillmentStatus());
verify(relabelApplications, never()).selectList(any());
}