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) {