浏览代码

1、术语关联映射

zhaops 3 年之前
父节点
当前提交
c0ded7d08d
共有 22 个文件被更改,包括 525 次插入98 次删除
  1. 9 8
      src/main/java/com/diagbot/aggregate/AssembleAggregate.java
  2. 8 7
      src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java
  3. 1 0
      src/main/java/com/diagbot/dto/IndexBatchDTO.java
  4. 23 0
      src/main/java/com/diagbot/entity/wrapper/AnesthesiaConfigWrapper.java
  5. 24 0
      src/main/java/com/diagbot/entity/wrapper/DeptConfigWrapper.java
  6. 23 0
      src/main/java/com/diagbot/entity/wrapper/DiseaseConfigWrapper.java
  7. 28 0
      src/main/java/com/diagbot/entity/wrapper/DrugConfigWrapper.java
  8. 23 0
      src/main/java/com/diagbot/entity/wrapper/LisConfigWrapper.java
  9. 4 0
      src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java
  10. 23 0
      src/main/java/com/diagbot/entity/wrapper/NurseConfigWrapper.java
  11. 23 0
      src/main/java/com/diagbot/entity/wrapper/OperationConfigWrapper.java
  12. 23 0
      src/main/java/com/diagbot/entity/wrapper/PacsConfigWrapper.java
  13. 23 0
      src/main/java/com/diagbot/entity/wrapper/ScaleConfigWrapper.java
  14. 23 0
      src/main/java/com/diagbot/entity/wrapper/TcmdiseaseConfigWrapper.java
  15. 23 0
      src/main/java/com/diagbot/entity/wrapper/TcmsyndromeConfigWrapper.java
  16. 23 0
      src/main/java/com/diagbot/entity/wrapper/TransfusionConfigWrapper.java
  17. 7 7
      src/main/java/com/diagbot/facade/ConceptInfoFacade.java
  18. 204 74
      src/main/java/com/diagbot/facade/MappingConfigFacade.java
  19. 3 2
      src/main/java/com/diagbot/service/impl/MrServiceImpl.java
  20. 1 0
      src/main/java/com/diagbot/vo/ConceptVO.java
  21. 1 0
      src/main/java/com/diagbot/vo/FilterVO.java
  22. 5 0
      src/main/java/com/diagbot/vo/MappingConfigPageVO.java

+ 9 - 8
src/main/java/com/diagbot/aggregate/AssembleAggregate.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.facade.MappingConfigFacade;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
@@ -162,7 +163,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(lisHisNameList)) {
             lisConfigMap
-                    = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), searchData.getHospitalId(), StatusEnum.Enable.getKey());
         }
         return lisConfigMap;
     }
