Browse Source

因对流程图多个结束节点的情况

master
蟑螂恶霸 2 years ago
parent
commit
eb66da6f2d
  1. 38
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneRoleServiceImpl.java

38
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneRoleServiceImpl.java

@ -90,13 +90,13 @@ public class SceneRoleServiceImpl implements ISceneRoleService {
JSONArray nodeArray = JSONArray.parseArray(edgeObj.get("nodes").toString());
// 循环节点信息取出开始与结束的id
String startId = "";
String endId = "";
// String endId = "";
for (int j = 0; j < nodeArray.size(); j++) {
JSONObject node = nodeArray.getJSONObject(j);
if ("snaker:start".equals(node.get("type"))) {
startId = node.get("id").toString();
} else if ("snaker:end".equals(node.get("type"))) {
endId = node.get("id").toString();
// } else if ("snaker:end".equals(node.get("type"))) {
// endId = node.get("id").toString();
}
}
@ -116,8 +116,8 @@ public class SceneRoleServiceImpl implements ISceneRoleService {
// 处理nodeId, 并更改开始与结束
if (startId.equals(node.getString("id"))) {
tmp.put("nodeId", "1");
} else if (endId.equals(node.getString("id"))) {
tmp.put("nodeId", "-1");
// } else if (endId.equals(node.getString("id"))) {
// tmp.put("nodeId", "-1");
} else if ("snaker:end".equals(node.getString("type"))) {
tmp.put("nodeId", "-1");
} else {
@ -176,7 +176,8 @@ public class SceneRoleServiceImpl implements ISceneRoleService {
// 单独处理下 指向 -1 的最后一个节点
String qId = "-1";
String sId = "-1";
// String sId = "-1";
List<String> sIds = new ArrayList<>(); // 为多个结束节点整的
for (Map<String, Object> m : paramsList) {
if ("-1".equals(m.get("nodeId"))) {
qId = m.get("questionId").toString(); // 07
@ -184,22 +185,25 @@ public class SceneRoleServiceImpl implements ISceneRoleService {
JSONObject edge = edgeArray.getJSONObject(j);
if (edge.get("targetNodeId").equals(qId)) {
// 找到指向结束节点的节点
sId = edge.getString("sourceNodeId");
// sId = edge.getString("sourceNodeId");
sIds.add(edge.getString("sourceNodeId"));
}
}
}
}
// 根据 获得的sId修改节点只接修改指向
for (Map<String, Object> m : paramsList) {
if (sId.equals(m.get("questionId").toString())) {
Set tp = new HashSet();
tp.add(qId);
m.put("outs", tp);
}
// 将结束节点node改为 google 减少小程序端代码的修改
if ("-1".equals(m.get("nodeId"))) {
m.put("nodeId", m.get("questionId"));
m.put("questionId", "google");
for (String sId : sIds){
for (Map<String, Object> m : paramsList) {
if (sId.equals(m.get("questionId").toString())) {
Set tp = new HashSet();
tp.add(qId);
m.put("outs", tp);
}
// 将结束节点node改为 google 减少小程序端代码的修改
if ("-1".equals(m.get("nodeId"))) {
m.put("nodeId", m.get("questionId"));
m.put("questionId", "google");
}
}
}

Loading…
Cancel
Save