Browse Source

存储解析

master
yanyan 3 years ago
parent
commit
1ab1573750
  1. 25
      lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneQuestionServiceImpl.java

25
lib/EmergencyService/zdxtEmergencyKnowledgeService/src/main/java/com/zdxt/knowledge/service/impl/SceneQuestionServiceImpl.java

@ -1,10 +1,10 @@
package com.zdxt.knowledge.service.impl; package com.zdxt.knowledge.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.zdxt.auth.dto.RoleBean; import com.zdxt.auth.dto.RoleBean;
import com.zdxt.auth.dto.UserBean; import com.zdxt.auth.dto.UserBean;
@ -218,7 +218,7 @@ public class SceneQuestionServiceImpl implements ISceneQuestionService {
JSONObject json = JSON.parseObject(sceneRole.getContent()); JSONObject json = JSON.parseObject(sceneRole.getContent());
JSONObject dataJson = json.getJSONObject("drawflow").getJSONObject("Home").getJSONObject("data"); JSONObject dataJson = json.getJSONObject("drawflow").getJSONObject("Home").getJSONObject("data");
Map<String, Object> root = new HashMap<>(); Map<String, Object> root = new HashMap<>();
Map<String, Map<String, String>> answerList = new HashMap<>(); Map<String, Map<String, Pair<String, String>>> answerList = new HashMap<>();
List<Map<String, Object>> paramsList = new ArrayList<>(); List<Map<String, Object>> paramsList = new ArrayList<>();
// 因不是正常顺序, 并且会出下断层 因此取最大key值做循环底数 // 因不是正常顺序, 并且会出下断层 因此取最大key值做循环底数
@ -231,7 +231,9 @@ public class SceneQuestionServiceImpl implements ISceneQuestionService {
// for (int i = 1; i <= dataJson.size(); i++) { // for (int i = 1; i <= dataJson.size(); i++) {
for (int i = 1; i <= maxNum; i++) { for (int i = 1; i <= maxNum; i++) {
JSONObject data = dataJson.getJSONObject(i + ""); JSONObject data = dataJson.getJSONObject(i + "");
if (null == data) { continue; } if (null == data) {
continue;
}
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("questionId", data.get("name")); params.put("questionId", data.get("name"));
params.put("nodeId", data.get("id")); params.put("nodeId", data.get("id"));
@ -263,10 +265,11 @@ public class SceneQuestionServiceImpl implements ISceneQuestionService {
} }
JSONArray option = dataTmp.getJSONArray("option"); JSONArray option = dataTmp.getJSONArray("option");
if (Objects.nonNull(option) && option.size() != 0) { if (Objects.nonNull(option) && option.size() != 0) {
Map<String, String> map = new HashMap<>(); Map<String, Pair<String, String>> map = new HashMap<>();
for (int j = 0; j < option.size(); j++) { for (int j = 0; j < option.size(); j++) {
JSONObject ot = option.getJSONObject(j); JSONObject ot = option.getJSONObject(j);
map.put(ot.getString("identify"), ot.getString("content")); Pair<String, String> pair = new Pair<>(ot.getString("content"), ot.getString("analysis"));
map.put(ot.getString("identify"), pair);
answerList.put(data.getString("id"), map); answerList.put(data.getString("id"), map);
} }
} }
@ -307,11 +310,13 @@ public class SceneQuestionServiceImpl implements ISceneQuestionService {
.filter(item -> Objects.nonNull(item.get("ints"))) .filter(item -> Objects.nonNull(item.get("ints")))
.filter(item -> Objects.nonNull(item.get("channel"))) .filter(item -> Objects.nonNull(item.get("channel")))
.peek(item -> { .peek(item -> {
Map<String, String> stringStringMap = answerList.get((String) item.get("ints")); Map<String, Pair<String, String>> stringStringMap = answerList.get((String) item.get("ints"));
if (Objects.nonNull(stringStringMap) && !stringStringMap.isEmpty()) { if (Objects.nonNull(stringStringMap) && !stringStringMap.isEmpty()) {
String channel = (String) item.get("channel"); String channel = (String) item.get("channel");
String newChannel = stringStringMap.get(channel); String newChannel = stringStringMap.get(channel).getKey();
String newAnalysis = stringStringMap.get(channel).getValue();
item.put("channel", StringUtils.isEmpty(newChannel) ? channel : channel + ":" + newChannel); item.put("channel", StringUtils.isEmpty(newChannel) ? channel : channel + ":" + newChannel);
item.put("analysis", StringUtils.isNotEmpty(newChannel) && StringUtils.isNotEmpty(newAnalysis) ? channel + ":" + newChannel + ":" + newAnalysis : "");
} }
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -343,12 +348,12 @@ public class SceneQuestionServiceImpl implements ISceneQuestionService {
return getChildList(params, p).size() > 0 ? true : false; return getChildList(params, p).size() > 0 ? true : false;
} }
private int getMax(List<Integer> arr){ private int getMax(List<Integer> arr) {
//假设数组第一位是最大值 //假设数组第一位是最大值
int max = arr.get(0); int max = arr.get(0);
for (int index = 0 ; index < arr.size() ; index ++) { for (int index = 0; index < arr.size(); index++) {
// 数组的每一个元素和假设的第一个最大值做比较 // 数组的每一个元素和假设的第一个最大值做比较
if(arr.get(index) > max) { if (arr.get(index) > max) {
// 把得到的真正的最大值赋给Max // 把得到的真正的最大值赋给Max
max = arr.get(index); max = arr.get(index);
} }

Loading…
Cancel
Save