浏览代码

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

wangfeng 4 年之前
父节点
当前提交
5eb090cfb3

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/entity/DrugConfig.java

@@ -1,7 +1,9 @@
 package com.diagbot.entity;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
@@ -85,6 +87,7 @@ public class DrugConfig implements Serializable {
      * 剂型
      */
     @Excel(name = "药品剂型", width = 60, orderNum = "3", isImportField = "true")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String form;
 
     public Long getId() {

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/entity/LisConfig.java

@@ -1,7 +1,9 @@
 package com.diagbot.entity;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -72,6 +74,7 @@ public class LisConfig implements Serializable {
      * 检验细项
      */
     @Excel(name = "检验细项", width = 40, orderNum = "2", isImportField = "true")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String hisDetailName;
 
     /**

+ 31 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+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.client.CdssCoreClient;
@@ -7,7 +8,10 @@ import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.entity.User;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.KlConceptStaticServiceImpl;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ChangeStatusVO;
@@ -21,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -33,6 +38,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
 
     @Autowired
     private CdssCoreClient cdssCoreClient;
+    @Autowired
+    private UserFacade userFacade;
 
     /**
      * 静态知识检索
@@ -83,6 +90,30 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         if (RespDTOUtil.respIsOK(respDTO)) {
             page = respDTO.data;
         }
+        List<KlConceptStaticDTO> records = page.getRecords();
+        List<Long> userIds = records.stream().map(KlConceptStaticDTO::getModifier)
+                .distinct()
+                .map(Long::parseLong)
+                .collect(Collectors.toList());
+        List<User> users = userFacade.list(new QueryWrapper<User>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("id", userIds));
+        if (ListUtil.isNotEmpty(users)) {
+            Map<Long, String> userMap = users.stream().collect(Collectors.toMap(User::getId, User::getLinkman));
+            records.forEach(record -> {
+                if (userMap.containsKey(Long.valueOf(record.getModifier()))) {
+                    record.setModifier(userMap.get(Long.valueOf(record.getModifier())));
+                } else {
+                    record.setModifier("");
+                }
+            });
+
+        } else {
+            records.forEach(record -> {
+                record.setModifier("");
+            });
+        }
+        page.setRecords(records);
         return page;
     }
 

+ 40 - 20
cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java

@@ -157,7 +157,6 @@ public class MedRuleConvertFacade {
         Map<Long, List<RuleDTO>> groupMap = groupList
                 .stream()
                 .collect(Collectors.groupingBy(RuleDTO::getRuleOrderNo));
-        ruleOrderNo = 0L;
         for (Map.Entry<Long, List<RuleDTO>> entry : groupMap.entrySet()) {
             Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
             Integer num = 1;
@@ -165,7 +164,6 @@ public class MedRuleConvertFacade {
                 List<ResultRule> tempList = Lists.newLinkedList();
 
                 ResultRule result = new ResultRule();
-                result.setRuleOrderNo(ruleOrderNo);
                 result.setRuleType(ruleVO.getRuleType());
 
                 result.setRuleId(record.getRuleId());
@@ -372,8 +370,7 @@ public class MedRuleConvertFacade {
                 }
                 tempMap.put(num++, tempList);
             }
-            inputList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) inputList.size();
+            inputList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), inputList);
         }
 
         //药品分类扩展
@@ -385,7 +382,6 @@ public class MedRuleConvertFacade {
         Map<Long, List<ResultRule>> medMap = inputList
                 .stream()
                 .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
-        ruleOrderNo = 0L;
         for (Map.Entry<Long, List<ResultRule>> entry : medMap.entrySet()) {
             Map<Integer, List<ResultRule>> tempMap = new HashMap<>();
             Integer num = 1;
@@ -419,12 +415,10 @@ public class MedRuleConvertFacade {
                 }
                 tempMap.put(num++, tempList);
             }
-            medicineList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) medicineList.size();
+            medicineList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), medicineList);
         }
 
         //禁忌条件“流产”转成包含流产的诊断
-        ruleOrderNo = 0L;
         Map<Long, List<ResultRule>> containsDiseaseMap = medicineList
                 .stream()
                 .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
@@ -467,12 +461,10 @@ public class MedRuleConvertFacade {
                 }
                 tempMap.put(num++, tempList);
             }
-            containsDiseaseList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) containsDiseaseList.size();
+            containsDiseaseList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), containsDiseaseList);
         }
 
         //正常项目重复开立处理
-        ruleOrderNo = 0L;
         Map<Long, List<ResultRule>> rePacsBillMap = containsDiseaseList
                 .stream()
                 .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
@@ -498,15 +490,13 @@ public class MedRuleConvertFacade {
                 }
                 tempMap.put(num++, tempList);
             }
-            rePacsBillList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-            ruleOrderNo = (long) rePacsBillList.size();
+            rePacsBillList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), rePacsBillList);
         }
 
         if (hospitalId < 0) {
             conflictMappingList = BeanUtil.listCopyTo(rePacsBillList, ResultRule.class);
         } else {
             //术语映射-开单项映射
-            ruleOrderNo = 0L;
             Map<Long, List<ResultRule>> billMappingMap = rePacsBillList
                     .stream()
                     .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
@@ -587,12 +577,10 @@ public class MedRuleConvertFacade {
                     }
                     tempMap.put(num++, tempList);
                 }
-                billMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-                ruleOrderNo = (long) billMappingList.size();
+                billMappingList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), billMappingList);
             }
 
             //术语映射-禁忌项映射
-            ruleOrderNo = 0L;
             Map<Long, List<ResultRule>> conflictMappingMap = billMappingList
                     .stream()
                     .collect(Collectors.groupingBy(ResultRule::getRuleOrderNo));
@@ -633,8 +621,7 @@ public class MedRuleConvertFacade {
                     }
                     tempMap.put(num++, tempList);
                 }
-                conflictMappingList.addAll(addRuleOrderNo(tempMap, ruleOrderNo));
-                ruleOrderNo = (long) conflictMappingList.size();
+                conflictMappingList = addRuleOrderNo(tempMap, 1, Lists.newLinkedList(), conflictMappingList);
             }
         }
 
@@ -684,7 +671,40 @@ public class MedRuleConvertFacade {
         return retList;
     }
 
-    public List<ResultRule> addRuleOrderNo(Map<Integer, List<ResultRule>> map, Long ruleOrderNo) {
+    public List<ResultRule> addRuleOrderNo(Map<Integer, List<ResultRule>> map, Integer index, List<ResultRule> tempList,  List<ResultRule> retList) {
+        if (index < map.size()) {
+            List<ResultRule> list = map.get(index++);
+            for (ResultRule subResult : list) {
+                ResultRule addResult = new ResultRule();
+                BeanUtil.copyProperties(subResult, addResult);
+                List<ResultRule> groupRuleList = Lists.newLinkedList();
+                if (ListUtil.isNotEmpty(tempList)) {
+                    groupRuleList = BeanUtil.listCopyTo(tempList, ResultRule.class);
+                }
+                groupRuleList.add(addResult);
+                retList = addRuleOrderNo(map, index, groupRuleList, retList);
+            }
+        } else if (index == map.size()) {
+            List<ResultRule> list = map.get(index);
+            for (ResultRule subResult : list) {
+                ResultRule addResult = new ResultRule();
+                BeanUtil.copyProperties(subResult, addResult);
+                Long ruleOrderNo = retList.size() + 1L;
+                List<ResultRule> groupRuleList = Lists.newLinkedList();
+                if (ListUtil.isNotEmpty(tempList)) {
+                    groupRuleList = BeanUtil.listCopyTo(tempList, ResultRule.class);
+                }
+                groupRuleList.add(addResult);
+                for (ResultRule item : groupRuleList) {
+                    item.setRuleOrderNo(ruleOrderNo);
+                }
+                retList.addAll(groupRuleList);
+            }
+        }
+        return retList;
+    }
+
+    public List<ResultRule> getGroupRules(Map<Integer, List<ResultRule>> map, Long ruleOrderNo) {
         List<ResultRule> retList = Lists.newLinkedList();
         ruleOrderNo++;
         if (map == null || map.size() == 0) {

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/service/UserService.java

@@ -1,5 +1,6 @@
 package com.diagbot.service;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.diagbot.entity.User;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,6 +14,8 @@ import java.util.List;
  * @author wangfeng
  * @since 2020-08-11
  */
+
+@DS("master")
 public interface UserService extends IService<User> {
     public List<User> getByIds(List<Long> ids);
 }