Browse Source

术语映射bug修正

zhaops 4 years ago
parent
commit
52bc7e4725

+ 4 - 2
cdssman-service/src/main/java/com/diagbot/facade/DeptConfigFacade.java

@@ -178,7 +178,8 @@ public class DeptConfigFacade {
             deptConfig.setModifier(userId);
             deptConfig.setGmtModified(now);
             if (deptConfig.getId() == null) {
-                if (configMap.containsKey(deptConfig.getHisName())) {
+                if (configMap.containsKey(deptConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()))) {
                     deleteIds.addAll(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()));
                 }
                 deptConfig.setCreator(userId);
@@ -317,7 +318,8 @@ public class DeptConfigFacade {
             deptConfig.setModifier(userId);
             deptConfig.setGmtModified(now);
             if (deptConfig.getId() == null) {
-                if (configMap.containsKey(deptConfig.getHisName())) {
+                if (configMap.containsKey(deptConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()))) {
                     deleteIds.addAll(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()));
                 }
                 deptConfig.setCreator(userId);

+ 16 - 9
cdssman-service/src/main/java/com/diagbot/facade/DiseaseConfigFacade.java

@@ -156,14 +156,15 @@ public class DiseaseConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(hospitalId, null, null);
         diseaseConfigList.forEach(diseaseConfig -> {
             diseaseConfig.setModifier(userId);
             diseaseConfig.setGmtModified(now);
             if (diseaseConfig.getId() == null) {
-                if (configMap.containsKey(diseaseConfig.getHisName())) {
-                    deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
+                if (configMap.containsKey(diseaseConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
                 }
                 diseaseConfig.setCreator(userId);
                 diseaseConfig.setGmtCreate(now);
@@ -284,15 +285,16 @@ public class DiseaseConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), null, null);
         diseaseConfigList.forEach(diseaseConfig -> {
             diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
             diseaseConfig.setModifier(userId);
             diseaseConfig.setGmtModified(now);
             if (diseaseConfig.getId() == null) {
-                if (configMap.containsKey(diseaseConfig.getHisName())) {
-                    deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
+                if (configMap.containsKey(diseaseConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
                 }
                 diseaseConfig.setCreator(userId);
                 diseaseConfig.setGmtCreate(now);
@@ -348,8 +350,8 @@ public class DiseaseConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Long>> retMap = new HashMap<>();
+    public Map<String, Map<String, List<Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
         QueryWrapper<DiseaseConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -366,7 +368,12 @@ public class DiseaseConfigFacade {
         Map<String, List<DiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<DiseaseConfig>> entry : configMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+                Map<String, List<DiseaseConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
+                Map<String, List<Long>> subIdMap = new HashMap<>();
+                for (Map.Entry<String, List<DiseaseConfig>> subEntry : subMap.entrySet()) {
+                    subIdMap.put(subEntry.getKey(), subEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                }
+                retMap.put(entry.getKey(), subIdMap);
             }
         }
         return retMap;

+ 15 - 11
cdssman-service/src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -185,7 +185,7 @@ public class DrugConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
                 = getConfigMap(hospitalId, hisNames, uniqueNames);
         drugConfigList.forEach(drugConfig -> {
             drugConfig.setHospitalId(Long.valueOf(hospitalId));
@@ -195,8 +195,8 @@ public class DrugConfigFacade {
             if (drugConfig.getId() == null) {
                 if (configMap.get(drugConfig.getHisName()) != null
                         && configMap.get(drugConfig.getHisName()).get(form) != null
-                        && configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()) != null) {
-                    deleteIds.add(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
+                        && ListUtil.isNotEmpty(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
                 }
                 drugConfig.setCreator(userId);
                 drugConfig.setGmtCreate(now);
@@ -353,7 +353,7 @@ public class DrugConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
         drugConfigList.forEach(drugConfig -> {
             drugConfig.setHospitalId(Long.valueOf(hospitalId));
@@ -363,8 +363,8 @@ public class DrugConfigFacade {
             if (drugConfig.getId() == null) {
                 if (configMap.get(drugConfig.getHisName()) != null
                         && configMap.get(drugConfig.getHisName()).get(form) != null
-                        && configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()) != null) {
-                    deleteIds.add(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
+                        && ListUtil.isNotEmpty(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
                 }
                 drugConfig.setCreator(userId);
                 drugConfig.setGmtCreate(now);
@@ -416,8 +416,8 @@ public class DrugConfigFacade {
      * @param uniqueNames
      * @return Map<hisName,Map<form,Map<uniqueName,id>>>
      */
-    public Map<String, Map<String,Map<String, Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Map<String, Long>>> retMap = new HashMap<>();
+    public Map<String, Map<String,Map<String, List<Long>>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Map<String, List<Long>>>> retMap = new HashMap<>();
         QueryWrapper<DrugConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -434,7 +434,7 @@ public class DrugConfigFacade {
         Map<String, List<DrugConfig>> hisNameMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<DrugConfig>> entry : hisNameMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                Map<String, Map<String, Long>> formMap = new HashMap<>();
+                Map<String, Map<String, List<Long>>> formMap = new HashMap<>();
                 entry.getValue().forEach(i -> {
                     if (StringUtil.isBlank(i.getForm())) {
                         i.setForm("");
@@ -444,8 +444,12 @@ public class DrugConfigFacade {
                         = EntityUtil.makeEntityListMap(entry.getValue(), "form");
                 for (Map.Entry<String, List<DrugConfig>> subEntry : subMap.entrySet()) {
                     if (ListUtil.isNotEmpty(subEntry.getValue())) {
-                        formMap.put(subEntry.getKey(),
-                                EntityUtil.makeMapWithKeyValue(subEntry.getValue(), "uniqueName", "id"));
+                        Map<String, List<DrugConfig>> thirdMap = EntityUtil.makeEntityListMap(subEntry.getValue(), "uniqueName");
+                        Map<String, List<Long>> idMap = new HashMap<>();
+                        for (Map.Entry<String, List<DrugConfig>> thirdEntry : thirdMap.entrySet()) {
+                            idMap.put(thirdEntry.getKey(), thirdEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                        }
+                        formMap.put(entry.getKey(), idMap);
                     }
                 }
                 retMap.put(entry.getKey(), formMap);

+ 19 - 15
cdssman-service/src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -173,7 +173,7 @@ public class LisConfigFacade{
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
                 = getConfigMap(hosptialId, null, null);
         lisConfigList.forEach(lisConfig -> {
             lisConfig.setModifier(userId);
@@ -182,12 +182,12 @@ public class LisConfigFacade{
                 if (configMap.containsKey(lisConfig.getHisName())) {
                     if (lisConfig.getHisDetailName() == null
                             && configMap.get(lisConfig.getHisName()).containsKey("")) {
-                        if (configMap.get(lisConfig.getHisName()).get("").containsKey(lisConfig.getUniqueName())) {
-                            deleteIds.add(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()));
+                        if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()))) {
+                            deleteIds.addAll(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()));
                         }
                     } else if (configMap.get(lisConfig.getHisName()).containsKey(lisConfig.getHisDetailName())) {
-                        if (configMap.get(lisConfig.getHisName()).get(lisConfig.getHisDetailName()).containsKey(lisConfig.getUniqueName())) {
-                            deleteIds.add(configMap
+                        if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get(lisConfig.getHisDetailName()).get(lisConfig.getUniqueName()))) {
+                            deleteIds.addAll(configMap
                                     .get(lisConfig.getHisName())
                                     .get(lisConfig.getHisDetailName())
                                     .get(lisConfig.getUniqueName()));
@@ -330,7 +330,7 @@ public class LisConfigFacade{
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
         lisConfigList.forEach(lisConfig -> {
             lisConfig.setHospitalId(Long.valueOf(hospitalId));
@@ -340,12 +340,12 @@ public class LisConfigFacade{
                 if (configMap.containsKey(lisConfig.getHisName())) {
                     if (lisConfig.getHisDetailName() == null
                             && configMap.get(lisConfig.getHisName()).containsKey("")) {
-                        if (configMap.get(lisConfig.getHisName()).get("").containsKey(lisConfig.getUniqueName())) {
-                            deleteIds.add(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()));
+                        if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()))) {
+                            deleteIds.addAll(configMap.get(lisConfig.getHisName()).get("").get(lisConfig.getUniqueName()));
                         }
                     } else if (configMap.get(lisConfig.getHisName()).containsKey(lisConfig.getHisDetailName())) {
-                        if (configMap.get(lisConfig.getHisName()).get(lisConfig.getHisDetailName()).containsKey(lisConfig.getUniqueName())) {
-                            deleteIds.add(configMap
+                        if (ListUtil.isNotEmpty(configMap.get(lisConfig.getHisName()).get(lisConfig.getHisDetailName()).get(lisConfig.getUniqueName()))) {
+                            deleteIds.addAll(configMap
                                     .get(lisConfig.getHisName())
                                     .get(lisConfig.getHisDetailName())
                                     .get(lisConfig.getUniqueName()));
@@ -408,8 +408,8 @@ public class LisConfigFacade{
      * @param uniqueNames
      * @return
      */
-    public Map<String, Map<String, Map<String, Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Map<String, Long>>> retMap = new HashMap<>();
+    public Map<String, Map<String, Map<String, List<Long>>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, Map<String, List<Long>>>> retMap = new HashMap<>();
         QueryWrapper<LisConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -433,14 +433,18 @@ public class LisConfigFacade{
         Map<String, List<LisConfig>> hisNameMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<LisConfig>> entry : hisNameMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                Map<String, Map<String, Long>> detailNameMap = new HashMap<>();
+                Map<String, Map<String, List<Long>>> detailNameMap = new HashMap<>();
                 //his名称映射到标准词,1:n
                 Map<String, List<LisConfig>> hisDetailNameMap
                         = EntityUtil.makeEntityListMap(entry.getValue(), "hisDetailName");
                 for (Map.Entry<String, List<LisConfig>> detailEntry : hisDetailNameMap.entrySet()) {
                     if (ListUtil.isNotEmpty(detailEntry.getValue())) {
-                        detailNameMap.put(detailEntry.getKey(),
-                                EntityUtil.makeMapWithKeyValue(detailEntry.getValue(), "uniqueName", "id"));
+                        Map<String, List<LisConfig>> thirdMap = EntityUtil.makeEntityListMap(detailEntry.getValue(), "uniqueName");
+                        Map<String, List<Long>> idMap = new HashMap<>();
+                        for (Map.Entry<String, List<LisConfig>> thirdEntry : thirdMap.entrySet()) {
+                            idMap.put(thirdEntry.getKey(), thirdEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                        }
+                        detailNameMap.put(entry.getKey(), idMap);
                     }
                 }
                 retMap.put(entry.getKey(), detailNameMap);

+ 16 - 9
cdssman-service/src/main/java/com/diagbot/facade/OperationConfigFacade.java

@@ -160,14 +160,15 @@ public class OperationConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(hospitalId, null, null);
         operationConfigList.forEach(operationConfig -> {
             operationConfig.setModifier(userId);
             operationConfig.setGmtModified(now);
             if (operationConfig.getId() == null) {
-                if (configMap.containsKey(operationConfig.getHisName())) {
-                    deleteIds.add(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
+                if (configMap.containsKey(operationConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
                 }
                 operationConfig.setCreator(userId);
                 operationConfig.setGmtCreate(now);
@@ -293,15 +294,16 @@ public class OperationConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), null, null);
         operationConfigList.forEach(operationConfig -> {
             operationConfig.setHospitalId(Long.valueOf(hospitalId));
             operationConfig.setModifier(userId);
             operationConfig.setGmtModified(now);
             if (operationConfig.getId() == null) {
-                if (configMap.containsKey(operationConfig.getHisName())) {
-                    deleteIds.add(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
+                if (configMap.containsKey(operationConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(operationConfig.getHisName()).get(operationConfig.getUniqueName()));
                 }
                 operationConfig.setCreator(userId);
                 operationConfig.setGmtCreate(now);
@@ -357,8 +359,8 @@ public class OperationConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Long>> retMap = new HashMap<>();
+    public Map<String, Map<String, List<Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
         QueryWrapper<OperationConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -375,7 +377,12 @@ public class OperationConfigFacade {
         Map<String, List<OperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<OperationConfig>> entry : configMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+                Map<String, List<OperationConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
+                Map<String, List<Long>> subIdMap = new HashMap<>();
+                for (Map.Entry<String, List<OperationConfig>> subEntry : subMap.entrySet()) {
+                    subIdMap.put(subEntry.getKey(), subEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                }
+                retMap.put(entry.getKey(), subIdMap);
             }
         }
         return retMap;

+ 16 - 9
cdssman-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -158,14 +158,15 @@ public class PacsConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(hospitalId, null, null);
         pacsConfigList.forEach(pacsConfig -> {
             pacsConfig.setModifier(userId);
             pacsConfig.setGmtModified(now);
             if (pacsConfig.getId() == null) {
-                if (configMap.containsKey(pacsConfig.getHisName())) {
-                    deleteIds.add(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()));
+                if (configMap.containsKey(pacsConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()));
                 }
                 pacsConfig.setCreator(userId);
                 pacsConfig.setGmtCreate(now);
@@ -291,15 +292,16 @@ public class PacsConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), null, null);
         pacsConfigList.forEach(pacsConfig -> {
             pacsConfig.setHospitalId(Long.valueOf(hospitalId));
             pacsConfig.setModifier(userId);
             pacsConfig.setGmtModified(now);
             if (pacsConfig.getId() == null) {
-                if (configMap.containsKey(pacsConfig.getHisName())) {
-                    deleteIds.add(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()));
+                if (configMap.containsKey(pacsConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(pacsConfig.getHisName()).get(pacsConfig.getUniqueName()));
                 }
                 pacsConfig.setCreator(userId);
                 pacsConfig.setGmtCreate(now);
@@ -355,8 +357,8 @@ public class PacsConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Long>> retMap = new HashMap<>();
+    public Map<String, Map<String, List<Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
         QueryWrapper<PacsConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -373,7 +375,12 @@ public class PacsConfigFacade {
         Map<String, List<PacsConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<PacsConfig>> entry : configMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+                Map<String, List<PacsConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
+                Map<String, List<Long>> subIdMap = new HashMap<>();
+                for (Map.Entry<String, List<PacsConfig>> subEntry : subMap.entrySet()) {
+                    subIdMap.put(subEntry.getKey(), subEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                }
+                retMap.put(entry.getKey(), subIdMap);
             }
         }
         return retMap;

+ 16 - 9
cdssman-service/src/main/java/com/diagbot/facade/TransfusionConfigFacade.java

@@ -158,14 +158,15 @@ public class TransfusionConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(hospitalId, null, null);
         transfusionConfigList.forEach(transfusionConfig -> {
             transfusionConfig.setModifier(userId);
             transfusionConfig.setGmtModified(now);
             if (transfusionConfig.getId() == null) {
-                if (configMap.containsKey(transfusionConfig.getHisName())) {
-                    deleteIds.add(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()));
+                if (configMap.containsKey(transfusionConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()));
                 }
                 transfusionConfig.setCreator(userId);
                 transfusionConfig.setGmtCreate(now);
@@ -291,15 +292,16 @@ public class TransfusionConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
+        Map<String, Map<String, List<Long>>> configMap
                 = getConfigMap(Long.valueOf(hospitalId), null, null);
         transfusionConfigList.forEach(transfusionConfig -> {
             transfusionConfig.setHospitalId(Long.valueOf(hospitalId));
             transfusionConfig.setModifier(userId);
             transfusionConfig.setGmtModified(now);
             if (transfusionConfig.getId() == null) {
-                if (configMap.containsKey(transfusionConfig.getHisName())) {
-                    deleteIds.add(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()));
+                if (configMap.containsKey(transfusionConfig.getHisName())
+                        && ListUtil.isNotEmpty(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()))) {
+                    deleteIds.addAll(configMap.get(transfusionConfig.getHisName()).get(transfusionConfig.getUniqueName()));
                 }
                 transfusionConfig.setCreator(userId);
                 transfusionConfig.setGmtCreate(now);
@@ -355,8 +357,8 @@ public class TransfusionConfigFacade {
      * @param uniqueNames
      * @return
      */
-    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Long>> retMap = new HashMap<>();
+    public Map<String, Map<String, List<Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
         QueryWrapper<TransfusionConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId);
@@ -373,7 +375,12 @@ public class TransfusionConfigFacade {
         Map<String, List<TransfusionConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
         for (Map.Entry<String, List<TransfusionConfig>> entry : configMap.entrySet()) {
             if (ListUtil.isNotEmpty(entry.getValue())) {
-                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
+                Map<String, List<TransfusionConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
+                Map<String, List<Long>> subIdMap = new HashMap<>();
+                for (Map.Entry<String, List<TransfusionConfig>> subEntry : subMap.entrySet()) {
+                    subIdMap.put(subEntry.getKey(), subEntry.getValue().stream().map(i -> i.getId()).distinct().collect(Collectors.toList()));
+                }
+                retMap.put(entry.getKey(), subIdMap);
             }
         }
         return retMap;