端到端 子流程节点展开后 内外节点连线处理
This commit is contained in:
parent
c211173b8e
commit
6b60c9a557
Binary file not shown.
@ -229,6 +229,21 @@ public class GraphNodeCloseHandle {
|
||||
private void removeScopeShapeAndInRangeEle(){
|
||||
|
||||
JSONArray innerEleKeySet = scopeLimitationShape.getJSONArray(SubProcessConst.INNER_ELEMENTS);
|
||||
|
||||
// 闭合时存在一种特殊连线 此连线跨越俩个范围框 与俩个范围框内部节点相连 如果存在此连线 节点闭合时也删除
|
||||
JSONArray linkers = definitionHandle.getLinkers();
|
||||
List<String> toDeleteLinkerIds = linkers.stream().filter(l -> (innerEleKeySet.contains(((JSONObject) l).getJSONObject("from").getString("id"))
|
||||
&& !innerEleKeySet.contains(((JSONObject) l).getJSONObject("to").getString("id"))
|
||||
&& definitionHandle.getElementTypeByKey(((JSONObject) l).getJSONObject("to").getString("id")).name().equals(ElementType.INNER_NODE.name()))
|
||||
|| (!innerEleKeySet.contains(((JSONObject) l).getJSONObject("from").getString("id"))
|
||||
&& innerEleKeySet.contains(((JSONObject) l).getJSONObject("to").getString("id"))
|
||||
&& definitionHandle.getElementTypeByKey(((JSONObject) l).getJSONObject("from").getString("id")).name().equals(ElementType.INNER_NODE.name())))
|
||||
.map(l -> ((JSONObject) l).getString("id"))
|
||||
.collect(Collectors.toList());
|
||||
for (String toDeleteLinkerId : toDeleteLinkerIds) {
|
||||
definitionHandle.removeShape(toDeleteLinkerId);
|
||||
}
|
||||
|
||||
Set<String> keys = innerEleKeySet.stream().map(o -> o.toString()).collect(Collectors.toSet());
|
||||
for (String key : keys) {
|
||||
definitionHandle.removeShape(key);
|
||||
|
||||
Binary file not shown.
@ -6143,7 +6143,22 @@ public class CoeProcessLevelWeb extends ActionWeb {
|
||||
personLinker.put("linkerElementType", linker.getString("elementType"));
|
||||
return personLinker;
|
||||
})
|
||||
.filter(personLinker -> !("INNER_NODE".equals(personLinker.getString("fromElementType")) && "INNER_NODE".equals(personLinker.getString("toElementType"))))
|
||||
.filter(personLinker -> {
|
||||
boolean flag = true;
|
||||
String fromId = personLinker.getString("fromId");
|
||||
String toId = personLinker.getString("toId");
|
||||
|
||||
JSONObject fromNode = elements.getJSONObject(fromId);
|
||||
JSONObject toNode = elements.getJSONObject(toId);
|
||||
|
||||
if ("INNER_NODE".equals(personLinker.getString("fromElementType")) && "INNER_NODE".equals(personLinker.getString("toElementType"))){
|
||||
if (fromNode.getString("scopeShapeId").equals(toNode.getString("scopeShapeId"))){ // 说明同属于 同一个范围框 的内部连线 过滤掉
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
JSONObject nodeLinkerRecord = new JSONObject();
|
||||
|
||||
@ -2184,7 +2184,7 @@ var Designer = {
|
||||
if ((fromObj.elementType == "OUTER_NODE" && toObj.elementType == "OUTER_NODE") || (fromObj.elementType == "SCOPE_NODE" && toObj.elementType == "SCOPE_NODE")){
|
||||
d.elementType = "OUTER_LINKER";
|
||||
window.subProcess.outerNodeExtendAttrHandle(d);
|
||||
}else if (fromObj.elementType == "INNER_NODE" && toObj.elementType == "INNER_NODE"){
|
||||
}else if (fromObj.elementType == "INNER_NODE" && toObj.elementType == "INNER_NODE" && fromObj.scopeShapeId == toObj.scopeShapeId){
|
||||
d.elementType = "INNER_LINKER";
|
||||
let scopeShapeKey = window.subProcess.calculateLinkerInWhichScope(d);
|
||||
d.scopeShapeId = scopeShapeKey;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user