Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev/diagnose20210315' into dev/diagnose20210315

wangfeng před 4 roky
rodič
revize
218f843758

+ 15 - 10
src/main/java/com/diagbot/aggregate/PushNewAggregate.java

@@ -99,20 +99,25 @@ public class PushNewAggregate {
         long start = System.currentTimeMillis();
         try {
             PushNewDTO pushNewDTO = pushNewServiceClient.pushNew(pushNewVO);
-            if (pushNewDTO == null) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "大数据推理服务挂了");
+            if (pushNewDTO == null || (pushNewDTO != null && pushNewDTO.getStatus().equals(-1))) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "大数据推理出错");
             }
-            if (pushNewDTO != null && ListUtil.isNotEmpty(pushNewDTO.getDisease())) {
-                List<PushBaseDTO> pushBaseDTOList = pushNewDTO.getDisease().stream().map(r -> {
-                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
-                    pushBaseDTO.setName(r);
-                    return pushBaseDTO;
-                }).collect(Collectors.toList());
-                dis.put(DiagnoseTypeEnum.bigDataPush.getName(), pushBaseDTOList);
+            // 根据现有信息,无法推送相关疾病
+            if (pushNewDTO.getStatus().equals(1)) {
+                CoreUtil.getDebugStr("【大数据推理无诊断结果】", "无法推送相关疾病", pushDTO.getDebug());
+            } else if (pushNewDTO.getStatus().equals(0)) {
+                if (ListUtil.isNotEmpty(pushNewDTO.getDisease())) {
+                    List<PushBaseDTO> pushBaseDTOList = pushNewDTO.getDisease().stream().map(r -> {
+                        PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                        pushBaseDTO.setName(r);
+                        return pushBaseDTO;
+                    }).collect(Collectors.toList());
+                    dis.put(DiagnoseTypeEnum.bigDataPush.getName(), pushBaseDTOList);
+                }
             }
         } catch (Exception e) {
             log.error("【大数据推理出错】", e);
-            CoreUtil.getDebugStr("【大数据推理出错】", e, pushDTO.getDebug());
+            CoreUtil.getDebugStr("【大数据推理出错】", "大数据推理出错", pushDTO.getDebug());
         }
         CoreUtil.getDebugStr(start, "大数据推送诊断耗时", pushDTO.getDebug());
         return pushDTO;

+ 1 - 1
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -44,7 +44,7 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.loadAllBaseDiagnoseCache();
         log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
 
-        cacheFacade.loadHostipalPushType();
+        cacheFacade.loadHostipalPush();
         log.info("CDSS-CORE服务启动加载医院大数据推送类型成功!");
 
 //        cacheFacade.getDiseaseCorrespondCache();

+ 1 - 1
src/main/java/com/diagbot/dto/PushNewDTO.java

@@ -13,7 +13,7 @@ import java.util.List;
 @Data
 public class PushNewDTO {
     // 返回状态
-    private Boolean status;
+    private Integer status;
     // 返回疾病
     private List<String> Disease = Lists.newArrayList();
 }

+ 2 - 1
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -23,7 +23,8 @@ public enum RedisEnum implements KeyedNamed {
     allRule(10, "allRule:"),
     allBaseDiagnose(11, "allBaseDiagnose"),
     hospitalPushType(12, "hospitalPushType"),
-    pushVersion(13, "pushVersion");
+    pushVersion(13, "pushVersion"),
+    hospitalId_(14, "hospitalId_");
 
     @Setter
     private int key;

+ 18 - 15
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -1,18 +1,18 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.entity.TranHospitalInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
-import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
-import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -31,6 +31,8 @@ public class CacheFacade {
     private KlDiagnoseBaseFacade klDiagnoseBaseFacade;
     @Autowired
     KlDictionaryInfoFacade klDictionaryInfoFacade;
+    @Autowired
+    TranHospitalInfoFacade tranHospitalInfoFacade;
 
     /**
      * 清除缓存信息
@@ -124,22 +126,23 @@ public class CacheFacade {
     }
 
     /**
-     * 加载医院大数据推送类型
+     * 加载大数据推送类型【tran_hospital_info】和推送版本【kl_dictionary_info】
      */
-    public void loadHostipalPushType() {
+    public void loadHostipalPush() {
+        // 加载大数据推送类型
         redisUtil.delete(RedisEnum.hospitalPushType.getName());
+        List<TranHospitalInfo> hospitalList = tranHospitalInfoFacade.list(new QueryWrapper<TranHospitalInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+        );
+        redisUtil.putHashMap(RedisEnum.hospitalPushType.getName(),
+                hospitalList.stream().collect(Collectors.toMap(k -> String.valueOf(k.getId()), v -> String.valueOf(v.getPushMode()), (v1, v2) -> (v2))));
+
+        // 加载推送版本
         redisUtil.delete(RedisEnum.pushVersion.getName());
-        List<DictionaryInfoDTO> listByGroupType = klDictionaryInfoFacade.getListByGroupType(Lists.newArrayList(100,101));
+        List<DictionaryInfoDTO> listByGroupType = klDictionaryInfoFacade.getListByGroupType(100);
         if (ListUtil.isNotEmpty(listByGroupType)) {
-            Map<Long, List<DictionaryInfoDTO>> map = EntityUtil.makeEntityListMap(listByGroupType, "groupType");
-            if (map.get(Long.valueOf(100)) != null) {
-                redisUtil.putHashMap(RedisEnum.hospitalPushType.getName(),
-                        map.get(Long.valueOf(100)).stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2))));
-            }
-            if (map.get(Long.valueOf(101)) != null) {
-                redisUtil.putHashMap(RedisEnum.pushVersion.getName(),
-                        map.get(Long.valueOf(101)).stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2))));
-            }
+            redisUtil.putHashMap(RedisEnum.pushVersion.getName(),
+                    listByGroupType.stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2))));
         }
     }
 }

+ 3 - 2
src/main/java/com/diagbot/facade/PushFacade.java

@@ -62,8 +62,9 @@ public class PushFacade {
      * @return
      */
     public PushDTO pushFac(PushVO pushVO) {
-        String pushVersion = redisUtil.getByKeyAndField(RedisEnum.pushVersion.getName(), String.valueOf(pushVO.getHospitalId()));
-        if (StringUtil.isBlank(pushVersion)) {
+        String pushVersion = redisUtil.getByKeyAndField(RedisEnum.pushVersion.getName(),
+                RedisEnum.hospitalId_.getName() + pushVO.getHospitalId());
+        if (StringUtil.isNotBlank(pushVersion) && "old".equals(pushVersion)) {
             // 使用5.0推送
             return processAggreate(pushVO);
         } else {

+ 5 - 5
src/main/java/com/diagbot/web/CacheController.java

@@ -96,12 +96,12 @@ public class CacheController {
         return RespDTO.onSuc(true);
     }
 
-    @ApiOperation(value = "加载医院大数据推送类型[by:zhoutg]",
+    @ApiOperation(value = "加载大数据推送类型【tran_hospital_info】和推送版本【kl_dictionary_info】[by:zhoutg]",
             notes = "")
-    @PostMapping("/loadHostipalPushType")
-    @SysLogger("loadHostipalPushType")
-    public RespDTO<Boolean> loadHostipalPushType() {
-        cacheFacade.loadHostipalPushType();
+    @PostMapping("/loadHostipalPush")
+    @SysLogger("loadHostipalPush")
+    public RespDTO<Boolean> loadHostipalPush() {
+        cacheFacade.loadHostipalPush();
         return RespDTO.onSuc(true);
     }
 }