Browse Source

出参结构修改

zhaops 5 năm trước cách đây
mục cha
commit
944636886c

+ 1 - 1
triage-service/src/main/java/com/diagbot/dto/SYFDTO.java

@@ -13,5 +13,5 @@ import java.util.List;
 @Getter
 @Setter
 public class SYFDTO {
-    private List<SYFDiseaseDeptDTO> diseaseDept;
+    private List<SYFDeptDTO> diseaseDept;
 }

+ 18 - 0
triage-service/src/main/java/com/diagbot/dto/SYFDeptDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/3/25 19:43
+ */
+@Getter
+@Setter
+public class SYFDeptDTO {
+    private String deptName;
+    private List<SYFDiseaseDeptDTO> diseaseDept;
+}

+ 5 - 3
triage-service/src/main/java/com/diagbot/dto/SYFDiseaseDeptDTO.java

@@ -15,9 +15,11 @@ import java.util.List;
 public class SYFDiseaseDeptDTO {
     private String dept;
     private Double rate;
-    private String url;
+    //private String url;
+    private String deptName;
     private String deptCode;
+    private String subDeptName;
     private String subDeptCode;
     private List<String> diseaseNames;
-    private List<SYFFeatureDTO> features;
-}
+    //private List<SYFFeatureDTO> features;
+}

+ 27 - 11
triage-service/src/main/java/com/diagbot/facade/AIFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.dto.FeatureRateDTO;
 import com.diagbot.dto.HospitalDeptDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SYFDTO;
+import com.diagbot.dto.SYFDeptDTO;
 import com.diagbot.dto.SYFDiseaseDeptDTO;
 import com.diagbot.dto.SYFFeatureDTO;
 import com.diagbot.enums.SysTypeEnum;
