From 0393c2ee1f80482174fa7cd805f414fd75fa002e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Sat, 14 Mar 2026 18:22:42 +0800 Subject: [PATCH] =?UTF-8?q?PDA=E5=A4=8D=E6=A0=B8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockOutTaskOrderApplicationService.java | 16 +++++++++++++--- .../repository/todo/StockOutOrderDO.java | 2 ++ .../stockOutOrder/StockOutOrderAssembler.java | 1 + .../dto/stockOutOrder/StockOutOrderDTO.java | 2 ++ .../stockOutOrder/StockOutOrderAppApi.java | 10 ++++++++-- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java index 5ee5ea58e..f4b420b41 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutTaskOrder/StockOutTaskOrderApplicationService.java @@ -252,21 +252,31 @@ public class StockOutTaskOrderApplicationService { if (stockOutTaskOrderPO == null) { return; } - List allDetails = new ArrayList<>(); + // 按 materialDetailId 去重:taskStorageList 与 taskMaterialList 可能包含相同明细(按库位/按物料分组),避免重复导致 PC 端显示条数翻倍 + Map allDetailsMap = new LinkedHashMap<>(); if (!CollectionUtils.isEmpty(stockOutTaskOrderPO.getTaskStorageList())) { for (TaskStoragePO taskStorage : stockOutTaskOrderPO.getTaskStorageList()) { if (!CollectionUtils.isEmpty(taskStorage.getTaskPickingMaterialDetailList())) { - allDetails.addAll(taskStorage.getTaskPickingMaterialDetailList()); + for (TaskPickingMaterialDetailPO d : taskStorage.getTaskPickingMaterialDetailList()) { + if (d.getMaterialDetailId() != null) { + allDetailsMap.putIfAbsent(d.getMaterialDetailId(), d); + } + } } } } if (!CollectionUtils.isEmpty(stockOutTaskOrderPO.getTaskMaterialList())) { for (TaskMaterialPO taskMaterial : stockOutTaskOrderPO.getTaskMaterialList()) { if (!CollectionUtils.isEmpty(taskMaterial.getTaskPickingMaterialDetailList())) { - allDetails.addAll(taskMaterial.getTaskPickingMaterialDetailList()); + for (TaskPickingMaterialDetailPO d : taskMaterial.getTaskPickingMaterialDetailList()) { + if (d.getMaterialDetailId() != null) { + allDetailsMap.putIfAbsent(d.getMaterialDetailId(), d); + } + } } } } + List allDetails = new ArrayList<>(allDetailsMap.values()); if (CollectionUtils.isEmpty(allDetails)) { return; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java index 09645246c..226def69c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java @@ -290,6 +290,8 @@ public class StockOutOrderDO extends BaseVOEntity { @ApiModelProperty("小于复核状态: 1-未复核 2-复核中 3-已复核") private Integer ltCheckStatus; + @ApiModelProperty("PDA复核查询tab: 1-列表(待复核) 2-历史记录(已复核)") + private Integer tabType; @ApiModelProperty("to") @Excel(name = "to") diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java index eab32d9ca..1517a6854 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/assember/stockOutOrder/StockOutOrderAssembler.java @@ -35,6 +35,7 @@ public class StockOutOrderAssembler { stockOutOrderDO.setCreateTimeEnd(stockOutOrderDTO.getCreateTimeEnd()); stockOutOrderDO.setAuditTimeStart(stockOutOrderDTO.getAuditTimeStart()); stockOutOrderDO.setAuditTimeEnd(stockOutOrderDTO.getAuditTimeEnd()); + stockOutOrderDO.setTabType(stockOutOrderDTO.getTabType()); return stockOutOrderDO; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java index f41734755..f8116c8fe 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java @@ -280,6 +280,8 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO { @ApiModelProperty("小于复核状态: 1-未复核 2-复核中 3-已复核") private Integer ltCheckStatus; + @ApiModelProperty("PDA复核查询tab: 1-列表(待复核) 2-历史记录(已复核)") + private Integer tabType; @ApiModelProperty("to") @Excel(name = "to") diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java index cb797b2c1..3f25460ae 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockOutOrder/StockOutOrderAppApi.java @@ -50,8 +50,14 @@ public class StockOutOrderAppApi extends BaseController { stockOutOrderDO.setCheckOperatorsBy(userPo.getUserId()); stockOutOrderDO.setOrganizationId(userPo.getOrganizationId()); stockOutOrderDO.setTopOrganizationId(userPo.getTopOrganizationId()); - stockOutOrderDO.setGtCheckStatus(null); // 清除,避免与 lt 冲突 - stockOutOrderDO.setLtCheckStatus(3); // check_status < 3,只查未复核(1)、复核中(2),不查已复核(3) + stockOutOrderDO.setGtCheckStatus(null); + stockOutOrderDO.setLtCheckStatus(null); + // tabType=2 历史记录:check_status>2(已复核);否则 列表:check_status<3(未复核、复核中) + if (Integer.valueOf(2).equals(stockOutOrderDO.getTabType())) { + stockOutOrderDO.setGtCheckStatus(2); + } else { + stockOutOrderDO.setLtCheckStatus(3); + } stockOutOrderDO.setDelFlag(1); AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid()); if (associationWarehouseCacheDO != null) {