From 56f4e6e35cff873b47707f15445d659d204a2726 Mon Sep 17 00:00:00 2001 From: liuyihe <2513762445@qq.com> Date: Thu, 24 Sep 2026 14:09:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B4=E6=A0=87=E7=94=B3=E8=AF=B7=EF=BC=8C?= =?UTF-8?q?=E4=BB=93=E5=82=A8=E8=BD=AC=E8=BF=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transfer/service/WarehouseTransferService.java | 10 ++++------ .../service/WarehouseTransferServiceTest.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lastleg-service/src/main/java/com/baiyue/lastleg/transfer/service/WarehouseTransferService.java b/lastleg-service/src/main/java/com/baiyue/lastleg/transfer/service/WarehouseTransferService.java index f855ecf56..8cf95b7d0 100644 --- a/lastleg-service/src/main/java/com/baiyue/lastleg/transfer/service/WarehouseTransferService.java +++ b/lastleg-service/src/main/java/com/baiyue/lastleg/transfer/service/WarehouseTransferService.java @@ -1222,12 +1222,10 @@ public class WarehouseTransferService { @Transactional(readOnly = true) public List pdaCandidates(long overseasWarehouseId) { - List candidates = transfers.selectList(new LambdaQueryWrapper() - .eq(WarehouseTransferOrder::getOperatingWarehouseId, String.valueOf(overseasWarehouseId)) - // 只有尚未完成 PDA 收货/测量的状态才进入测量列表。换标、待排车及已出库 - // 都是后续履约阶段,不能继续占用 PDA 的“当前测量单”锁。 - .in(WarehouseTransferOrder::getStatus, List.of(WAIT_PDA_RECEIVING, APPROVED, ALLOCATED)) - .orderByDesc(WarehouseTransferOrder::getUpdatedAt)); + // PDA 测量列表只接收明确进入 WAIT_PDA_RECEIVING 的在途转运单。 + // APPROVED 是已有库存转运的后续处理入口,ALLOCATED 已进入库存出库流程; + // 两者都不能再次显示为待测量,更不能引导操作员重复进入托盘作业。 + List candidates = transfers.pdaCandidates(String.valueOf(overseasWarehouseId)); Map relabelApplicationsByNo = relabelApplications(candidates); return candidates.stream().map(value -> { RelabelApplication relabel = StringUtils.hasText(value.getRelabelNo()) diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java index 0a9eb9e39..b2262dfbf 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java @@ -80,6 +80,20 @@ import static org.mockito.Mockito.times; @ExtendWith(MockitoExtension.class) class WarehouseTransferServiceTest { + @Test + void pdaCandidatesUseTheMapperRestrictedToWaitingMeasurementOnly() { + WarehouseTransferOrder transfer = transfer(WarehouseTransferService.WAIT_PDA_RECEIVING); + transfer.setOperatingWarehouseId("900"); + when(transfers.pdaCandidates("900")).thenReturn(List.of(transfer)); + + var result = service.pdaCandidates(900L); + + assertEquals(1, result.size()); + assertEquals(WarehouseTransferService.WAIT_PDA_RECEIVING, result.get(0).status()); + verify(transfers).pdaCandidates("900"); + verify(transfers, never()).selectList(any()); + } + @Test void customerMainStatusFiltersExpandToInternalWorkflowStates() { assertEquals(List.of(WarehouseTransferService.APPROVED, WarehouseTransferService.WAIT_PDA_RECEIVING),