Browse Source

节点报工模式可以选择并行还是按顺序

master
han\hanst 1 month ago
parent
commit
197a84f62b
  1. 1
      src/main/java/com/xujie/sys/modules/longchuang/data/ProductionPlanOrderRowData.java
  2. 29
      src/main/java/com/xujie/sys/modules/longchuang/service/impl/ProductionPlanServiceImpl.java

1
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<ProductionPlanOrderNodeData> nodeList = new ArrayList<>();

29
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<ProductionPlanOrderNodeData> 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<String> orderNoList = rows.stream().map(ProductionPlanOrderRowData::getOrderNo).collect(Collectors.toList());
List<ProductionPlanOrderNodeData> nodeList = productionPlanMapper.queryWorkReportNodeList(orderNoList, userId);
Map<String, List<ProductionPlanOrderNodeData>> nodeMap = new LinkedHashMap<>();
if (nodeList != null && !nodeList.isEmpty()) {
nodeMap = nodeList.stream().collect(Collectors.groupingBy(ProductionPlanOrderNodeData::getOrderNo, LinkedHashMap::new, Collectors.toList()));
List<ProductionPlanOrderNodeData> visibleNodeList = productionPlanMapper.queryWorkReportNodeList(orderNoList, userId);
List<ProductionPlanOrderNodeData> fullNodeList = productionPlanMapper.queryOrderNodeList(orderNoList);
Map<String, List<ProductionPlanOrderNodeData>> visibleNodeMap = new LinkedHashMap<>();
if (visibleNodeList != null && !visibleNodeList.isEmpty()) {
visibleNodeMap = visibleNodeList.stream().collect(Collectors.groupingBy(ProductionPlanOrderNodeData::getOrderNo, LinkedHashMap::new, Collectors.toList()));
}
Map<String, List<ProductionPlanOrderNodeData>> 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<ProductionPlanOrderNodeData> rowNodeList = nodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList());
row.setNodeList(rowNodeList);
fillNodeProgress(row);
List<ProductionPlanOrderNodeData> rowVisibleNodeList = visibleNodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList());
List<ProductionPlanOrderNodeData> rowFullNodeList = fullNodeMap.getOrDefault(row.getOrderNo(), rowVisibleNodeList);
row.setNodeList(rowVisibleNodeList);
fillNodeProgress(row, rowFullNodeList);
}
}
private void fillNodeProgress(ProductionPlanOrderRowData row) {
List<ProductionPlanOrderNodeData> nodeList = row.getNodeList() == null ? Collections.emptyList() : row.getNodeList();
private void fillNodeProgress(ProductionPlanOrderRowData row, List<ProductionPlanOrderNodeData> progressNodeList) {
List<ProductionPlanOrderNodeData> 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) {

Loading…
Cancel
Save