gaodm 5 gadi atpakaļ
vecāks
revīzija
9c73be5a36

+ 21 - 46
aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java

@@ -19,12 +19,11 @@ import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.facade.ClinicalFacade;
 import com.diagbot.facade.ConceptFacade;
+import com.diagbot.facade.PushCacheFacade;
 import com.diagbot.facade.TranEnDeFacade;
 import com.diagbot.util.CryptUtil;
-import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.LisConfigVO;
@@ -58,6 +57,8 @@ public class PushItemAggregate {
     private ClinicalFacade clinicalFacade;
     @Autowired
     CryptConfiguer cryptConfiguer;
+    @Autowired
+    private PushCacheFacade pushCacheFacade;
 
     @DataProvider("setAll")
     public PushDTO setAll(
@@ -115,37 +116,7 @@ public class PushItemAggregate {
                 }
             }
         }
-        //没有推送信息时,默认取全科模板
-        if (StringUtil.isBlank(deptName)) {
-            deptName = "全科";
-            if (cryptConfiguer.cryptFlag) {
-                deptName = CryptUtil.encrypt_char(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) {
-            if (cryptConfiguer.cryptFlag) {
-                if (deptName.equals(CryptUtil.encrypt_char("全科")) == false) {
-                    deptName = CryptUtil.encrypt_char("全科");
-                }
-            } else {
-                if (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;
+        return pushCacheFacade.getDept(deptName);
     }
 
     @DataProvider("setSymptom")
@@ -348,7 +319,7 @@ public class PushItemAggregate {
                     //关联概念,增加概念id
                     conceptBaseVO.setName(medicalIndication.getName());
                     conceptBaseVO.setLibType(LexiconTypeEnum.CORE_INDICATORS.getKey());
-                    Concept medConcept = conceptFacade.getConcept(conceptBaseVO);
+                    Concept medConcept = pushCacheFacade.getConcept(conceptBaseVO);
                     if (medConcept != null) {
                         medicalIndication.setConceptId(medConcept.getId());
                     }
@@ -364,7 +335,7 @@ public class PushItemAggregate {
                                     }
                                     conceptBaseVO.setName(scaleName);
                                     conceptBaseVO.setLibType(LexiconTypeEnum.GAUGE.getKey());
-                                    Concept scaleConcept = conceptFacade.getConcept(conceptBaseVO);
+                                    Concept scaleConcept = pushCacheFacade.getConcept(conceptBaseVO);
                                     scaleJson.put("libType", LexiconTypeEnum.GAUGE.getKey());
                                     scaleJson.put("type", ConceptTypeEnum.Scale.getKey());
                                     if (scaleConcept != null) {
@@ -396,25 +367,29 @@ public class PushItemAggregate {
 
 
     /**
-     * 推理返回概念
+     * 推理返回概念(已加缓存)
      *
      * @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<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);
+        //        }
         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());
-            }
+            ConceptPushDTO conceptDTO = pushCacheFacade.getConceptDTO(name, libType);
             conceptDTOS.add(conceptDTO);
         }
         return conceptDTOS;

+ 12 - 4
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -63,6 +63,8 @@ public class ConceptFacade extends ConceptServiceImpl {
     KlSymptomFacade klSymptomFacade;
     @Autowired
     private TranServiceClient tranServiceClient;
+    @Autowired
+    private PushCacheFacade pushCacheFacade;
 
     /**
      * 验证存在并且获取概念基本信息
@@ -208,10 +210,16 @@ public class ConceptFacade extends ConceptServiceImpl {
     public List<Concept> getListByNames(List<String> nameList) {
         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);
+            //            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            //            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+            //                    .in("lib_name", nameList);
+            //            list = this.list(conceptQueryWrapper);
+            for (String name : nameList) {
+                Concept concept = pushCacheFacade.getConceptByName(name);
+                if (null != concept) {
+                    list.add(concept);
+                }
+            }
         }
         return list;
     }

+ 122 - 0
aipt-service/src/main/java/com/diagbot/facade/PushCacheFacade.java

@@ -0,0 +1,122 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.config.CryptConfiguer;
+import com.diagbot.dto.ConceptPushDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LexiconTypeEnum;
+import com.diagbot.util.CryptUtil;
+import com.diagbot.util.IntegerUtil;
+import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptBaseVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/8 15:04
+ */
+@Component
+public class PushCacheFacade {
+
+    @Autowired
+    private ConceptFacade conceptFacade;
+    @Autowired
+    private CryptConfiguer cryptConfiguer;
+
+    /**
+     * 获取科室信息(已加缓存)
+     *
+     * @param deptName
+     * @return
+     */
+    @Cacheable(value = "aipt-service", key = "'GetDept:deptName_' + #deptName", unless = "#result == null")
+    public ConceptPushDTO getDept(String deptName) {
+        //没有推送信息时,默认取全科模板
+        if (StringUtil.isBlank(deptName)) {
+            deptName = "全科";
+            if (cryptConfiguer.cryptFlag) {
+                deptName = CryptUtil.encrypt_char(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) {
+            if (cryptConfiguer.cryptFlag) {
+                if (deptName.equals(CryptUtil.encrypt_char("全科")) == false) {
+                    deptName = CryptUtil.encrypt_char("全科");
+                }
+            } else {
+                if (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;
+    }
+
+    @Cacheable(value = "aipt-service", key = "'GetConceptDTO:name_' + #name + '_libType_' + #libType", unless = "#result == null")
+    public ConceptPushDTO getConceptDTO(String name, Integer libType){
+        ConceptPushDTO conceptPushDTO = null;
+        if (StringUtil.isNotBlank(name) && !IntegerUtil.isNull(libType)){
+            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("lib_name", name)
+                    .eq("lib_type", libType);
+            Concept concept = conceptFacade.getOne(conceptQueryWrapper, false);
+
+            conceptPushDTO= new ConceptPushDTO();
+            conceptPushDTO.setName(name);
+            conceptPushDTO.setLibType(libType);
+            conceptPushDTO.setType(ParamConvertUtil.libConvert2Concept(libType));
+            if (null != concept) {
+                conceptPushDTO.setConceptId(concept.getId());
+            }
+        }
+        return conceptPushDTO;
+    }
+
+    /**
+     * 获取概念基本信息
+     *
+     * @param conceptBaseVO
+     * @return
+     */
+    @Cacheable(value = "aipt-service", key = "'GetConcept:name_' + #conceptBaseVO.name + '_libType_' + #conceptBaseVO.libType", unless = "#result == null")
+    public Concept getConcept(ConceptBaseVO conceptBaseVO) {
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_name", conceptBaseVO.getName())
+                .eq("lib_type", conceptBaseVO.getLibType());
+        Concept concept = conceptFacade.getOne(conceptQueryWrapper, false);
+        return concept;
+    }
+
+    @Cacheable(value = "aipt-service", key = "'GetConceptByName:name_' + #name", unless = "#result == null")
+    public Concept getConceptByName(String name) {
+        Concept concept = null;
+        if (StringUtil.isNotBlank(name)){
+            QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+            conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("lib_name", name);
+            concept = conceptFacade.getOne(conceptQueryWrapper, false);
+
+        }
+        return concept;
+    }
+}

+ 5 - 2
aipt-service/src/main/java/com/diagbot/facade/TranEnDeFacade.java

@@ -10,6 +10,7 @@ import com.diagbot.vo.DiseaseIcdVO;
 import com.diagbot.vo.LisConfigVO;
 import com.diagbot.vo.PacsConfigVO;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -178,11 +179,12 @@ public class TranEnDeFacade {
     }
 
     /**
-     * 根据医院编码查询诊断icd映射(返回map原文)
+     * 根据医院编码查询诊断icd映射(返回map原文)(已加换成)
      *
      * @param hosCodeVO
      * @return
      */
+    @Cacheable(value = "aipt-service", key = "'GetDiseaseIcdByHosCode:hosCode_' + #hosCodeVO.hosCode", unless = "#result == null")
     public Map<String, String> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO) {
         RespDTO<Map<String, String>> respDTO = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
         Map<String, String> retMap = new LinkedHashMap<>();
@@ -283,11 +285,12 @@ public class TranEnDeFacade {
     }
 
     /**
-     * 根据医院编码查询辅检公表映射,公表项做key(返回map原文)
+     * 根据医院编码查询辅检公表映射,公表项做key(返回map原文)(已加缓存)
      *
      * @param hosCodeVO
      * @return
      */
+    @Cacheable(value = "aipt-service", key = "'GetPacsConfigByUniqueNameAndHosCode:hosCode_' + #hosCodeVO.hosCode", unless = "#result == null")
     public Map<String, List<String>> getPacsConfigByUniqueNameAndHosCode(@RequestBody HosCodeVO hosCodeVO) {
         RespDTO<Map<String, List<String>>> respDTO = tranServiceClient.getPacsConfigByUniqueNameAndHosCode(hosCodeVO);
         Map<String, List<String>> retMap = new LinkedHashMap<>();

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

@@ -45,13 +45,13 @@ public class TransferFacade {
     CryptConfiguer cryptConfiguer;
 
     /**
-     * 查询对接状态
+     * 查询对接状态(已加缓存)
      *
      * @param hosCode
      * @param sysType
      * @return
      */
-    @Cacheable(value = "aipt-service", key = "'Connect:hosCode_' + #hosCode + '_sysType_' + #sysType")
+    @Cacheable(value = "aipt-service", key = "'Connect:hosCode_' + #hosCode + '_sysType_' + #sysType", unless = "#result == null")
     public Boolean isConnect(String hosCode, Integer sysType) {
         Boolean isConnect = false;
         if (StringUtil.isNotBlank(hosCode)) {

+ 1 - 1
data-service/src/main/java/com/diagbot/facade/ConceptDetailCacheFacade.java

@@ -29,7 +29,7 @@ public class ConceptDetailCacheFacade {
      * @param conceptIntroduceVO
      * @return
      */
-    @Cacheable(value = "data-service", key = "'ConceptDetail:name_' + #conceptIntroduceVO.name + '_type_' + #conceptIntroduceVO.type+ '_pos_' + #conceptIntroduceVO.position")
+    @Cacheable(value = "data-service", key = "'ConceptDetail:name_' + #conceptIntroduceVO.name + '_type_' + #conceptIntroduceVO.type+ '_pos_' + #conceptIntroduceVO.position", unless = "#result == null")
     public ConceptIntroduceDTO getConceptDetail(ConceptIntroduceVO conceptIntroduceVO) {
         RespDTO<ConceptIntroduceDTO> res = aiptServiceClient.getConceptDetail(conceptIntroduceVO);
         RespDTOUtil.respNGDeal(res, "获取静态知识失败");

+ 1 - 1
data-service/src/main/java/com/diagbot/facade/DictionaryFacade.java

@@ -27,7 +27,7 @@ public class DictionaryFacade {
      *
      * @return
      */
-    @Cacheable(value = "data-service", key = "'dictionary'")
+    @Cacheable(value = "data-service", key = "'dictionary'", unless = "#result == null")
     public Map<Long, List<DictionaryInfoDTO>> getList() {
         RespDTO<Map<Long, List<DictionaryInfoDTO>>> res = aiptServiceClient.getList();
         RespDTOUtil.respNGDealCover(res, "获取字典信息失败");

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

@@ -25,7 +25,7 @@ public class DisclaimerInformationFacade {
     /**
      * @return
      */
-    @Cacheable(value = "data-service", key = "'disclaimerInfo'")
+    @Cacheable(value = "data-service", key = "'disclaimerInfo'", unless = "#result == null")
     public List<DisclaimerInformationDTO> getDisclaimerInformation() {
         DisclaimerInformationVO disclaimerInformationVO = new DisclaimerInformationVO();
         disclaimerInformationVO.setType(2);

+ 1 - 1
data-service/src/main/java/com/diagbot/facade/SysSetFacade.java

@@ -27,7 +27,7 @@ public class SysSetFacade {
      *
      * @return
      */
-    @Cacheable(value = "data-service", key = "'SysSetInfo:hospCode_' + #hospitalSetVO.hospitalCode + '_plan_' + #hospitalSetVO.plan")
+    @Cacheable(value = "data-service", key = "'SysSetInfo:hospCode_' + #hospitalSetVO.hospitalCode + '_plan_' + #hospitalSetVO.plan", unless = "#result == null")
     public List<SysSetInfoDTO> getSysSetInfoData(HospitalSetVO hospitalSetVO) {
         RespDTO<List<SysSetInfoDTO>> sysSetInfoLists = tranServiceClient.getSysSetInfoDatas(hospitalSetVO);
         RespDTOUtil.respNGDeal(sysSetInfoLists, "获取配置数据失败!");

+ 1 - 1
data-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -26,7 +26,7 @@ public class VersionInfoFacade {
      *
      * @return
      */
-    @Cacheable(value = "data-service", key = "'version'")
+    @Cacheable(value = "data-service", key = "'version'", unless = "#result == null")
     public VersionWrapperDTO getVersionInfoAll() {
         VersionVO versionVO = new VersionVO();
         versionVO.setProductType(ProductTypeEnum.DATA.getKey());