fix 80012 项目合规流程-流程图 需更改
This commit is contained in:
+42
-30
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user