|
@@ -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()));
|
|
@@ -379,7 +379,7 @@ public class LisConfigFacade {
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(errorNumList)) {
|
|
|
throw new CommonException(CommonErrorCode.PARAM_IS_NULL,
|
|
|
- "以下行数(不计入空行)标准术语与数据库术语不匹配:"
|
|
|
+ "以下行数(不计空行)标准术语在数据库中不存在:"
|
|
|
+ errorNumList.stream().collect(Collectors.joining("、"))
|
|
|
+ "。导入取消,请修改后再试。");
|
|
|
}
|
|
@@ -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(detailEntry.getKey(), idMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ retMap.put(entry.getKey(), detailNameMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 获取映射关系
|