@@ -291,7 +292,7 @@ public class AIFacade {
                         syfDiseaseDeptDTO.setRate(Double.valueOf(syfFeatureDTO.getRate()));
                         List<SYFFeatureDTO> features = Lists.newLinkedList();
                         features.add(syfFeatureDTO);
-                        syfDiseaseDeptDTO.setFeatures(features);
+                        //syfDiseaseDeptDTO.setFeatures(features);
                         syfDiseaseDeptDTO.setDiseaseNames(features
                                 .stream()
                                 .map(i -> i.getDiseaseName())
@@ -303,11 +304,13 @@ public class AIFacade {
                 if (syfFeatureMap != null) {
                     for (Map.Entry<String, List<SYFFeatureDTO>> entry : syfFeatureMap.entrySet()) {
                         SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
-                        syfDiseaseDeptDTO.setDept(entry.getKey());
-                        syfDiseaseDeptDTO.setUrl(entry.getValue().get(0).getUrl());
+                        syfDiseaseDeptDTO.setDeptName(entry.getKey());
+                        syfDiseaseDeptDTO.setSubDeptName(entry.getValue().get(0).getSubDeptName());
+                        syfDiseaseDeptDTO.setDept(entry.getValue().get(0).getConcatDept());
+                        //syfDiseaseDeptDTO.setUrl(entry.getValue().get(0).getUrl());
                         syfDiseaseDeptDTO.setDeptCode(entry.getValue().get(0).getDeptCode());
                         syfDiseaseDeptDTO.setSubDeptCode(entry.getValue().get(0).getSubDeptCode());
-                        syfDiseaseDeptDTO.setFeatures(entry.getValue());
+                        //syfDiseaseDeptDTO.setFeatures(entry.getValue());
                         syfDiseaseDeptDTO.setDiseaseNames(entry.getValue()
                                 .stream()
                                 .map(i -> i.getDiseaseName())
@@ -334,7 +337,15 @@ public class AIFacade {
                 }
             }
         }
-        syfdto.setDiseaseDept(items);
+        Map<String, List<SYFDiseaseDeptDTO>> itemMap = EntityUtil.makeEntityListMap(items, "deptName");
+        List<SYFDeptDTO> syfDeptDTOList = Lists.newLinkedList();
+        itemMap.entrySet().forEach(item -> {
+            SYFDeptDTO syfDeptDTO = new SYFDeptDTO();
+            syfDeptDTO.setDeptName(item.getKey());
+            syfDeptDTO.setDiseaseDept(item.getValue());
+            syfDeptDTOList.add(syfDeptDTO);
+        });
+        syfdto.setDiseaseDept(syfDeptDTOList);
         return syfdto;
     }
 
@@ -429,7 +440,9 @@ public class AIFacade {
             if (StringUtil.isNotBlank(syfFeatureDTO.getConcatDept())) {
                 SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
                 syfDiseaseDeptDTO.setDept(syfFeatureDTO.getConcatDept());
-                syfDiseaseDeptDTO.setUrl(syfFeatureDTO.getUrl());
+                syfDiseaseDeptDTO.setDeptName(syfFeatureDTO.getDeptName());
+                syfDiseaseDeptDTO.setSubDeptName(syfFeatureDTO.getSubDeptName());
+                //syfDiseaseDeptDTO.setUrl(syfFeatureDTO.getUrl());
                 syfDiseaseDeptDTO.setDeptCode(syfFeatureDTO.getDeptCode());
                 syfDiseaseDeptDTO.setSubDeptCode(syfFeatureDTO.getSubDeptCode());
                 List<SYFFeatureDTO> features = Lists.newLinkedList();
@@ -439,7 +452,8 @@ public class AIFacade {
                     mergeFeatureList.add(syfDiseaseDeptDTO);
                 }
                 features.add(syfFeatureDTO);
-                syfDiseaseDeptDTO.setFeatures(features);
+
+                //syfDiseaseDeptDTO.setFeatures(features);
                 syfDiseaseDeptDTO.setDiseaseNames(features
                         .stream()
                         .map(i -> i.getDiseaseName())
@@ -451,19 +465,20 @@ public class AIFacade {
                 SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
                 List<SYFFeatureDTO> features = Lists.newLinkedList();
                 features.add(syfFeatureDTO);
-                syfDiseaseDeptDTO.setFeatures(features);
+                //syfDiseaseDeptDTO.setFeatures(features);
                 syfDiseaseDeptDTO.setDiseaseNames(features
                         .stream()
-                        .map(i->i.getDiseaseName())
+                        .map(i -> i.getDiseaseName())
                         .distinct()
                         .collect(Collectors.toList()));
                 mergeFeatureList.add(syfDiseaseDeptDTO);
             }
         }
         for (SYFDiseaseDeptDTO syfDiseaseDeptDTO : mergeFeatureList) {
+            //更新诊断列表
             if (StringUtil.isNotBlank(syfDiseaseDeptDTO.getDept())) {
                 if (syfFeatureMap.containsKey(syfDiseaseDeptDTO.getDept())) {
-                    syfDiseaseDeptDTO.setFeatures(syfFeatureMap.get(syfDiseaseDeptDTO.getDept()));
+                    //syfDiseaseDeptDTO.setFeatures(syfFeatureMap.get(syfDiseaseDeptDTO.getDept()));
                     syfDiseaseDeptDTO.setDiseaseNames(syfFeatureMap.get(syfDiseaseDeptDTO.getDept())
                             .stream()
                             .map(i -> i.getDiseaseName())
@@ -473,10 +488,11 @@ public class AIFacade {
             }
         }
 
+        //根据出现次数排序
         Collections.sort(mergeFeatureList, new Comparator<SYFDiseaseDeptDTO>() {
             @Override
             public int compare(SYFDiseaseDeptDTO o1, SYFDiseaseDeptDTO o2) {
-                return Integer.compare(o2.getFeatures().size(), o1.getFeatures().size());
+                return Integer.compare(o2.getDiseaseNames().size(), o1.getDiseaseNames().size());
             }
         });