浏览代码

术语映射bug修正

zhaops 4 年之前
父节点
当前提交
7bf2927a53

+ 47 - 8
src/main/java/com/diagbot/facade/DeptConfigFacade.java

@@ -153,15 +153,16 @@ public class DeptConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), null, null);
         deptConfigList.forEach(deptConfig -> {
             deptConfig.setHospitalId(Long.valueOf(hospitalId));
             deptConfig.setModifier(userId);
             deptConfig.setGmtModified(now);
             if (deptConfig.getId() == null) {
-                if (configMap.containsKey(deptConfig.getHisName())) {
-                    deleteIds.add(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()));
+                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);
                 deptConfig.setGmtCreate(now);
@@ -290,15 +291,16 @@ public class DeptConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), null, null);
         deptConfigList.forEach(deptConfig -> {
             deptConfig.setHospitalId(Long.valueOf(hospitalId));
             deptConfig.setModifier(userId);
             deptConfig.setGmtModified(now);
             if (deptConfig.getId() == null) {
-                if (configMap.containsKey(deptConfig.getHisName())) {
-                    deleteIds.add(configMap.get(deptConfig.getHisName()).get(deptConfig.getUniqueName()));
+                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);
                 deptConfig.setGmtCreate(now);
@@ -378,6 +380,43 @@ public class DeptConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, List<Long>>> getConfigMapWithIds(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
+        Map<String, Map<String, List<Long>>> retMap = new HashMap<>();
+        QueryWrapper<DeptConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalId);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DeptConfig> records = deptConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<DeptConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<DeptConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                Map<String, List<DeptConfig>> subMap = EntityUtil.makeEntityListMap(entry.getValue(), "uniqueName");
+                Map<String, List<Long>> subIdMap = new HashMap<>();
+                for (Map.Entry<String, List<DeptConfig>> 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;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<hisName,id>>

+ 47 - 8
src/main/java/com/diagbot/facade/DiseaseConfigFacade.java

@@ -154,15 +154,16 @@ public class DiseaseConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -288,15 +289,16 @@ public class DiseaseConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -376,6 +378,43 @@ public class DiseaseConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, List<Long>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DiseaseConfig> records = diseaseConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<DiseaseConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<DiseaseConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                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;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<hisName,id>>

+ 56 - 6
src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -179,8 +179,8 @@ public class DrugConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), hisNames, uniqueNames);
         drugConfigList.forEach(drugConfig -> {
             drugConfig.setHospitalId(Long.valueOf(hospitalId));
             drugConfig.setModifier(userId);
@@ -190,7 +190,7 @@ public class DrugConfigFacade {
                 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()));
+                    deleteIds.addAll(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
                 }
                 drugConfig.setCreator(userId);
                 drugConfig.setGmtCreate(now);
@@ -345,8 +345,8 @@ public class DrugConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), hisNames, uniqueNames);
         drugConfigList.forEach(drugConfig -> {
             drugConfig.setHospitalId(Long.valueOf(hospitalId));
             drugConfig.setModifier(userId);
@@ -356,7 +356,7 @@ public class DrugConfigFacade {
                 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()));
+                    deleteIds.addAll(configMap.get(drugConfig.getHisName()).get(form).get(drugConfig.getUniqueName()));
                 }
                 drugConfig.setCreator(userId);
                 drugConfig.setGmtCreate(now);
@@ -446,6 +446,56 @@ public class DrugConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return Map<hisName,Map<form,Map<uniqueName,id>>>
+     */
+    public Map<String, Map<String,Map<String, List<Long>>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<DrugConfig> records = drugConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        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, List<Long>>> formMap = new HashMap<>();
+                entry.getValue().forEach(i -> {
+                    if (StringUtil.isBlank(i.getForm())) {
+                        i.setForm("");
+                    }
+                });
+                Map<String, List<DrugConfig>> subMap
+                        = EntityUtil.makeEntityListMap(entry.getValue(), "form");
+                for (Map.Entry<String, List<DrugConfig>> subEntry : subMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(subEntry.getValue())) {
+                        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);
+            }
+        }
+        return retMap;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<form,Map<hisName,id>>>

