浏览代码

版本升级,增加统计功能

liuqq 5 年之前
父节点
当前提交
0a6c4ff4ff
共有 100 个文件被更改,包括 2803 次插入932 次删除
  1. 1 1
      admin-service/pom.xml
  2. 5 0
      aipt-service/pom.xml
  3. 415 0
      aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java
  4. 199 0
      aipt-service/src/main/java/com/diagbot/aggregate/TreatmentAggregate.java
  5. 6 1
      aipt-service/src/main/java/com/diagbot/dto/ConceptDetailDTO.java
  6. 3 1
      aipt-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java
  7. 3 1
      aipt-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java
  8. 60 0
      aipt-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java
  9. 48 0
      aipt-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java
  10. 25 25
      icssman-service/src/main/java/com/diagbot/entity/LisMapping.java
  11. 1 1
      icssman-service/src/main/java/com/diagbot/entity/VersionDetail.java
  12. 16 3
      icssman-service/src/main/java/com/diagbot/entity/VersionInfo.java
  13. 18 0
      aipt-service/src/main/java/com/diagbot/entity/wrapper/LisMappingWrapper.java
  14. 6 7
      aipt-service/src/main/java/com/diagbot/enums/ConceptTypeEnum.java
  15. 4 4
      aipt-service/src/main/java/com/diagbot/enums/DisTypeEnum.java
  16. 4 4
      aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java
  17. 23 23
      aipt-service/src/main/java/com/diagbot/enums/LexiconRSTypeEnum.java
  18. 75 75
      aipt-service/src/main/java/com/diagbot/enums/LexiconTypeEnum.java
  19. 4 4
      aipt-service/src/main/java/com/diagbot/enums/LisSourceEnum.java
  20. 4 4
      aipt-service/src/main/java/com/diagbot/enums/PositionTypeEnum.java
  21. 5 5
      aipt-service/src/main/java/com/diagbot/enums/QuestionTypeEnum.java
  22. 4 5
      aipt-service/src/main/java/com/diagbot/enums/ScaleTypeEnum.java
  23. 4 5
      aipt-service/src/main/java/com/diagbot/enums/StatusEnum.java
  24. 31 30
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  25. 55 15
      aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java
  26. 32 23
      aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  27. 1 1
      aipt-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  28. 2 1
      aipt-service/src/main/java/com/diagbot/facade/DisclaimerInformationFacade.java
  29. 24 0
      aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java
  30. 1 1
      aipt-service/src/main/java/com/diagbot/facade/IndexDataFacade.java
  31. 83 0
      aipt-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  32. 6 8
      aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  33. 21 302
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  34. 181 106
      aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java
  35. 50 50
      icss-service/src/main/java/com/diagbot/facade/VersionDetailFacaed.java
  36. 70 0
      aipt-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  37. 26 0
      aipt-service/src/main/java/com/diagbot/mapper/LisMappingMapper.java
  38. 0 0
      aipt-service/src/main/java/com/diagbot/mapper/VersionDetailMapper.java
  39. 0 0
      aipt-service/src/main/java/com/diagbot/mapper/VersionInfoMapper.java
  40. 9 10
      icssman-service/src/main/java/com/diagbot/service/LisMappingService.java
  41. 0 0
      aipt-service/src/main/java/com/diagbot/service/VersionDetailService.java
  42. 0 0
      aipt-service/src/main/java/com/diagbot/service/VersionInfoService.java
  43. 11 9
      icssman-service/src/main/java/com/diagbot/service/impl/LisMappingServiceImpl.java
  44. 0 0
      aipt-service/src/main/java/com/diagbot/service/impl/VersionDetailServiceImpl.java
  45. 0 0
      aipt-service/src/main/java/com/diagbot/service/impl/VersionInfoServiceImpl.java
  46. 3 2
      aipt-service/src/main/java/com/diagbot/util/ParamConvertUtil.java
  47. 20 0
      aipt-service/src/main/java/com/diagbot/vo/GetLisMappingVO.java
  48. 18 0
      aipt-service/src/main/java/com/diagbot/vo/VersionVO.java
  49. 13 5
      aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java
  50. 0 2
      aipt-service/src/main/java/com/diagbot/web/DisTypeController.java
  51. 8 2
      aipt-service/src/main/java/com/diagbot/web/IndexDataController.java
  52. 47 0
      aipt-service/src/main/java/com/diagbot/web/LisMappingController.java
  53. 7 9
      aipt-service/src/main/java/com/diagbot/web/PatientInfoController.java
  54. 41 0
      aipt-service/src/main/java/com/diagbot/web/VersionInfoController.java
  55. 61 52
      aipt-service/src/main/resources/mapper/ConceptMapper.xml
  56. 67 0
      aipt-service/src/main/resources/mapper/LisMappingMapper.xml
  57. 0 0
      aipt-service/src/main/resources/mapper/VersionDetailMapper.xml
  58. 0 0
      aipt-service/src/main/resources/mapper/VersionInfoMapper.xml
  59. 1 1
      aipt-service/src/test/java/com/diagbot/CodeGeneration.java
  60. 5 0
      bi-service/pom.xml
  61. 31 0
      bi-service/src/main/java/com/diagbot/aggregate/BiAggregate.java
  62. 43 0
      bi-service/src/main/java/com/diagbot/aggregate/KnowledgemanAgg.java
  63. 49 0
      bi-service/src/main/java/com/diagbot/aggregate/NeoAgg.java
  64. 32 0
      bi-service/src/main/java/com/diagbot/aggregate/PrecmanAgg.java
  65. 14 0
      bi-service/src/main/java/com/diagbot/client/IcssmanServiceClient.java
  66. 24 0
      bi-service/src/main/java/com/diagbot/client/KnowledgemanServiceClient.java
  67. 19 0
      bi-service/src/main/java/com/diagbot/client/NeoServiceClient.java
  68. 19 0
      bi-service/src/main/java/com/diagbot/client/PrecmanServiceClient.java
  69. 10 5
      bi-service/src/main/java/com/diagbot/client/UserServiceClient.java
  70. 16 0
      bi-service/src/main/java/com/diagbot/client/hystrix/IcssmanServiceHystrix.java
  71. 31 0
      bi-service/src/main/java/com/diagbot/client/hystrix/KnowledgemanServiceHystrix.java
  72. 24 0
      bi-service/src/main/java/com/diagbot/client/hystrix/NeoServiceHystrix.java
  73. 23 0
      bi-service/src/main/java/com/diagbot/client/hystrix/PrecmanServiceHystrix.java
  74. 15 4
      bi-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java
  75. 26 2
      bi-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  76. 28 0
      bi-service/src/main/java/com/diagbot/dto/BIDTO.java
  77. 17 0
      bi-service/src/main/java/com/diagbot/dto/BIItemDTO.java
  78. 18 0
      bi-service/src/main/java/com/diagbot/dto/BIModuleDTO.java
  79. 18 0
      bi-service/src/main/java/com/diagbot/dto/PrecCountDTO.java
  80. 21 0
      bi-service/src/main/java/com/diagbot/entity/Token.java
  81. 64 0
      bi-service/src/main/java/com/diagbot/enums/StatisticsDetailTypeEnum.java
  82. 58 0
      bi-service/src/main/java/com/diagbot/enums/StatisticsTypeEnum.java
  83. 243 0
      bi-service/src/main/java/com/diagbot/facade/StatisticsFacade.java
  84. 34 0
      bi-service/src/main/java/com/diagbot/web/StatisticsController.java
  85. 0 110
      bi-service/src/main/java/com/diagbot/web/SysLogController.java
  86. 9 9
      common/pom.xml
  87. 1 1
      common/src/main/java/com/diagbot/enums/IsDeleteEnum.java
  88. 52 0
      common/src/main/java/com/diagbot/enums/ProductTypeEnum.java
  89. 2 0
      config-server/src/main/resources/shared/aipt-service-dev.yml
  90. 2 0
      config-server/src/main/resources/shared/aipt-service-local.yml
  91. 2 0
      config-server/src/main/resources/shared/aipt-service-pro.yml
  92. 3 1
      config-server/src/main/resources/shared/aipt-service-test.yml
  93. 5 0
      config-server/src/main/resources/shared/bi-service-dev.yml
  94. 5 0
      config-server/src/main/resources/shared/bi-service-local.yml
  95. 5 0
      config-server/src/main/resources/shared/bi-service-pro.yml
  96. 5 0
      config-server/src/main/resources/shared/bi-service-test.yml
  97. 3 1
      config-server/src/main/resources/shared/icss-service-dev.yml
  98. 3 1
      config-server/src/main/resources/shared/icss-service-local.yml
  99. 2 0
      config-server/src/main/resources/shared/icss-service-pro.yml
  100. 0 0
      config-server/src/main/resources/shared/icss-service-test.yml

+ 1 - 1
admin-service/pom.xml

@@ -49,7 +49,7 @@
         <dependency>
         <dependency>
             <groupId>de.codecentric</groupId>
             <groupId>de.codecentric</groupId>
             <artifactId>spring-boot-admin-starter-server</artifactId>
             <artifactId>spring-boot-admin-starter-server</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.6</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>

+ 5 - 0
aipt-service/pom.xml

@@ -154,6 +154,11 @@
             <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
             <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>io.github.lvyahui8</groupId>
+            <artifactId>spring-boot-data-aggregator-starter</artifactId>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 415 - 0
aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java

@@ -0,0 +1,415 @@
+package com.diagbot.aggregate;
+
+import com.alibaba.fastjson.JSONObject;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.client.bean.FeatureRate;
+import com.diagbot.client.bean.HosCodeVO;
+import com.diagbot.client.bean.MedicalIndication;
+import com.diagbot.client.bean.MedicalIndicationDetail;
+import com.diagbot.client.bean.ResponseData;
+import com.diagbot.dto.ConceptPushDTO;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.FeatureTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.facade.ConceptFacade;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.FastJsonUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.LisConfigVO;
+import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import io.github.lvyahui8.spring.annotation.InvokeParameter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/10/17 11:32
+ */
+@Component
+public class PushItemAggregate {
+
+    @Autowired
+    private ConceptFacade conceptFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    @DataProvider("setAll")
+    public PushDTO setAll(
+            @DataConsumer("getDept") ConceptPushDTO dept,
+            @DataConsumer("setSymptom") List<ConceptPushDTO> symptom,
+            @DataConsumer("setVital") List<ConceptPushDTO> vital,
+            @DataConsumer("setLab") List<ConceptPushDTO> lab,
+            @DataConsumer("setPacs") List<ConceptPushDTO> pacs,
+            @DataConsumer("setDis") Map<String, List<ConceptPushDTO>> dis,
+            @DataConsumer("setMedicalIndications") List<MedicalIndication> medicalIndications) {
+        PushDTO pushDTO = new PushDTO();
+        if (null != dept) {
+            pushDTO.setDept(dept);
+        }
+
+        if (ListUtil.isNotEmpty(symptom)) {
+            pushDTO.setSymptom(symptom);
+        }
+        if (ListUtil.isNotEmpty(vital)) {
+            pushDTO.setVital(vital);
+        }
+        if (ListUtil.isNotEmpty(lab)) {
+            pushDTO.setLab(lab);
+        }
+        if (ListUtil.isNotEmpty(pacs)) {
+            pushDTO.setPacs(pacs);
+        }
+        if (null != dis) {
+            pushDTO.setDis(dis);
+        }
+        if (ListUtil.isNotEmpty(medicalIndications)) {
+            pushDTO.setMedicalIndications(medicalIndications);
+        }
+        return pushDTO;
+    }
+
+    /**
+     * 根据诊断推送确定科室
+     *
+     * @param data
+     * @return
+     */
+    @DataProvider("getDept")
+    public ConceptPushDTO getDept(@InvokeParameter("data") ResponseData data) {
+        List<FeatureRate> dis = data.getDis();
+        String deptName = "";
+        if (ListUtil.isNotEmpty(dis)) {
+            for (FeatureRate featureRate : dis) {
+                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                    deptName = featureRate.getExtraProperty();
+                    break;
+                }
+            }
+        }
+        //没有推送信息时,默认取全科模板
+        if (StringUtil.isBlank(deptName)) {
+            deptName = "全科";
+        }
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(deptName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+        ConceptPushDTO deptDTO = new ConceptPushDTO();
+        Concept dept = conceptFacade.getConcept(conceptBaseVO);
+        if (dept == null && deptName.equals("全科") == false) {
+            deptName = "全科";
+            conceptBaseVO.setName(deptName);
+            dept = conceptFacade.getConcept(conceptBaseVO);
+        }
+        if (dept != null) {
+            deptDTO.setName(deptName);
+            deptDTO.setConceptId(dept.getId());
+            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
+        }
+        return deptDTO;
+    }
+
+    @DataProvider("setSymptom")
+    public List<ConceptPushDTO> setSymptom(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                           @InvokeParameter("data") ResponseData data) {
+        List<ConceptPushDTO> symptomRes = ListUtil.newArrayList();
+        //症状 概念列表
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
+            List<FeatureRate> symptom = data.getSymptom();
+            if (ListUtil.isNotEmpty(symptom)) {
+                List<String> nameList = symptom
+                        .stream()
+                        .map(featureRate -> featureRate.getFeatureName())
+                        .collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    symptomRes = getConceptDTOList(nameList, LexiconTypeEnum.SYMPTOM.getKey());
+                }
+            }
+        }
+        return symptomRes;
+    }
+
+    @DataProvider("setVital")
+    public List<ConceptPushDTO> setVital(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                         @InvokeParameter("data") ResponseData data) {
+        List<ConceptPushDTO> vitalRes = ListUtil.newArrayList();
+        //查体 查体结果
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Result.getKey()))) {
+            List<FeatureRate> vital = data.getVitals();
+            if (ListUtil.isNotEmpty(vital)) {
+                List<String> nameList = vital
+                        .stream()
+                        .map(featureRate -> featureRate.getFeatureName())
+                        .collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    vitalRes = getConceptDTOList(nameList, LexiconTypeEnum.VITAL_RESULT.getKey());
+                }
+            }
+        }
+
+        //查体 查体指标
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Index.getKey()))) {
+            List<FeatureRate> vital = data.getVitals();
+            if (ListUtil.isNotEmpty(vital)) {
+                List<String> nameList = vital
+                        .stream()
+                        .map(featureRate -> featureRate.getFeatureName())
+                        .collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    vitalRes = getConceptDTOList(nameList, LexiconTypeEnum.VITAL_INDEX.getKey());
+                }
+            }
+        }
+        return vitalRes;
+    }
+
+    @DataProvider("setLab")
+    public List<ConceptPushDTO> setLab(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                       @InvokeParameter("data") ResponseData data,
+                                       @InvokeParameter("isConnect") Boolean isConnect,
+                                       @InvokeParameter("hosCode") String hosCode) {
+        List<ConceptPushDTO> labRes = ListUtil.newArrayList();
+        //化验 概念列表-公表项
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Lis.getKey()))) {
+            List<FeatureRate> lis = data.getLabs();
+            if (ListUtil.isNotEmpty(lis)) {
+                List<String> nameList = lis
+                        .stream()
+                        .map(featureRate -> featureRate.getFeatureName())
+                        .collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    List<ConceptPushDTO> lisDTO = getConceptDTOList(nameList, LexiconTypeEnum.LIS_PACKAGE.getKey());
+                    if (isConnect) {
+                        lisDTO = addClientName(lisDTO, hosCode, ConceptTypeEnum.Lis.getKey());
+                        //lisDTO = removeLisDetail(lisDTO);
+                    }
+                    labRes = lisDTO;
+                }
+            }
+        }
+        return labRes;
+    }
+
+    @DataProvider("setPacs")
+    public List<ConceptPushDTO> setPacs(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                        @InvokeParameter("data") ResponseData data,
+                                        @InvokeParameter("isConnect") Boolean isConnect,
+                                        @InvokeParameter("hosCode") String hosCode) {
+        List<ConceptPushDTO> labRes = ListUtil.newArrayList();
+        //辅检 概念列表
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Pacs.getKey()))) {
+            List<FeatureRate> pacs = data.getPacs();
+            if (ListUtil.isNotEmpty(pacs)) {
+                List<String> nameList = pacs
+                        .stream()
+                        .map(featureRate -> featureRate.getFeatureName())
+                        .collect(Collectors.toList());
+                if (ListUtil.isNotEmpty(nameList)) {
+                    List<ConceptPushDTO> pacsDTO = getConceptDTOList(nameList, LexiconTypeEnum.PACS_ITEMS.getKey());
+                    if (isConnect) {
+                        pacsDTO = addClientName(pacsDTO, hosCode, ConceptTypeEnum.Pacs.getKey());
+                    }
+                    labRes = pacsDTO;
+                }
+            }
+        }
+        return labRes;
+    }
+
+    @DataProvider("setDis")
+    public Map<String, List<ConceptPushDTO>> setDis(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                                    @InvokeParameter("data") ResponseData data,
+                                                    @InvokeParameter("isConnect") Boolean isConnect,
+                                                    @InvokeParameter("hosCode") String hosCode) {
+        List<FeatureRate> dis = data.getDis();
+        Map<String, List<ConceptPushDTO>> disRes = new HashMap<>();
+        //诊断 map
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Disease.getKey()))) {
+            if (ListUtil.isNotEmpty(dis)) {
+                Map<String, List<ConceptPushDTO>> disMapDTO = new LinkedHashMap<>();
+                Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
+                //诊断分类
+                for (FeatureRate featureRate : dis) {
+                    if (StringUtil.isBlank(featureRate.getDesc())) {
+                        featureRate.setDesc("{\"可能诊断\":\"\"}");
+                    }
+                    Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
+                    for (String disClass : descMap.keySet()) {
+                        List<FeatureRate> featureRateList = Lists.newLinkedList();
+                        if (disFeatureMap.get(disClass) != null) {
+                            featureRateList = disFeatureMap.get(disClass);
+                        }
+                        featureRateList.add(featureRate);
+                        disFeatureMap.put(disClass, featureRateList);
+                    }
+                }
+                for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
+                    List<String> nameListByDisClass = entry.getValue()
+                            .stream()
+                            .map(featureRate -> featureRate.getFeatureName())
+                            .collect(Collectors.toList());
+                    if (ListUtil.isNotEmpty(nameListByDisClass)) {
+                        List<ConceptPushDTO> disDTO
+                                = getConceptDTOList(nameListByDisClass, LexiconTypeEnum.DIAGNOSIS.getKey());
+                        if (isConnect) {
+                            disDTO = addClientName(disDTO, hosCode, ConceptTypeEnum.Disease.getKey());
+                        }
+                        disMapDTO.put(entry.getKey(), disDTO);
+                    }
+                }
+                disRes = disMapDTO;
+            }
+        }
+        return disRes;
+    }
+
+    @DataProvider("setMedicalIndications")
+    public List<MedicalIndication> setMedicalIndications(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
+                                                         @InvokeParameter("data") ResponseData data) {
+        List<MedicalIndication> medicalIndicationRes = ListUtil.newArrayList();
+        //核心指标 list
+        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Indication.getKey()))) {
+            List<MedicalIndication> medicalIndicationList = data.getMedicalIndications();
+            ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+            if (ListUtil.isNotEmpty(medicalIndicationList)) {
+                for (MedicalIndication medicalIndication : medicalIndicationList) {
+                    medicalIndication.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
+                    medicalIndication.setType(ConceptTypeEnum.Indication.getKey());
+                    //关联概念,增加概念id
+                    conceptBaseVO.setName(medicalIndication.getName());
+                    conceptBaseVO.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
+                    Concept medConcept = conceptFacade.getConcept(conceptBaseVO);
+                    if (medConcept != null) {
+                        medicalIndication.setConceptId(medConcept.getId());
+                    }
+                    if (ListUtil.isNotEmpty(medicalIndication.getDetails())) {
+                        for (MedicalIndicationDetail detail : medicalIndication.getDetails()) {
+                            //量表,增加概念id;其他类型保留图谱返回结果
+                            if (detail.getType().equals(1)) {
+                                JSONObject scaleJson = detail.getContent();
+                                if (null != scaleJson.get("name")) {
+                                    String scaleName = scaleJson.get("name").toString();
+                                    conceptBaseVO.setName(scaleName);
+                                    conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
+                                    Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
+                                    scaleJson.put("libType", LexiconTypeEnum.GAUGE.getKey());
+                                    scaleJson.put("type", ConceptTypeEnum.Scale.getKey());
+                                    if (scaleConcept != null) {
+                                        scaleJson.put("conceptId", scaleConcept.getId());
+                                    } else {
+                                        scaleJson.put("conceptId", null);
+                                    }
+                                    detail.setContent(scaleJson);
+                                }
+                            }
+                        }
+                    }
+                }
+                medicalIndicationRes = medicalIndicationList;
+            }
+        }
+        return medicalIndicationRes;
+    }
+
+
+    /**
+     * 推理返回概念
+     *
+     * @param nameList
+     * @param libType
+     * @return
+     */
+    public List<ConceptPushDTO> getConceptDTOList(List<String> nameList, Integer libType) {
+        List<Concept> concepts = conceptFacade.getListByNamesAndType(nameList, libType);
+        Map<String, Concept> conceptMap = EntityUtil.makeEntityMap(concepts, "libName");
+        List<ConceptPushDTO> conceptDTOS = Lists.newLinkedList();
+        for (String name : nameList) {
+            ConceptPushDTO conceptDTO = new ConceptPushDTO();
+            conceptDTO.setName(name);
+            conceptDTO.setLibType(libType);
+            conceptDTO.setType(ParamConvertUtil.libConvert2Concept(libType));
+            if (conceptMap.containsKey(name) && conceptMap.get(name) != null) {
+                Concept concept = conceptMap.get(name);
+                conceptDTO.setConceptId(concept.getId());
+            }
+            conceptDTOS.add(conceptDTO);
+        }
+        return conceptDTOS;
+    }
+
+
+    /**
+     * 添加外部名称(调用方)
+     *
+     * @param concepts
+     * @param hosCode
+     * @param type
+     * @return
+     */
+    public List<ConceptPushDTO> addClientName(List<ConceptPushDTO> concepts, String hosCode, Integer type) {
+        HosCodeVO hosCodeVO = new HosCodeVO();
+        hosCodeVO.setHosCode(hosCode);
+        LisConfigVO lisConfigVO = new LisConfigVO();
+        lisConfigVO.setHosCode(hosCode);
+        List<String> uniqueNameList = concepts
+                .stream()
+                .map(concept -> concept.getName())
+                .collect(Collectors.toList());
+        lisConfigVO.setUniqueNameList(uniqueNameList);
+        if (type.equals(ConceptTypeEnum.Lis.getKey())) {
+            RespDTO<Map<String, List<String>>> lisRes
+                    = tranServiceClient.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
+            if (RespDTOUtil.respIsOK(lisRes)) {
+                Map<String, List<String>> lisMappingByUniqueName = lisRes.data;
+                for (ConceptPushDTO concept : concepts) {
+                    List<String> clientNames = lisMappingByUniqueName.get(concept.getName());
+                    if (ListUtil.isNotEmpty(clientNames)) {
+                        concept.setClientNames(clientNames);
+                    }
+                }
+            }
+        } else if (type.equals(ConceptTypeEnum.Pacs.getKey())) {
+            RespDTO<Map<String, List<String>>> pacsRes
+                    = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
+            if (RespDTOUtil.respIsOK(pacsRes)) {
+                Map<String, List<String>> pacsConfigMapByUniqueName = pacsRes.data;
+                for (ConceptPushDTO concept : concepts) {
+                    List<String> clientNames = pacsConfigMapByUniqueName.get(concept.getName());
+                    if (ListUtil.isNotEmpty(clientNames)) {
+                        concept.setClientNames(clientNames);
+                    }
+                }
+            }
+        } else if (type.equals(ConceptTypeEnum.Disease.getKey())) {
+            RespDTO<Map<String, String>> disRes = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
+            if (RespDTOUtil.respIsOK(disRes)) {
+                Map<String, String> disMap = disRes.data;
+                for (ConceptPushDTO concept : concepts) {
+                    String clientName = disMap.get(concept.getName());
+                    if (StringUtil.isNotBlank(clientName)) {
+                        List<String> clientNames = Lists.newLinkedList();
+                        clientNames.add(clientName);
+                        concept.setClientNames(clientNames);
+                    }
+                }
+            }
+        }
+        return concepts;
+    }
+}

