Selaa lähdekoodia

管理评估新结构代码

kongwz 5 vuotta sitten
vanhempi
commit
39664d5641

+ 1 - 0
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -149,6 +149,7 @@ public class GraphCalculate {
             starttime = System.currentTimeMillis();
             if(webDiag != null){
                 MangementEvaluation mangementEvaluation = neo4jAPI.pushMe(webDiagList,lis_Result);
+                MangementEvaluation mangementEvaluation_new = neo4jAPI.pushMe_new(webDiagList);
                 System.out.println("推送管理评估消耗:"+(System.currentTimeMillis()-starttime)+"s");
                 Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation.getMangementEvaluation();
                 responseData.setManagementEvaluation(mangementEvaluation1);

+ 88 - 0
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -1523,6 +1523,93 @@ public class Neo4jAPI {
        CloseSession(session);
        return kk;
    }
+
+    /**
+     * 新结构管理评估
+     * @param webDiagList
+     * @return
+     */
+    public MangementEvaluation pushMe_new(String[] webDiagList) {
+        MangementEvaluation mangementEvaluation = new MangementEvaluation();
+        Map<String, JSONObject> mangementMap = new HashMap<>();
+        Map<String,Map<String,List<String>>> zong = new LinkedHashMap<>();
+        List<String> types = new ArrayList<>();
+        String query = "";
+        Session session = null;
+        StatementResult result = null;
+        if (webDiagList != null && webDiagList.length > 0) {
+            String diag = webDiagList[0];//慢病
+            query = propertiesUtil.getProperty("mangement").replace("disName",diag);
+            logger.info(query);
+            session = driver.session(AccessMode.WRITE);
+            result = session.run(query);
+            while (result.hasNext()) {
+                Map<String,List<String>> fen = new LinkedHashMap<>();
+                Record next = result.next();
+                String type = next.get("type").toString().replace("\"", "");
+                String name = next.get("name").toString().replace("\"", "");
+                String filds = next.get("filds").toString().replace("\"", "");
+                fen.put(name,Arrays.asList(filds.split(",")));
+                if (!zong.containsKey(type)){
+                    zong.put(type,fen);
+                }else {
+                    Map<String, List<String>> content = zong.get(type);
+                    content.put(name,Arrays.asList(filds.split(",")));
+                    zong.put(type,content);
+                }
+                if(!types.contains(type)){
+                    types.add(type);
+                }
+            }
+            mangementMap = this.procrssMange(zong, types);
+            mangementEvaluation.setMangementEvaluation(mangementMap);
+        }
+        return mangementEvaluation;
+    }
+public Map<String,JSONObject> procrssMange(Map<String,Map<String,List<String>>> zong,List<String>types){
+        Map<String,JSONObject> llo = new HashMap<>();
+//        Map<String,List<JSONObject>> ll = new HashMap<>();
+        if(types != null && types.size()>0){
+            for (String type:types) {
+                JSONObject big = new JSONObject();
+                List<JSONObject> result = new ArrayList<>();
+                Map<String, List<String>> csc = zong.get(type);
+                for (Map.Entry<String, List<String>> fd:csc.entrySet()) {
+                    String key = fd.getKey();
+                    List<String> values = fd.getValue();
+                    // TODO: 2019/10/31
+                    /**
+                     * 这部分可以进行校验
+                     */
+                    JSONObject j = new JSONObject();
+                    j.put("controltype",0);
+                    j.put("name",key);
+                    List<JSONObject> hList = new ArrayList<>();
+                    if(values.size()>0){
+                        for (String value:values
+                             ) {
+                            JSONObject ds = new JSONObject();
+                            ds.put("detailName",value);
+                            ds.put("state",0);
+                            hList.add(ds);
+                        }
+                    }
+                    j.put("details",hList);
+                    result.add(j);
+                }
+//                ll.put(type,result);
+                big.put("rows",result);
+                llo.put(type,big);
+            }
+        }
+        return llo;
+}
+    /**
+     * 旧结构管理评估
+     * @param webDiagsplits
+     * @param lis_Result
+     * @return
+     */
     public MangementEvaluation pushMe(String[] webDiagsplits, Map<String, Double> lis_Result) {
         MangementEvaluation mangementEvaluation = new MangementEvaluation();
         Map<String, JSONObject> mangementMap = new HashMap<>();
@@ -2406,4 +2493,5 @@ public class Neo4jAPI {
     }
 
 
+
 }

+ 5 - 2
graph/src/main/resources/bolt.properties

@@ -5,9 +5,9 @@ pass_235 = diagbot@20180822
 
 # neo4j bolt credentials
 #\u7EBF\u4E0A\u4F7F\u7528
-bolt.uri=bolt://192.168.2.233
+bolt.uri=bolt://192.168.3.180
 bolt.user=neo4j
-bolt.passwd=root
+bolt.passwd=123456
 
 
 #\u6D4B\u8BD5\u4F7F\u7528
@@ -110,6 +110,9 @@ match(t)-[r:\u63A8\u8350]->(m)-[r1:\u5C5E\u4E8E]->(h:Drugs)\n \
 where d.name=h.bigDrugs and h.p<6 \n \
 return t.name as treat,d.name as big,h.name as sub, m.name as med,null as ty\n \
 order by h.p
+# \u65B0\u7ED3\u6784\u7BA1\u7406\u8BC4\u4F30
+mangement=match(d:Disease)-[r:\u7BA1\u7406\u8BC4\u4F30]->(m)-[r1]->(e) where d.name='disName' \
+   return e.name as name,e.filds as filds,type(r1) as type order by r1.p
 
 #\u66F4\u65B0\u8BCA\u65AD\u4F9D\u636E\u7684path
 updateConditionPath=match (n:Condition)<-[:\u8BCA\u65AD\u4F9D\u636E]-(m) \n \