@@ -195,7 +196,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap = new HashMap<>();
         if (ListUtil.isNotEmpty(pacsHisNameList)) {
             pacsConfigMap
-                    = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(pacsHisNameList, ConceptTypeEnum.Pacs.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return pacsConfigMap;
     }
@@ -233,7 +234,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(diagHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(diagHisNameList, ConceptTypeEnum.Disease.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -266,7 +267,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(drugHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(drugHisNameList, ConceptTypeEnum.Drug.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -304,7 +305,7 @@ public class AssembleAggregate {
         Map<String, Map<String, Map<String, List<String>>>> configMap = new HashMap<>();
         if (ListUtil.isNotEmpty(operationHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(operationHisNameList, ConceptTypeEnum.Operation.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -330,7 +331,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(deptHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(deptHisNameList, ConceptTypeEnum.Dept.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -364,7 +365,7 @@ public class AssembleAggregate {
 
         if (ListUtil.isNotEmpty(transfusionHisNameList)) {
             configMap
-                    = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId());
+                    = mappingConfigFacade.groupByHisNameWithName(transfusionHisNameList, ConceptTypeEnum.Transfusion.getKey(), searchData.getHospitalId(),StatusEnum.Enable.getKey());
         }
         return configMap;
     }
@@ -402,7 +403,7 @@ public class AssembleAggregate {
                 }
 
                 String hisDetailName = "";
-                if(type.equals(ConceptTypeEnum.LisPack.getKey())) {
+                if (type.equals(ConceptTypeEnum.LisPack.getKey())) {
                     hisDetailName = ReflectUtil.getProperty(item, "detailName");
                     if (StringUtil.isBlank(hisDetailName)) {
                         hisDetailName = "";

+ 8 - 7
src/main/java/com/diagbot/aggregate/AssemblePushAggregate.java

@@ -4,6 +4,7 @@ import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushScaleDTO;
 import com.diagbot.enums.ConceptTypeEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.facade.MappingConfigFacade;
 import com.diagbot.util.ListUtil;
 import com.google.common.collect.Lists;
@@ -85,7 +86,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.LisPack.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.LisPack.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retLis.forEach(item -> {
@@ -113,7 +114,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Pacs.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Pacs.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retPacs.forEach(item -> {
@@ -146,7 +147,7 @@ public class AssemblePushAggregate {
             }
             if (ListUtil.isNotEmpty(uniqueNameList)) {
                 Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                        = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Disease.getKey(), hospitalId);
+                        = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Disease.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
                 for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
                     if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
@@ -177,7 +178,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Operation.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Operation.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retOperation.forEach(item -> {
@@ -205,7 +206,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Drug.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Drug.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retDrug.forEach(item -> {
@@ -233,7 +234,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Scale.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Scale.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retScale.forEach(item -> {
@@ -261,7 +262,7 @@ public class AssemblePushAggregate {
                     .map(i -> i.getName())
                     .collect(Collectors.toList());
             Map<String, Map<String, Map<String, List<String>>>> uniqueNameMap
-                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Nurse.getKey(), hospitalId);
+                    = mappingConfigFacade.groupByUniqueNameWithName(uniqueNameList, ConceptTypeEnum.Nurse.getKey(), hospitalId, StatusEnum.Enable.getKey());
 
             if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
                 retNurse.forEach(item -> {

+ 1 - 0
src/main/java/com/diagbot/dto/IndexBatchDTO.java

@@ -12,6 +12,7 @@ import lombok.Setter;
 @Setter
 public class IndexBatchDTO {
     private Long id;
+    private Integer status;
     private String name;
     private String code;
     private String synonyms;

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/AnesthesiaConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.AnesthesiaConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AnesthesiaConfigWrapper extends AnesthesiaConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 24 - 0
src/main/java/com/diagbot/entity/wrapper/DeptConfigWrapper.java

@@ -0,0 +1,24 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DeptConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 14:53
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DeptConfigWrapper extends DeptConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/DiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:00
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DiseaseConfigWrapper extends DiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 28 - 0
src/main/java/com/diagbot/entity/wrapper/DrugConfigWrapper.java

@@ -0,0 +1,28 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.DrugConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DrugConfigWrapper extends DrugConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准剂型状态", width = 40, orderNum = "100")
+    private String formStatus;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/LisConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.LisConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class LisConfigWrapper extends LisConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 4 - 0
src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java

@@ -16,7 +16,9 @@ import lombok.ToString;
 @ToString(callSuper = true)
 public class MappingConfigWrapper extends MappingConfig {
     private String uniqueName;
+    private Integer status;
     private String form;
+    private Integer formStatus;
     private String code;
     /**
      * 国药准字
@@ -46,7 +48,9 @@ public class MappingConfigWrapper extends MappingConfig {
     public static boolean nonNull(MappingConfigWrapper o) {
         return !(o == null
                 || (StringUtil.isBlank(o.uniqueName)
+                && o.status == null
                 && StringUtil.isBlank(o.form)
+                && o.formStatus == null
                 && StringUtil.isBlank(o.code)
                 && StringUtil.isBlank(o.approval)))
                 || MappingConfig.nonNull(o);

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/NurseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.NurseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class NurseConfigWrapper extends NurseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/OperationConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.OperationConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OperationConfigWrapper extends OperationConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/PacsConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.PacsConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PacsConfigWrapper extends PacsConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/ScaleConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.ScaleConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ScaleConfigWrapper extends ScaleConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TcmdiseaseConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TcmdiseaseConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmdiseaseConfigWrapper extends TcmdiseaseConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TcmsyndromeConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TcmsyndromeConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TcmsyndromeConfigWrapper extends TcmsyndromeConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 23 - 0
src/main/java/com/diagbot/entity/wrapper/TransfusionConfigWrapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.wrapper;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.diagbot.entity.TransfusionConfig;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/9/22 15:18
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TransfusionConfigWrapper extends TransfusionConfig {
+    /**
+     * 医院诊断名称
+     */
+    @Excel(name = "标准术语状态", width = 40, orderNum = "99")
+    private String status;
+}

+ 7 - 7
src/main/java/com/diagbot/facade/ConceptInfoFacade.java

@@ -608,7 +608,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 1:
                 Map<String, Map<String, Map<String, List<String>>>> disConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Disease.getKey(), hospitalId);
+                        ConceptTypeEnum.Disease.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (disConfigMap != null
                         && disConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = disConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -620,7 +620,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 2:
                 Map<String, Map<String, Map<String, List<String>>>> drugConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Drug.getKey(), hospitalId);
+                        ConceptTypeEnum.Drug.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (drugConfigMap != null
                         && drugConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = drugConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -633,7 +633,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 4:
                 Map<String, Map<String, Map<String, List<String>>>> lisConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.LisPack.getKey(), hospitalId);
+                        ConceptTypeEnum.LisPack.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (lisConfigMap != null) {
                     if (StringUtil.isBlank(staticKnowledgeHISVO.getHisDetailName())) {
                         staticKnowledgeHISVO.setHisDetailName("");
@@ -652,7 +652,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 6:
                 Map<String, Map<String, Map<String, List<String>>>> pacsConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Pacs.getKey(), hospitalId);
+                        ConceptTypeEnum.Pacs.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (pacsConfigMap != null
                         && pacsConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = pacsConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -664,7 +664,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 7:
                 Map<String, Map<String, Map<String, List<String>>>> operationConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Operation.getKey(), hospitalId);
+                        ConceptTypeEnum.Operation.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (operationConfigMap != null &&
                         operationConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = operationConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -676,7 +676,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 8:
                 Map<String, Map<String, Map<String, List<String>>>> scaleConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Scale.getKey(), hospitalId);
+                        ConceptTypeEnum.Scale.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (scaleConfigMap != null &&
                         scaleConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = scaleConfigMap.get(staticKnowledgeHISVO.getHisName())
@@ -688,7 +688,7 @@ public class ConceptInfoFacade extends ConceptInfoServiceImpl {
             case 9:
                 Map<String, Map<String, Map<String, List<String>>>> nurseConfigMap
                         = mappingConfigFacade.groupByHisNameWithName(ListUtil.arrayToList(new String[] { staticKnowledgeHISVO.getHisName() }),
-                        ConceptTypeEnum.Nurse.getKey(), hospitalId);
+                        ConceptTypeEnum.Nurse.getKey(), hospitalId,StatusEnum.Enable.getKey());
                 if (nurseConfigMap != null &&
                         nurseConfigMap.get(staticKnowledgeHISVO.getHisName()) != null) {
                     nameList = nurseConfigMap.get(staticKnowledgeHISVO.getHisName())

+ 204 - 74
src/main/java/com/diagbot/facade/MappingConfigFacade.java

@@ -23,10 +23,23 @@ import com.diagbot.entity.ScaleConfig;
 import com.diagbot.entity.TcmdiseaseConfig;
 import com.diagbot.entity.TcmsyndromeConfig;
 import com.diagbot.entity.TransfusionConfig;
+import com.diagbot.entity.wrapper.AnesthesiaConfigWrapper;
+import com.diagbot.entity.wrapper.DeptConfigWrapper;
+import com.diagbot.entity.wrapper.DiseaseConfigWrapper;
+import com.diagbot.entity.wrapper.DrugConfigWrapper;
+import com.diagbot.entity.wrapper.LisConfigWrapper;
 import com.diagbot.entity.wrapper.MappingConfigWrapper;
+import com.diagbot.entity.wrapper.NurseConfigWrapper;
+import com.diagbot.entity.wrapper.OperationConfigWrapper;
+import com.diagbot.entity.wrapper.PacsConfigWrapper;
+import com.diagbot.entity.wrapper.ScaleConfigWrapper;
+import com.diagbot.entity.wrapper.TcmdiseaseConfigWrapper;
+import com.diagbot.entity.wrapper.TcmsyndromeConfigWrapper;
+import com.diagbot.entity.wrapper.TransfusionConfigWrapper;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.MatchSourceEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.MappingConfigService;
@@ -58,6 +71,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
@@ -97,17 +111,24 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         if (mappingConfigPageVO.getHospitalId() == null) {
             mappingConfigPageVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
         }
+        //查询启用禁用全部状态
+        if (mappingConfigPageVO.getStatus() != null && mappingConfigPageVO.getStatus().equals(0)) {
+            mappingConfigPageVO.setStatus(null);
+        }
 
         FilterVO filterVO = new FilterVO();
         RespDTO<List<IndexBatchDTO>> respDTO = null;
 
-        //todo 标准词转conceptId
+        //标准词转conceptId
         List<Long> conceptIds = Lists.newLinkedList();
+        Map<Long, IndexBatchDTO> conceptMap = new HashMap<>();
         if (StringUtil.isNotBlank(mappingConfigPageVO.getUniqueName())) {
             filterVO.setInputStr(mappingConfigPageVO.getUniqueName());
+            filterVO.setStatus(mappingConfigPageVO.getStatus());
             respDTO = cdssCoreClient.filter(filterVO);
             if (RespDTOUtil.respIsOK(respDTO)) {
                 if (ListUtil.isNotEmpty(respDTO.data)) {
+                    conceptMap = respDTO.data.stream().collect(Collectors.toMap(IndexBatchDTO::getId, v -> v));
                     conceptIds.addAll(respDTO.data
                             .stream()
                             .map(IndexBatchDTO::getId)
@@ -120,13 +141,16 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         }
         mappingConfigPageVO.setConceptIds(conceptIds);
 
-        //todo 药品剂型转 conceptId
+        //药品剂型转 conceptId
         List<Long> formConceptIds = Lists.newLinkedList();
+        Map<Long, IndexBatchDTO> formMap = new HashMap<>();
         if (StringUtil.isNotBlank(mappingConfigPageVO.getForm())) {
             filterVO.setInputStr(mappingConfigPageVO.getForm());
+            filterVO.setStatus(mappingConfigPageVO.getStatus());
             respDTO = cdssCoreClient.filter(filterVO);
             if (RespDTOUtil.respIsOK(respDTO)) {
                 if (ListUtil.isNotEmpty(respDTO.data)) {
+                    formMap = respDTO.data.stream().collect(Collectors.toMap(IndexBatchDTO::getId, v -> v));
                     formConceptIds.addAll(respDTO.data
                             .stream()
                             .filter(i -> i.getType().equals(ConceptTypeEnum.Form.getKey()))
@@ -140,17 +164,16 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         }
         mappingConfigPageVO.setFormConceptIds(formConceptIds);
 
-        //todo 多条匹配
+        //多条匹配
         if (mappingConfigPageVO.getIsMatch() != null && mappingConfigPageVO.getIsMatch().equals(2)) {
             mappingConfigPageVO.setIsMatch(null);
             mappingConfigPageVO.setIsMultiple(1);
         }
 
         IPage<MappingConfigWrapper> page = super.getPage(mappingConfigPageVO);
-
-        //todo conceptId转标准词
         List<MappingConfigWrapper> records = page.getRecords();
-        records = addNames(records);
+
+        records = addNames(records, null);
         page.setRecords(records);
 
         return page;
@@ -163,69 +186,130 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param response
      * @param type
      * @param extFileName
+     * @param mode        1:模板导出、2:关联关系
      */
-    public void exportExcel(HttpServletResponse response, List<?> list, Integer type, String extFileName) {
+    public void exportExcel(HttpServletResponse response, List<?> list, Integer type, String extFileName, Integer mode) {
         String fileName = extFileName + ".xls";
         switch (type) {
             case 1:
                 fileName = "检验" + fileName;
-                List<LisConfig> lisConfigList = BeanUtil.listCopyTo(list, LisConfig.class);
-                ExcelUtils.exportExcel(lisConfigList, null, "sheet1", LisConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<LisConfig> lisConfigList = BeanUtil.listCopyTo(list, LisConfig.class);
+                    ExcelUtils.exportExcel(lisConfigList, null, "sheet1", LisConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<LisConfigWrapper> lisConfigList = BeanUtil.listCopyTo(list, LisConfigWrapper.class);
+                    ExcelUtils.exportExcel(lisConfigList, null, "sheet1", LisConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 3:
                 fileName = "检查" + fileName;
-                List<PacsConfig> pacsConfigList = BeanUtil.listCopyTo(list, PacsConfig.class);
-                ExcelUtils.exportExcel(pacsConfigList, null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<PacsConfig> pacsConfigList = BeanUtil.listCopyTo(list, PacsConfig.class);
+                    ExcelUtils.exportExcel(pacsConfigList, null, "sheet1", PacsConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<PacsConfigWrapper> pacsConfigWrapperList = BeanUtil.listCopyTo(list, PacsConfigWrapper.class);
+                    ExcelUtils.exportExcel(pacsConfigWrapperList, null, "sheet1", PacsConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 4:
                 fileName = "诊断" + fileName;
-                List<DiseaseConfig> diseaseConfigList = BeanUtil.listCopyTo(list, DiseaseConfig.class);
-                ExcelUtils.exportExcel(diseaseConfigList, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<DiseaseConfig> diseaseConfigList = BeanUtil.listCopyTo(list, DiseaseConfig.class);
+                    ExcelUtils.exportExcel(diseaseConfigList, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<DiseaseConfigWrapper> diseaseConfigList = BeanUtil.listCopyTo(list, DiseaseConfigWrapper.class);
+                    ExcelUtils.exportExcel(diseaseConfigList, null, "sheet1", DiseaseConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 5:
                 fileName = "药品" + fileName;
-                List<DrugConfig> drugConfigList = BeanUtil.listCopyTo(list, DrugConfig.class);
-                ExcelUtils.exportExcel(drugConfigList, getForm(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<DrugConfig> drugConfigList = BeanUtil.listCopyTo(list, DrugConfig.class);
+                    ExcelUtils.exportExcel(drugConfigList, getForm(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<DrugConfigWrapper> drugConfigList = BeanUtil.listCopyTo(list, DrugConfigWrapper.class);
+                    ExcelUtils.exportExcel(drugConfigList, getForm(), "sheet1", DrugConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 6:
                 fileName = "手术和操作" + fileName;
-                List<OperationConfig> operationConfigList = BeanUtil.listCopyTo(list, OperationConfig.class);
-                ExcelUtils.exportExcel(operationConfigList, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<OperationConfig> operationConfigList = BeanUtil.listCopyTo(list, OperationConfig.class);
+                    ExcelUtils.exportExcel(operationConfigList, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<OperationConfigWrapper> operationConfigList = BeanUtil.listCopyTo(list, OperationConfigWrapper.class);
+                    ExcelUtils.exportExcel(operationConfigList, null, "sheet1", OperationConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 7:
                 fileName = "科室" + fileName;
-                List<DeptConfig> deptConfigList = BeanUtil.listCopyTo(list, DeptConfig.class);
-                ExcelUtils.exportExcel(deptConfigList, null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<DeptConfig> deptConfigList = BeanUtil.listCopyTo(list, DeptConfig.class);
+                    ExcelUtils.exportExcel(deptConfigList, null, "sheet1", DeptConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<DeptConfigWrapper> deptConfigList = BeanUtil.listCopyTo(list, DeptConfigWrapper.class);
+                    ExcelUtils.exportExcel(deptConfigList, null, "sheet1", DeptConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 8:
                 fileName = "输血" + fileName;
-                List<TransfusionConfig> transfusionConfigList = BeanUtil.listCopyTo(list, TransfusionConfig.class);
-                ExcelUtils.exportExcel(transfusionConfigList, null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<TransfusionConfig> transfusionConfigList = BeanUtil.listCopyTo(list, TransfusionConfig.class);
+                    ExcelUtils.exportExcel(transfusionConfigList, null, "sheet1", TransfusionConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<TransfusionConfigWrapper> transfusionConfigList = BeanUtil.listCopyTo(list, TransfusionConfigWrapper.class);
+                    ExcelUtils.exportExcel(transfusionConfigList, null, "sheet1", TransfusionConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 10:
                 fileName = "量表" + fileName;
-                List<ScaleConfig> scaleConfigList = BeanUtil.listCopyTo(list, ScaleConfig.class);
-                ExcelUtils.exportExcel(scaleConfigList, null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<ScaleConfig> scaleConfigList = BeanUtil.listCopyTo(list, ScaleConfig.class);
+                    ExcelUtils.exportExcel(scaleConfigList, null, "sheet1", ScaleConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<ScaleConfigWrapper> scaleConfigList = BeanUtil.listCopyTo(list, ScaleConfigWrapper.class);
+                    ExcelUtils.exportExcel(scaleConfigList, null, "sheet1", ScaleConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 11:
                 fileName = "护理" + fileName;
-                List<NurseConfig> nurseConfigList = BeanUtil.listCopyTo(list, NurseConfig.class);
-                ExcelUtils.exportExcel(nurseConfigList, null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<NurseConfig> nurseConfigList = BeanUtil.listCopyTo(list, NurseConfig.class);
+                    ExcelUtils.exportExcel(nurseConfigList, null, "sheet1", NurseConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<NurseConfigWrapper> nurseConfigList = BeanUtil.listCopyTo(list, NurseConfigWrapper.class);
+                    ExcelUtils.exportExcel(nurseConfigList, null, "sheet1", NurseConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 12:
                 fileName = "中医疾病" + fileName;
-                List<TcmdiseaseConfig> tcmdiseaseConfigList = BeanUtil.listCopyTo(list, TcmdiseaseConfig.class);
-                ExcelUtils.exportExcel(tcmdiseaseConfigList, null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<TcmdiseaseConfig> tcmdiseaseConfigList = BeanUtil.listCopyTo(list, TcmdiseaseConfig.class);
+                    ExcelUtils.exportExcel(tcmdiseaseConfigList, null, "sheet1", TcmdiseaseConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<TcmdiseaseConfigWrapper> tcmdiseaseConfigList = BeanUtil.listCopyTo(list, TcmdiseaseConfigWrapper.class);
+                    ExcelUtils.exportExcel(tcmdiseaseConfigList, null, "sheet1", TcmdiseaseConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 13:
                 fileName = "中医证候" + fileName;
-                List<TcmsyndromeConfig> tcmsyndromeConfigList = BeanUtil.listCopyTo(list, TcmsyndromeConfig.class);
-                ExcelUtils.exportExcel(tcmsyndromeConfigList, null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<TcmsyndromeConfig> tcmsyndromeConfigList = BeanUtil.listCopyTo(list, TcmsyndromeConfig.class);
+                    ExcelUtils.exportExcel(tcmsyndromeConfigList, null, "sheet1", TcmsyndromeConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<TcmsyndromeConfigWrapper> tcmsyndromeConfigList = BeanUtil.listCopyTo(list, TcmsyndromeConfigWrapper.class);
+                    ExcelUtils.exportExcel(tcmsyndromeConfigList, null, "sheet1", TcmsyndromeConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             case 14:
                 fileName = "麻醉" + fileName;
-                List<AnesthesiaConfig> anesthesiaConfigList = BeanUtil.listCopyTo(list, AnesthesiaConfig.class);
-                ExcelUtils.exportExcel(anesthesiaConfigList, null, "sheet1", AnesthesiaConfig.class, fileName, response, 12.8f);
+                if (mode.equals(1)) {
+                    List<AnesthesiaConfig> anesthesiaConfigList = BeanUtil.listCopyTo(list, AnesthesiaConfig.class);
+                    ExcelUtils.exportExcel(anesthesiaConfigList, null, "sheet1", AnesthesiaConfig.class, fileName, response, 12.8f);
+                } else if (mode.equals(2)) {
+                    List<AnesthesiaConfigWrapper> anesthesiaConfigList = BeanUtil.listCopyTo(list, AnesthesiaConfigWrapper.class);
+                    ExcelUtils.exportExcel(anesthesiaConfigList, null, "sheet1", AnesthesiaConfigWrapper.class, fileName, response, 12.8f);
+                }
                 break;
             default:
                 break;
@@ -261,7 +345,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param response
      */
     public void exportExcelModule(HttpServletResponse response, MappingConfigVO mappingConfigVO) {
-        exportExcel(response, new ArrayList<>(), mappingConfigVO.getType(), "导入模板");
+        exportExcel(response, new ArrayList<>(), mappingConfigVO.getType(), "导入模板", 1);
     }
 
     /**
@@ -280,7 +364,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
         IPage<MappingConfigWrapper> page = this.getPage(mappingConfigPageVO);
 
-        exportExcel(response, page.getRecords(), mappingConfigPageVO.getType(), "映射");
+        exportExcel(response, page.getRecords(), mappingConfigPageVO.getType(), "映射", 2);
     }
 
     /**
@@ -397,7 +481,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
     public void precDataMatch(MultipartFile file, Integer type, HttpServletResponse response) {
         List<MappingConfigWrapper> originList = readImportData(file, type, 1);
         List<MappingConfigWrapper> retList = precDataProcess(originList, type);
-        exportExcel(response, retList, type, "关联数据(预匹配)");
+        exportExcel(response, retList, type, "关联数据(预匹配)", 1);
     }
 
     /**
@@ -555,7 +639,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
         //药品关联标准词、同义词匹配数据增加历史数据剂型
         if (type.equals(ConceptTypeEnum.Drug.getKey())) {
-            dataList = addDrugForm(dataList, type);
+            dataList = addDrugForm(dataList, type, StatusEnum.Enable.getKey());
         }
 
         retList = BeanUtil.listCopyTo(dataList, MappingConfigWrapper.class);
@@ -566,7 +650,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         }
 
         //添加编码
-        retList = addCodes(retList, type);
+        retList = addCodes(retList, type, StatusEnum.Enable.getKey());
         retList = retList.stream().distinct().collect(Collectors.toList());
         return retList;
     }
@@ -788,7 +872,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
     }
 
     /**
-     * 历史数据匹配
+     * 历史数据匹配(预匹配)
      *
      * @param list
      * @param type
@@ -805,7 +889,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 .distinct()
                 .collect(Collectors.toList());
         if (ListUtil.isNotEmpty(hisNames)) {
-            Map<String, Map<String, Map<String, List<String>>>> configMap = groupByHisNameWithName(hisNames, type, null);
+            Map<String, Map<String, Map<String, List<String>>>> configMap = groupByHisNameWithName(hisNames, type, null, StatusEnum.Enable.getKey());
 
             for (MappingConfigWrapper item : list) {
                 if (item.getIsMatch() != null && item.getIsMatch().equals(1)) {
@@ -855,11 +939,12 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
     /**
      * 国药准字匹配(药品)
+     *
      * @param list
      * @param type
      * @return
      */
-    public List<MappingConfigWrapper> matchWithApproval(List<MappingConfigWrapper> list,Integer type) {
+    public List<MappingConfigWrapper> matchWithApproval(List<MappingConfigWrapper> list, Integer type) {
         List<MappingConfigWrapper> retList = Lists.newLinkedList();
         if (ListUtil.isEmpty(list) || null == type) {
             return list;
@@ -876,8 +961,8 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         String regex = "[a-zA-Z]+\\d{8}";
         Pattern pattern = Pattern.compile(regex);
 
-        Map<String, IndexBatchDTO> approvalMap = new HashMap<>();
-        approvalMap = indexBatchDTOList.stream().collect(Collectors.toMap(IndexBatchDTO::getApproval, v -> v));
+        Map<String, List<IndexBatchDTO>> approvalMap = new HashMap<>();
+        approvalMap = indexBatchDTOList.stream().collect(Collectors.groupingBy(IndexBatchDTO::getApproval));
         /*for (IndexBatchDTO indexDTO : indexBatchDTOList) {
             Matcher matcher = pattern.matcher(indexDTO.getApproval());
             if (matcher.find()) {
@@ -897,19 +982,22 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 approval = matcher.group();
             }*/
             if (StringUtils.isNotBlank(item.getApproval()) && approvalMap.containsKey(item.getApproval())) {
-                IndexBatchDTO indexBatchDTO = approvalMap.get(item.getApproval());
-                item.setUniqueName(indexBatchDTO.getName());
-                item.setConceptId(indexBatchDTO.getId());
-                if (indexBatchDTO.getFormConceptId() != null) {
-                    item.setForm(indexBatchDTO.getForm());
-                    item.setFormConceptId(indexBatchDTO.getFormConceptId());
+                List<IndexBatchDTO> dtoList = approvalMap.get(item.getApproval());
+                for (IndexBatchDTO indexBatchDTO : dtoList) {
+                    item.setUniqueName(indexBatchDTO.getName());
+                    item.setConceptId(indexBatchDTO.getId());
+                    if (indexBatchDTO.getFormConceptId() != null) {
+                        item.setForm(indexBatchDTO.getForm());
+                        item.setFormConceptId(indexBatchDTO.getFormConceptId());
+                    }
+                    item.setSource(MatchSourceEnum.Approval.getKey());
+                    item.setIsMatch(1);
+                    retList.add(item);
                 }
-                item.setSource(MatchSourceEnum.Approval.getKey());
-                item.setIsMatch(1);
             } else {
                 item.setIsMatch(0);
+                retList.add(item);
             }
-            retList.add(item);
         }
         return retList;
     }
@@ -919,9 +1007,10 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      *
      * @param list
      * @param type
+     * @param status 标准术语启用禁用标志
      * @return
      */
-    public List<MappingConfigWrapper> addDrugForm(List<MappingConfigWrapper> list, Integer type) {
+    public List<MappingConfigWrapper> addDrugForm(List<MappingConfigWrapper> list, Integer type, Integer status) {
         List<MappingConfigWrapper> retList = Lists.newLinkedList();
         if (ListUtil.isEmpty(list) || null == type) {
             return list;
@@ -946,7 +1035,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 .distinct()
                 .collect(Collectors.toList()));
         if (ListUtil.isNotEmpty(hisDrugNames)) {
-            Map<String, Map<String, Map<String, List<String>>>> configMap = groupByHisNameWithName(hisDrugNames, type, null);
+            Map<String, Map<String, Map<String, List<String>>>> configMap = groupByHisNameWithName(hisDrugNames, type, null, status);
             for (MappingConfigWrapper item : list) {
                 if (item.getIsMatch() != null && item.getIsMatch().equals(1)
                         && item.getSource() != null
@@ -1047,6 +1136,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
     /**
      * 导入数据校验
+     *
      * @param originList
      * @param hospitalId
      * @param type
@@ -1304,18 +1394,22 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
+        List<MappingConfigWrapper> db_matchList = Lists.newLinkedList();
+        List<MappingConfigWrapper> db_unMatchList = Lists.newLinkedList();
+        Map<String, List<MappingConfigWrapper>> db_matchMap = new HashMap<>();
+        Map<String, List<MappingConfigWrapper>> db_unMatchMap = new HashMap<>();
         synchronized (this) {
             List<Long> deleteIds = Lists.newLinkedList();
-            List<MappingConfig> existList = this.list(new QueryWrapper<MappingConfig>()
+            List<MappingConfig> dbList = this.list(new QueryWrapper<MappingConfig>()
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .eq("hospital_id", hospitalId)
                     .eq("type", type)
                     .in("his_name", hisNames));
 
-            if (ListUtil.isNotEmpty(existList)) {
-                List<MappingConfigWrapper> existWrapperList = BeanUtil.listCopyTo(existList, MappingConfigWrapper.class);
-                existWrapperList = addNames(existWrapperList);
-                for (MappingConfigWrapper item : existWrapperList) {
+            if (ListUtil.isNotEmpty(dbList)) {
+                List<MappingConfigWrapper> dbWrapperList = BeanUtil.listCopyTo(dbList, MappingConfigWrapper.class);
+                dbWrapperList = addNames(dbWrapperList, StatusEnum.Enable.getKey());
+                for (MappingConfigWrapper item : dbWrapperList) {
                     if (StringUtil.isBlank(item.getHisDetailName())) {
                         item.setHisDetailName("");
                     }
@@ -1330,16 +1424,12 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                     }
                 }
 
-                List<MappingConfigWrapper> db_matchList
-                        = existWrapperList.stream().filter(i -> i.getIsMatch().equals(1)).collect(Collectors.toList());
-                Map<String, List<MappingConfigWrapper>> db_matchMap
-                        = db_matchList.stream().collect(Collectors.groupingBy(i -> i.getHisName() + "_"
+                db_matchList = dbWrapperList.stream().filter(i -> i.getIsMatch().equals(1)).collect(Collectors.toList());
+                db_matchMap = db_matchList.stream().collect(Collectors.groupingBy(i -> i.getHisName() + "_"
                         + i.getHisCode() + "_"
                         + i.getHisDetailName()));
-                List<MappingConfigWrapper> db_unMatchList
-                        = existWrapperList.stream().filter(i -> i.getIsMatch().equals(0)).collect(Collectors.toList());
-                Map<String, List<MappingConfigWrapper>> db_unMatchMap
-                        = db_unMatchList.stream().collect(Collectors.groupingBy(i -> i.getHisName() + "_"
+                db_unMatchList = dbWrapperList.stream().filter(i -> i.getIsMatch().equals(0)).collect(Collectors.toList());
+                db_unMatchMap = db_unMatchList.stream().collect(Collectors.groupingBy(i -> i.getHisName() + "_"
                         + i.getHisCode() + "_"
                         + i.getHisDetailName()));
 
@@ -1395,7 +1485,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
                 RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
                 Map<String, List<Long>> packMap = new HashMap<>();
-                respDTO.data.stream()
+                packMap = respDTO.data.stream()
                         .collect(Collectors.groupingBy(IndexBatchDTO::getName,
                                 Collectors.mapping(IndexBatchDTO::getId, Collectors.toList())));
 
@@ -1492,20 +1582,30 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                     .distinct()
                     .collect(Collectors.toList());
 
+            List<MappingConfig> saveList = Lists.newLinkedList();
             for (MappingConfigWrapper item : tempList) {
+                //检查标准术语校验后未匹配的数据是否有对应已匹配的数据,有则删除未匹配数据
+                if (item.getIsMatch().equals(0)) {
+                    String key = item.getHisName() + "_" + item.getHisCode() + "_" + item.getHisDetailName();
+                    if (db_matchMap.containsKey(key)) {
+                        continue;
+                    }
+                }
                 item.setHospitalId(hospitalId);
                 item.setType(type);
                 item.setCreator(userId);
                 item.setGmtCreate(now);
                 item.setModifier(userId);
                 item.setGmtModified(now);
+                MappingConfig saveItem = new MappingConfig();
+                BeanUtils.copyProperties(item, saveItem);
+                saveList.add(saveItem);
             }
 
             //删除已存在映射关系
             IdListVO idListVO = new IdListVO();
             idListVO.setIds(deleteIds);
             deleteRecords(idListVO);
-            List<MappingConfig> saveList = BeanUtil.listCopyTo(tempList, MappingConfig.class);
             saveList = saveList.stream().distinct().collect(Collectors.toList());
             if (ListUtil.isNotEmpty(saveList)) {
                 mappingConfigService.saveOrUpdateBatch(saveList);
@@ -1557,7 +1657,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         BeanUtils.copyProperties(item, itemWrapper);
         List<MappingConfigWrapper> retList = Lists.newArrayList();
         retList.add(itemWrapper);
-        retList = addNames(retList);
+        retList = addNames(retList, null);
 
         return retList.get(0);
     }
@@ -1595,7 +1695,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
 
         retList = BeanUtil.listCopyTo(list, MappingConfigWrapper.class);
 
-        retList = addNames(retList);
+        retList = addNames(retList, null);
         return retList;
     }
 
@@ -1717,6 +1817,30 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 && !mappingConfig.getId().equals(oldRecord.getId())) {
             throw new CommonException(CommonErrorCode.IS_EXISTS, "该条关联已存在,无法保存");
         }
+        //标准术语校验
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(-1);
+        conceptVO.setStatus(StatusEnum.Enable.getKey());
+        conceptVO.setIds(Arrays.asList(new Long[] { mappingConfig.getConceptId() }));
+        List<Long> conceptIds = Lists.newLinkedList();
+        conceptIds.add(mappingConfig.getConceptId());
+        if (mappingConfig.getFormConceptId() != null) {
+            conceptIds.add(mappingConfig.getFormConceptId());
+        }
+
+        RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            Map<Long, IndexBatchDTO> dtoMap = respDTO.data.stream().collect(Collectors.toMap(IndexBatchDTO::getId, v -> v));
+            if (!dtoMap.containsKey(mappingConfig.getConceptId())) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "标准术语校验失败");
+            }
+            if (mappingConfig.getFormConceptId() != null && (!dtoMap.containsKey(mappingConfig.getFormConceptId()))) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "剂型校验失败");
+            }
+        } else {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "标准术语校验失败");
+        }
+
         //新增数据
         if (mappingConfig.getId() == null) {
             mappingConfig.setCreator(userId);
@@ -1817,9 +1941,10 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param hisNames
      * @param type
      * @param hospitalId
+     * @param status     标准术语启用禁用标志
      * @return
      */
-    public Map<String, Map<String, Map<String, List<String>>>> groupByHisNameWithName(List<String> hisNames, Integer type, Long hospitalId) {
+    public Map<String, Map<String, Map<String, List<String>>>> groupByHisNameWithName(List<String> hisNames, Integer type, Long hospitalId, Integer status) {
         Map<String, Map<String, Map<String, List<String>>>> retMap = new HashMap<>();
         Map<String, Map<String, Map<Long, List<Long>>>> idMap = groupByHisNameWithId(hisNames, type, hospitalId);
 
@@ -1847,6 +1972,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         conceptVO.setSource(-1);
         conceptVO.setType(type);
         conceptVO.setIds(ids);
+        conceptVO.setStatus(status);
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
         RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
         List<IndexBatchDTO> indexList = respDTO.data;
@@ -1891,7 +2017,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param hospitalId
      * @return uniqueName, form, hisName, hisDetailName
      */
-    public Map<String, Map<String, Map<String, List<String>>>> groupByUniqueNameWithName(List<String> uniqueNames, Integer type, Long hospitalId) {
+    public Map<String, Map<String, Map<String, List<String>>>> groupByUniqueNameWithName(List<String> uniqueNames, Integer type, Long hospitalId, Integer status) {
         Map<String, Map<String, Map<String, List<String>>>> retMap = new HashMap<>();
 
         List<Long> conceptIds = Lists.newArrayList();
@@ -1938,7 +2064,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         }
 
         List<MappingConfigWrapper> wrapperList = BeanUtil.listCopyTo(list, MappingConfigWrapper.class);
-        wrapperList = addNames(wrapperList);
+        wrapperList = addNames(wrapperList, status);
         wrapperList.forEach(item -> {
             if (StringUtil.isBlank(item.getForm())) {
                 item.setForm("");
@@ -1973,7 +2099,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param list
      * @return
      */
-    public List<MappingConfigWrapper> addNames(List<MappingConfigWrapper> list) {
+    public List<MappingConfigWrapper> addNames(List<MappingConfigWrapper> list, Integer status) {
         if (ListUtil.isEmpty(list)) {
             return list;
         }
@@ -1991,6 +2117,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         ConceptVO conceptVO = new ConceptVO();
         conceptVO.setSource(-1);
         conceptVO.setIds(ids);
+        conceptVO.setStatus(status);
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             Map<Long, IndexBatchDTO> conceptMap
@@ -1999,9 +2126,11 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
                 if (record.getConceptId() != null && conceptMap.containsKey(record.getConceptId())) {
                     record.setUniqueName(conceptMap.get(record.getConceptId()).getName());
                     record.setCode(conceptMap.get(record.getConceptId()).getCode());
+                    record.setStatus(conceptMap.get(record.getConceptId()).getStatus());
                 }
                 if (record.getFormConceptId() != null && conceptMap.containsKey(record.getFormConceptId())) {
                     record.setForm(conceptMap.get(record.getFormConceptId()).getName());
+                    record.setFormStatus(conceptMap.get(record.getFormConceptId()).getStatus());
                 }
             }
         }
@@ -2015,7 +2144,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      * @param list
      * @return
      */
-    public List<MappingConfigWrapper> addCodes(List<MappingConfigWrapper> list, Integer type) {
+    public List<MappingConfigWrapper> addCodes(List<MappingConfigWrapper> list, Integer type, Integer status) {
         List<MappingConfigWrapper> retList = Lists.newLinkedList();
         if (ListUtil.isEmpty(list)) {
             return list;
@@ -2037,6 +2166,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setType(type);
         conceptVO.setNames(names);
+        conceptVO.setStatus(status);
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             Map<String, List<String>> conceptMap

+ 3 - 2
src/main/java/com/diagbot/service/impl/MrServiceImpl.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.dto.TcmDTO;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.OtherIndexEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.facade.MappingConfigFacade;
@@ -143,7 +144,7 @@ public class MrServiceImpl implements MrService {
                 tcmdisease.setName(otherIndex.get(OtherIndexEnum.getName(OtherIndexEnum.TcmDiag.getKey())));
                 Map<String, Map<String, Map<String, List<String>>>> configMap
                         = mappingConfigFacade.groupByHisNameWithName(Arrays.asList(new String[] { tcmdisease.getName() }),
-                        ConceptTypeEnum.Tcmdisease.getKey(), hospitalId);
+                        ConceptTypeEnum.Tcmdisease.getKey(), hospitalId, StatusEnum.Enable.getKey());
                 if (configMap != null && configMap.get(tcmdisease.getName()) != null) {
                     tcmdisease.setUniqueName(configMap.get(tcmdisease.getName())
                             .get("")
@@ -162,7 +163,7 @@ public class MrServiceImpl implements MrService {
                 tcmsyndrome.setName(otherIndex.get(OtherIndexEnum.getName(OtherIndexEnum.TcmSyndrome.getKey())));
                 Map<String, Map<String, Map<String, List<String>>>> configMap
                         = mappingConfigFacade.groupByHisNameWithName(Arrays.asList(new String[] { tcmsyndrome.getName() }),
-                        ConceptTypeEnum.Tcmsyndrome.getKey(), hospitalId);
+                        ConceptTypeEnum.Tcmsyndrome.getKey(), hospitalId, StatusEnum.Enable.getKey());
                 if (configMap != null && configMap.get(tcmsyndrome.getName()) != null) {
                     tcmsyndrome.setUniqueName(configMap.get(tcmsyndrome.getName())
                             .get("")

+ 1 - 0
src/main/java/com/diagbot/vo/ConceptVO.java

@@ -17,4 +17,5 @@ public class ConceptVO {
     private List<String> names;
     private Integer type;
     private Integer source;
+    private Integer status;
 }

+ 1 - 0
src/main/java/com/diagbot/vo/FilterVO.java

@@ -15,4 +15,5 @@ import javax.validation.constraints.NotBlank;
 public class FilterVO {
     @NotBlank(message = "请输入检索内容")
     private String inputStr;
+    private Integer status;
 }

+ 5 - 0
src/main/java/com/diagbot/vo/MappingConfigPageVO.java

@@ -71,4 +71,9 @@ public class MappingConfigPageVO extends Page {
      */
     @ApiModelProperty(hidden = true)
     private Integer isMultiple;
+
+    /**
+     * 标准术语启用禁用状态
+     */
+    private Integer status;
 }