+ 199 - 0
aipt-service/src/main/java/com/diagbot/aggregate/TreatmentAggregate.java

@@ -0,0 +1,199 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.client.bean.AdverseReaction;
+import com.diagbot.client.bean.Medicition;
+import com.diagbot.client.bean.MedicitionClass;
+import com.diagbot.dto.ConceptDetailDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.entity.ConceptDetail;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.enums.PositionTypeEnum;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.ListUtil;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import io.github.lvyahui8.spring.annotation.InvokeParameter;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/24 10:01
+ */
+@Component
+public class TreatmentAggregate {
+
+    @DataProvider("setTreatmentAll")
+    public Map<String, Object> setTreatmentAll(@InvokeParameter("treatmentMap") Map<String, Object> treatmentMap,
+                                               @DataConsumer("setCommonTreatment") ConceptDetailDTO commonTreatment,
+                                               @DataConsumer("setSurgeryTreatment") ConceptDetailDTO surgeryTreatment,
+                                               @DataConsumer("setDrugs") List<MedicitionClass> drugsList,
+                                               @DataConsumer("setAdverseReactions") List<AdverseReaction> adverseReactionList) {
+        if (treatmentMap == null) {
+            treatmentMap = new LinkedHashMap<>();
+        }
+        treatmentMap.put("commonTreatment", commonTreatment);
+        treatmentMap.put("surgeryTreatment", surgeryTreatment);
+        treatmentMap.put("treatment", drugsList);
+        treatmentMap.put("adverseReactions", adverseReactionList);
+
+        return treatmentMap;
+    }
+
+    @DataProvider("setCommonTreatment")
+    public ConceptDetailDTO setCommonTreatment(@InvokeParameter("diseaseName") String diseaseName,
+                                               @InvokeParameter("hasConDetailMap") Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap) {
+        ConceptDetailDTO conceptDetailDTO = null;
+        if (hasConDetailMap != null && hasConDetailMap.get(diseaseName) != null
+                && ListUtil.isNotEmpty(hasConDetailMap
+                .get(diseaseName)
+                .get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())))) {
+            List<ConceptDetail> diseaseConDetailList
+                    = hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey()));
+            for (ConceptDetail conceptDetail : diseaseConDetailList) {
+                List<String> positionList = Arrays.asList(conceptDetail.getPosition().split(",|,"));
+                if (positionList.contains(String.valueOf(PositionTypeEnum.T3.getKey()))) {
+                    conceptDetailDTO = new ConceptDetailDTO();
+                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+                    break;
+                }
+            }
+        }
+        return conceptDetailDTO;
+    }
+
+    @DataProvider("setSurgeryTreatment")
+    public ConceptDetailDTO setSurgeryTreatment(@InvokeParameter("diseaseName") String diseaseName,
+                                                @InvokeParameter("hasConDetailMap") Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap) {
+        ConceptDetailDTO conceptDetailDTO = null;
+        if (hasConDetailMap != null && hasConDetailMap.get(diseaseName) != null
+                && ListUtil.isNotEmpty(hasConDetailMap
+                .get(diseaseName)
+                .get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())))) {
+            List<ConceptDetail> diseaseConDetailList
+                    = hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey()));
+            for (ConceptDetail conceptDetail : diseaseConDetailList) {
+                List<String> positionList = Arrays.asList(conceptDetail.getPosition().split(",|,"));
+                if (positionList.contains(String.valueOf(PositionTypeEnum.T4.getKey()))) {
+                    conceptDetailDTO = new ConceptDetailDTO();
+                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+                    break;
+                }
+            }
+        }
+        return conceptDetailDTO;
+    }
+
+    @DataProvider("setDrugs")
+    public List<MedicitionClass> setDrugs(@InvokeParameter("drugsList") List<MedicitionClass> drugsList,
+                                          @InvokeParameter("conceptMap") Map<String, Map<Long, Concept>> conceptMap,
+                                          @InvokeParameter("hasConDetailMap") Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap) {
+        if (ListUtil.isNotEmpty(drugsList)) {
+            for (MedicitionClass medicitionClass : drugsList) {
+                if (conceptMap != null
+                        && conceptMap.get(medicitionClass.getBigdrugsName()) != null
+                        && conceptMap.get(medicitionClass
+                        .getBigdrugsName())
+                        .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+                    Concept cateBigConcept = conceptMap
+                            .get(medicitionClass.getBigdrugsName())
+                            .get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()));
+                    if (cateBigConcept != null) {
+                        medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
+                        if (hasConDetailMap != null
+                                && hasConDetailMap.get(cateBigConcept.getLibName()) != null
+                                && hasConDetailMap.get(cateBigConcept.getLibName())
+                                .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+                            medicitionClass.setShowInfo("1");
+                        } else {
+                            medicitionClass.setShowInfo("0");
+                        }
+                    }
+                }
+                medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
+                medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
+                if (conceptMap != null
+                        && conceptMap.get(medicitionClass.getSubdrugsName()) != null
+                        && conceptMap.get(medicitionClass.getSubdrugsName())
+                        .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()))) {
+                    Concept cateSmallConcept = conceptMap
+                            .get(medicitionClass.getSubdrugsName())
+                            .get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()));
+                    if (cateSmallConcept != null) {
+                        medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
+                    }
+                }
+                medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
+                medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
+
+                LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
+                for (Medicition medicition : medicitionList) {
+                    if (conceptMap != null
+                            && conceptMap.get(medicition.getMedicitionName()) != null
+                            && conceptMap.get(medicition.getMedicitionName())
+                            .containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+                        Concept drugConcept = conceptMap
+                                .get(medicition.getMedicitionName())
+                                .get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()));
+                        if (drugConcept != null) {
+                            medicition.setConceptId(drugConcept.getId());
+                        }
+                    }
+                    medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
+                    medicition.setType(ConceptTypeEnum.Drug.getKey());
+                    if (hasConDetailMap != null
+                            && hasConDetailMap.get(medicition.getMedicitionName()) != null
+                            && hasConDetailMap.get(medicition.getMedicitionName())
+                            .containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+                        medicition.setShowInfo("1");
+                    } else {
+                        medicition.setShowInfo("0");
+                    }
+                }
+                medicitionClass.setMedicitionsList(medicitionList);
+            }
+        }
+        return drugsList;
+    }
+
+    @DataProvider("setAdverseReactions")
+    public List<AdverseReaction> setAdverseReactions(@InvokeParameter("adverseReactionList") List<AdverseReaction> adverseReactionList,
+                                                     @InvokeParameter("conceptMap") Map<String, Map<Long, Concept>> conceptMap,
+                                                     @InvokeParameter("hasConDetailMap") Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap,
+                                                     @InvokeParameter("isChronic") Boolean isChronic) {
+        if (isChronic) {
+            //不良反应
+            for (AdverseReaction adverseReaction : adverseReactionList) {
+                if (conceptMap != null
+                        && conceptMap.get(adverseReaction.getName()) != null
+                        && conceptMap.get(adverseReaction.getName())
+                        .containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+                    Concept adConcept = conceptMap
+                            .get(adverseReaction.getName())
+                            .get(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()));
+                    if (adConcept != null) {
+                        adverseReaction.setConceptId(adConcept.getId());
+                    }
+                }
+                adverseReaction.setLibType(LexiconTypeEnum.SIDE_EFFECTS.getKey());
+                adverseReaction.setType(ConceptTypeEnum.SIDE_EFFECTS.getKey());
+                if (hasConDetailMap != null
+                        && hasConDetailMap.get(adverseReaction.getName()) != null
+                        && hasConDetailMap.get(adverseReaction.getName())
+                        .containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+                    adverseReaction.setShowInfo("1");
+                } else {
+                    adverseReaction.setShowInfo("0");
+                }
+            }
+        }
+        return adverseReactionList;
+    }
+}

+ 6 - 1
aipt-service/src/main/java/com/diagbot/dto/ConceptDetailDTO.java

@@ -30,4 +30,9 @@ public class ConceptDetailDTO {
      * 是否诊断依据(1-是,0-否)
      * 是否诊断依据(1-是,0-否)
      */
      */
     private Integer isReason;
     private Integer isReason;
-}
+
+    /**
+     * 显示位置(多选):1-推送展示,2-更多展示,3-一般治疗展示,4-手术治疗展示,5-药品说明书,6-不良反应,7-症状描述信息(智能分诊)
+     */
+    private String position;
+}

+ 3 - 1
aipt-service/src/main/java/com/diagbot/dto/ConceptIntroduceDTO.java

@@ -13,6 +13,8 @@ import java.util.List;
  */
  */
 @Getter
 @Getter
 @Setter
 @Setter
-public class ConceptIntroduceDTO extends ConceptBaseDTO{
+public class ConceptIntroduceDTO extends ConceptBaseDTO {
     private List<ConceptDetailDTO> details = ListUtil.newArrayList();
     private List<ConceptDetailDTO> details = ListUtil.newArrayList();
+    private Long libType;
+    private Integer type;
 }
 }

+ 3 - 1
aipt-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java

