From 197a84f62b1f2c2f4b9dcb7860837d1051b02209 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Wed, 22 Apr 2026 13:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=8A=A5=E5=B7=A5=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=8F=AF=E4=BB=A5=E9=80=89=E6=8B=A9=E5=B9=B6=E8=A1=8C?= =?UTF-8?q?=E8=BF=98=E6=98=AF=E6=8C=89=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/ProductionPlanOrderRowData.java | 1 + .../impl/ProductionPlanServiceImpl.java | 29 ++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/longchuang/data/ProductionPlanOrderRowData.java b/src/main/java/com/xujie/sys/modules/longchuang/data/ProductionPlanOrderRowData.java index 0249592..d52bcaf 100644 --- a/src/main/java/com/xujie/sys/modules/longchuang/data/ProductionPlanOrderRowData.java +++ b/src/main/java/com/xujie/sys/modules/longchuang/data/ProductionPlanOrderRowData.java @@ -27,6 +27,7 @@ public class ProductionPlanOrderRowData { private String nodeReportMode; private String finishDate; private String currentNode; + private String currentNodeCode; private Integer nodeDoneCount; private Integer nodeTotalCount; private List nodeList = new ArrayList<>(); diff --git a/src/main/java/com/xujie/sys/modules/longchuang/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/xujie/sys/modules/longchuang/service/impl/ProductionPlanServiceImpl.java index f1bf587..91b2046 100644 --- a/src/main/java/com/xujie/sys/modules/longchuang/service/impl/ProductionPlanServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/longchuang/service/impl/ProductionPlanServiceImpl.java @@ -338,7 +338,7 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { for (ProductionPlanOrderRowData row : rows) { List rowNodeList = nodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList()); row.setNodeList(rowNodeList); - fillNodeProgress(row); + fillNodeProgress(row, rowNodeList); } } @@ -347,22 +347,29 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { return; } List orderNoList = rows.stream().map(ProductionPlanOrderRowData::getOrderNo).collect(Collectors.toList()); - List nodeList = productionPlanMapper.queryWorkReportNodeList(orderNoList, userId); - Map> nodeMap = new LinkedHashMap<>(); - if (nodeList != null && !nodeList.isEmpty()) { - nodeMap = nodeList.stream().collect(Collectors.groupingBy(ProductionPlanOrderNodeData::getOrderNo, LinkedHashMap::new, Collectors.toList())); + List visibleNodeList = productionPlanMapper.queryWorkReportNodeList(orderNoList, userId); + List fullNodeList = productionPlanMapper.queryOrderNodeList(orderNoList); + Map> visibleNodeMap = new LinkedHashMap<>(); + if (visibleNodeList != null && !visibleNodeList.isEmpty()) { + visibleNodeMap = visibleNodeList.stream().collect(Collectors.groupingBy(ProductionPlanOrderNodeData::getOrderNo, LinkedHashMap::new, Collectors.toList())); + } + Map> fullNodeMap = new LinkedHashMap<>(); + if (fullNodeList != null && !fullNodeList.isEmpty()) { + fullNodeMap = fullNodeList.stream().collect(Collectors.groupingBy(ProductionPlanOrderNodeData::getOrderNo, LinkedHashMap::new, Collectors.toList())); } for (ProductionPlanOrderRowData row : rows) { - List rowNodeList = nodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList()); - row.setNodeList(rowNodeList); - fillNodeProgress(row); + List rowVisibleNodeList = visibleNodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList()); + List rowFullNodeList = fullNodeMap.getOrDefault(row.getOrderNo(), rowVisibleNodeList); + row.setNodeList(rowVisibleNodeList); + fillNodeProgress(row, rowFullNodeList); } } - private void fillNodeProgress(ProductionPlanOrderRowData row) { - List nodeList = row.getNodeList() == null ? Collections.emptyList() : row.getNodeList(); + private void fillNodeProgress(ProductionPlanOrderRowData row, List progressNodeList) { + List nodeList = progressNodeList == null ? Collections.emptyList() : progressNodeList; int doneCount = 0; String currentNode = "全部完成"; + String currentNodeCode = ""; for (ProductionPlanOrderNodeData node : nodeList) { if (STATUS_DONE.equals(node.getStatus())) { doneCount++; @@ -370,11 +377,13 @@ public class ProductionPlanServiceImpl implements ProductionPlanService { } if ("全部完成".equals(currentNode)) { currentNode = node.getNodeName(); + currentNodeCode = node.getNodeCode(); } } row.setNodeDoneCount(doneCount); row.setNodeTotalCount(nodeList.size()); row.setCurrentNode(nodeList.isEmpty() ? "-" : currentNode); + row.setCurrentNodeCode(nodeList.isEmpty() ? "" : currentNodeCode); } private void saveOrder(ProductionPlanOrderSaveData data, String orderType) {