+ 66 - 12
src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -170,8 +170,8 @@ public class LisConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), null, null);
         lisConfigList.forEach(lisConfig -> {
             lisConfig.setHospitalId(Long.valueOf(hospitalId));
             lisConfig.setModifier(userId);
@@ -180,12 +180,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()));
@@ -329,8 +329,8 @@ public class LisConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Map<String, Long>>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), hisNames, uniqueNames);
+        Map<String, Map<String, Map<String, List<Long>>>> configMap
+                = getConfigMapWithIds(Long.valueOf(hospitalId), hisNames, uniqueNames);
         lisConfigList.forEach(lisConfig -> {
             lisConfig.setHospitalId(Long.valueOf(hospitalId));
             lisConfig.setModifier(userId);
@@ -339,12 +339,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()));
@@ -449,6 +449,60 @@ public class LisConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-id
+     * Map<hisName,Map<hisDetailName,Map<uniqueName,id>>>
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, Map<String, List<Long>>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<LisConfig> records = lisConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+
+        records.forEach(lisConfig -> {
+            if (lisConfig.getHisDetailName() == null) {
+                lisConfig.setHisDetailName("");
+            }
+        });
+
+        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, 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())) {
+                        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);
+            }
+        }
+        return retMap;
+    }
+
 
     /**
      * 获取映射关系

+ 47 - 8
src/main/java/com/diagbot/facade/OperationConfigFacade.java

@@ -154,15 +154,16 @@ public class OperationConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -286,15 +287,16 @@ public class OperationConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -374,6 +376,43 @@ public class OperationConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, List<Long>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<OperationConfig> records = operationConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<OperationConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<OperationConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                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;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<hisName,id>>

+ 47 - 8
src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -154,15 +154,16 @@ public class PacsConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -286,15 +287,16 @@ public class PacsConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -374,6 +376,43 @@ public class PacsConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, List<Long>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<PacsConfig> records = pacsConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<PacsConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<PacsConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                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;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<hisName,id>>

+ 47 - 8
src/main/java/com/diagbot/facade/TransfusionConfigFacade.java

@@ -153,15 +153,16 @@ public class TransfusionConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -285,15 +286,16 @@ public class TransfusionConfigFacade {
         // 验证数据是否已存在,已存在的先删除
         // 没id的删除重新插入,有id的更新
         List<Long> deleteIds = Lists.newLinkedList();
-        Map<String, Map<String, Long>> configMap
-                = getConfigMap(Long.valueOf(hospitalId), null, null);
+        Map<String, Map<String, List<Long>>> configMap
+                = getConfigMapWithIds(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);
@@ -373,6 +375,43 @@ public class TransfusionConfigFacade {
         return retMap;
     }
 
+    /**
+     * 获取映射关系-公表名
+     *
+     * @param hospitalId
+     * @param hisNames
+     * @param uniqueNames
+     * @return
+     */
+    public Map<String, Map<String, List<Long>>> getConfigMapWithIds(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);
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        if (ListUtil.isNotEmpty(uniqueNames)) {
+            queryWrapper.in("unique_name", uniqueNames);
+        }
+        List<TransfusionConfig> records = transfusionConfigService.list(queryWrapper);
+        if (ListUtil.isEmpty(records)) {
+            return retMap;
+        }
+        Map<String, List<TransfusionConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
+        for (Map.Entry<String, List<TransfusionConfig>> entry : configMap.entrySet()) {
+            if (ListUtil.isNotEmpty(entry.getValue())) {
+                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;
+    }
+
     /**
      * 获取映射关系
      * Map<uniqueName,Map<hisName,id>>