@@ -3,6 +3,8 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
+import java.util.List;
+
 /**
 /**
  * @Description:
  * @Description:
  * @Author:zhaops
  * @Author:zhaops
@@ -13,6 +15,6 @@ import lombok.Setter;
 public class ConceptPushDTO extends ConceptBaseDTO {
 public class ConceptPushDTO extends ConceptBaseDTO {
     private Integer libType;
     private Integer libType;
     //数据服务模式调用方名称
     //数据服务模式调用方名称
-    private String clientName;
+    private List<String> clientNames;
     private Integer type;
     private Integer type;
 }
 }

+ 60 - 0
aipt-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java

@@ -0,0 +1,60 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:12:12
+ */
+@Getter
+@Setter
+public class VersionDetailDTO {
+	
+	private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+   // private String creator;
+
+  
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+  //  private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 48 - 0
aipt-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java

@@ -0,0 +1,48 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:09:33
+ */
+@Getter
+@Setter
+public class VersionWrapperDTO {
+	
+	private Long id;
+	/**
+	 * 记录创建时间
+	 */
+	private Date gmtCreate;
+
+	/**
+	 * 创建人,0表示无创建人值
+	 */
+	private String creator;
+
+	/**
+	 * 名称
+	 */
+	private String name;
+
+	private Date refreshTime;
+
+	/**
+	 * 1:启动,0:不启用
+	 */
+	private String status;
+
+	private List<VersionDetailDTO> detail;
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+}

+ 25 - 25
icssman-service/src/main/java/com/diagbot/entity/LisMapping.java

@@ -1,9 +1,9 @@
 package com.diagbot.entity;
 package com.diagbot.entity;
 
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableName;
+
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 
 
@@ -13,9 +13,9 @@ import java.util.Date;
  * </p>
  * </p>
  *
  *
  * @author zhaops
  * @author zhaops
- * @since 2019-03-26
+ * @since 2019-09-20
  */
  */
-@TableName("icss_lis_mapping")
+@TableName("kl_lis_mapping")
 public class LisMapping implements Serializable {
 public class LisMapping implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
@@ -52,19 +52,19 @@ public class LisMapping implements Serializable {
     private String modifier;
     private String modifier;
 
 
     /**
     /**
-     * 套餐名
+     * 化验套餐术语id
      */
      */
-    private String mealName;
+    private Long mealId;
 
 
     /**
     /**
-     * 项目名
+     * 化验明细术语id
      */
      */
-    private String itemName;
+    private Long itemId;
 
 
     /**
     /**
-     * 公表名
+     * 化验公表术语id
      */
      */
-    private String uniqueName;
+    private Long uniqueId;
 
 
     public Long getId() {
     public Long getId() {
         return id;
         return id;
@@ -108,26 +108,26 @@ public class LisMapping implements Serializable {
     public void setModifier(String modifier) {
     public void setModifier(String modifier) {
         this.modifier = modifier;
         this.modifier = modifier;
     }
     }
-    public String getMealName() {
-        return mealName;
+    public Long getMealId() {
+        return mealId;
     }
     }
 
 
-    public void setMealName(String mealName) {
-        this.mealName = mealName;
+    public void setMealId(Long mealId) {
+        this.mealId = mealId;
     }
     }
-    public String getItemName() {
-        return itemName;
+    public Long getItemId() {
+        return itemId;
     }
     }
 
 
-    public void setItemName(String itemName) {
-        this.itemName = itemName;
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
     }
     }
-    public String getUniqueName() {
-        return uniqueName;
+    public Long getUniqueId() {
+        return uniqueId;
     }
     }
 
 
-    public void setUniqueName(String uniqueName) {
-        this.uniqueName = uniqueName;
+    public void setUniqueId(Long uniqueId) {
+        this.uniqueId = uniqueId;
     }
     }
 
 
     @Override
     @Override
@@ -139,9 +139,9 @@ public class LisMapping implements Serializable {
         ", gmtModified=" + gmtModified +
         ", gmtModified=" + gmtModified +
         ", creator=" + creator +
         ", creator=" + creator +
         ", modifier=" + modifier +
         ", modifier=" + modifier +
-        ", mealName=" + mealName +
-        ", itemName=" + itemName +
-        ", uniqueName=" + uniqueName +
+        ", mealId=" + mealId +
+        ", itemId=" + itemId +
+        ", uniqueId=" + uniqueId +
         "}";
         "}";
     }
     }
 }
 }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/entity/VersionDetail.java

@@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * @author wangfeng
  * @author wangfeng
  * @since 2018-11-20
  * @since 2018-11-20
  */
  */
-@TableName("icss_version_detail")
+@TableName("kl_version_detail")
 public class VersionDetail implements Serializable {
 public class VersionDetail implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 16 - 3
icssman-service/src/main/java/com/diagbot/entity/VersionInfo.java

@@ -12,10 +12,10 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * 版本信息(关于)
  * 版本信息(关于)
  * </p>
  * </p>
  *
  *
- * @author wangfeng
- * @since 2018-11-20
+ * @author gaodm
+ * @since 2019-08-07
  */
  */
-@TableName("icss_version_info")
+@TableName("kl_version_info")
 public class VersionInfo implements Serializable {
 public class VersionInfo implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
@@ -48,6 +48,11 @@ public class VersionInfo implements Serializable {
      */
      */
     private String modifier;
     private String modifier;
 
 
+    /**
+     * 产品类型(1:云平台内部;2:云平台外部;3:icss;4:智能分诊;5:数据服务模式;6:智能预问诊)
+     */
+    private Integer productType;
+
     /**
     /**
      * 名称
      * 名称
      */
      */
@@ -107,6 +112,13 @@ public class VersionInfo implements Serializable {
     public void setModifier(String modifier) {
     public void setModifier(String modifier) {
         this.modifier = modifier;
         this.modifier = modifier;
     }
     }
+    public Integer getProductType() {
+        return productType;
+    }
+
+    public void setProductType(Integer productType) {
+        this.productType = productType;
+    }
     public String getName() {
     public String getName() {
         return name;
         return name;
     }
     }
@@ -145,6 +157,7 @@ public class VersionInfo implements Serializable {
         ", gmtModified=" + gmtModified +
         ", gmtModified=" + gmtModified +
         ", creator=" + creator +
         ", creator=" + creator +
         ", modifier=" + modifier +
         ", modifier=" + modifier +
+        ", productType=" + productType +
         ", name=" + name +
         ", name=" + name +
         ", refreshTime=" + refreshTime +
         ", refreshTime=" + refreshTime +
         ", status=" + status +
         ", status=" + status +

+ 18 - 0
aipt-service/src/main/java/com/diagbot/entity/wrapper/LisMappingWrapper.java

@@ -0,0 +1,18 @@
+package com.diagbot.entity.wrapper;
+
+import com.diagbot.entity.LisMapping;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/9/20 13:42
+ */
+@Getter
+@Setter
+public class LisMappingWrapper extends LisMapping {
+    private String mealName;
+    private String itemName;
+    private String uniqueName;
+}

+ 6 - 7
aipt-service/src/main/java/com/diagbot/enums/ConceptTypeEnum.java

@@ -20,26 +20,25 @@ public enum ConceptTypeEnum implements KeyedNamed {
     Drug_Category_Big(9, "药品分类-大类"),
     Drug_Category_Big(9, "药品分类-大类"),
     SIDE_EFFECTS(10, "不良反应"),
     SIDE_EFFECTS(10, "不良反应"),
     Drug_Category_Small(11, "药品分类-小类"),
     Drug_Category_Small(11, "药品分类-小类"),
-    LIS_TABLES(12,"化验公表项"),
-    DEPARTMENT(15,"科室"),
+    LIS_TABLES(12, "化验公表项"),
+    DEPARTMENT(15, "科室"),
     Scale(21, "量表"),
     Scale(21, "量表"),
     Indication(22, "指标"),
     Indication(22, "指标"),
     LisDetail(51, "化验明细");
     LisDetail(51, "化验明细");
 
 
 
 
-
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    ConceptTypeEnum(Integer key, String name) {
+    ConceptTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static ConceptTypeEnum getEnum(Integer key) {
+    public static ConceptTypeEnum getEnum(int key) {
         for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
         for (ConceptTypeEnum item : ConceptTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -48,7 +47,7 @@ public enum ConceptTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         ConceptTypeEnum item = getEnum(key);
         ConceptTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 4
aipt-service/src/main/java/com/diagbot/enums/DisTypeEnum.java

@@ -13,17 +13,17 @@ public enum DisTypeEnum implements KeyedNamed {
     EMERGENCY(2, "急诊");
     EMERGENCY(2, "急诊");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    DisTypeEnum(Integer key, String name) {
+    DisTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static DisTypeEnum getEnum(Integer key) {
+    public static DisTypeEnum getEnum(int key) {
         for (DisTypeEnum item : DisTypeEnum.values()) {
         for (DisTypeEnum item : DisTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -32,7 +32,7 @@ public enum DisTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         DisTypeEnum item = getEnum(key);
         DisTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 4
aipt-service/src/main/java/com/diagbot/enums/FeatureTypeEnum.java

@@ -23,17 +23,17 @@ public enum FeatureTypeEnum implements KeyedNamed {
     Feature_Type_Indication(22, "指标");
     Feature_Type_Indication(22, "指标");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    FeatureTypeEnum(Integer key, String name) {
+    FeatureTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static FeatureTypeEnum getEnum(Integer key) {
+    public static FeatureTypeEnum getEnum(int key) {
         for (FeatureTypeEnum item : FeatureTypeEnum.values()) {
         for (FeatureTypeEnum item : FeatureTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -42,7 +42,7 @@ public enum FeatureTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         FeatureTypeEnum item = getEnum(key);
         FeatureTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 23 - 23
aipt-service/src/main/java/com/diagbot/enums/LexiconRSTypeEnum.java

@@ -9,38 +9,38 @@ import lombok.Setter;
  * @time: 2019/5/6 13:58
  * @time: 2019/5/6 13:58
  */
  */
 public enum LexiconRSTypeEnum implements KeyedNamed {
 public enum LexiconRSTypeEnum implements KeyedNamed {
-    IS_A(1,"是"),
-    EQUAL_TO(2,"同义于"),
-    INCLUDE_OF(3,"包含于"),
-    ASSOCIATED_WITH(4,"与相关"),
-    CAUSE(5,"引起"),
-    LOCATED_AT(6,"位于"),
-    AKA(7,"别名"),
-    INSURE_LEVEL(8,"医保"),
-    APPLIED_TO(9,"适用于"),
-    PREFERRED_MEDS(10,"首选药物"),
-    TREAT(11,"治疗"),
-    USAGE(12,"用法"),
-    REACTION(13,"不良反应"),
-    DO_AND_DONOT(14,"注意事项"),
-    SPEC(15,"规格"),
-    HAS(16,"有"),
-    ORDER_BY(17,"包含排列于"),
-    SUBITEM(18,"包含子项"),
-    PUSH(19,"推送");
+    IS_A(1, "是"),
+    EQUAL_TO(2, "同义于"),
+    INCLUDE_OF(3, "包含于"),
+    ASSOCIATED_WITH(4, "与相关"),
+    CAUSE(5, "引起"),
+    LOCATED_AT(6, "位于"),
+    AKA(7, "别名"),
+    INSURE_LEVEL(8, "医保"),
+    APPLIED_TO(9, "适用于"),
+    PREFERRED_MEDS(10, "首选药物"),
+    TREAT(11, "治疗"),
+    USAGE(12, "用法"),
+    REACTION(13, "不良反应"),
+    DO_AND_DONOT(14, "注意事项"),
+    SPEC(15, "规格"),
+    HAS(16, "有"),
+    ORDER_BY(17, "包含排列于"),
+    SUBITEM(18, "包含子项"),
+    PUSH(19, "推送");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    LexiconRSTypeEnum(Integer key, String name) {
+    LexiconRSTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static LexiconRSTypeEnum getEnum(Integer key) {
+    public static LexiconRSTypeEnum getEnum(int key) {
         for (LexiconRSTypeEnum item : LexiconRSTypeEnum.values()) {
         for (LexiconRSTypeEnum item : LexiconRSTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -49,7 +49,7 @@ public enum LexiconRSTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         LexiconRSTypeEnum item = getEnum(key);
         LexiconRSTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 75 - 75
aipt-service/src/main/java/com/diagbot/enums/LexiconTypeEnum.java

@@ -9,91 +9,91 @@ import lombok.Setter;
  * @time: 2019/5/6 13:58
  * @time: 2019/5/6 13:58
  */
  */
 public enum LexiconTypeEnum implements KeyedNamed {
 public enum LexiconTypeEnum implements KeyedNamed {
-    SYMPTOM(1,"症状"),
-    TIME(2,"时间"),
-    BODYPART(3,"部位"),
-    NATURE(4,"性质"),
-    CAUSE(5,"诱因"),
-    DEGREE(6,"程度"),
-    NEGATIVE(7,"阴性"),
-    POSITIVE(8,"阳性"),
-    COMPANY(9,"单位"),
-    DRUGS(10,"药品通用名"),
-    TREATMENT(11,"治疗"),
-    LIS_PACKAGE(12,"化验套餐"),
-    LIS_DETAILS(13,"化验明细"),
-    LIS_RESULTS(14,"化验结果"),
-    PACS_PACKAGE(15,"辅检套餐"),
-    PACS_ITEMS(16,"辅检项目"),
-    PACS_RESULTS(17,"辅检结果"),
-    DIAGNOSIS(18,"诊断"),
-    CONNECTIVES(19,"连接词"),
-    POSITION(20,"方位"),
-    RELATIVES(21,"亲属"),
-    MARRIAGE(22,"婚姻"),
-    FOOD(23,"食品"),
-    HISTORY(24,"历史"),
-    OPERATION(25,"手术"),
-    SYMPTOM_MANIFESTATION(26,"症状表现"),
-    DIGITAL_QUANTIFIER(27,"数字量词"),
-    NUMBER(28,"数字"),
-    DRUG_CATEGORY_BIG(29,"药品大类"),
-    DRUG_CATEGORY_SMALL(30,"药品小类"),
-    PACS_CATEGORY_BIG(31,"辅检大类"),
-    PACS_CATEGORY_SMALL(32,"辅检小类"),
-    VITAL_INDEX(33,"体征指标"),
-    VITAL_INDEX_VALUE(34,"体征指标值"),
-    VITAL_RESULT(35,"体征结果"),
-    PLACE(36,"地点"),
-    OCCUPATION(37,"职业"),
-    PERSONAL_HISTORY(38,"个人史"),
-    PERSONAL_HISTORY_DESCRIPTION(39,"个人史描述"),
-    TIME_DESCRIPTION(40,"时间描述"),
-    SYMPTOM_INDEX(41,"症状指标"),
-    MEDICAL_SUPPLIES(42,"医用耗材 "),
-    DEGREE_CLASSIFIER(43,"程度量词"),
-    OTHER(44,"其他"),
-    DELETE(45,"删除"),
-    LIS_TABLES(46,"化验公表项"),
-    DEPARTMENT(47,"科室"),
-    GAUGE(48,"量表"),
-    SIDE_EFFECTS(49,"不良反应"),
-    CORE_INDICATORS(50,"核心指标"),
-    TYPES_OF_DISEASE(51,"疾病类型(慢病|急诊)"),
-    PART_AREA(52,"部位区域"),
-    LOCATION_AREA(52,"部位区域"),
-    CHEMICAL_NAME_OF_DRUG(53,"药品化学名"),
-    DRUG_TRADE_NAMES(54,"药品商品名"),
-    HISTORY_OF_PAST_DISEASES(55,"既往疾病史"),
-    HISTORY_OF_TRAUMA(56,"外伤史"),
-    HISTORY_OF_SURGERY(57,"手术史"),
-    HISTORY_OF_BLOOD_TRANSFUSION(58,"输血史"),
-    INFECTIOUS_DISEASE_HISTORY(59,"传染病史"),
-    BAD_HABITS(60,"不良习惯"),
-    MARITAL_HISTORY(61,"冶游史"),
-    HISTORY_OF_MARRIAGE_AND_CHILDBEARING(62,"婚育史"),
-    BIRTH_HISTORY(63,"生育史"),
-    FAMILY_HISTORY(64,"家族史"),
-    FOOD_ALLERGY_HISTORY(65,"食物过敏史"),
-    HISTORY_OF_DRUG_ALLERGY(66,"药物过敏史"),
-    FAMILY_RELATED_INFECTIOUS_DISEASE_HISTORY(67,"家族相关传染病史"),
-    FURTHER_CONSULTATION(68,"复诊"),
-    DIAGNOSTIC_CRITERIA(69,"诊断依据条件"),
-    OTHER_DIAGNOSTIC_CRITERIA(70,"诊断依据其他");
+    SYMPTOM(1, "症状"),
+    TIME(2, "时间"),
+    BODYPART(3, "部位"),
+    NATURE(4, "性质"),
+    CAUSE(5, "诱因"),
+    DEGREE(6, "程度"),
+    NEGATIVE(7, "阴性"),
+    POSITIVE(8, "阳性"),
+    COMPANY(9, "单位"),
+    DRUGS(10, "药品通用名"),
+    TREATMENT(11, "治疗"),
+    LIS_PACKAGE(12, "化验套餐"),
+    LIS_DETAILS(13, "化验明细"),
+    LIS_RESULTS(14, "化验结果"),
+    PACS_PACKAGE(15, "辅检套餐"),
+    PACS_ITEMS(16, "辅检项目"),
+    PACS_RESULTS(17, "辅检结果"),
+    DIAGNOSIS(18, "诊断"),
+    CONNECTIVES(19, "连接词"),
+    POSITION(20, "方位"),
+    RELATIVES(21, "亲属"),
+    MARRIAGE(22, "婚姻"),
+    FOOD(23, "食品"),
+    HISTORY(24, "历史"),
+    OPERATION(25, "手术"),
+    SYMPTOM_MANIFESTATION(26, "症状表现"),
+    DIGITAL_QUANTIFIER(27, "数字量词"),
+    NUMBER(28, "数字"),
+    DRUG_CATEGORY_BIG(29, "药品大类"),
+    DRUG_CATEGORY_SMALL(30, "药品小类"),
+    PACS_CATEGORY_BIG(31, "辅检大类"),
+    PACS_CATEGORY_SMALL(32, "辅检小类"),
+    VITAL_INDEX(33, "体征指标"),
+    VITAL_INDEX_VALUE(34, "体征指标值"),
+    VITAL_RESULT(35, "体征结果"),
+    PLACE(36, "地点"),
+    OCCUPATION(37, "职业"),
+    PERSONAL_HISTORY(38, "个人史"),
+    PERSONAL_HISTORY_DESCRIPTION(39, "个人史描述"),
+    TIME_DESCRIPTION(40, "时间描述"),
+    SYMPTOM_INDEX(41, "症状指标"),
+    MEDICAL_SUPPLIES(42, "医用耗材 "),
+    DEGREE_CLASSIFIER(43, "程度量词"),
+    OTHER(44, "其他"),
+    DELETE(45, "删除"),
+    LIS_TABLES(46, "化验公表项"),
+    DEPARTMENT(47, "科室"),
+    GAUGE(48, "量表"),
+    SIDE_EFFECTS(49, "不良反应"),
+    CORE_INDICATORS(50, "核心指标"),
+    TYPES_OF_DISEASE(51, "疾病类型(慢病|急诊)"),
+    PART_AREA(52, "部位区域"),
+    LOCATION_AREA(52, "部位区域"),
+    CHEMICAL_NAME_OF_DRUG(53, "药品化学名"),
+    DRUG_TRADE_NAMES(54, "药品商品名"),
+    HISTORY_OF_PAST_DISEASES(55, "既往疾病史"),
+    HISTORY_OF_TRAUMA(56, "外伤史"),
+    HISTORY_OF_SURGERY(57, "手术史"),
+    HISTORY_OF_BLOOD_TRANSFUSION(58, "输血史"),
+    INFECTIOUS_DISEASE_HISTORY(59, "传染病史"),
+    BAD_HABITS(60, "不良习惯"),
+    MARITAL_HISTORY(61, "冶游史"),
+    HISTORY_OF_MARRIAGE_AND_CHILDBEARING(62, "婚育史"),
+    BIRTH_HISTORY(63, "生育史"),
+    FAMILY_HISTORY(64, "家族史"),
+    FOOD_ALLERGY_HISTORY(65, "食物过敏史"),
+    HISTORY_OF_DRUG_ALLERGY(66, "药物过敏史"),
+    FAMILY_RELATED_INFECTIOUS_DISEASE_HISTORY(67, "家族相关传染病史"),
+    FURTHER_CONSULTATION(68, "复诊"),
+    DIAGNOSTIC_CRITERIA(69, "诊断依据条件"),
+    OTHER_DIAGNOSTIC_CRITERIA(70, "诊断依据其他");
 
 
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    LexiconTypeEnum(Integer key, String name) {
+    LexiconTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static LexiconTypeEnum getEnum(Integer key) {
+    public static LexiconTypeEnum getEnum(int key) {
         for (LexiconTypeEnum item : LexiconTypeEnum.values()) {
         for (LexiconTypeEnum item : LexiconTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -102,7 +102,7 @@ public enum LexiconTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         LexiconTypeEnum item = getEnum(key);
         LexiconTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 4
aipt-service/src/main/java/com/diagbot/enums/LisSourceEnum.java

@@ -13,17 +13,17 @@ public enum LisSourceEnum implements KeyedNamed {
     Outer(1, "外部");
     Outer(1, "外部");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    LisSourceEnum(Integer key, String name) {
+    LisSourceEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static LisSourceEnum getEnum(Integer key) {
+    public static LisSourceEnum getEnum(int key) {
         for (LisSourceEnum item : LisSourceEnum.values()) {
         for (LisSourceEnum item : LisSourceEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -32,7 +32,7 @@ public enum LisSourceEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         LisSourceEnum item = getEnum(key);
         LisSourceEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 4
aipt-service/src/main/java/com/diagbot/enums/PositionTypeEnum.java

@@ -18,17 +18,17 @@ public enum PositionTypeEnum implements KeyedNamed {
     T7(7, "描述信息");
     T7(7, "描述信息");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    PositionTypeEnum(Integer key, String name) {
+    PositionTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static PositionTypeEnum getEnum(Integer key) {
+    public static PositionTypeEnum getEnum(int key) {
         for (PositionTypeEnum item : PositionTypeEnum.values()) {
         for (PositionTypeEnum item : PositionTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -37,7 +37,7 @@ public enum PositionTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         PositionTypeEnum item = getEnum(key);
         PositionTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 5 - 5
aipt-service/src/main/java/com/diagbot/enums/QuestionTypeEnum.java

@@ -17,22 +17,22 @@ public enum QuestionTypeEnum implements KeyedNamed {
     Disease(7, "诊断"),
     Disease(7, "诊断"),
     Drug(8, "药品"),
     Drug(8, "药品"),
     DrugClass(9, "药品分类"),
     DrugClass(9, "药品分类"),
-    AdverseReaction(10,"不良反应"),
+    AdverseReaction(10, "不良反应"),
     Scale(21, "量表"),
     Scale(21, "量表"),
     MedicalIndication(22, "推送指标");
     MedicalIndication(22, "推送指标");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    QuestionTypeEnum(Integer key, String name) {
+    QuestionTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static QuestionTypeEnum getEnum(Integer key) {
+    public static QuestionTypeEnum getEnum(int key) {
         for (QuestionTypeEnum item : QuestionTypeEnum.values()) {
         for (QuestionTypeEnum item : QuestionTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -41,7 +41,7 @@ public enum QuestionTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         QuestionTypeEnum item = getEnum(key);
         QuestionTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 5
aipt-service/src/main/java/com/diagbot/enums/ScaleTypeEnum.java

@@ -4,7 +4,6 @@ import com.diagbot.core.KeyedNamed;
 import lombok.Setter;
 import lombok.Setter;
 
 
 /**
 /**
- * 
  * @author zhoutg
  * @author zhoutg
  * @Description: 诊断类型
  * @Description: 诊断类型
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
@@ -14,17 +13,17 @@ public enum ScaleTypeEnum implements KeyedNamed {
     PUSH(1, "推理");
     PUSH(1, "推理");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    ScaleTypeEnum(Integer key, String name) {
+    ScaleTypeEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static ScaleTypeEnum getEnum(Integer key) {
+    public static ScaleTypeEnum getEnum(int key) {
         for (ScaleTypeEnum item : ScaleTypeEnum.values()) {
         for (ScaleTypeEnum item : ScaleTypeEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -33,7 +32,7 @@ public enum ScaleTypeEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         ScaleTypeEnum item = getEnum(key);
         ScaleTypeEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 4 - 5
aipt-service/src/main/java/com/diagbot/enums/StatusEnum.java

@@ -4,7 +4,6 @@ import com.diagbot.core.KeyedNamed;
 import lombok.Setter;
 import lombok.Setter;
 
 
 /**
 /**
- * 
  * @author wangfeng
  * @author wangfeng
  * @Description: TODO
  * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
@@ -14,17 +13,17 @@ public enum StatusEnum implements KeyedNamed {
     Enable(1, "启用");
     Enable(1, "启用");
 
 
     @Setter
     @Setter
-    private Integer key;
+    private int key;
 
 
     @Setter
     @Setter
     private String name;
     private String name;
 
 
-    StatusEnum(Integer key, String name) {
+    StatusEnum(int key, String name) {
         this.key = key;
         this.key = key;
         this.name = name;
         this.name = name;
     }
     }
 
 
-    public static StatusEnum getEnum(Integer key) {
+    public static StatusEnum getEnum(int key) {
         for (StatusEnum item : StatusEnum.values()) {
         for (StatusEnum item : StatusEnum.values()) {
             if (item.key == key) {
             if (item.key == key) {
                 return item;
                 return item;
@@ -33,7 +32,7 @@ public enum StatusEnum implements KeyedNamed {
         return null;
         return null;
     }
     }
 
 
-    public static String getName(Integer key) {
+    public static String getName(int key) {
         StatusEnum item = getEnum(key);
         StatusEnum item = getEnum(key);
         return item != null ? item.name : null;
         return item != null ? item.name : null;
     }
     }

+ 31 - 30
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.CalculateData;
-import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.Lexeme;
 import com.diagbot.dto.Lexeme;
@@ -17,23 +16,13 @@ import com.diagbot.service.ScaleContentService;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.SearchVo;
 import com.diagbot.vo.SearchVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -73,19 +62,19 @@ public class ClinicalFacade {
      */
      */
     public ResponseData processClinicalData(@RequestBody SearchVo searchVo) {
     public ResponseData processClinicalData(@RequestBody SearchVo searchVo) {
         SearchVo sData = searchVo;
         SearchVo sData = searchVo;
-//        Map<String, List<Map<String, String>>> standWord = getStandWord();
-//        //        standWordObj = getStandWord();
-//        Response<List<Lexeme>> resp = nlpServiceClient.split(sData.getSymptom());
-//        if (null != resp && null != resp.getData()) {
-//            addStandWord(resp.getData(), standWord, sData);
-//        }
+        //        Map<String, List<Map<String, String>>> standWord = getStandWord();
+        //        //        standWordObj = getStandWord();
+        //        Response<List<Lexeme>> resp = nlpServiceClient.split(sData.getSymptom());
+        //        if (null != resp && null != resp.getData()) {
+        //            addStandWord(resp.getData(), standWord, sData);
+        //        }
 
 
-        sData.setLisArr(processLis(sData.getLisArr()));
+        // sData.setLisArr(processLis(sData.getLisArr()));
 
 
-        if (ListUtil.isNotEmpty(sData.getLisArr())) {
+        /*if (ListUtil.isNotEmpty(sData.getLisArr())) {
             List<String> otherVal = sData.getLisArr().stream().map(lisArr -> lisArr.getOtherValue()).collect(Collectors.toList());
             List<String> otherVal = sData.getLisArr().stream().map(lisArr -> lisArr.getOtherValue()).collect(Collectors.toList());
             sData.setLis(String.join(",", otherVal));
             sData.setLis(String.join(",", otherVal));
-        }
+        }*/
 
 
         Response<ResponseData> res = aiServiceClient.bayesPageData(sData);
         Response<ResponseData> res = aiServiceClient.bayesPageData(sData);
         if (res == null || res.getData() == null) {
         if (res == null || res.getData() == null) {
@@ -109,17 +98,17 @@ public class ClinicalFacade {
             Otherval = lisres.getOtherValue();
             Otherval = lisres.getOtherValue();
 
 
             if (Otherval.indexOf(pos) >= 0 || Otherval.indexOf(neg) >= 0) {
             if (Otherval.indexOf(pos) >= 0 || Otherval.indexOf(neg) >= 0) {
-                lisres.setOtherValue(lisres.getDetailName() + Otherval);
+                lisres.setOtherValue(lisres.getUniqueName() + Otherval);
             } else {
             } else {
                 Otherval = (Otherval.trim().length() > 0) ? Otherval.trim() + "\n" : "";
                 Otherval = (Otherval.trim().length() > 0) ? Otherval.trim() + "\n" : "";
                 if (lisres.getValue() == null) {
                 if (lisres.getValue() == null) {
                     continue;
                     continue;
                 } else if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
                 } else if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
-                    lisres.setOtherValue(Otherval + lisres.getDetailName() + up);
+                    lisres.setOtherValue(Otherval + lisres.getUniqueName() + up);
                 } else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
                 } else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
-                    lisres.setOtherValue(Otherval + lisres.getDetailName() + down);
+                    lisres.setOtherValue(Otherval + lisres.getUniqueName() + down);
                 } else {
                 } else {
-                    lisres.setOtherValue(Otherval + lisres.getDetailName() + normal);
+                    lisres.setOtherValue(Otherval + lisres.getUniqueName() + normal);
                 }
                 }
             }
             }
         }
         }
@@ -188,7 +177,7 @@ public class ClinicalFacade {
         for (int i = 0; i < lexemes.size(); i++) {
         for (int i = 0; i < lexemes.size(); i++) {
             if (lexemes.get(i).getProperty().contains("33") || lexemes.get(i).getProperty().contains("28")
             if (lexemes.get(i).getProperty().contains("33") || lexemes.get(i).getProperty().contains("28")
                     || lexemes.get(i).getProperty().contains("2") || lexemes.get(i).getProperty().contains("9")
                     || lexemes.get(i).getProperty().contains("2") || lexemes.get(i).getProperty().contains("9")
-                    ) {
+            ) {
                 feature.add(lexemes.get(i));
                 feature.add(lexemes.get(i));
             }
             }
         }
         }
@@ -254,7 +243,10 @@ public class ClinicalFacade {
                     Integer standWordSBP = Integer.valueOf(values[0]); //标准词收缩压
                     Integer standWordSBP = Integer.valueOf(values[0]); //标准词收缩压
                     Integer standWordDBP = Integer.valueOf(values[1]); //标准词舒张压
                     Integer standWordDBP = Integer.valueOf(values[1]); //标准词舒张压
                     if (featuresSBP > standWordSBP && featuresDBP > standWordDBP) {
                     if (featuresSBP > standWordSBP && featuresDBP > standWordDBP) {
-                        String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                        String standWord = standWordKey
+                                + standWordMap.get("op")
+                                + standWordMap.get("value")
+                                + standWordMap.get("unit") + "。";
                         sData.setSymptom(sData.getSymptom() + standWord);
                         sData.setSymptom(sData.getSymptom() + standWord);
                         System.out.println(sData.getSymptom());
                         System.out.println(sData.getSymptom());
                     }
                     }
@@ -262,7 +254,10 @@ public class ClinicalFacade {
             } else {
             } else {
                 String num = getNum(standWordMap.get("value"));
                 String num = getNum(standWordMap.get("value"));
                 if (Double.valueOf(getNum(features[1])) > Double.valueOf(num)) {
                 if (Double.valueOf(getNum(features[1])) > Double.valueOf(num)) {
-                    String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                    String standWord = standWordKey
+                            + standWordMap.get("op")
+                            + standWordMap.get("value")
+                            + standWordMap.get("unit") + "。";
                     sData.setSymptom(sData.getSymptom() + standWord);
                     sData.setSymptom(sData.getSymptom() + standWord);
                     System.out.println(sData.getSymptom());
                     System.out.println(sData.getSymptom());
 
 
@@ -283,7 +278,10 @@ public class ClinicalFacade {
                     Integer standWordSBP = Integer.valueOf(values[0]); //收缩压
                     Integer standWordSBP = Integer.valueOf(values[0]); //收缩压
                     Integer standWordDBP = Integer.valueOf(values[1]); //舒张压
                     Integer standWordDBP = Integer.valueOf(values[1]); //舒张压
                     if (featuresSBP < standWordSBP && featuresDBP < standWordDBP) {
                     if (featuresSBP < standWordSBP && featuresDBP < standWordDBP) {
-                        String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                        String standWord = standWordKey
+                                + standWordMap.get("op")
+                                + standWordMap.get("value")
+                                + standWordMap.get("unit") + "。";
                         sData.setSymptom(sData.getSymptom() + standWord);
                         sData.setSymptom(sData.getSymptom() + standWord);
                         System.out.println(sData.getSymptom());
                         System.out.println(sData.getSymptom());
                     }
                     }
@@ -291,7 +289,11 @@ public class ClinicalFacade {
             } else {
             } else {
                 String num = getNum(standWordMap.get("value"));
                 String num = getNum(standWordMap.get("value"));
                 if (Double.valueOf(getNum(features[1])) < Double.valueOf(num)) {
                 if (Double.valueOf(getNum(features[1])) < Double.valueOf(num)) {
-                    String standWord = standWordKey + standWordMap.get("op") + standWordMap.get("value") + standWordMap.get("unit") + "。";
+                    String standWord = standWordKey
+                            + standWordMap.get("op")
+                            + standWordMap.get("value")
+                            + standWordMap.get("unit")
+                            + "。";
                     sData.setSymptom(sData.getSymptom() + standWord);
                     sData.setSymptom(sData.getSymptom() + standWord);
                     System.out.println(sData.getSymptom());
                     System.out.println(sData.getSymptom());
                 }
                 }
@@ -401,5 +403,4 @@ public class ClinicalFacade {
         }
         }
         return standWordObj;
         return standWordObj;
     }
     }
-
 }
 }

+ 55 - 15
aipt-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -19,6 +19,7 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -38,7 +39,7 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     private ConceptFacade conceptFacade;
     private ConceptFacade conceptFacade;
 
 
     /**
     /**
-     * 获取提示信息
+     * 单条获取静态知识
      *
      *
      * @param conceptIntroduceVO
      * @param conceptIntroduceVO
      * @return
      * @return
@@ -54,7 +55,8 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         Concept concept = conceptFacade.exist(conceptBaseVO);
         Concept concept = conceptFacade.exist(conceptBaseVO);
         //提示信息明细
         //提示信息明细
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
         QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+        conceptDetailQueryWrapper
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("concept_id", concept.getId())
                 .eq("concept_id", concept.getId())
                 .orderByAsc("order_no");
                 .orderByAsc("order_no");
         if (conceptIntroduceVO.getPosition() == null) {
         if (conceptIntroduceVO.getPosition() == null) {
@@ -81,10 +83,32 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         ConceptIntroduceDTO conceptIntroduceDTO = new ConceptIntroduceDTO();
         ConceptIntroduceDTO conceptIntroduceDTO = new ConceptIntroduceDTO();
         conceptIntroduceDTO.setConceptId(concept.getId());
         conceptIntroduceDTO.setConceptId(concept.getId());
         conceptIntroduceDTO.setName(concept.getLibName());
         conceptIntroduceDTO.setName(concept.getLibName());
+        conceptIntroduceDTO.setLibType(concept.getLibType());
+        conceptIntroduceDTO.setType(ParamConvertUtil.libConvert2Concept(concept.getLibType().intValue()));
         conceptIntroduceDTO.setDetails(conceptDetailDTOList);
         conceptIntroduceDTO.setDetails(conceptDetailDTOList);
         return conceptIntroduceDTO;
         return conceptIntroduceDTO;
     }
     }
 
 
+    /**
+     * 批量取静态知识
+     *
+     * @param conceptIntroduceVOList
+     * @return
+     */
+    public List<ConceptIntroduceDTO> getConceptDetails(List<ConceptIntroduceVO> conceptIntroduceVOList) {
+        List<ConceptIntroduceDTO> conceptIntroduceDTOList = Lists.newLinkedList();
+        if (ListUtil.isNotEmpty(conceptIntroduceVOList)) {
+            for (ConceptIntroduceVO conceptIntroduceVO : conceptIntroduceVOList) {
+                ConceptIntroduceDTO conceptIntroduceDTO = getConceptDetail(conceptIntroduceVO);
+                if (conceptIntroduceDTO != null) {
+                    conceptIntroduceDTOList.add(conceptIntroduceDTO);
+                }
+
+            }
+        }
+        return conceptIntroduceDTOList;
+    }
+
     /**
     /**
      * 是否存在提示信息
      * 是否存在提示信息
      *
      *
@@ -118,12 +142,21 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         Map<String, Map<Long, List<ConceptDetail>>> retMap = new LinkedHashMap<>();
         Map<String, Map<Long, List<ConceptDetail>>> retMap = new LinkedHashMap<>();
         Map<Long, List<ConceptDetail>> retSubMap = new LinkedHashMap<>();
         Map<Long, List<ConceptDetail>> retSubMap = new LinkedHashMap<>();
         if (ListUtil.isNotEmpty(conceptList)) {
         if (ListUtil.isNotEmpty(conceptList)) {
-            List<Long> conceptIds = conceptList.stream().map(concept -> concept.getId()).collect(Collectors.toList());
+            List<Long> conceptIds = conceptList
+                    .stream()
+                    .map(concept -> concept.getId())
+                    .collect(Collectors.toList());
             QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
             QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-            conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).in("concept_id", conceptIds);
+            conceptDetailQueryWrapper
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("concept_id", conceptIds);
+            if (ListUtil.isEmpty(conceptIds)) {
+                return retMap;
+            }
             List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
             List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
             if (ListUtil.isNotEmpty(conceptDetailList)) {
             if (ListUtil.isNotEmpty(conceptDetailList)) {
-                Map<Long, List<ConceptDetail>> conceptDetailMap = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
+                Map<Long, List<ConceptDetail>> conceptDetailMap
+                        = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
                 for (Concept concept : conceptList) {
                 for (Concept concept : conceptList) {
                     if (retMap.containsKey(concept.getLibName())) {
                     if (retMap.containsKey(concept.getLibName())) {
                         retSubMap = retMap.get(concept.getLibName());
                         retSubMap = retMap.get(concept.getLibName());
@@ -131,7 +164,8 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
                     if (retSubMap == null) {
                     if (retSubMap == null) {
                         retSubMap = new LinkedHashMap<>();
                         retSubMap = new LinkedHashMap<>();
                     }
                     }
-                    if (conceptDetailMap.containsKey(concept.getId()) && ListUtil.isNotEmpty(conceptDetailMap.get(concept.getId()))) {
+                    if (conceptDetailMap.containsKey(concept.getId())
+                            && ListUtil.isNotEmpty(conceptDetailMap.get(concept.getId()))) {
                         retSubMap.put(concept.getLibType(), conceptDetailMap.get(concept.getId()));
                         retSubMap.put(concept.getLibType(), conceptDetailMap.get(concept.getId()));
                         retMap.put(concept.getLibName(), retSubMap);
                         retMap.put(concept.getLibName(), retSubMap);
                     }
                     }
@@ -148,15 +182,21 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
      * @return
      * @return
      */
      */
     public List<Long> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO) {
     public List<Long> existListByConceptIds(ExistListByConceptIdsVO existListByConceptIdsVO) {
-        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
-        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("concept_id", existListByConceptIdsVO.getConceptIds());
-        List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
-        if (ListUtil.isNotEmpty(conceptDetailList)) {
-            List<Long> retConceptIds = conceptDetailList.stream().map(conceptDetail -> conceptDetail.getConceptId()).distinct().collect(Collectors.toList());
-            return retConceptIds;
-        } else {
-            return null;
+        if (ListUtil.isNotEmpty(existListByConceptIdsVO.getConceptIds())) {
+            QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+            conceptDetailQueryWrapper
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("concept_id", existListByConceptIdsVO.getConceptIds());
+            List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
+            if (ListUtil.isNotEmpty(conceptDetailList)) {
+                List<Long> retConceptIds = conceptDetailList
+                        .stream()
+                        .map(conceptDetail -> conceptDetail.getConceptId())
+                        .distinct()
+                        .collect(Collectors.toList());
+                return retConceptIds;
+            }
         }
         }
+        return null;
     }
     }
 }
 }

+ 32 - 23
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -57,7 +57,7 @@ public class ConceptFacade extends ConceptServiceImpl {
         conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
         conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("lib_name", conceptBaseVO.getName())
                 .eq("lib_name", conceptBaseVO.getName())
                 .eq("lib_type", conceptBaseVO.getLibType());
                 .eq("lib_type", conceptBaseVO.getLibType());
-        Concept concept = this.getOne(conceptQueryWrapper);
+        Concept concept = this.getOne(conceptQueryWrapper, false);
         if (concept == null) {
         if (concept == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "概念不存在");
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "概念不存在");
         }
         }
@@ -75,7 +75,7 @@ public class ConceptFacade extends ConceptServiceImpl {
         conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
         conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("lib_name", conceptBaseVO.getName())
                 .eq("lib_name", conceptBaseVO.getName())
                 .eq("lib_type", conceptBaseVO.getLibType());
                 .eq("lib_type", conceptBaseVO.getLibType());
-        Concept concept = this.getOne(conceptQueryWrapper);
+        Concept concept = this.getOne(conceptQueryWrapper, false);
         return concept;
         return concept;
     }
     }
 
 
@@ -142,10 +142,13 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @return
      * @return
      */
      */
     public List<Concept> getListByIds(List<Long> ids) {
     public List<Concept> getListByIds(List<Long> ids) {
-        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
-        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("id", ids);
-        List<Concept> list = this.list(conceptQueryWrapper);
+        List<Concept> list = new ArrayList<>();
+        if (ListUtil.isNotEmpty(ids)) {
+            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("id", ids);
+            list = this.list(conceptQueryWrapper);
+        }
         return list;
         return list;
     }
     }
 
 
@@ -157,13 +160,16 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @return
      * @return
      */
      */
     public List<Concept> getListByNamesAndType(List<String> nameList, Integer libType) {
     public List<Concept> getListByNamesAndType(List<String> nameList, Integer libType) {
-        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
-        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("lib_name", nameList);
-        if (libType != null) {
-            conceptQueryWrapper.eq("lib_type", libType);
+        List<Concept> list = new ArrayList<>();
+        if (ListUtil.isNotEmpty(nameList)) {
+            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("lib_name", nameList);
+            if (libType != null) {
+                conceptQueryWrapper.eq("lib_type", libType);
+            }
+            list = this.list(conceptQueryWrapper);
         }
         }
-        List<Concept> list = this.list(conceptQueryWrapper);
         return list;
         return list;
     }
     }
 
 
@@ -174,10 +180,13 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @return
      * @return
      */
      */
     public List<Concept> getListByNames(List<String> nameList) {
     public List<Concept> getListByNames(List<String> nameList) {
-        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
-        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("lib_name", nameList);
-        List<Concept> list = this.list(conceptQueryWrapper);
+        List<Concept> list = new ArrayList<>();
+        if (ListUtil.isNotEmpty(nameList)) {
+            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("lib_name", nameList);
+            list = this.list(conceptQueryWrapper);
+        }
         return list;
         return list;
     }
     }
 
 
@@ -316,18 +325,18 @@ public class ConceptFacade extends ConceptServiceImpl {
         // 有本体,过滤同义词和子项;无本体,有子项,过滤同义词
         // 有本体,过滤同义词和子项;无本体,有子项,过滤同义词
         for (ConceptRetrievalDTO bean : conceptRetrievalDTOS) {
         for (ConceptRetrievalDTO bean : conceptRetrievalDTOS) {
             if (bean.getShowType().intValue() == 1) {
             if (bean.getShowType().intValue() == 1) {
-                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
+                if (retrievalVO.getIsSonShow().intValue() == 0) {//isSonShow为0执行检索去重逻辑
                     res.add(bean);
                     res.add(bean);
                 }
                 }
             } else if (bean.getShowType().intValue() == 2) {
             } else if (bean.getShowType().intValue() == 2) {
-                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
-                    if (!selfList.contains(bean.getParentId()) && !conceptNameList.contains(bean.getParentName()) ) {
+                if (retrievalVO.getIsSonShow().intValue() == 0) {//isSonShow为0执行检索去重逻辑
+                    if (!selfList.contains(bean.getParentId()) && !conceptNameList.contains(bean.getParentName())) {
                         conceptNameList.add(bean.getParentName());
                         conceptNameList.add(bean.getParentName());
                         res.add(bean);
                         res.add(bean);
                     }
                     }
                 }
                 }
             } else if (bean.getShowType().intValue() == 0) {
             } else if (bean.getShowType().intValue() == 0) {
-                if(retrievalVO.getIsSonShow().intValue() == 0){//isSonShow为0执行检索去重逻辑
+                if (retrievalVO.getIsSonShow().intValue() == 0) {//isSonShow为0执行检索去重逻辑
                     if (!selfList.contains(bean.getSelfId()) && !subList.contains(bean.getSelfId()) && !conceptNameList.contains(bean.getSelfName())) {
                     if (!selfList.contains(bean.getSelfId()) && !subList.contains(bean.getSelfId()) && !conceptNameList.contains(bean.getSelfName())) {
                         conceptNameList.add(bean.getSelfName());
                         conceptNameList.add(bean.getSelfName());
                         res.add(bean);
                         res.add(bean);
@@ -354,12 +363,12 @@ public class ConceptFacade extends ConceptServiceImpl {
      */
      */
     public List<RetrievalDTO> getStaticKnowledge(GetStaticKnowledgeVO getStaticKnowledgeVO) {
     public List<RetrievalDTO> getStaticKnowledge(GetStaticKnowledgeVO getStaticKnowledgeVO) {
         RetrievalVO retrievalVO = new RetrievalVO();
         RetrievalVO retrievalVO = new RetrievalVO();
-        BeanUtil.copyProperties(getStaticKnowledgeVO,retrievalVO);
+        BeanUtil.copyProperties(getStaticKnowledgeVO, retrievalVO);
         List<RetrievalDTO> staticRetrievalList = this.staticKnowledge(retrievalVO);
         List<RetrievalDTO> staticRetrievalList = this.staticKnowledge(retrievalVO);
         for (RetrievalDTO retrievalDTO : staticRetrievalList) {
         for (RetrievalDTO retrievalDTO : staticRetrievalList) {
             retrievalDTO.setType(ParamConvertUtil.libConvert2Concept(retrievalDTO.getLibTypeId().intValue()));
             retrievalDTO.setType(ParamConvertUtil.libConvert2Concept(retrievalDTO.getLibTypeId().intValue()));
-            if((retrievalDTO.getShowType().intValue() == 1)
-                || (retrievalDTO.getShowType().intValue() == 21)){//去除本体retrivalName和(父项--子项)组合的retrivalName
+            if ((retrievalDTO.getShowType().intValue() == 1)
+                    || (retrievalDTO.getShowType().intValue() == 21)) {//去除本体retrivalName和(父项--子项)组合的retrivalName
                 retrievalDTO.setRetrievalName(null);
                 retrievalDTO.setRetrievalName(null);
             }
             }
         }
         }

+ 1 - 1
aipt-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java

@@ -43,7 +43,7 @@ public class DeptInfoFacade {
         deptInfoDTOQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
         deptInfoDTOQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("lib_name", hospitalDeptInfoDTORespDTO.data.getConceptDeptName())
                 .eq("lib_name", hospitalDeptInfoDTORespDTO.data.getConceptDeptName())
                 .eq("lib_type", LexiconTypeEnum.DEPARTMENT.getKey());
                 .eq("lib_type", LexiconTypeEnum.DEPARTMENT.getKey());
-        Concept deptInfo = conceptFacade.getOne(deptInfoDTOQueryWrapper);
+        Concept deptInfo = conceptFacade.getOne(deptInfoDTOQueryWrapper, false);
         DeptInfoDTO deptInfoDTO = new DeptInfoDTO();
         DeptInfoDTO deptInfoDTO = new DeptInfoDTO();
         deptInfoDTO.setConceptId(deptInfo.getId());
         deptInfoDTO.setConceptId(deptInfo.getId());
         deptInfoDTO.setName(deptInfo.getLibName());
         deptInfoDTO.setName(deptInfo.getLibName());

+ 2 - 1
aipt-service/src/main/java/com/diagbot/facade/DisclaimerInformationFacade.java

@@ -25,7 +25,8 @@ public class DisclaimerInformationFacade extends DisclaimerInformationServiceImp
     public List<DisclaimerInformationDTO> getDisclaimerInformation() {
     public List<DisclaimerInformationDTO> getDisclaimerInformation() {
 
 
         QueryWrapper<DisclaimerInformation> disclaimerInformation = new QueryWrapper<>();
         QueryWrapper<DisclaimerInformation> disclaimerInformation = new QueryWrapper<>();
-        disclaimerInformation.eq("is_deleted", IsDeleteEnum.N.getKey())
+        disclaimerInformation
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("STATUS", StatusEnum.Enable.getKey())
                 .eq("STATUS", StatusEnum.Enable.getKey())
                 .orderByAsc("order_no");
                 .orderByAsc("order_no");
         List<DisclaimerInformation> data = list(disclaimerInformation);
         List<DisclaimerInformation> data = list(disclaimerInformation);

+ 24 - 0
aipt-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -1,14 +1,19 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.diagbot.dto.FeatureConceptDTO;
 import com.diagbot.dto.FeatureConceptDTO;
+import com.diagbot.entity.Concept;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.ParamConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description:
  * @Description:
@@ -19,6 +24,8 @@ import java.util.List;
 public class FeatureFacade {
 public class FeatureFacade {
     @Autowired
     @Autowired
     private NLPFacade nlpFacade;
     private NLPFacade nlpFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
 
 
     /**
     /**
      * 症状关键词提取
      * 症状关键词提取
@@ -32,9 +39,26 @@ public class FeatureFacade {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未提取到特征词");
         }
         }
 
 
+        Map<Integer, List<FeatureConceptDTO>> symptomMap
+                = EntityUtil.makeEntityListMap(symptomFeatureList, "libType");
+        Map<Integer, Map<String, Long>> map = new LinkedHashMap<>();
+        for (Map.Entry<Integer, List<FeatureConceptDTO>> entry : symptomMap.entrySet()) {
+            List<Concept> concepts
+                    = conceptFacade.getListByNamesAndType(entry.getValue()
+                    .stream()
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList()), entry.getKey());
+            Map<String, Long> conceptMap
+                    = EntityUtil.makeMapWithKeyValue(concepts, "libName", "id");
+            map.put(entry.getKey(), conceptMap);
+        }
+
         for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
         for (FeatureConceptDTO featureConceptDTO : symptomFeatureList) {
             if (null != featureConceptDTO.getLibType()) {
             if (null != featureConceptDTO.getLibType()) {
                 featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
                 featureConceptDTO.setType(ParamConvertUtil.libConvert2Concept(featureConceptDTO.getLibType()));
+                featureConceptDTO.setConceptId(map
+                        .get(featureConceptDTO.getLibType())
+                        .get(featureConceptDTO.getName()));
             }
             }
         }
         }
         return symptomFeatureList;
         return symptomFeatureList;

+ 1 - 1
aipt-service/src/main/java/com/diagbot/facade/IndexDataFacade.java

@@ -76,7 +76,7 @@ public class IndexDataFacade {
         for (String key : dataMap.keySet()) {
         for (String key : dataMap.keySet()) {
             IndexDTO itemIndexDTO = new IndexDTO();
             IndexDTO itemIndexDTO = new IndexDTO();
             itemIndexDTO.setItemName(key);
             itemIndexDTO.setItemName(key);
-            
+
             List<String> indexUnits = new ArrayList<String>();
             List<String> indexUnits = new ArrayList<String>();
             List<String> indexValues = new ArrayList<String>();
             List<String> indexValues = new ArrayList<String>();
             List<Integer> isAbnormals = new ArrayList<Integer>();
             List<Integer> isAbnormals = new ArrayList<Integer>();

+ 83 - 0
aipt-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -0,0 +1,83 @@
+package com.diagbot.facade;
+
+import com.diagbot.entity.wrapper.LisMappingWrapper;
+import com.diagbot.service.impl.LisMappingServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.GetLisMappingVO;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/9/20 13:14
+ */
+@Component
+public class LisMappingFacade  extends LisMappingServiceImpl {
+
+    /**
+     * 获取化验公表映射关系 Map<mealName,Map<itemName,uniqueName>> itemName 不为空
+     * @param mealName
+     * @return
+     */
+    public Map<String, Map<String, String>> getLisMappingByMealName(String mealName) {
+        Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
+        LisMappingWrapper lisMappingWrapper = new LisMappingWrapper();
+        lisMappingWrapper.setMealName(mealName);
+        List<LisMappingWrapper> lisMappingWrapperList = this.getLisMappingByName(lisMappingWrapper);
+
+        Map<String, List<LisMappingWrapper>> lisMappingMap
+                = EntityUtil.makeEntityListMap(lisMappingWrapperList, "mealName");
+        for (Map.Entry<String, List<LisMappingWrapper>> entry : lisMappingMap.entrySet()) {
+            if (entry.getValue().size() > 0) {
+                retMap.put(entry.getKey(),
+                        EntityUtil.makeMapWithKeyValue(entry.getValue(), "itemName", "uniqueName"));
+            } else {
+                retMap.put(entry.getKey(), null);
+            }
+        }
+        return retMap;
+    }
+
+
+    /**
+     * 获取化验标签公表项
+     * @param getLisMappingVO
+     * @return
+     */
+    public Map<String, Map<String, String>> getLisMappingByQuestion(GetLisMappingVO getLisMappingVO) {
+        String project=getLisMappingVO.getProject();
+        List<String> details=getLisMappingVO.getDetails();
+        if (StringUtil.isBlank(project)) {
+            return null;
+        }
+
+        Map<String, Map<String, String>> lisMappingMap = getLisMappingByMealName(project);
+
+        Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
+        if (lisMappingMap != null && lisMappingMap.get(project) != null) {
+            Map<String, String> projectMap = new LinkedHashMap<>();
+            projectMap.put(project, lisMappingMap.get(project).get(""));
+            retMap.put("project", projectMap);
+        }
+
+        if (ListUtil.isEmpty(details)) {
+            return retMap;
+        }
+
+        Map<String, String> detailMap = new LinkedHashMap<>();
+        Map<String, String> projectDetailMap = lisMappingMap.get(project);
+        if (projectDetailMap != null) {
+            for (String detail : details) {
+                detailMap.put(detail, projectDetailMap.get(detail));
+            }
+        }
+        retMap.put("details", detailMap);
+        return retMap;
+    }
+}

+ 6 - 8
aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -1,10 +1,5 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
-import com.diagbot.enums.LexiconTypeEnum;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.RequestBody;
-
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
@@ -13,6 +8,9 @@ import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
 
 /**
 /**
  * @Description: 患者业务逻辑
  * @Description: 患者业务逻辑
@@ -22,7 +20,7 @@ import com.diagbot.vo.GetTopPatientInfoVO;
 @Component
 @Component
 public class PatientInfoFacade {
 public class PatientInfoFacade {
 
 
-	@Autowired
+    @Autowired
     private ConceptFacade conceptFacade;
     private ConceptFacade conceptFacade;
     @Autowired
     @Autowired
     TranServiceClient tranServiceClient;
     TranServiceClient tranServiceClient;
@@ -38,13 +36,13 @@ public class PatientInfoFacade {
         RespDTOUtil.respNGDealCover(respDTO, "获取页面顶部病人医生科室信息失败");
         RespDTOUtil.respNGDealCover(respDTO, "获取页面顶部病人医生科室信息失败");
 
 
         GetTopPatientInfoDTO getTopPatientInfoDTO = respDTO.data;
         GetTopPatientInfoDTO getTopPatientInfoDTO = respDTO.data;
-        
+
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
         conceptBaseVO.setName(getTopPatientInfoDTO.getSelfDeptName());
         conceptBaseVO.setName(getTopPatientInfoDTO.getSelfDeptName());
         Concept concept = conceptFacade.exist(conceptBaseVO);
         Concept concept = conceptFacade.exist(conceptBaseVO);
         getTopPatientInfoDTO.setSelfDeptId(concept.getId());
         getTopPatientInfoDTO.setSelfDeptId(concept.getId());
-        
+
         return getTopPatientInfoDTO;
         return getTopPatientInfoDTO;
     }
     }
 
 

+ 21 - 302
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -2,39 +2,29 @@ package com.diagbot.facade;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.TranServiceClient;
-import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.HosCodeVO;
 import com.diagbot.client.bean.HosCodeVO;
-import com.diagbot.client.bean.MedicalIndication;
-import com.diagbot.client.bean.MedicalIndicationDetail;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.ResponseData;
-import com.diagbot.dto.ConceptPushDTO;
 import com.diagbot.dto.LisResult;
 import com.diagbot.dto.LisResult;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetInfoDTO;
 import com.diagbot.dto.SysSetInfoDTO;
-import com.diagbot.entity.Concept;
-import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.FeatureTypeEnum;
 import com.diagbot.enums.FeatureTypeEnum;
-import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
-import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.SearchVo;
 import com.diagbot.vo.SearchVo;
-import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
@@ -52,11 +42,11 @@ public class PushFacade {
     @Autowired
     @Autowired
     private ClinicalFacade clinicalFacade;
     private ClinicalFacade clinicalFacade;
     @Autowired
     @Autowired
-    private ConceptFacade conceptFacade;
-    @Autowired
     private TreatmentFacade treatmentFacade;
     private TreatmentFacade treatmentFacade;
     @Autowired
     @Autowired
     private TranServiceClient tranServiceClient;
     private TranServiceClient tranServiceClient;
+    @Autowired
+    DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
 
 
     /**
     /**
      * 推理接口
      * 推理接口
@@ -106,144 +96,16 @@ public class PushFacade {
         String[] featureTypes = featureType.split(",|,");
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
 
-
-        //确定推送科室
-        List<FeatureRate> dis = data.getDis();
-        pushDTO.setDept(getDept(dis));
-
-        //症状 概念列表
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Symptom.getKey()))) {
-            List<FeatureRate> symptom = data.getSymptom();
-            if (ListUtil.isNotEmpty(symptom)) {
-                List<String> nameList = symptom.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(nameList)) {
-                    pushDTO.setSymptom(getConceptDTOList(nameList, LexiconTypeEnum.SYMPTOM.getKey()));
-                }
-            }
-        }
-        //查体 查体结果
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Result.getKey()))) {
-            List<FeatureRate> vital = data.getVitals();
-            if (ListUtil.isNotEmpty(vital)) {
-                List<String> nameList = vital.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(nameList)) {
-                    pushDTO.setVital(getConceptDTOList(nameList, LexiconTypeEnum.VITAL_RESULT.getKey()));
-                }
-            }
-        }
-        //查体 查体指标
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Vital_Index.getKey()))) {
-            List<FeatureRate> vital = data.getVitals();
-            if (ListUtil.isNotEmpty(vital)) {
-                List<String> nameList = vital.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(nameList)) {
-                    pushDTO.setVital(getConceptDTOList(nameList, LexiconTypeEnum.VITAL_INDEX.getKey()));
-                }
-            }
-        }
-
-        //化验 概念列表-公表项
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Lis.getKey()))) {
-            List<FeatureRate> lis = data.getLabs();
-            if (ListUtil.isNotEmpty(lis)) {
-                List<String> nameList = lis.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(nameList)) {
-                    List<ConceptPushDTO> lisDTO = getConceptDTOList(nameList, LexiconTypeEnum.LIS_TABLES.getKey());
-                    if (isConnect) {
-                        lisDTO = addClientName(lisDTO, searchVo.getHosCode(), ConceptTypeEnum.Lis.getKey());
-                        lisDTO = removeLisDetail(lisDTO);
-                    }
-                    pushDTO.setLab(lisDTO);
-                }
-            }
-        }
-        //辅检 概念列表
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Pacs.getKey()))) {
-            List<FeatureRate> pacs = data.getPacs();
-            if (ListUtil.isNotEmpty(pacs)) {
-                List<String> nameList = pacs.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                if (ListUtil.isNotEmpty(nameList)) {
-                    List<ConceptPushDTO> pacsDTO = getConceptDTOList(nameList, LexiconTypeEnum.PACS_ITEMS.getKey());
-                    if (isConnect) {
-                        pacsDTO = addClientName(pacsDTO, searchVo.getHosCode(), ConceptTypeEnum.Pacs.getKey());
-                    }
-                    pushDTO.setPacs(pacsDTO);
-                }
-            }
-        }
-        //诊断 map
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Disease.getKey()))) {
-            if (ListUtil.isNotEmpty(dis)) {
-                Map<String, List<ConceptPushDTO>> disMapDTO = new LinkedHashMap<>();
-                Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
-                //诊断分类
-                for (FeatureRate featureRate : dis) {
-                    if (StringUtil.isBlank(featureRate.getDesc())) {
-                        featureRate.setDesc("{\"可能诊断\":\"\"}");
-                    }
-                    Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
-                    for (String disClass : descMap.keySet()) {
-                        List<FeatureRate> featureRateList = Lists.newLinkedList();
-                        if (disFeatureMap.get(disClass) != null) {
-                            featureRateList = disFeatureMap.get(disClass);
-                        }
-                        featureRateList.add(featureRate);
-                        disFeatureMap.put(disClass, featureRateList);
-                    }
-                }
-                for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
-                    List<String> nameListByDisClass = entry.getValue().stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
-                    if (ListUtil.isNotEmpty(nameListByDisClass)) {
-                        List<ConceptPushDTO> disDTO = getConceptDTOList(nameListByDisClass, LexiconTypeEnum.DIAGNOSIS.getKey());
-                        if (isConnect) {
-                            disDTO = addClientName(disDTO, searchVo.getHosCode(), ConceptTypeEnum.Disease.getKey());
-                        }
-                        disMapDTO.put(entry.getKey(), disDTO);
-                    }
-                }
-                pushDTO.setDis(disMapDTO);
-            }
-        }
-        //核心指标 list
-        if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Feature_Type_Indication.getKey()))) {
-            List<MedicalIndication> medicalIndicationList = data.getMedicalIndications();
-            ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
-            if (ListUtil.isNotEmpty(medicalIndicationList)) {
-                for (MedicalIndication medicalIndication : medicalIndicationList) {
-                    medicalIndication.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
-                    medicalIndication.setType(ConceptTypeEnum.Indication.getKey());
-                    //关联概念,增加概念id
-                    conceptBaseVO.setName(medicalIndication.getName());
-                    conceptBaseVO.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
-                    Concept medConcept = conceptFacade.getConcept(conceptBaseVO);
-                    if (medConcept != null) {
-                        medicalIndication.setConceptId(medConcept.getId());
-                    }
-                    if (ListUtil.isNotEmpty(medicalIndication.getDetails())) {
-                        for (MedicalIndicationDetail detail : medicalIndication.getDetails()) {
-                            //量表,增加概念id;其他类型保留图谱返回结果
-                            if (detail.getType().equals(1)) {
-                                JSONObject scaleJson = detail.getContent();
-                                if (null != scaleJson.get("name")) {
-                                    String scaleName = scaleJson.get("name").toString();
-                                    conceptBaseVO.setName(scaleName);
-                                    conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
-                                    Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
-                                    scaleJson.put("libType", LexiconTypeEnum.GAUGE.getKey());
-                                    scaleJson.put("type", ConceptTypeEnum.Scale.getKey());
-                                    if (scaleConcept != null) {
-                                        scaleJson.put("conceptId", scaleConcept.getId());
-                                    } else {
-                                        scaleJson.put("conceptId", null);
-                                    }
-                                    detail.setContent(scaleJson);
-                                }
-                            }
-                        }
-                    }
-                }
-                pushDTO.setMedicalIndications(medicalIndicationList);
-            }
+        try {
+            Map<String, Object> invokeParams = new HashMap<>();
+            invokeParams.put("featureTypeSet", featureTypeSet);
+            invokeParams.put("data", data);
+            invokeParams.put("isConnect", isConnect);
+            invokeParams.put("hosCode", searchVo.getHosCode());
+            pushDTO
+                    = dataBeanAggregateQueryFacade.get("setAll", invokeParams, PushDTO.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
         }
         }
         return pushDTO;
         return pushDTO;
     }
     }
@@ -290,73 +152,11 @@ public class PushFacade {
         if (StringUtil.isBlank(searchVo.getDiseaseName())) {
         if (StringUtil.isBlank(searchVo.getDiseaseName())) {
             throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入需获取治疗方案的诊断名称");
             throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入需获取治疗方案的诊断名称");
         }
         }
-        Map<String, Object> treatmentMap = treatmentFacade.getTreatment(treat, searchVo.getDiseaseName(), searchVo.getDisType());
+        Map<String, Object> treatmentMap
+                = treatmentFacade.getTreatment(treat, searchVo.getDiseaseName(), searchVo.getDisType());
         return treatmentMap;
         return treatmentMap;
     }
     }
 
 
-    /**
-     * 推理返回概念
-     *
-     * @param nameList
-     * @param libType
-     * @return
-     */
-    public List<ConceptPushDTO> getConceptDTOList(List<String> nameList, Integer libType) {
-        List<Concept> concepts = conceptFacade.getListByNamesAndType(nameList, libType);
-        Map<String, Concept> conceptMap = EntityUtil.makeEntityMap(concepts, "libName");
-        List<ConceptPushDTO> conceptDTOS = Lists.newLinkedList();
-        for (String name : nameList) {
-            ConceptPushDTO conceptDTO = new ConceptPushDTO();
-            conceptDTO.setName(name);
-            conceptDTO.setLibType(libType);
-            conceptDTO.setType(ParamConvertUtil.libConvert2Concept(libType));
-            if (conceptMap.containsKey(name) && conceptMap.get(name) != null) {
-                Concept concept = conceptMap.get(name);
-                conceptDTO.setConceptId(concept.getId());
-            }
-            conceptDTOS.add(conceptDTO);
-        }
-        return conceptDTOS;
-    }
-
-    /**
-     * 根据诊断推送确定科室
-     *
-     * @param dis
-     * @return
-     */
-    public ConceptPushDTO getDept(List<FeatureRate> dis) {
-        String deptName = "";
-        if (ListUtil.isNotEmpty(dis)) {
-            for (FeatureRate featureRate : dis) {
-                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
-                    deptName = featureRate.getExtraProperty();
-                    break;
-                }
-            }
-        }
-        //没有推送信息时,默认取全科模板
-        if (StringUtil.isBlank(deptName)) {
-            deptName = "全科";
-        }
-        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
-        conceptBaseVO.setName(deptName);
-        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
-        ConceptPushDTO deptDTO = new ConceptPushDTO();
-        Concept dept = conceptFacade.getConcept(conceptBaseVO);
-        if (dept == null && deptName.equals("全科") == false) {
-            deptName = "全科";
-            conceptBaseVO.setName(deptName);
-            dept = conceptFacade.getConcept(conceptBaseVO);
-        }
-        if (dept != null) {
-            deptDTO.setName(deptName);
-            deptDTO.setConceptId(dept.getId());
-            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
-        }
-        return deptDTO;
-    }
-
     /**
     /**
      * 增加化验公表项
      * 增加化验公表项
      *
      *
@@ -367,11 +167,14 @@ public class PushFacade {
     public List<LisResult> addUniqueName(List<LisResult> lisResults, String hosCode) {
     public List<LisResult> addUniqueName(List<LisResult> lisResults, String hosCode) {
         //化验项转公表内容,参数处理
         //化验项转公表内容,参数处理
         if (ListUtil.isNotEmpty(lisResults)) {
         if (ListUtil.isNotEmpty(lisResults)) {
-            List<String> mealNameList = lisResults.stream().map(lisResult -> lisResult.getName()).collect(Collectors.toList());
+            List<String> mealNameList = lisResults
+                    .stream()
+                    .map(lisResult -> lisResult.getName()).collect(Collectors.toList());
             LisConfigVO lisConfigVO = new LisConfigVO();
             LisConfigVO lisConfigVO = new LisConfigVO();
             lisConfigVO.setHosCode(hosCode);
             lisConfigVO.setHosCode(hosCode);
             lisConfigVO.setMealNameList(mealNameList);
             lisConfigVO.setMealNameList(mealNameList);
-            RespDTO<Map<String, Map<String, String>>> lisConfigRes = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
+            RespDTO<Map<String, Map<String, String>>> lisConfigRes
+                    = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
             Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
             Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
             if (RespDTOUtil.respIsOK(lisConfigRes)) {
             if (RespDTOUtil.respIsOK(lisConfigRes)) {
                 lisConfigMap = lisConfigRes.data;
                 lisConfigMap = lisConfigRes.data;
@@ -390,88 +193,4 @@ public class PushFacade {
         }
         }
         return lisResults;
         return lisResults;
     }
     }
-
-    /**
-     * 添加外部名称(调用方)
-     *
-     * @param concepts
-     * @param hosCode
-     * @param type
-     * @return
-     */
-    public List<ConceptPushDTO> addClientName(List<ConceptPushDTO> concepts, String hosCode, Integer type) {
-        HosCodeVO hosCodeVO = new HosCodeVO();
-        hosCodeVO.setHosCode(hosCode);
-        LisConfigVO lisConfigVO = new LisConfigVO();
-        lisConfigVO.setHosCode(hosCode);
-        List<String> uniqueNameList = concepts.stream().map(concept -> concept.getName()).collect(Collectors.toList());
-        lisConfigVO.setUniqueNameList(uniqueNameList);
-        if (type.equals(ConceptTypeEnum.Lis.getKey())) {
-            RespDTO<Map<String, List<String>>> lisRes = tranServiceClient.getLisConfigByUniqueNameAndHosCode(lisConfigVO);
-            if (RespDTOUtil.respIsOK(lisRes)) {
-                Map<String, List<String>> lisMappingByUniqueName = lisRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    List<String> clientNames = lisMappingByUniqueName.get(concept.getName());
-                    if (ListUtil.isNotEmpty(clientNames)) {
-                        concept.setClientName(clientNames.get(0));
-                    }
-                }
-            }
-        } else if (type.equals(ConceptTypeEnum.Pacs.getKey())) {
-            RespDTO<Map<String, List<String>>> pacsRes = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
-            if (RespDTOUtil.respIsOK(pacsRes)) {
-                Map<String, List<String>> pacsConfigMapByUniqueName = pacsRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    List<String> clientNames = pacsConfigMapByUniqueName.get(concept.getName());
-                    if (ListUtil.isNotEmpty(clientNames)) {
-                        concept.setClientName(clientNames.get(0));
-                    }
-                }
-            }
-        } else if (type.equals(ConceptTypeEnum.Disease.getKey())) {
-            RespDTO<Map<String, String>> disRes = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
-            if (RespDTOUtil.respIsOK(disRes)) {
-                Map<String, String> disMap = disRes.data;
-                for (ConceptPushDTO concept : concepts) {
-                    String clientName = disMap.get(concept.getName());
-                    if (StringUtil.isNotBlank(clientName)) {
-                        concept.setClientName(disMap.get(concept.getName()));
-                    }
-                }
-            }
-        }
-        return concepts;
-    }
-
-    /**
-     * 外部化验返回时,公表匹配出套餐,保留套餐,删除细项;否则保留公表
-     *
-     * @param lisDTO
-     * @return
-     */
-    public List<ConceptPushDTO> removeLisDetail(List<ConceptPushDTO> lisDTO) {
-        List<ConceptPushDTO> retLisDTO = Lists.newLinkedList();
-        if (ListUtil.isEmpty(lisDTO)) {
-            return retLisDTO;
-        }
-        List<String> mealNameList = lisDTO.stream().map(lis -> lis.getClientName()).filter(mealName -> mealName != null && mealName != "").distinct().collect(Collectors.toList());
-        List<ConceptPushDTO> mealConceptList = getConceptDTOList(mealNameList, LexiconTypeEnum.LIS_TABLES.getKey());
-        Map<String, ConceptPushDTO> mealConceptMap = EntityUtil.makeEntityMap(mealConceptList, "name");
-        List<String> addedName = Lists.newLinkedList();
-        for (ConceptPushDTO conceptPushDTO : lisDTO) {
-            if (addedName.contains(conceptPushDTO.getName())) {
-                continue;
-            }
-            if (StringUtil.isBlank(conceptPushDTO.getClientName()) || conceptPushDTO.getClientName().equals(conceptPushDTO.getName())) {
-                addedName.add(conceptPushDTO.getName());
-                retLisDTO.add(conceptPushDTO);
-            } else {
-                ConceptPushDTO conceptPushDTOConvert = mealConceptMap.get(conceptPushDTO.getClientName());
-                conceptPushDTOConvert.setClientName(conceptPushDTO.getClientName());
-                addedName.add(conceptPushDTOConvert.getName());
-                retLisDTO.add(conceptPushDTOConvert);
-            }
-        }
-        return retLisDTO;
-    }
 }
 }

+ 181 - 106
aipt-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -4,29 +4,25 @@ import com.alibaba.fastjson.JSONObject;
 import com.diagbot.client.bean.AdverseReaction;
 import com.diagbot.client.bean.AdverseReaction;
 import com.diagbot.client.bean.Medicition;
 import com.diagbot.client.bean.Medicition;
 import com.diagbot.client.bean.MedicitionClass;
 import com.diagbot.client.bean.MedicitionClass;
-import com.diagbot.dto.ConceptDetailDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.entity.wrapper.ConceptWrapper;
-import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.DisTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconRSTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
-import com.diagbot.enums.PositionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.BeanUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptBaseVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
-import java.util.Arrays;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -38,10 +34,13 @@ import java.util.stream.Collectors;
  */
  */
 @Component
 @Component
 public class TreatmentFacade {
 public class TreatmentFacade {
+
     @Autowired
     @Autowired
     ConceptFacade conceptFacade;
     ConceptFacade conceptFacade;
     @Autowired
     @Autowired
     ConceptDetailFacade conceptDetailFacade;
     ConceptDetailFacade conceptDetailFacade;
+    @Autowired
+    DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
 
 
     /**
     /**
      * 获取治疗方案
      * 获取治疗方案
@@ -60,12 +59,10 @@ public class TreatmentFacade {
         if (disease == null) {
         if (disease == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "诊断不存在");
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "诊断不存在");
         }
         }
-        if (treatmentMap == null || treatmentMap.size() == 0) {
+        if (treatmentMap == null || treatmentMap.size() == 0 || !treatmentMap.containsKey(diseaseName)) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未找到治疗方案");
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "未找到治疗方案");
         }
         }
-        if (!treatmentMap.containsKey(diseaseName)) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "诊断名不在诊断列表中");
-        }
+
         //治疗方案对应诊断
         //治疗方案对应诊断
         retMap.put("diseaseName", diseaseName);
         retMap.put("diseaseName", diseaseName);
 
 
@@ -75,15 +72,23 @@ public class TreatmentFacade {
             return retMap;
             return retMap;
         }
         }
         //推荐药物
         //推荐药物
-        List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
+        List<MedicitionClass> drugsList
+                = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
         //不良反应
         //不良反应
-        List<AdverseReaction> adverseReactionList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "adverseEvent", AdverseReaction.class);
+        List<AdverseReaction> adverseReactionList
+                = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "adverseEvent", AdverseReaction.class);
         if (ListUtil.isNotEmpty(drugsList)) {
         if (ListUtil.isNotEmpty(drugsList)) {
             //药品大类
             //药品大类
-            List<String> cateBigNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
+            List<String> cateBigNameList = drugsList
+                    .stream()
+                    .map(drugs -> drugs.getBigdrugsName())
+                    .collect(Collectors.toList());
             conceptNameList.addAll(cateBigNameList);
             conceptNameList.addAll(cateBigNameList);
             //药品小类
             //药品小类
-            List<String> cateSmallNameList = drugsList.stream().map(drugs -> drugs.getSubdrugsName()).collect(Collectors.toList());
+            List<String> cateSmallNameList = drugsList
+                    .stream()
+                    .map(drugs -> drugs.getSubdrugsName())
+                    .collect(Collectors.toList());
             conceptNameList.addAll(cateSmallNameList);
             conceptNameList.addAll(cateSmallNameList);
             //药品
             //药品
             List<Medicition> medicitionTotalList = Lists.newLinkedList();
             List<Medicition> medicitionTotalList = Lists.newLinkedList();
@@ -92,86 +97,28 @@ public class TreatmentFacade {
                     medicitionTotalList.addAll(medicitionClass.getMedicitionsList());
                     medicitionTotalList.addAll(medicitionClass.getMedicitionsList());
                 }
                 }
             }
             }
-            List<String> drugNameList = medicitionTotalList.stream().map(m -> m.getMedicitionName()).collect(Collectors.toList());
+            List<String> drugNameList = medicitionTotalList
+                    .stream()
+                    .map(m -> m.getMedicitionName())
+                    .collect(Collectors.toList());
             conceptNameList.addAll(drugNameList);
             conceptNameList.addAll(drugNameList);
         }
         }
         if (ListUtil.isNotEmpty(adverseReactionList)) {
         if (ListUtil.isNotEmpty(adverseReactionList)) {
-            List<String> adNameList = adverseReactionList.stream().map(a -> a.getName()).collect(Collectors.toList());
+            List<String> adNameList = adverseReactionList
+                    .stream()
+                    .map(a -> a.getName())
+                    .collect(Collectors.toList());
             conceptNameList.addAll(adNameList);
             conceptNameList.addAll(adNameList);
         }
         }
         //概念
         //概念
-        List<Concept> conceptList=conceptFacade.getListByNames(conceptNameList);
+        List<Concept> conceptList = conceptFacade.getListByNames(conceptNameList);
         //概念map
         //概念map
         Map<String, Map<Long, Concept>> conceptMap = conceptList2Map(conceptList);
         Map<String, Map<Long, Concept>> conceptMap = conceptList2Map(conceptList);
         //说明信息是否存在
         //说明信息是否存在
         Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap = conceptDetailFacade.hasConDetail(conceptList);
         Map<String, Map<Long, List<ConceptDetail>>> hasConDetailMap = conceptDetailFacade.hasConDetail(conceptList);
 
 
-        //一般治疗&&手术治疗
-        if (hasConDetailMap != null && hasConDetailMap.get(diseaseName) != null && ListUtil.isNotEmpty(hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())))) {
-            List<ConceptDetail> diseaseConDetailList = hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey()));
-            for (ConceptDetail conceptDetail : diseaseConDetailList) {
-                ConceptDetailDTO conceptDetailDTO = new ConceptDetailDTO();
-                List<String> positionList = Arrays.asList(conceptDetail.getPosition().split(",|,"));
-                if (positionList.contains(String.valueOf(PositionTypeEnum.T3.getKey())) && retMap.get("commonTreatment") == null) {
-                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
-                    retMap.put("commonTreatment", conceptDetailDTO);
-                }
-                if (positionList.contains(String.valueOf(PositionTypeEnum.T4.getKey())) && retMap.get("surgeryTreatment") == null) {
-                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
-                    retMap.put("surgeryTreatment", conceptDetailDTO);
-                }
-            }
-        } else {
-            retMap.put("commonTreatment", null);
-            retMap.put("surgeryTreatment", null);
-        }
-
-        if (ListUtil.isNotEmpty(drugsList)) {
-            for (MedicitionClass medicitionClass : drugsList) {
-                if (conceptMap != null  && conceptMap.get(medicitionClass.getBigdrugsName()) != null && conceptMap.get(medicitionClass.getBigdrugsName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
-                    Concept cateBigConcept = conceptMap.get(medicitionClass.getBigdrugsName()).get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()));
-                    if (cateBigConcept != null) {
-                        medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
-                        if (hasConDetailMap != null && hasConDetailMap.get(cateBigConcept.getLibName()) != null && hasConDetailMap.get(cateBigConcept.getLibName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
-                            medicitionClass.setShowInfo("1");
-                        } else {
-                            medicitionClass.setShowInfo("0");
-                        }
-                    }
-                }
-                medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
-                medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
-                if (conceptMap != null && conceptMap.get(medicitionClass.getSubdrugsName()) != null && conceptMap.get(medicitionClass.getSubdrugsName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()))) {
-                    Concept cateSmallConcept = conceptMap.get(medicitionClass.getSubdrugsName()).get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()));
-                    if (cateSmallConcept != null) {
-                        medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
-                    }
-                }
-                medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
-                medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
-
-                LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
-                for (Medicition medicition : medicitionList) {
-                    if (conceptMap != null && conceptMap.get(medicition.getMedicitionName()) != null && conceptMap.get(medicition.getMedicitionName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
-                        Concept drugConcept = conceptMap.get(medicition.getMedicitionName()).get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()));
-                        if (drugConcept != null) {
-                            medicition.setConceptId(drugConcept.getId());
-                        }
-                    }
-                    medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
-                    medicition.setType(ConceptTypeEnum.Drug.getKey());
-                    if (hasConDetailMap != null &&hasConDetailMap.get(medicition.getMedicitionName()) != null && hasConDetailMap.get(medicition.getMedicitionName()).containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
-                        medicition.setShowInfo("1");
-                    } else {
-                        medicition.setShowInfo("0");
-                    }
-                }
-                medicitionClass.setMedicitionsList(medicitionList);
-            }
-        }
-        retMap.put("treatment", drugsList);
-
-        //判断是否慢病,慢病增加回访时间,上次用药,不良反应
+        //判断是否慢病
+        Boolean isChronic = false;
         if (disType != null && disType.equals(DisTypeEnum.CHRONIC.getKey())) {
         if (disType != null && disType.equals(DisTypeEnum.CHRONIC.getKey())) {
             //验证是否慢病
             //验证是否慢病
             conceptBaseVO.setName("慢病");
             conceptBaseVO.setName("慢病");
@@ -186,31 +133,159 @@ public class TreatmentFacade {
             conceptWrapper.setEndType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
             conceptWrapper.setEndType(LexiconTypeEnum.TYPES_OF_DISEASE.getKey());
             conceptWrapper.setRelationType(LexiconRSTypeEnum.INCLUDE_OF.getKey());
             conceptWrapper.setRelationType(LexiconRSTypeEnum.INCLUDE_OF.getKey());
             List<ConceptRes> conceptResList = conceptFacade.getConcept(conceptWrapper);
             List<ConceptRes> conceptResList = conceptFacade.getConcept(conceptWrapper);
-            Boolean isChronic = ListUtil.isNotEmpty(conceptResList);
-            if (isChronic) {
-                //慢病,增加回访时间,暂时前端写死, 以后由只是图谱返回
-                retMap.put("followUp", null);
-                //上次用药-icss层处理
-                retMap.put("drugHistory", null);
-                //不良反应
-                for (AdverseReaction adverseReaction : adverseReactionList) {
-                    if (conceptMap != null && conceptMap.get(adverseReaction.getName()) != null && conceptMap.get(adverseReaction.getName()).containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
-                        Concept adConcept = conceptMap.get(adverseReaction.getName()).get(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()));
-                        if (adConcept != null) {
-                            adverseReaction.setConceptId(adConcept.getId());
-                        }
-                    }
-                    adverseReaction.setLibType(LexiconTypeEnum.SIDE_EFFECTS.getKey());
-                    adverseReaction.setType(ConceptTypeEnum.SIDE_EFFECTS.getKey());
-                    if (hasConDetailMap != null && hasConDetailMap.get(adverseReaction.getName()) != null && hasConDetailMap.get(adverseReaction.getName()).containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
-                        adverseReaction.setShowInfo("1");
-                    } else {
-                        adverseReaction.setShowInfo("0");
-                    }
-                }
-                retMap.put("adverseReactions", adverseReactionList);
+            isChronic = ListUtil.isNotEmpty(conceptResList);
+        }
+
+        try {
+            Map<String, Object> invokeParams = new HashMap<>();
+            invokeParams.put("treatmentMap", retMap);
+            invokeParams.put("diseaseName", diseaseName);
+            invokeParams.put("drugsList", drugsList);
+            invokeParams.put("conceptMap", conceptMap);
+            invokeParams.put("hasConDetailMap", hasConDetailMap);
+            invokeParams.put("adverseReactionList", adverseReactionList);
+            invokeParams.put("isChronic", isChronic);
+
+            retMap
+                    = dataBeanAggregateQueryFacade.get("setTreatmentAll", invokeParams, Map.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
+        //判断是否慢病,慢病增加回访时间,上次用药,不良反应
+        if (isChronic) {
+            if (retMap == null) {
+                retMap = new LinkedHashMap<>();
             }
             }
+            //慢病,增加回访时间,暂时前端写死, 以后由只是图谱返回
+            retMap.put("followUp", null);
+            //上次用药-icss层处理
+            retMap.put("drugHistory", null);
         }
         }
+
+        //        //一般治疗&&手术治疗
+        //        if (hasConDetailMap != null && hasConDetailMap.get(diseaseName) != null
+        //                && ListUtil.isNotEmpty(hasConDetailMap
+        //                .get(diseaseName)
+        //                .get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())))) {
+        //            List<ConceptDetail> diseaseConDetailList
+        //                    = hasConDetailMap.get(diseaseName).get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey()));
+        //            for (ConceptDetail conceptDetail : diseaseConDetailList) {
+        //                ConceptDetailDTO conceptDetailDTO = new ConceptDetailDTO();
+        //                List<String> positionList = Arrays.asList(conceptDetail.getPosition().split(",|,"));
+        //                if (positionList.contains(String.valueOf(PositionTypeEnum.T3.getKey()))
+        //                        && retMap.get("commonTreatment") == null) {
+        //                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+        //                    retMap.put("commonTreatment", conceptDetailDTO);
+        //                }
+        //                if (positionList.contains(String.valueOf(PositionTypeEnum.T4.getKey()))
+        //                        && retMap.get("surgeryTreatment") == null) {
+        //                    BeanUtil.copyProperties(conceptDetail, conceptDetailDTO);
+        //                    retMap.put("surgeryTreatment", conceptDetailDTO);
+        //                }
+        //            }
+        //        }
+        //        if (!retMap.containsKey("commonTreatment")) {
+        //            retMap.put("commonTreatment", null);
+        //        }
+        //        if (!retMap.containsKey("surgeryTreatment")) {
+        //            retMap.put("surgeryTreatment", null);
+        //        }
+
+        //        if (ListUtil.isNotEmpty(drugsList)) {
+        //            for (MedicitionClass medicitionClass : drugsList) {
+        //                if (conceptMap != null
+        //                        && conceptMap.get(medicitionClass.getBigdrugsName()) != null
+        //                        && conceptMap.get(medicitionClass
+        //                        .getBigdrugsName())
+        //                        .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+        //                    Concept cateBigConcept = conceptMap
+        //                            .get(medicitionClass.getBigdrugsName())
+        //                            .get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()));
+        //                    if (cateBigConcept != null) {
+        //                        medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
+        //                        if (hasConDetailMap != null
+        //                                && hasConDetailMap.get(cateBigConcept.getLibName()) != null
+        //                                && hasConDetailMap.get(cateBigConcept.getLibName())
+        //                                .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey()))) {
+        //                            medicitionClass.setShowInfo("1");
+        //                        } else {
+        //                            medicitionClass.setShowInfo("0");
+        //                        }
+        //                    }
+        //                }
+        //                medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
+        //                medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
+        //                if (conceptMap != null
+        //                        && conceptMap.get(medicitionClass.getSubdrugsName()) != null
+        //                        && conceptMap.get(medicitionClass.getSubdrugsName())
+        //                        .containsKey(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()))) {
+        //                    Concept cateSmallConcept = conceptMap
+        //                            .get(medicitionClass.getSubdrugsName())
+        //                            .get(Long.valueOf(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey()));
+        //                    if (cateSmallConcept != null) {
+        //                        medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
+        //                    }
+        //                }
+        //                medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
+        //                medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
+        //
+        //                LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
+        //                for (Medicition medicition : medicitionList) {
+        //                    if (conceptMap != null
+        //                            && conceptMap.get(medicition.getMedicitionName()) != null
+        //                            && conceptMap.get(medicition.getMedicitionName())
+        //                            .containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+        //                        Concept drugConcept = conceptMap
+        //                                .get(medicition.getMedicitionName())
+        //                                .get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()));
+        //                        if (drugConcept != null) {
+        //                            medicition.setConceptId(drugConcept.getId());
+        //                        }
+        //                    }
+        //                    medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
+        //                    medicition.setType(ConceptTypeEnum.Drug.getKey());
+        //                    if (hasConDetailMap != null
+        //                            && hasConDetailMap.get(medicition.getMedicitionName()) != null
+        //                            && hasConDetailMap.get(medicition.getMedicitionName())
+        //                            .containsKey(Long.valueOf(LexiconTypeEnum.DRUGS.getKey()))) {
+        //                        medicition.setShowInfo("1");
+        //                    } else {
+        //                        medicition.setShowInfo("0");
+        //                    }
+        //                }
+        //                medicitionClass.setMedicitionsList(medicitionList);
+        //            }
+        //        }
+        //        retMap.put("treatment", drugsList);
+
+
+        //        //不良反应
+        //        for (AdverseReaction adverseReaction : adverseReactionList) {
+        //            if (conceptMap != null
+        //                    && conceptMap.get(adverseReaction.getName()) != null
+        //                    && conceptMap.get(adverseReaction.getName())
+        //                    .containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+        //                Concept adConcept = conceptMap
+        //                        .get(adverseReaction.getName())
+        //                        .get(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()));
+        //                if (adConcept != null) {
+        //                    adverseReaction.setConceptId(adConcept.getId());
+        //                }
+        //            }
+        //            adverseReaction.setLibType(LexiconTypeEnum.SIDE_EFFECTS.getKey());
+        //            adverseReaction.setType(ConceptTypeEnum.SIDE_EFFECTS.getKey());
+        //            if (hasConDetailMap != null
+        //                    && hasConDetailMap.get(adverseReaction.getName()) != null
+        //                    && hasConDetailMap.get(adverseReaction.getName())
+        //                    .containsKey(Long.valueOf(LexiconTypeEnum.SIDE_EFFECTS.getKey()))) {
+        //                adverseReaction.setShowInfo("1");
+        //            } else {
+        //                adverseReaction.setShowInfo("0");
+        //            }
+        //        }
+        //        retMap.put("adverseReactions", adverseReactionList);
+
+
         return retMap;
         return retMap;
     }
     }
 
 

+ 50 - 50
icss-service/src/main/java/com/diagbot/facade/VersionDetailFacaed.java

@@ -1,50 +1,50 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.dto.VersionDetailDTO;
-import com.diagbot.entity.VersionDetail;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.service.impl.VersionDetailServiceImpl;
-import com.diagbot.util.BeanUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 版本详情
- *
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:38:40
- */
-@Component
-public class VersionDetailFacaed extends VersionDetailServiceImpl {
-
-    /**
-     * 根据版本id查询版本详情
-     *
-     * @param id
-     * @return
-     */
-    public List<VersionDetailDTO> getById(Long id) {
-        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        mapAll.put("version_id", id);
-        mapAll.put("STATUS", StatusEnum.Enable.getKey());
-        versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
-
-        VersionDetail versionDetail = new VersionDetail();
-        versionDetail.setVersionId(id);
-        List<VersionDetail> datas = list(versionDetailQuery);
-        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
-        //过滤字段
-        dataNew = BeanUtil.listCopyTo(datas, VersionDetailDTO.class);
-        return dataNew;
-
-    }
-}
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.util.BeanUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 版本详情
+ *
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:38:40
+ */
+@Component
+public class VersionDetailFacade extends VersionDetailServiceImpl {
+
+    /**
+     * 根据版本id查询版本详情
+     *
+     * @param id
+     * @return
+     */
+    public List<VersionDetailDTO> getById(Long id) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("version_id", id);
+        mapAll.put("STATUS", StatusEnum.Enable.getKey());
+        versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
+
+        VersionDetail versionDetail = new VersionDetail();
+        versionDetail.setVersionId(id);
+        List<VersionDetail> datas = list(versionDetailQuery);
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        //过滤字段
+        dataNew = BeanUtil.listCopyTo(datas, VersionDetailDTO.class);
+        return dataNew;
+
+    }
+}

+ 70 - 0
aipt-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -0,0 +1,70 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import com.diagbot.util.IntegerUtil;
+import com.diagbot.vo.VersionVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: 版本信息
+ * @date 2018年11月21日 上午11:07:01
+ */
+@Component
+public class VersionInfoFacade extends VersionInfoServiceImpl {
+
+    @Autowired
+    VersionDetailFacade versionDetailFacade;
+
+
+    /**
+     * 查询版本信息
+     *
+     * @return
+     */
+    public VersionWrapperDTO getVersionInfoAll(VersionVO versionVO) {
+        //入参配置验证
+        if (null == versionVO) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL);
+        }
+
+        if (IntegerUtil.isNull(versionVO.getProductType())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "产品类型不能为空!");
+        }
+        //查询最新的一条版本信息
+        QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
+        versionInfoQuery
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("product_type", versionVO.getProductType())
+                .eq("STATUS", StatusEnum.Enable.getKey())
+                .orderByDesc("gmt_modified");
+
+        VersionInfo versionInfo = getOne(versionInfoQuery, false);
+        VersionWrapperDTO versionList = new VersionWrapperDTO();
+
+        if (versionInfo != null) {
+            //当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+            long id = versionInfo.getId();
+            List<VersionDetailDTO> detail = versionDetailFacade.getById(id);
+            //System.out.println(detail.toString());
+            versionList.setId(versionInfo.getId());
+            versionList.setName(versionInfo.getName());
+            versionList.setRefreshTime(versionInfo.getRefreshTime());
+            versionList.setStatus(versionInfo.getStatus());
+            versionList.setDetail(detail);
+        }
+
+        return versionList;
+    }
+}

+ 26 - 0
aipt-service/src/main/java/com/diagbot/mapper/LisMappingMapper.java

@@ -0,0 +1,26 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.LisMapping;
+import com.diagbot.entity.wrapper.LisMappingWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 化验项目公表映射 Mapper 接口
+ * </p>
+ *
+ * @author zhaops
+ * @since 2019-09-20
+ */
+public interface LisMappingMapper extends BaseMapper<LisMapping> {
+    /**
+     * 获取化验公表映射
+     *
+     * @param lisMappingWrapper
+     * @return
+     */
+    List<LisMappingWrapper> getLisMappingByName(@Param("lisMappingWrapper") LisMappingWrapper lisMappingWrapper);
+}

icss-service/src/main/java/com/diagbot/mapper/VersionDetailMapper.java → aipt-service/src/main/java/com/diagbot/mapper/VersionDetailMapper.java


icss-service/src/main/java/com/diagbot/mapper/VersionInfoMapper.java → aipt-service/src/main/java/com/diagbot/mapper/VersionInfoMapper.java


+ 9 - 10
icssman-service/src/main/java/com/diagbot/service/LisMappingService.java

@@ -1,27 +1,26 @@
 package com.diagbot.service;
 package com.diagbot.service;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.dto.LisMappingPageDTO;
 import com.diagbot.entity.LisMapping;
 import com.diagbot.entity.LisMapping;
-import com.diagbot.vo.LisMappingPageVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.wrapper.LisMappingWrapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 化验项目公表映射 服务类
  * 化验项目公表映射 服务类
  * </p>
  * </p>
  *
  *
  * @author zhaops
  * @author zhaops
- * @since 2019-03-26
+ * @since 2019-09-20
  */
  */
 public interface LisMappingService extends IService<LisMapping> {
 public interface LisMappingService extends IService<LisMapping> {
-
     /**
     /**
-     * 获取化验公表映射分页
+     * 获取化验公表映射
      *
      *
-     * @param lisMappingPageVO
+     * @param lisMappingWrapper
      * @return
      * @return
      */
      */
-    IPage<LisMappingPageDTO> lisMappingPage(@Param("lisMappingPageVO") LisMappingPageVO lisMappingPageVO);
-}
+    List<LisMappingWrapper> getLisMappingByName(@Param("lisMappingWrapper") LisMappingWrapper lisMappingWrapper);
+}

icss-service/src/main/java/com/diagbot/service/VersionDetailService.java → aipt-service/src/main/java/com/diagbot/service/VersionDetailService.java


icss-service/src/main/java/com/diagbot/service/VersionInfoService.java → aipt-service/src/main/java/com/diagbot/service/VersionInfoService.java


+ 11 - 9
icssman-service/src/main/java/com/diagbot/service/impl/LisMappingServiceImpl.java

@@ -1,33 +1,35 @@
 package com.diagbot.service.impl;
 package com.diagbot.service.impl;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.dto.LisMappingPageDTO;
 import com.diagbot.entity.LisMapping;
 import com.diagbot.entity.LisMapping;
+import com.diagbot.entity.wrapper.LisMappingWrapper;
 import com.diagbot.mapper.LisMappingMapper;
 import com.diagbot.mapper.LisMappingMapper;
 import com.diagbot.service.LisMappingService;
 import com.diagbot.service.LisMappingService;
-import com.diagbot.vo.LisMappingPageVO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.Builder;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 化验项目公表映射 服务实现类
  * 化验项目公表映射 服务实现类
  * </p>
  * </p>
  *
  *
  * @author zhaops
  * @author zhaops
- * @since 2019-03-26
+ * @since 2019-09-20
  */
  */
 @Service
 @Service
 public class LisMappingServiceImpl extends ServiceImpl<LisMappingMapper, LisMapping> implements LisMappingService {
 public class LisMappingServiceImpl extends ServiceImpl<LisMappingMapper, LisMapping> implements LisMappingService {
 
 
     /**
     /**
-     * 获取化验公表映射分页
+     * 获取化验公表映射
      *
      *
-     * @param lisMappingPageVO
+     * @param lisMappingWrapper
      * @return
      * @return
      */
      */
-    public IPage<LisMappingPageDTO> lisMappingPage(@Param("lisMappingPageVO") LisMappingPageVO lisMappingPageVO) {
-        return this.baseMapper.lisMappingPage(lisMappingPageVO);
+    @Override
+    public List<LisMappingWrapper> getLisMappingByName(@Param("lisMappingWrapper") LisMappingWrapper lisMappingWrapper) {
+        return this.baseMapper.getLisMappingByName(lisMappingWrapper);
     }
     }
 }
 }

icss-service/src/main/java/com/diagbot/service/impl/VersionDetailServiceImpl.java → aipt-service/src/main/java/com/diagbot/service/impl/VersionDetailServiceImpl.java


icss-service/src/main/java/com/diagbot/service/impl/VersionInfoServiceImpl.java → aipt-service/src/main/java/com/diagbot/service/impl/VersionInfoServiceImpl.java


+ 3 - 2
aipt-service/src/main/java/com/diagbot/util/ParamConvertUtil.java

@@ -2,6 +2,7 @@ package com.diagbot.util;
 
 
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.LexiconTypeEnum;
+import io.swagger.models.auth.In;
 
 
 /**
 /**
  * @Description:参数转换
  * @Description:参数转换
@@ -18,7 +19,7 @@ public class ParamConvertUtil {
      */
      */
     public static Integer conceptConvert2Lib(Integer type) {
     public static Integer conceptConvert2Lib(Integer type) {
         Integer libType = null;
         Integer libType = null;
-        switch (ConceptTypeEnum.getEnum(type)) {
+        switch (ConceptTypeEnum.getEnum(type.intValue())) {
             case Symptom:
             case Symptom:
                 libType = LexiconTypeEnum.SYMPTOM.getKey();
                 libType = LexiconTypeEnum.SYMPTOM.getKey();
                 break;
                 break;
@@ -79,7 +80,7 @@ public class ParamConvertUtil {
      */
      */
     public static Integer libConvert2Concept(Integer libType) {
     public static Integer libConvert2Concept(Integer libType) {
         Integer type = null;
         Integer type = null;
-        switch (LexiconTypeEnum.getEnum(libType)) {
+        switch (LexiconTypeEnum.getEnum(libType.intValue())) {
             case SYMPTOM:
             case SYMPTOM:
                 type = ConceptTypeEnum.Symptom.getKey();
                 type = ConceptTypeEnum.Symptom.getKey();
                 break;
                 break;

+ 20 - 0
aipt-service/src/main/java/com/diagbot/vo/GetLisMappingVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/9/20 14:01
+ */
+@Getter
+@Setter
+public class GetLisMappingVO {
+    @NotBlank(message = "请输入化验套餐项")
+    private String project;
+    private List<String> details;
+}

+ 18 - 0
aipt-service/src/main/java/com/diagbot/vo/VersionVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 版本信息
+ * @author: gaodm
+ * @time: 2019/8/7 13:26
+ */
+@Getter
+@Setter
+public class VersionVO {
+    /**
+     * 产品类型(1:云平台内部;2:云平台外部;3:icss;4:智能分诊;5:数据服务模式;6:智能预问诊)
+     */
+    private Integer productType;
+}

+ 13 - 5
aipt-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -1,15 +1,11 @@
 package com.diagbot.web;
 package com.diagbot.web;
 
 
-
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.ConceptIntroduceDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConceptDetailFacade;
 import com.diagbot.facade.ConceptDetailFacade;
-import com.diagbot.util.ParamConvertUtil;
-import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,13 +46,25 @@ public class ConceptDetailController {
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
 
 
+    @ApiOperation(value = "知识库标准化-批量获取提示信息[by:zhaops]",
+            notes = "name: 标签名称,必填<br>" +
+                    "titles: 标题,数组选填<br>" +
+                    "type:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>" +
+                    "position:1-摘要,2-全文,5-药品说明书,6-不良反应,单选选填")
+    @PostMapping("/getConceptDetails")
+    @SysLogger("getConceptDetails")
+    public RespDTO<List<ConceptIntroduceDTO>> getConceptDetails(@Valid @RequestBody List<ConceptIntroduceVO> conceptIntroduceVOList) {
+        List<ConceptIntroduceDTO> data = conceptDetailFacade.getConceptDetails(conceptIntroduceVOList);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
     @ApiOperation(value = "知识库标准化-获取提示信息存在性[by:zhaops]",
             notes = "name: 标签名称,必填<br>" +
             notes = "name: 标签名称,必填<br>" +
                     "type:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
                     "type:标签类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标),单选必填<br>")
     @PostMapping("/exist")
     @PostMapping("/exist")
     @SysLogger("exist")
     @SysLogger("exist")
     @ApiIgnore
     @ApiIgnore
-    public RespDTO<Bool> exist(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
+    public RespDTO<Boolean> exist(@Valid @RequestBody ConceptIntroduceVO conceptIntroduceVO) {
         Boolean data = conceptDetailFacade.exist(conceptIntroduceVO);
         Boolean data = conceptDetailFacade.exist(conceptIntroduceVO);
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }

+ 0 - 2
aipt-service/src/main/java/com/diagbot/web/DisTypeController.java

@@ -1,11 +1,9 @@
 package com.diagbot.web;
 package com.diagbot.web;
 
 
-
 import com.diagbot.dto.DisTypeDTO;
 import com.diagbot.dto.DisTypeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.DisTypeFacade;
 import com.diagbot.facade.DisTypeFacade;
 import com.diagbot.vo.DisTypeVO;
 import com.diagbot.vo.DisTypeVO;
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;

+ 8 - 2
aipt-service/src/main/java/com/diagbot/web/IndexDataController.java

@@ -34,7 +34,9 @@ public class IndexDataController {
     @Autowired
     @Autowired
     IndexDataFacade indexDataFacade;
     IndexDataFacade indexDataFacade;
 
 
-    @ApiOperation(value = "知识库标准化-根据疾病获取指标数据[by:wangfeng]", notes = "diseaseName:疾病名  必填<br> patientId:患者id ,必填<br> startTime:开始时间 ,必填<br> endTime:结束时间 ,必填<br> ")
+    @ApiOperation(value = "知识库标准化-根据疾病获取指标数据[by:wangfeng]",
+                  notes = "diseaseName:疾病名  必填<br> patientId:患者id ,必填<br> " +
+                          "startTime:开始时间 ,必填<br> endTime:结束时间 ,必填<br> ")
     @PostMapping("/getIndexDatas")
     @PostMapping("/getIndexDatas")
     @SysLogger("getIndexDatas")
     @SysLogger("getIndexDatas")
     public RespDTO<IndexConfigAndDataDTO> getIndexDatas(@Valid @RequestBody IndexDataFindVO indexDataFindVO) {
     public RespDTO<IndexConfigAndDataDTO> getIndexDatas(@Valid @RequestBody IndexDataFindVO indexDataFindVO) {
@@ -42,7 +44,11 @@ public class IndexDataController {
         return RespDTO.onSuc(data);
         return RespDTO.onSuc(data);
     }
     }
 
 
-    @ApiOperation(value = "知识库标准化-保存指标数据[by:wangfeng]", notes = "patientId : 患者id 必填<br> inquiryCode :就诊号  必填<br> IndexData:{指标公表名 :indexUnique;指标值indexValue;指标单位 indexUnit;是否异常 isAbnormal;化验时间creatTime;}")
+    @ApiOperation(value = "知识库标准化-保存指标数据[by:wangfeng]",
+                  notes = "patientId : 患者id 必填<br> inquiryCode :就诊号  必填<br> " +
+                          "IndexData:{指标公表名 :indexUnique;" +
+                          "指标值indexValue;指标单位 indexUnit;是否异常 " +
+                          "isAbnormal;化验时间creatTime;}")
     @PostMapping("/saveIndexDatas")
     @PostMapping("/saveIndexDatas")
     @SysLogger("saveIndexDatas")
     @SysLogger("saveIndexDatas")
     @Transactional
     @Transactional

+ 47 - 0
aipt-service/src/main/java/com/diagbot/web/LisMappingController.java

@@ -0,0 +1,47 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.LisMappingFacade;
+import com.diagbot.vo.GetLisMappingVO;
+import com.rabbitmq.client.AMQP;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import jdk.nashorn.internal.ir.annotations.Ignore;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 化验项目公表映射 前端控制器
+ * </p>
+ *
+ * @author zhaops
+ * @since 2019-09-20
+ */
+@RestController
+@RequestMapping("/lisMapping")
+@Api(value = "化验大小项和公表映射相关API", tags = { "化验大小项和公表映射相关API" })
+@ApiIgnore
+public class LisMappingController {
+    @Autowired
+    LisMappingFacade lisMappingFacade;
+
+    @ApiOperation(value = "知识库标准化-推理接口[by:zhaops]",
+            notes = "project: 化验大项(必填)<br>" +
+                    "details:化验小项,List<String><br>")
+    @PostMapping("/getLisMappingByQuestion")
+    @SysLogger("getLisMappingByQuestion")
+    RespDTO<Map<String, Map<String, String>>> getLisMappingByQuestion(@RequestBody  GetLisMappingVO getLisMappingVO) {
+        return RespDTO.onSuc(lisMappingFacade.getLisMappingByQuestion(getLisMappingVO));
+    }
+}

+ 7 - 9
aipt-service/src/main/java/com/diagbot/web/PatientInfoController.java

@@ -1,23 +1,21 @@
 package com.diagbot.web;
 package com.diagbot.web;
 
 
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.GetTopPatientInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.PatientInfoFacade;
 import com.diagbot.facade.PatientInfoFacade;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 import springfox.documentation.annotations.ApiIgnore;
 
 
+import javax.validation.Valid;
+
 /**
 /**
  * <p>
  * <p>
  * 患者信息表 前端控制器
  * 患者信息表 前端控制器

+ 41 - 0
aipt-service/src/main/java/com/diagbot/web/VersionInfoController.java

@@ -0,0 +1,41 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.facade.VersionInfoFacade;
+import com.diagbot.vo.VersionVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 版本信息(关于) 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2018-11-20
+ */
+@RestController
+@RequestMapping("/versionInfo")
+@Api(value = "版本信息(关于)API[by:wangfeng]", tags = { "WF——版本信息(关于)API" })
+@SuppressWarnings("unchecked")
+public class VersionInfoController {
+
+    @Autowired
+    VersionInfoFacade versionInfoFacade;
+
+    @ApiOperation(value = "获取版本信息[by:wangfeng]", notes = "获取版本信息")
+    @PostMapping("/getVersionInfoAlls")
+    @SysLogger("getVersionInfoAlls")
+    public RespDTO<VersionWrapperDTO> getVersionInfoAlls(@RequestBody VersionVO versionVO) {
+        VersionWrapperDTO data = versionInfoFacade.getVersionInfoAll(versionVO);
+        return RespDTO.onSuc(data);
+    }
+
+}

+ 61 - 52
aipt-service/src/main/resources/mapper/ConceptMapper.xml

@@ -587,11 +587,15 @@
                                 )
                                 )
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.selfName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.item_id = 0
+                        AND m.meal_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -633,11 +637,15 @@
                                 )
                                 )
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.selfName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.item_id = 0
+                        AND m.meal_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -672,18 +680,22 @@
                                 AND t2.is_deleted = 'N'
                                 AND t2.is_deleted = 'N'
                                 AND t3.is_deleted = 'N'
                                 AND t3.is_deleted = 'N'
                                 AND t6.is_deleted = 'N'
                                 AND t6.is_deleted = 'N'
-                                AND t1.lib_type = 13
+                                AND t1.lib_type = 12
                                 AND (
                                 AND (
                                     t2.spell LIKE CONCAT('%', UPPER(#{InputStr}), '%')
                                     t2.spell LIKE CONCAT('%', UPPER(#{InputStr}), '%')
                                     OR t2. NAME LIKE CONCAT('%',(#{InputStr}), '%')
                                     OR t2. NAME LIKE CONCAT('%',(#{InputStr}), '%')
                                 )
                                 )
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.selfName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.item_id = 0
+                        AND m.meal_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     ) -- 化验子项推父项,父项公表项匹配静态知识
                     ) -- 化验子项推父项,父项公表项匹配静态知识
@@ -702,7 +714,7 @@
                         FROM
                         FROM
                             (
                             (
                                 SELECT
                                 SELECT
-                                    0 selfId,
+                                    t1.id selfId,
                                     t1.lib_name selfName,
                                     t1.lib_name selfName,
                                     t5.id parentId,
                                     t5.id parentId,
                                     t5.lib_name parentName,
                                     t5.lib_name parentName,
@@ -732,11 +744,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.parentName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = 0
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -755,7 +771,7 @@
                         FROM
                         FROM
                             (
                             (
                                 SELECT
                                 SELECT
-                                    0 selfId,
+                                    t1.id selfId,
                                     t1.lib_name selfName,
                                     t1.lib_name selfName,
                                     t5.id parentId,
                                     t5.id parentId,
                                     t5.lib_name parentName,
                                     t5.lib_name parentName,
@@ -785,11 +801,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.parentName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = 0
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -808,7 +828,7 @@
                         FROM
                         FROM
                             (
                             (
                                 SELECT
                                 SELECT
-                                    0 selfId,
+                                    t1.id selfId,
                                     t1.lib_name selfName,
                                     t1.lib_name selfName,
                                     t5.id parentId,
                                     t5.id parentId,
                                     t5.lib_name parentName,
                                     t5.lib_name parentName,
@@ -838,11 +858,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND b1.parentName = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = 0
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     ) -- 化验子项推父项,父项--子项组合公表项匹配静态知识
                     ) -- 化验子项推父项,父项--子项组合公表项匹配静态知识
@@ -850,12 +874,7 @@
                     (
                     (
                         SELECT
                         SELECT
                             b2.id conceptId,
                             b2.id conceptId,
-                            CONCAT(
-                                b1.parentName,
-                                '(',
-                                b1.selfName,
-                                ')'
-                            ) `name`,
+                            CONCAT(b1.parentName,'(',b1.selfName,')') `name`,
                             41 AS orderNo,
                             41 AS orderNo,
                             b1.retrievalName retrievalName,
                             b1.retrievalName retrievalName,
                             b1.showType + 20 showType,
                             b1.showType + 20 showType,
@@ -896,15 +915,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND CONCAT(
-                            b1.parentName,
-                            '--',
-                            b1.selfName
-                        ) = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -912,12 +931,7 @@
                     (
                     (
                         SELECT
                         SELECT
                             b2.id conceptId,
                             b2.id conceptId,
-                            CONCAT(
-                                b1.parentName,
-                                '(',
-                                b1.selfName,
-                                ')'
-                            ) `name`,
+                            CONCAT(b1.parentName,'(',b1.selfName,')') `name`,
                             42 AS orderNo,
                             42 AS orderNo,
                             b1.retrievalName retrievalName,
                             b1.retrievalName retrievalName,
                             b1.showType + 20 showType,
                             b1.showType + 20 showType,
@@ -958,15 +972,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND CONCAT(
-                            b1.parentName,
-                            '--',
-                            b1.selfName
-                        ) = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )
@@ -974,12 +988,7 @@
                     (
                     (
                         SELECT
                         SELECT
                             b2.id conceptId,
                             b2.id conceptId,
-                            CONCAT(
-                                b1.parentName,
-                                '(',
-                                b1.selfName,
-                                ')'
-                            ) `name`,
+                            CONCAT(b1.parentName,'(',b1.selfName,')') `name`,
                             43 AS orderNo,
                             43 AS orderNo,
                             b1.retrievalName retrievalName,
                             b1.retrievalName retrievalName,
                             b1.showType + 20 showType,
                             b1.showType + 20 showType,
@@ -1020,15 +1029,15 @@
                                 AND t4.relation_id = 18
                                 AND t4.relation_id = 18
                             ) b1,
                             ) b1,
                             kl_concept b2,
                             kl_concept b2,
-                            kl_concept_detail b3
+                            kl_concept_detail b3,
+                            kl_lis_mapping m
                         WHERE
                         WHERE
                             b2.is_deleted = 'N'
                             b2.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
                         AND b3.is_deleted = 'N'
-                        AND CONCAT(
-                            b1.parentName,
-                            '--',
-                            b1.selfName
-                        ) = b2.lib_name
+                        AND m.is_deleted = 'N'
+                        AND m.meal_id = b1.parentId
+                        AND m.item_id = b1.selfId
+                        AND m.unique_id = b2.id
                         AND b2.lib_type = 46
                         AND b2.lib_type = 46
                         AND b2.id = b3.concept_id
                         AND b2.id = b3.concept_id
                     )
                     )

+ 67 - 0
aipt-service/src/main/resources/mapper/LisMappingMapper.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.LisMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.LisMapping">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="meal_id" property="mealId" />
+        <result column="item_id" property="itemId" />
+        <result column="unique_id" property="uniqueId" />
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultDTOMap" type="com.diagbot.entity.wrapper.LisMappingWrapper">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="meal_id" property="mealId" />
+        <result column="item_id" property="itemId" />
+        <result column="unique_id" property="uniqueId" />
+        <result column="meal_name" property="mealName" />
+        <result column="item_name" property="itemName" />
+        <result column="unique_name" property="uniqueName" />
+    </resultMap>
+
+    <!-- 公表查询 -->
+    <select id="getLisMappingByName" resultMap="BaseResultDTOMap">
+        SELECT
+        lis_mapping.*, IFNULL(item_con.lib_name,"") AS item_name
+        FROM
+        (
+        SELECT
+        lis.*, meal_con.lib_name AS meal_name,
+        unique_con.lib_name AS unique_name
+        FROM
+        kl_lis_mapping lis,
+        kl_concept meal_con,
+        kl_concept unique_con
+        WHERE
+        lis.is_deleted = 'N'
+        AND meal_con.is_deleted = 'N'
+        AND unique_con.is_deleted = 'N'
+        AND lis.meal_id = meal_con.id
+        AND lis.unique_id = unique_con.id
+        ) lis_mapping
+        LEFT JOIN kl_concept item_con ON lis_mapping.item_id = item_con.id
+        AND item_con.is_deleted = 'N'
+        WHERE 1=1
+        <if test="lisMappingWrapper.mealName != null and lisMappingWrapper.mealName != '' ">
+            and lis_mapping.meal_name like concat('%',#{lisMappingWrapper.mealName},'%')
+        </if>
+        <if test="lisMappingWrapper.itemName != null and lisMappingWrapper.itemName != '' ">
+            and item_con.lib_name like concat('%',#{lisMappingWrapper.itemName},'%')
+        </if>
+        <if test="lisMappingWrapper.uniqueName != null and lisMappingWrapper.uniqueName != '' ">
+            and lis_mapping.unique_name like concat('%',#{lisMappingWrapper.uniqueName},'%')
+        </if>
+    </select>
+</mapper>

icss-service/src/main/resources/mapper/VersionDetailMapper.xml → aipt-service/src/main/resources/mapper/VersionDetailMapper.xml


icss-service/src/main/resources/mapper/VersionInfoMapper.xml → aipt-service/src/main/resources/mapper/VersionInfoMapper.xml


+ 1 - 1
aipt-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix(new String[] { "kl_" });// 此处可以修改为您的表前缀
         strategy.setTablePrefix(new String[] { "kl_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "kl_concept" }); // 需要生成的表
+        strategy.setInclude(new String[] { "kl_version_info" }); // 需要生成的表
 
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);
         strategy.setSuperServiceImplClass(null);

+ 5 - 0
bi-service/pom.xml

@@ -154,6 +154,11 @@
             <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
             <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>io.github.lvyahui8</groupId>
+            <artifactId>spring-boot-data-aggregator-starter</artifactId>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 31 - 0
bi-service/src/main/java/com/diagbot/aggregate/BiAggregate.java

@@ -0,0 +1,31 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.util.ListUtil;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/10/16 13:37
+ */
+@Component
+public class BiAggregate {
+    @DataProvider("biAll")
+    public List<BIItemDTO> biAll(
+            @DataConsumer("conceptDetailBI") List<BIItemDTO> biItemDTOListA,
+            @DataConsumer("queryLibTypeCou") List<BIItemDTO> biItemDTOListB,
+            @DataConsumer("precGetCount") List<BIItemDTO> biItemDTOListC,
+            @DataConsumer("neoStatistics") List<BIItemDTO> biItemDTOListD) {
+        List<BIItemDTO> res = ListUtil.newArrayList();
+        res.addAll(biItemDTOListA);
+        res.addAll(biItemDTOListB);
+        res.addAll(biItemDTOListC);
+        res.addAll(biItemDTOListD);
+        return res;
+    }
+}

+ 43 - 0
bi-service/src/main/java/com/diagbot/aggregate/KnowledgemanAgg.java

@@ -0,0 +1,43 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.client.KnowledgemanServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.RespDTOUtil;
+import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/10/16 13:29
+ */
+@Component
+public class KnowledgemanAgg {
+    @Autowired
+    private KnowledgemanServiceClient knowledgemanServiceClient;
+
+    @DataProvider("conceptDetailBI")
+    public List<BIItemDTO> conceptDetailBI(){
+        List<BIItemDTO> biItemDTOList = Lists.newLinkedList();
+        RespDTO<List<BIItemDTO>> cdResp = knowledgemanServiceClient.conceptDetailBI();
+        if (RespDTOUtil.respIsOK(cdResp)) {
+            biItemDTOList.addAll(cdResp.data);
+        }
+        return biItemDTOList;
+    }
+
+    @DataProvider("queryLibTypeCou")
+    public List<BIItemDTO> queryLibTypeCou(){
+        List<BIItemDTO> biItemDTOList = Lists.newLinkedList();
+        RespDTO<List<BIItemDTO>> conceptResp = knowledgemanServiceClient.queryLibTypeCou();
+        if (RespDTOUtil.respIsOK(conceptResp)) {
+            biItemDTOList.addAll(conceptResp.data);
+        }
+        return biItemDTOList;
+    }
+}

+ 49 - 0
bi-service/src/main/java/com/diagbot/aggregate/NeoAgg.java

@@ -0,0 +1,49 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.client.NeoServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/17 10:26
+ */
+@Component
+public class NeoAgg {
+    @Autowired
+    private NeoServiceClient neoServiceClient;
+
+    @DataProvider("neoStatistics")
+    public List<BIItemDTO> neoStatistics() {
+        List<BIItemDTO> biItemDTOList = neoServiceClient.neoStatistics();
+        if (ListUtil.isEmpty(biItemDTOList)) {
+            BIItemDTO disease = new BIItemDTO();
+            disease.setModuleName("疾病");
+            disease.setItemName("图谱推送的疾病");
+            disease.setCount(0);
+            biItemDTOList.add(disease);
+
+            BIItemDTO diseaseForChild = new BIItemDTO();
+            diseaseForChild.setModuleName("疾病");
+            diseaseForChild.setItemName("图谱推送的儿科疾病");
+            diseaseForChild.setCount(0);
+            biItemDTOList.add(diseaseForChild);
+
+            BIItemDTO gauge = new BIItemDTO();
+            gauge.setModuleName("量表");
+            gauge.setItemName("量表总数");
+            gauge.setCount(0);
+            biItemDTOList.add(diseaseForChild);
+        }
+        return biItemDTOList;
+    }
+}

+ 32 - 0
bi-service/src/main/java/com/diagbot/aggregate/PrecmanAgg.java

@@ -0,0 +1,32 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.client.PrecmanServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.util.RespDTOUtil;
+import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/10/16 13:35
+ */
+@Component
+public class PrecmanAgg {
+    @Autowired
+    private PrecmanServiceClient precmanServiceClient;
+    @DataProvider("precGetCount")
+    public List<BIItemDTO> precGetCount(){
+        List<BIItemDTO> biItemDTOList = Lists.newLinkedList();
+        RespDTO<BIItemDTO> precResp = precmanServiceClient.getCount();
+        if (RespDTOUtil.respIsOK(precResp)) {
+            biItemDTOList.add(precResp.data);
+        }
+        return biItemDTOList;
+    }
+}

+ 14 - 0
bi-service/src/main/java/com/diagbot/client/IcssmanServiceClient.java

@@ -0,0 +1,14 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.IcssmanServiceHystrix;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * @Description: 调用ICSS后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@FeignClient(value = "icssman-service", fallback = IcssmanServiceHystrix.class)
+public interface IcssmanServiceClient {
+
+}

+ 24 - 0
bi-service/src/main/java/com/diagbot/client/KnowledgemanServiceClient.java

@@ -0,0 +1,24 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.KnowledgemanServiceHystrix;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.PrecCountDTO;
+import com.diagbot.dto.RespDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+/**
+ * @Description: 调用知识库后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@FeignClient(value = "knowledgeman-service", fallback = KnowledgemanServiceHystrix.class)
+public interface KnowledgemanServiceClient {
+    @PostMapping("/conceptDetail/conceptDetailBI")
+    RespDTO<List<BIItemDTO>> conceptDetailBI();
+
+    @PostMapping("/concept/queryLibTypeCou")
+    RespDTO<List<BIItemDTO>> queryLibTypeCou();
+}

+ 19 - 0
bi-service/src/main/java/com/diagbot/client/NeoServiceClient.java

@@ -0,0 +1,19 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.NeoServiceHystrix;
+import com.diagbot.dto.BIItemDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+/**
+ * @Description:图谱服务
+ * @Author:zhaops
+ * @time: 2019/10/17 10:21
+ */
+@FeignClient(name = "neo", url = "${neo.server.address}", fallback = NeoServiceHystrix.class)
+public interface NeoServiceClient {
+    @PostMapping("/knowledge/neoStatistics")
+    List<BIItemDTO> neoStatistics();
+}

+ 19 - 0
bi-service/src/main/java/com/diagbot/client/PrecmanServiceClient.java

@@ -0,0 +1,19 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.PrecmanServiceHystrix;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @Description: 调用智能预问诊后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@FeignClient(value = "precman-service", fallback = PrecmanServiceHystrix.class)
+public interface PrecmanServiceClient {
+
+    @PostMapping("/count_prec/getCount")
+    RespDTO<BIItemDTO> getCount();
+}

+ 10 - 5
bi-service/src/main/java/com/diagbot/client/UserServiceClient.java

@@ -2,11 +2,13 @@ package com.diagbot.client;
 
 
 import com.diagbot.client.hystrix.UserServiceHystrix;
 import com.diagbot.client.hystrix.UserServiceHystrix;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
+import com.diagbot.entity.Token;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
 
 
 
 
 /**
 /**
@@ -17,8 +19,11 @@ import org.springframework.web.bind.annotation.RequestHeader;
 @FeignClient(value = "user-service", fallback = UserServiceHystrix.class)
 @FeignClient(value = "user-service", fallback = UserServiceHystrix.class)
 public interface UserServiceClient {
 public interface UserServiceClient {
 
 
-    @PostMapping(value = "/user/{username}")
-    RespDTO<User> getUser(@RequestHeader(value = "Authorization") String token, @PathVariable("username") String username);
+    @PostMapping(value = "/user/getUserInfoByIds")
+    RespDTO<Map<String, String>> getUserInfoByIds(@RequestBody List<String> ids);
+
+    @PostMapping("/user/verifyToken")
+    RespDTO<Boolean> verifyToken(@RequestBody Token token);
 }
 }
 
 
 
 

+ 16 - 0
bi-service/src/main/java/com/diagbot/client/hystrix/IcssmanServiceHystrix.java

@@ -0,0 +1,16 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.IcssmanServiceClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 调用ICSS后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@Component
+@Slf4j
+public class IcssmanServiceHystrix implements IcssmanServiceClient {
+
+}

+ 31 - 0
bi-service/src/main/java/com/diagbot/client/hystrix/KnowledgemanServiceHystrix.java

@@ -0,0 +1,31 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.KnowledgemanServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.PrecCountDTO;
+import com.diagbot.dto.RespDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description: 调用知识库后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@Component
+@Slf4j
+public class KnowledgemanServiceHystrix implements KnowledgemanServiceClient {
+    @Override
+    public RespDTO<List<BIItemDTO>> conceptDetailBI() {
+        log.error("【hystrix】调用{}异常", "conceptDetailBI");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<BIItemDTO>> queryLibTypeCou() {
+        log.error("【hystrix】调用{}异常", "queryLibTypeCou");
+        return null;
+    }
+}

+ 24 - 0
bi-service/src/main/java/com/diagbot/client/hystrix/NeoServiceHystrix.java

@@ -0,0 +1,24 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.NeoServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description:图谱服务
+ * @Author:zhaops
+ * @time: 2019/10/17 10:21
+ */
+@Component
+@Slf4j
+public class NeoServiceHystrix implements NeoServiceClient {
+    @Override
+    public List<BIItemDTO> neoStatistics() {
+        log.error("【hystrix】调用{}异常", "neoStatistics");
+        return null;
+    }
+}

+ 23 - 0
bi-service/src/main/java/com/diagbot/client/hystrix/PrecmanServiceHystrix.java

@@ -0,0 +1,23 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.PrecmanServiceClient;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.RespDTO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 调用智能预问诊后台
+ * @author: gaodm
+ * @time: 2019/10/15 11:08
+ */
+@Component
+@Slf4j
+public class PrecmanServiceHystrix implements PrecmanServiceClient {
+
+    @Override
+    public RespDTO<BIItemDTO> getCount() {
+        log.error("【hystrix】调用{}异常", "getCount");
+        return null;
+    }
+}

+ 15 - 4
bi-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java

@@ -2,9 +2,13 @@ package com.diagbot.client.hystrix;
 
 
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
+import com.diagbot.entity.Token;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
 
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * @Description: 调用用户服务
  * @Description: 调用用户服务
@@ -12,12 +16,19 @@ import org.springframework.stereotype.Component;
  * @time: 2018/8/6 9:52
  * @time: 2018/8/6 9:52
  */
  */
 @Component
 @Component
+@Slf4j
 public class UserServiceHystrix implements UserServiceClient {
 public class UserServiceHystrix implements UserServiceClient {
 
 
     @Override
     @Override
-    public RespDTO<User> getUser(String token, String username) {
-        System.out.println(token);
-        System.out.println(username);
+    public RespDTO<Map<String, String>> getUserInfoByIds(@RequestBody List<String> ids) {
+        log.error("【hystrix】调用{}异常", "getUserInfoByIds");
         return null;
         return null;
     }
     }
+
+    @Override
+    public RespDTO<Boolean> verifyToken(Token token) {
+        log.error("【hystrix】调用{}异常", "verifyToken");
+        return null;
+    }
+
 }
 }

+ 26 - 2
bi-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -1,8 +1,16 @@
 package com.diagbot.config.security;
 package com.diagbot.config.security;
 
 
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Token;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.AccessDecisionManager;
 import org.springframework.security.access.AccessDecisionManager;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.access.ConfigAttribute;
 import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.authentication.AccountExpiredException;
 import org.springframework.security.authentication.InsufficientAuthenticationException;
 import org.springframework.security.authentication.InsufficientAuthenticationException;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.GrantedAuthority;
@@ -13,7 +21,6 @@ import org.springframework.stereotype.Service;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Collection;
 import java.util.Collection;
 
 
-
 /**
 /**
  * @Description: 自定义权限拦截
  * @Description: 自定义权限拦截
  * @author: gaodm
  * @author: gaodm
@@ -21,6 +28,9 @@ import java.util.Collection;
  */
  */
 @Service
 @Service
 public class UrlAccessDecisionManager implements AccessDecisionManager {
 public class UrlAccessDecisionManager implements AccessDecisionManager {
+    @Autowired
+    private UserServiceClient userServiceClient;
+
     @Override
     @Override
     public void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException {
     public void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException {
         HttpServletRequest request = ((FilterInvocation) object).getHttpRequest();
         HttpServletRequest request = ((FilterInvocation) object).getHttpRequest();
@@ -31,6 +41,20 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
         if ("anonymousUser".equals(authentication.getPrincipal())) {
         if ("anonymousUser".equals(authentication.getPrincipal())) {
             throw new AccessDeniedException("no right");
             throw new AccessDeniedException("no right");
         } else {
         } else {
+            //验证token有效性
+            String tokenStr = HttpUtils.getHeaders(request).get("Authorization");
+            if (StringUtil.isNotEmpty(tokenStr)) {
+                Token token = new Token();
+                tokenStr = tokenStr.replaceFirst("Bearer ", "");
+                token.setToken(tokenStr);
+                RespDTO<Boolean> res = userServiceClient.verifyToken(token);
+                if (res == null || !CommonErrorCode.OK.getCode().equals(res.code)) {
+                    throw new AccountExpiredException("token expire");
+                }
+                if (!res.data) {
+                    throw new AccountExpiredException("token expire");
+                }
+            }
             for (GrantedAuthority ga : authentication.getAuthorities()) {
             for (GrantedAuthority ga : authentication.getAuthorities()) {
                 String[] authority = ga.getAuthority().split(";");
                 String[] authority = ga.getAuthority().split(";");
                 url = authority[0];
                 url = authority[0];
@@ -56,7 +80,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
         return true;
         return true;
     }
     }
 
 
-    private Boolean matchPermitAllUrl(HttpServletRequest request){
+    private Boolean matchPermitAllUrl(HttpServletRequest request) {
         if (matchers("/swagger/**", request)
         if (matchers("/swagger/**", request)
                 || matchers("/v2/**", request)
                 || matchers("/v2/**", request)
                 || matchers("/swagger-ui.html/**", request)
                 || matchers("/swagger-ui.html/**", request)

+ 28 - 0
bi-service/src/main/java/com/diagbot/dto/BIDTO.java

@@ -0,0 +1,28 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 16:30
+ */
+@Getter
+@Setter
+public class BIDTO {
+    private BIModuleDTO diagnose;
+    private BIModuleDTO symptom;
+    private BIModuleDTO vital;
+    private BIModuleDTO lis;
+    private BIModuleDTO pacs;
+    private BIModuleDTO drug;
+    private BIModuleDTO operation;
+    private BIModuleDTO gauge;
+    private BIModuleDTO prec;
+    private BIModuleDTO treat;
+    private BIModuleDTO conceptDetail;
+    private Date gmtOperate;
+}

+ 17 - 0
bi-service/src/main/java/com/diagbot/dto/BIItemDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 15:32
+ */
+@Getter
+@Setter
+public class BIItemDTO {
+    private String moduleName;
+    private String itemName;
+    private Integer count;
+}

+ 18 - 0
bi-service/src/main/java/com/diagbot/dto/BIModuleDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 16:30
+ */
+@Getter
+@Setter
+public class BIModuleDTO {
+    private String moduleName;
+    private List<BIItemDTO> items;
+}

+ 18 - 0
bi-service/src/main/java/com/diagbot/dto/PrecCountDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @description: 返回预问诊统计内容
+ * @author: zhoutg
+ * @date: 2019/10/15 14:22
+ */
+@Getter
+@Setter
+public class PrecCountDTO {
+
+    @ApiModelProperty(value = "症状数量")
+    private int symptomNum;
+}

+ 21 - 0
bi-service/src/main/java/com/diagbot/entity/Token.java

@@ -0,0 +1,21 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: token
+ * @Author: ztg
+ * @Date: 2018/9/19 13:14
+ */
+@Getter
+@Setter
+public class Token implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String token;
+
+}

+ 64 - 0
bi-service/src/main/java/com/diagbot/enums/StatisticsDetailTypeEnum.java

@@ -0,0 +1,64 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/22 10:23
+ */
+public enum StatisticsDetailTypeEnum implements KeyedNamed {
+    DiseaseCount(1, "疾病总数"),
+    NeoDiseaseCount(2, "图谱推送的疾病"),
+    NeoPediatricDiseaseCount(3, "图谱推送的儿科疾病"),
+    SymptomCount(4, "症状标准词"),
+    VitalResultCount(5, "体征结果"),
+    VitalIndexCount(6, "体征指标"),
+    LisPackageCount(7, "化验套餐"),
+    LisDetailCount(8, "化验明细"),
+    PacsItemCount(9, "辅检项目"),
+    DrugCount(10, "药品通用名"),
+    OperationCount(11, "手术项目"),
+    GaugeCount(12, "量表总数"),
+    PrecSymptomCount(13, "预问诊症状条目"),
+    TreatCount(14, "治疗数目"),
+    ConceptDetailCount(15, "静态知识总数"),
+    ConceptDetailDiseaseCount(16, "疾病"),
+    LisTableCount(17, "化验公表项");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    StatisticsDetailTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static StatisticsDetailTypeEnum getEnum(int key) {
+        for (StatisticsDetailTypeEnum item : StatisticsDetailTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        StatisticsDetailTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 58 - 0
bi-service/src/main/java/com/diagbot/enums/StatisticsTypeEnum.java

@@ -0,0 +1,58 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 17:00
+ */
+public enum StatisticsTypeEnum implements KeyedNamed {
+    DIAGNOSE(1, "疾病"),
+    SYMPTOM(2, "症状"),
+    VITAL(3, "体征"),
+    LIS(4, "化验"),
+    PACS(5, "辅检"),
+    DRUG(6, "药品"),
+    OPERATION(7, "手术"),
+    GAUGE(8, "量表"),
+    PREC(9, "智能预问诊"),
+    TREAT(10, "治疗"),
+    CONCEPT_DETAIL(11, "静态知识");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    StatisticsTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static StatisticsTypeEnum getEnum(int key) {
+        for (StatisticsTypeEnum item : StatisticsTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        StatisticsTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 243 - 0
bi-service/src/main/java/com/diagbot/facade/StatisticsFacade.java

@@ -0,0 +1,243 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.BIDTO;
+import com.diagbot.dto.BIItemDTO;
+import com.diagbot.dto.BIModuleDTO;
+import com.diagbot.enums.StatisticsDetailTypeEnum;
+import com.diagbot.enums.StatisticsTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 16:23
+ */
+@Component
+public class StatisticsFacade {
+    @Autowired
+    DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
+
+    public BIDTO count() {
+        BIDTO bidto = new BIDTO();
+        List<BIItemDTO> biItemDTOList = ListUtil.newArrayList();
+        try {
+            biItemDTOList
+                    = dataBeanAggregateQueryFacade.get("biAll", null, List.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
+
+        Map<String, List<BIItemDTO>> map = EntityUtil.makeEntityListMap(biItemDTOList, "moduleName");
+        bidto.setDiagnose(getBIModuleDTO(map, StatisticsTypeEnum.DIAGNOSE.getKey()));
+        bidto.setSymptom(getBIModuleDTO(map, StatisticsTypeEnum.SYMPTOM.getKey()));
+        bidto.setVital(getBIModuleDTO(map, StatisticsTypeEnum.VITAL.getKey()));
+        bidto.setLis(getBIModuleDTO(map, StatisticsTypeEnum.LIS.getKey()));
+        bidto.setPacs(getBIModuleDTO(map, StatisticsTypeEnum.PACS.getKey()));
+        bidto.setDrug(getBIModuleDTO(map, StatisticsTypeEnum.DRUG.getKey()));
+        bidto.setOperation(getBIModuleDTO(map, StatisticsTypeEnum.OPERATION.getKey()));
+        bidto.setGauge(getBIModuleDTO(map, StatisticsTypeEnum.GAUGE.getKey()));
+        bidto.setPrec(getBIModuleDTO(map, StatisticsTypeEnum.PREC.getKey()));
+        bidto.setTreat(getBIModuleDTO(map, StatisticsTypeEnum.TREAT.getKey()));
+        bidto.setConceptDetail(getBIModuleDTO(map, StatisticsTypeEnum.CONCEPT_DETAIL.getKey()));
+        bidto.setGmtOperate(DateUtil.now());
+
+        return bidto;
+    }
+
+    public BIModuleDTO getBIModuleDTO(Map<String, List<BIItemDTO>> map, Integer key) {
+        BIModuleDTO biModuleDTO = new BIModuleDTO();
+        List<BIItemDTO> queryItemList = Lists.newLinkedList();
+        Map<String, BIItemDTO> biItemMap = new LinkedHashMap<>();
+        if (map.get(StatisticsTypeEnum.getName(key)) != null) {
+            List<BIItemDTO> biItemDTOList = map.get(StatisticsTypeEnum.getName(key));
+            biItemMap = EntityUtil.makeEntityMap(biItemDTOList, "itemName");
+        }
+        switch (StatisticsTypeEnum.getEnum(key)) {
+            case DIAGNOSE:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DiseaseCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DiseaseCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.DIAGNOSE.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DiseaseCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoDiseaseCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoDiseaseCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.DIAGNOSE.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoDiseaseCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoPediatricDiseaseCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoPediatricDiseaseCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.DIAGNOSE.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.NeoPediatricDiseaseCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case SYMPTOM:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.SymptomCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.SymptomCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.SYMPTOM.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.SymptomCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case VITAL:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalResultCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalResultCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.VITAL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalResultCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalIndexCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalIndexCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.VITAL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.VitalIndexCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case LIS:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisPackageCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisPackageCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.LIS.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisPackageCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisDetailCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisDetailCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.LIS.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisDetailCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case PACS:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.PACS.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case DRUG:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.DRUG.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case OPERATION:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.OperationCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.OperationCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.OPERATION.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.OperationCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case GAUGE:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.GaugeCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.GaugeCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.GAUGE.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.GaugeCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case PREC:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PrecSymptomCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PrecSymptomCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.PREC.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PrecSymptomCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case TREAT:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.TreatCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.TreatCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.TREAT.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.TreatCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            case CONCEPT_DETAIL:
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.CONCEPT_DETAIL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailDiseaseCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailDiseaseCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.CONCEPT_DETAIL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.ConceptDetailDiseaseCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisTableCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisTableCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.CONCEPT_DETAIL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.LisTableCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.CONCEPT_DETAIL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.PacsItemCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                if (biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey())) != null) {
+                    queryItemList.add(biItemMap.get(StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey())));
+                } else {
+                    BIItemDTO biItemDTO = getItem(StatisticsTypeEnum.getName(StatisticsTypeEnum.CONCEPT_DETAIL.getKey()),
+                            StatisticsDetailTypeEnum.getName(StatisticsDetailTypeEnum.DrugCount.getKey()), 0);
+                    queryItemList.add(biItemDTO);
+                }
+                break;
+            default:
+                biModuleDTO = null;
+                break;
+
+        }
+        if (biModuleDTO != null) {
+            biModuleDTO.setModuleName(StatisticsTypeEnum.getName(key));
+            biModuleDTO.setItems(queryItemList);
+        }
+        return biModuleDTO;
+    }
+
+
+    public BIItemDTO getItem(String moduleName, String itemName, Integer count) {
+        BIItemDTO biItemDTO = new BIItemDTO();
+        biItemDTO.setModuleName(moduleName);
+        biItemDTO.setItemName(itemName);
+        biItemDTO.setCount(count);
+        return biItemDTO;
+    }
+}

+ 34 - 0
bi-service/src/main/java/com/diagbot/web/StatisticsController.java

@@ -0,0 +1,34 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.BIDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.StatisticsFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/10/15 17:33
+ */
+@RestController
+@RequestMapping("/statistics")
+@SuppressWarnings("unchecked")
+@Api(value = "BI-统计相关API", tags = { "BI-统计相关API" })
+public class StatisticsController {
+    @Autowired
+    StatisticsFacade statisticsFacade;
+
+    @ApiOperation(value = "数据统计[by:zhaops]", notes = "")
+    @PostMapping("/count")
+    @SysLogger("count")
+    public RespDTO<BIDTO> count() {
+        BIDTO data = statisticsFacade.count();
+        return RespDTO.onSuc(data);
+    }
+}

+ 0 - 110
bi-service/src/main/java/com/diagbot/web/SysLogController.java

@@ -1,110 +0,0 @@
-package com.diagbot.web;
-
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.SysLog;
-import com.diagbot.facade.SysLogFacade;
-import com.diagbot.vo.SysLogVo;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Date;
-
-/**
- * @Description: 日志操作控制层
- * @author: gaodm
- * @time: 2018/8/30 10:12
- */
-@RestController
-@RequestMapping("/log")
-public class SysLogController {
-
-    @Autowired
-    private SysLogFacade sysLogFacade;
-
-    /**
-     * 新增日志信息
-     *
-     * @param sysLogVo 新增日志输入参数
-     * @return 新增日志是否成功
-     */
-    @ApiOperation(value = "添加日志", notes = "添加日志")
-    @PostMapping("/add")
-    @SysLogger("postLog")
-    public RespDTO add(@RequestBody SysLogVo sysLogVo) {
-        //初始化新增日志信息
-        SysLog sysLog = new SysLog();
-        sysLog.setGmtCreate(new Date());
-        sysLog.setIp(sysLogVo.getIp());
-        sysLog.setMethod(sysLogVo.getMethod());
-        sysLog.setOperation(sysLogVo.getOperation());
-        sysLog.setParams(sysLogVo.getParams());
-        return RespDTO.onSuc(sysLogFacade.save(sysLog) ? "添加成功" : "添加失败");
-    }
-
-    /**
-     * 删除日志
-     *
-     * @param id 日志信息ID
-     * @return 删除是否成功
-     */
-    @ApiOperation(value = "删除日志", notes = "删除日志")
-    @DeleteMapping("/delete/{id}")
-    @SysLogger("deleteLog")
-    public RespDTO delete(@PathVariable(value = "id") Integer id) {
-        return RespDTO.onSuc(sysLogFacade.removeById(id) ? "删除成功" : "删除失败");
-    }
-
-    /**
-     * 修改日志
-     *
-     * @param sysLog 修改日志输入参数
-     * @return 修改是否成功
-     */
-    @ApiOperation(value = "修改日志", notes = "修改日志")
-    @PostMapping("/update")
-    @SysLogger("updateLog")
-    public RespDTO update(@RequestBody SysLog sysLog) {
-        return RespDTO.onSuc(sysLogFacade.updateById(sysLog) ? "修改成功" : "修改失败");
-    }
-
-    /**
-     * 获取日志列表
-     *
-     * @return 日志列信息
-     */
-    @ApiOperation(value = "获取日志列表", notes = "获取日志列表")
-    @GetMapping("/list")
-    @SysLogger("listLog")
-    public RespDTO list() {
-        Wrapper<SysLog> wrapper = new QueryWrapper<>();
-        return RespDTO.onSuc(sysLogFacade.list(wrapper));
-    }
-
-    /**
-     * 获取日志翻页信息
-     *
-     * @return 日志翻页信息
-     */
-    @ApiOperation(value = "获取日志翻页信息", notes = "获取日志翻页信息")
-    @GetMapping("/page")
-    @SysLogger("pageLog")
-    public RespDTO page() {
-        //初始化日志翻页参数
-        IPage<SysLog> wrapper = new Page<>();
-        return RespDTO.onSuc(sysLogFacade.page(wrapper, null));
-    }
-}
-

+ 9 - 9
common/pom.xml

@@ -23,21 +23,21 @@
         <dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
             <artifactId>commons-lang3</artifactId>
-            <version>3.8.1</version>
+            <version>3.9</version>
             <!--<scope>provided</scope>-->
             <!--<scope>provided</scope>-->
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <artifactId>lombok</artifactId>
-            <version>1.18.6</version>
+            <version>1.18.10</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <groupId>org.springframework</groupId>
             <artifactId>spring-webmvc</artifactId>
             <artifactId>spring-webmvc</artifactId>
-            <version>5.1.6.RELEASE</version>
+            <version>5.1.9.RELEASE</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
@@ -51,21 +51,21 @@
         <dependency>
         <dependency>
             <groupId>org.springframework.security</groupId>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-core</artifactId>
             <artifactId>spring-security-core</artifactId>
-            <version>5.1.4.RELEASE</version>
+            <version>5.1.6.RELEASE</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.springframework.security.oauth</groupId>
             <groupId>org.springframework.security.oauth</groupId>
             <artifactId>spring-security-oauth2</artifactId>
             <artifactId>spring-security-oauth2</artifactId>
-            <version>2.3.5.RELEASE</version>
+            <version>2.3.6.RELEASE</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
             <artifactId>slf4j-api</artifactId>
-            <version>1.7.26</version>
+            <version>1.7.28</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
@@ -79,7 +79,7 @@
         <dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
             <artifactId>fastjson</artifactId>
-            <version>1.2.56</version>
+            <version>1.2.61</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
 
 
@@ -87,14 +87,14 @@
         <dependency>
         <dependency>
             <groupId>org.apache.poi</groupId>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>
             <artifactId>poi</artifactId>
-            <version>4.0.1</version>
+            <version>4.1.0</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.apache.poi</groupId>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi-ooxml</artifactId>
             <artifactId>poi-ooxml</artifactId>
-            <version>4.0.1</version>
+            <version>4.1.0</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
 
 

+ 1 - 1
common/src/main/java/com/diagbot/enums/IsDeleteEnum.java

@@ -28,7 +28,7 @@ public enum IsDeleteEnum {
 
 
     public static IsDeleteEnum getEnum(String key) {
     public static IsDeleteEnum getEnum(String key) {
         for (IsDeleteEnum item : IsDeleteEnum.values()) {
         for (IsDeleteEnum item : IsDeleteEnum.values()) {
-            if (item.key == key) {
+            if (item.key.equals(key)) {
                 return item;
                 return item;
             }
             }
         }
         }

+ 52 - 0
common/src/main/java/com/diagbot/enums/ProductTypeEnum.java

@@ -0,0 +1,52 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description: 产品类型
+ * @author: gaodm
+ * @time: 2018/9/14 9:15
+ */
+public enum ProductTypeEnum implements KeyedNamed {
+    DIAGBOTCLOUD_INNER(1, "云平台内部"),
+    DIAGBOTCLOUD_OUTER(2, "云平台外部"),
+    ICSS(3, "ICSS"),
+    TRIAGE(4, "智能分诊"),
+    DATA(5, "页面推送模式"),
+    PREC(6, "智能预问诊");
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    ProductTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ProductTypeEnum getEnum(int key) {
+        for (ProductTypeEnum item : ProductTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        ProductTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 2 - 0
config-server/src/main/resources/shared/aipt-service-dev.yml

@@ -95,6 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
 ai:
 ai:
   server:
   server:
     address: http://192.168.2.234:5008
     address: http://192.168.2.234:5008

+ 2 - 0
config-server/src/main/resources/shared/aipt-service-local.yml

@@ -95,6 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
 ai:
 ai:
   server:
   server:
     address: http://101.37.151.162:5008
     address: http://101.37.151.162:5008

+ 2 - 0
config-server/src/main/resources/shared/aipt-service-pro.yml

@@ -95,6 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
 ai:
 ai:
   server:
   server:
     address: http://192.168.2.234:5008
     address: http://192.168.2.234:5008

+ 3 - 1
config-server/src/main/resources/shared/aipt-service-test.yml

@@ -7,7 +7,7 @@ spring:
     druid:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
       platform: mysql
-      url: jdbc:mysql://192.168.2.241:3306/med-s?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.241:3306/med?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
       username: root
       password: lantone
       password: lantone
       # 连接池的配置信息
       # 连接池的配置信息
@@ -95,6 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
 ai:
 ai:
   server:
   server:
     address: http://192.168.2.234:5008
     address: http://192.168.2.234:5008

+ 5 - 0
config-server/src/main/resources/shared/bi-service-dev.yml

@@ -95,3 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
+neo:
+  server:
+    address: http://192.168.2.234:5004

+ 5 - 0
config-server/src/main/resources/shared/bi-service-local.yml

@@ -95,3 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
+neo:
+  server:
+    address: http://192.168.2.234:5004

+ 5 - 0
config-server/src/main/resources/shared/bi-service-pro.yml

@@ -95,3 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
+neo:
+  server:
+    address: http://192.168.2.234:5004

+ 5 - 0
config-server/src/main/resources/shared/bi-service-test.yml

@@ -95,3 +95,8 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
 
 
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
+
+neo:
+  server:
+    address: http://192.168.2.241:5004

+ 3 - 1
config-server/src/main/resources/shared/icss-service-dev.yml

@@ -114,4 +114,6 @@ mybatis-plus:
       #sql-injector: com.baomidou.springboot.xxx
       #sql-injector: com.baomidou.springboot.xxx
   configuration:
   configuration:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
-    cache-enabled: false
+    cache-enabled: false
+
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate

+ 3 - 1
config-server/src/main/resources/shared/icss-service-local.yml

@@ -114,4 +114,6 @@ mybatis-plus:
       #sql-injector: com.baomidou.springboot.xxx
       #sql-injector: com.baomidou.springboot.xxx
   configuration:
   configuration:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
-    cache-enabled: false
+    cache-enabled: false
+
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate

+ 2 - 0
config-server/src/main/resources/shared/icss-service-pro.yml

@@ -115,3 +115,5 @@ mybatis-plus:
   configuration:
   configuration:
     map-underscore-to-camel-case: true
     map-underscore-to-camel-case: true
     cache-enabled: false
     cache-enabled: false
+
+io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate

+ 0 - 0
config-server/src/main/resources/shared/icss-service-test.yml


部分文件因为文件数量过多而无法显示