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 nodeReportMode;
private String finishDate; private String finishDate;
private String currentNode; private String currentNode;
private String currentNodeCode;
private Integer nodeDoneCount; private Integer nodeDoneCount;
private Integer nodeTotalCount; private Integer nodeTotalCount;
private List<ProductionPlanOrderNodeData> nodeList = new ArrayList<>(); 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) { for (ProductionPlanOrderRowData row : rows) {
List<ProductionPlanOrderNodeData> rowNodeList = nodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList()); List<ProductionPlanOrderNodeData> rowNodeList = nodeMap.getOrDefault(row.getOrderNo(), Collections.emptyList());
row.setNodeList(rowNodeList); row.setNodeList(rowNodeList);
fillNodeProgress(row);
fillNodeProgress(row, rowNodeList);
} }
} }
@ -347,22 +347,29 @@ public class ProductionPlanServiceImpl implements ProductionPlanService {
return; return;
} }
List<String> orderNoList = rows.stream().map(ProductionPlanOrderRowData::getOrderNo).collect(Collectors.toList()); 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) { 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; int doneCount = 0;
String currentNode = "全部完成"; String currentNode = "全部完成";
String currentNodeCode = "";
for (ProductionPlanOrderNodeData node : nodeList) { for (ProductionPlanOrderNodeData node : nodeList) {
if (STATUS_DONE.equals(node.getStatus())) { if (STATUS_DONE.equals(node.getStatus())) {
doneCount++; doneCount++;
@ -370,11 +377,13 @@ public class ProductionPlanServiceImpl implements ProductionPlanService {
} }
if ("全部完成".equals(currentNode)) { if ("全部完成".equals(currentNode)) {
currentNode = node.getNodeName(); currentNode = node.getNodeName();
currentNodeCode = node.getNodeCode();
} }
} }
row.setNodeDoneCount(doneCount); row.setNodeDoneCount(doneCount);
row.setNodeTotalCount(nodeList.size()); row.setNodeTotalCount(nodeList.size());
row.setCurrentNode(nodeList.isEmpty() ? "-" : currentNode); row.setCurrentNode(nodeList.isEmpty() ? "-" : currentNode);
row.setCurrentNodeCode(nodeList.isEmpty() ? "" : currentNodeCode);
} }
private void saveOrder(ProductionPlanOrderSaveData data, String orderType) { private void saveOrder(ProductionPlanOrderSaveData data, String orderType) {

Loading…
Cancel
Save