端到端功能 节点展开后内外节点连线处理 阶段提交

This commit is contained in:
qinoy 2023-07-07 17:49:46 +08:00
parent 84d9ffb931
commit 8c894e7c51
5 changed files with 76 additions and 2 deletions

View File

@ -6116,6 +6116,75 @@ public class CoeProcessLevelWeb extends ActionWeb {
}
}
}
// 维护节点连线信息
List<JSONObject> linkers = elements.keySet()
.stream()
.filter(key -> "OUTER_LINKER".equals(elements.getJSONObject(key).getString("elementType")) || "CROSS_LINKER".equals(elements.getJSONObject(key).getString("elementType")))
.map(key -> elements.getJSONObject(key))
.collect(Collectors.toList());
List<JSONObject> nodeList = elements.keySet()
.stream().filter(key -> "OUTER_NODE".equals(elements.getJSONObject(key).getString("elementType")) || "SCOPE_NODE".equals(elements.getJSONObject(key).getString("elementType")))
.map(key -> elements.getJSONObject(key))
.collect(Collectors.toList());
JSONObject nodeLinkerRecord = new JSONObject();
if (definition.containsKey("nodeLinkerRecord")){
nodeLinkerRecord = definition.getJSONObject("nodeLinkerRecord");
}
for (JSONObject shape : nodeList) {
String shapeId = shape.getString("id");
JSONObject recordContent = new JSONObject();
JSONArray leadLinkerInfo = new JSONArray(); // 前置连线信息
JSONArray rearLinkerInfo = new JSONArray(); // 后置连线信息
for (JSONObject linker : linkers) {
JSONObject from = linker.getJSONObject("from");
JSONObject to = linker.getJSONObject("to");
JSONObject fromNode = elements.getJSONObject(from.getString("id"));
JSONObject toNode = elements.getJSONObject(to.getString("id"));
JSONObject linkerInfo = new JSONObject();
linkerInfo.put("linker", JSONObject.parse(linker.toString()));
linkerInfo.put("fromNodeType", fromNode.getString("elementType").equals("OUTER_NODE") ? "close" : "expand");
linkerInfo.put("toNodeType", toNode.getString("elementType").equals("OUTER_NODE") ? "close" : "expand");
if ("OUTER_NODE".equals(shape.getString("elementType"))){ // 当前节点闭合
if (shapeId.equals(to.getString("id"))){ // 当前节点的前置连线信息
linkerInfo.put("leadNodeId", "OUTER_NODE".equals(fromNode.getString("elementType")) ? from.getString("id") : fromNode.getString("scopeShapeId"));
leadLinkerInfo.add(linkerInfo);
}else if (shapeId.equals(from.getString("id"))){ // 当前节点的后置连线信息
linkerInfo.put("rearNodeId", "OUTER_NODE".equals(toNode.getString("elementType")) ? to.getString("id") : toNode.getString("scopeShapeId"));
rearLinkerInfo.add(linkerInfo);
}
}else {
if (shapeId.equals(toNode.getString("scopeShapeId"))){
linkerInfo.put("leadNodeId", "OUTER_NODE".equals(fromNode.getString("elementType")) ? from.getString("id") : fromNode.getString("scopeShapeId"));
leadLinkerInfo.add(linkerInfo);
}else if (shapeId.equals(fromNode.getString("scopeShapeId"))){
linkerInfo.put("rearNodeId", "OUTER_NODE".equals(toNode.getString("elementType")) ? to.getString("id") : toNode.getString("scopeShapeId"));
rearLinkerInfo.add(linkerInfo);
}
}
}
recordContent.put("leadLinkerInfo", leadLinkerInfo);
recordContent.put("rearLinkerInfo", rearLinkerInfo);
JSONObject status = new JSONObject();
if (nodeLinkerRecord.containsKey(shapeId)){
status = nodeLinkerRecord.getJSONObject(shapeId);
}
if ("OUTER_NODE".equals(shape.getString("elementType"))){ // 当前状态为闭合
status.put("close", recordContent);
}else { // 当前状态为展开
status.put("expand", recordContent);
}
nodeLinkerRecord.put(shapeId, status);
}
definition.put("nodeLinkerRecord", nodeLinkerRecord);
}else if (repositoryModel.getMethodId().equals("process.epc") || repositoryModel.getMethodId().equals("process.flowchart")){
// 判断当前模型是否被某一个总图引用
DesignerShapeRelationDao shapeRelationDao = new DesignerShapeRelationDao();
@ -6259,6 +6328,7 @@ public class CoeProcessLevelWeb extends ActionWeb {
if (SDK.getAppAPI().getPropertyBooleanValue(CoEConstant.APP_ID, "IS_RECORD_OP_LOG", false)) {
CoEOpLogAPI.auditOkOp(_uc, CoEOpLogConst.MODULE_CATEGORY_REPOSITORY, CoEOpLogConst.OP_UPDATE, CoEOpLogConst.INFO_REPOSITORY_DESIGNER_UPDATE);
}
ro.put("define", definition);
return ro.toString();
}

View File

@ -143,6 +143,7 @@ $(function() {
}
});
}
Model.define.nodeLinkerRecord = msg.data.define.nodeLinkerRecord;
$.simpleAlert("保存成功", "ok");
//保存结束时间戳
//var saveEndTime = new Date().getTime();

View File

@ -2180,7 +2180,7 @@ var Designer = {
if (from.id != null && to.id != null){
let fromObj = Model.getShapeById(from.id);
let toObj = Model.getShapeById(to.id);
if (fromObj.elementType == "OUTER_NODE" && toObj.elementType == "OUTER_NODE"){
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"){

View File

@ -91,7 +91,7 @@ class SubProcess {
Utils.unselect();
Utils.selectShape(e);
});
}else {
}else if (j.shape.elementType == 'INNER_NODE') {
// console.log('范围标注框的图形是否存了下来', window.subProcess.scopeEle);
let scopeEle = window.subProcess.scopeEle;
for (const scopeShapeId in scopeEle) {
@ -116,6 +116,9 @@ class SubProcess {
window.subProcess.movingEle = Model.getShapeById(j.shape.id);
}
}
}else {
window.subProcess.movingEle = null;
window.subProcess.scopeRang = null;
}
}else {
window.subProcess.movingEle = null;