fix(dispatch): expose PDA departure gate
This commit is contained in:
+37
@@ -107,6 +107,43 @@ class DispatchPdaWorkflowServiceTest {
|
||||
verify(tasks, never()).findByDispatch(any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void completedTaskExposesTransferDeliveryGateBeforeDeparture() {
|
||||
DispatchOrder order = order("100", "DSP-1", "WH-1", "READY_TO_DEPART");
|
||||
order.setVehiclePlate("CA-100");
|
||||
DispatchPdaTask task = task(11L, "100", "WH-1", "COMPLETED");
|
||||
DispatchItem item = item(21L, "100", 6);
|
||||
when(orders.findGlobalByDispatchNo("DSP-1")).thenReturn(order);
|
||||
when(tasks.findByDispatch("100", 1L)).thenReturn(task);
|
||||
when(items.findByDispatchOrder("100", 1L)).thenReturn(List.of(item));
|
||||
when(picks.totalItem("100", 11L, 21L)).thenReturn(6L);
|
||||
|
||||
DispatchPdaResponses.Task result = service.task("WH-1", "DSP-1");
|
||||
|
||||
assertFalse(result.canDepart());
|
||||
assertEquals("请先在平台完成“转派送”,生成待出库单后才能发车。", result.departBlockReason());
|
||||
}
|
||||
|
||||
@Test
|
||||
void completedTaskExposesDepartureWhenPendingOutboundExists() {
|
||||
DispatchOrder order = order("100", "DSP-1", "WH-1", "READY_TO_DEPART");
|
||||
order.setVehiclePlate("CA-100");
|
||||
DispatchPdaTask task = task(11L, "100", "WH-1", "COMPLETED");
|
||||
DispatchItem item = item(21L, "100", 6);
|
||||
OutboundOrder outbound = new OutboundOrder();
|
||||
outbound.setStatus("WAIT_OUTBOUND");
|
||||
when(orders.findGlobalByDispatchNo("DSP-1")).thenReturn(order);
|
||||
when(tasks.findByDispatch("100", 1L)).thenReturn(task);
|
||||
when(items.findByDispatchOrder("100", 1L)).thenReturn(List.of(item));
|
||||
when(picks.totalItem("100", 11L, 21L)).thenReturn(6L);
|
||||
when(outboundOrders.findByDispatch("100", 1L)).thenReturn(outbound);
|
||||
|
||||
DispatchPdaResponses.Task result = service.task("WH-1", "DSP-1");
|
||||
|
||||
assertTrue(result.canDepart());
|
||||
assertNull(result.departBlockReason());
|
||||
}
|
||||
|
||||
@Test
|
||||
void exactPickRetryReturnsPersistedResultAfterTaskAutomaticallyCompleted() throws Exception {
|
||||
DispatchOrder order = order("100", "DSP-1", "WH-1", "READY_TO_DEPART");
|
||||
|
||||
Reference in New Issue
Block a user