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

Loading…
Cancel
Save