fix 80012 项目合规流程-流程图 需更改
This commit is contained in:
+42
-30
@@ -298,7 +298,8 @@ public class ModelerController {
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<String,String> startEventReplace = new HashMap<>();
|
||||
Map<String,ProcessModelNode> endEventReplace = new HashMap<>();
|
||||
Map<String,List<ProcessModelNode>> endEventReplace = new HashMap<>();
|
||||
|
||||
//确定结束节点的连线
|
||||
List<ProcessModelNode> removeNodeList = new ArrayList<>();
|
||||
for (String subProcessId : subProcessIdList) {
|
||||
@@ -319,11 +320,41 @@ public class ModelerController {
|
||||
//subEndEventList.add(xmlNodeId);
|
||||
//通过target拿到线
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
//把之前删除的结束节点更新后在加回来
|
||||
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);
|
||||
//获得子流程之后的连线
|
||||
@@ -332,26 +363,7 @@ public class ModelerController {
|
||||
.collect(Collectors.toList());
|
||||
//获得子流程之后的连线map
|
||||
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);
|
||||
|
||||
@@ -360,7 +372,7 @@ public class ModelerController {
|
||||
.filter(item -> "驳回".equals(item.getNodeName()))
|
||||
.collect(Collectors.toList());
|
||||
//全部去除
|
||||
nodeOriginList.removeAll(rejectFlowList);
|
||||
//nodeOriginList.removeAll(rejectFlowList);
|
||||
Map<String, ProcessModelNode> rejectSourceIdIsGatewayMap = CollStreamUtil.toIdentityMap(rejectFlowList, ProcessModelNode::getXmlSourceRef);
|
||||
//找到全部的通过线
|
||||
List<ProcessModelNode> passFlowList = nodeOriginList.stream()
|
||||
@@ -397,14 +409,14 @@ public class ModelerController {
|
||||
edge.put("target",afterGatewayNodeId);
|
||||
edges.add(edge);
|
||||
//网关后的线
|
||||
//ProcessModelNode modelNode2 = rejectSourceIdIsGatewayMap.get(xmlTargetRef);
|
||||
ProcessModelNode modelNode2 = rejectSourceIdIsGatewayMap.get(xmlTargetRef);
|
||||
////网关后的节点id
|
||||
//String afterGatewayNodeId1 = modelNode2.getXmlTargetRef();
|
||||
//Map<String,Object> edge2 = new HashMap<>();
|
||||
//edge2.put("label","驳回");
|
||||
//edge2.put("source", beforeGatewayNodeId);
|
||||
//edge2.put("target",afterGatewayNodeId1);
|
||||
//edges.add(edge2);
|
||||
String afterGatewayNodeId1 = modelNode2.getXmlTargetRef();
|
||||
Map<String,Object> edge2 = new HashMap<>();
|
||||
edge2.put("label","驳回");
|
||||
edge2.put("source", beforeGatewayNodeId);
|
||||
edge2.put("target",afterGatewayNodeId1);
|
||||
edges.add(edge2);
|
||||
}
|
||||
//找到全部的审批网关(审批网关名字是null)
|
||||
List<ProcessModelNode> gatewayList = nodeOriginList.stream()
|
||||
|
||||
Reference in New Issue
Block a user