fix 80012 项目合规流程-流程图 需更改

This commit is contained in:
lijiarao
2024-01-29 18:20:11 +08:00
parent ad118980c9
commit d81f8d3617
@@ -298,7 +298,8 @@ public class ModelerController {
.distinct() .distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
Map<String,String> startEventReplace = new HashMap<>(); Map<String,String> startEventReplace = new HashMap<>();
Map<String,ProcessModelNode> endEventReplace = new HashMap<>(); Map<String,List<ProcessModelNode>> endEventReplace = new HashMap<>();
//确定结束节点的连线 //确定结束节点的连线
List<ProcessModelNode> removeNodeList = new ArrayList<>(); List<ProcessModelNode> removeNodeList = new ArrayList<>();
for (String subProcessId : subProcessIdList) { for (String subProcessId : subProcessIdList) {
@@ -319,11 +320,41 @@ public class ModelerController {
//subEndEventList.add(xmlNodeId); //subEndEventList.add(xmlNodeId);
//通过target拿到线 //通过target拿到线
ProcessModelNode flow = targetSourceMap.get(xmlNodeId); ProcessModelNode flow = targetSourceMap.get(xmlNodeId);
endEventReplace.put(subProcessId,flow); if (endEventReplace.containsKey(subProcessId)) {
List<ProcessModelNode> processModelNodes = endEventReplace.get(subProcessId);
processModelNodes.add(flow);
}else {
List<ProcessModelNode> processModelNodes = new ArrayList<>();
processModelNodes.add(flow);
endEventReplace.put(subProcessId,processModelNodes);
}
removeNodeList.add(flow); removeNodeList.add(flow);
} }
} }
} }
//把之前删除的结束节点更新后在加回来
List<ProcessModelNode> addNodeList = new ArrayList<>();
for (ProcessModelNode modelNode : nodeOriginList) {
String nodeType = modelNode.getNodeType();
String nodeName = modelNode.getNodeName();
String xmlSourceRef = modelNode.getXmlSourceRef();
String xmlTargetRef = modelNode.getXmlTargetRef();
if ("sequenceFlow".equals(nodeType)){
if (endEventReplace.containsKey(xmlSourceRef)) {
List<ProcessModelNode> processModelNodes = endEventReplace.get(xmlSourceRef);
for (ProcessModelNode modelNode1 : processModelNodes) {
modelNode1.setXmlTargetRef(xmlTargetRef);
addNodeList.add(modelNode1);
}
//modelNode.setXmlTargetRef(modelNode1.getXmlTargetRef());
}
if (startEventReplace.containsKey(xmlTargetRef)) {
xmlTargetRef = startEventReplace.get(xmlTargetRef);
modelNode.setXmlTargetRef(xmlTargetRef);
}
}
}
//删除结束节点的连线 //删除结束节点的连线
nodeOriginList.removeAll(removeNodeList); nodeOriginList.removeAll(removeNodeList);
//获得子流程之后的连线 //获得子流程之后的连线
@@ -332,26 +363,7 @@ public class ModelerController {
.collect(Collectors.toList()); .collect(Collectors.toList());
//获得子流程之后的连线map //获得子流程之后的连线map
Map<String, ProcessModelNode> beforeSubProcessFlowMap = CollStreamUtil.toIdentityMap(beforeSubProcessFlowList, ProcessModelNode::getXmlSourceRef); Map<String, ProcessModelNode> beforeSubProcessFlowMap = CollStreamUtil.toIdentityMap(beforeSubProcessFlowList, ProcessModelNode::getXmlSourceRef);
//把之前删除的结束节点更新后在加回来
List<ProcessModelNode> addNodeList = new ArrayList<>();
for (ProcessModelNode modelNode : nodeOriginList) {
String nodeType = modelNode.getNodeType();
String nodeName = modelNode.getNodeName();
String xmlSourceRef = modelNode.getXmlSourceRef();
String xmlTargetRef = modelNode.getXmlTargetRef();
if ("sequenceFlow".equals(nodeType)){
if (endEventReplace.containsKey(xmlSourceRef)) {
ProcessModelNode modelNode1 = endEventReplace.get(xmlSourceRef);
modelNode1.setXmlTargetRef(xmlTargetRef);
addNodeList.add(modelNode1);
//modelNode.setXmlTargetRef(modelNode1.getXmlTargetRef());
}
if (startEventReplace.containsKey(xmlTargetRef)) {
xmlTargetRef = startEventReplace.get(xmlTargetRef);
modelNode.setXmlTargetRef(xmlTargetRef);
}
}
}
//把之前删除的结束节点更新后在加回来 //把之前删除的结束节点更新后在加回来
nodeOriginList.addAll(addNodeList); nodeOriginList.addAll(addNodeList);
@@ -360,7 +372,7 @@ public class ModelerController {
.filter(item -> "驳回".equals(item.getNodeName())) .filter(item -> "驳回".equals(item.getNodeName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
//全部去除 //全部去除
nodeOriginList.removeAll(rejectFlowList); //nodeOriginList.removeAll(rejectFlowList);
Map<String, ProcessModelNode> rejectSourceIdIsGatewayMap = CollStreamUtil.toIdentityMap(rejectFlowList, ProcessModelNode::getXmlSourceRef); Map<String, ProcessModelNode> rejectSourceIdIsGatewayMap = CollStreamUtil.toIdentityMap(rejectFlowList, ProcessModelNode::getXmlSourceRef);
//找到全部的通过线 //找到全部的通过线
List<ProcessModelNode> passFlowList = nodeOriginList.stream() List<ProcessModelNode> passFlowList = nodeOriginList.stream()
@@ -397,14 +409,14 @@ public class ModelerController {
edge.put("target",afterGatewayNodeId); edge.put("target",afterGatewayNodeId);
edges.add(edge); edges.add(edge);
//网关后的线 //网关后的线
//ProcessModelNode modelNode2 = rejectSourceIdIsGatewayMap.get(xmlTargetRef); ProcessModelNode modelNode2 = rejectSourceIdIsGatewayMap.get(xmlTargetRef);
////网关后的节点id ////网关后的节点id
//String afterGatewayNodeId1 = modelNode2.getXmlTargetRef(); String afterGatewayNodeId1 = modelNode2.getXmlTargetRef();
//Map<String,Object> edge2 = new HashMap<>(); Map<String,Object> edge2 = new HashMap<>();
//edge2.put("label","驳回"); edge2.put("label","驳回");
//edge2.put("source", beforeGatewayNodeId); edge2.put("source", beforeGatewayNodeId);
//edge2.put("target",afterGatewayNodeId1); edge2.put("target",afterGatewayNodeId1);
//edges.add(edge2); edges.add(edge2);
} }
//找到全部的审批网关(审批网关名字是null) //找到全部的审批网关(审批网关名字是null)
List<ProcessModelNode> gatewayList = nodeOriginList.stream() List<ProcessModelNode> gatewayList = nodeOriginList.stream()