Преглед на файлове

Merge branch 'dev1.4' into dev-1.2

rengb преди 5 години
родител
ревизия
fa5db73b93
променени са 1 файла, в които са добавени 11 реда и са изтрити 8 реда
  1. 11 8
      dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/XmlDataAnalysisFacade.java

+ 11 - 8
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/XmlDataAnalysisFacade.java

@@ -32,6 +32,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -176,13 +177,13 @@ public class XmlDataAnalysisFacade {
         if (ListUtil.isEmpty(keysBehospitalCodeEntryList)) {
             return;
         }
-        Map<Set<String>, Set<String>> keysBehospitalCodesMap = keysBehospitalCodeEntryList.stream().collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toSet())));
+        Map<Set<String>, List<String>> keysBehospitalCodesMap = keysBehospitalCodeEntryList.stream().collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
 
         //1、找出已经分析生成过的文书模块模板类型;2、找出相应的map_keys-模块模板类型id对应信息;3、找出相应的模块模板类型id-示例病历号对应信息
         Map<Set<String>, Long> alreadyExistsDataMap = Maps.newHashMap();//相应的map_keys-模块模板类型id对应信息
         Map<Long, Set<String>> raBecsMap = Maps.newHashMap();//相应的模块模板类型id-示例病历号对应信息
         QueryWrapper<RecordAnalyze> recordAnalyzeQe = new QueryWrapper<>();
-        recordAnalyzeQe.eq("is_deleted", "N");
+        /*recordAnalyzeQe.eq("is_deleted", "N");//不能加这个条件,文书模块模板类型名称生成时靠历史个数累加map_type,加上后,map_type可能会重复之前出现过的*/
         recordAnalyzeQe.eq("hospital_id", hospitalId);
         recordAnalyzeQe.eq("mode_id", modelId);
         recordAnalyzeQe.eq(StringUtil.isNotBlank(recTitle), "rec_type", recTitle);
@@ -222,7 +223,7 @@ public class XmlDataAnalysisFacade {
                 continue;
             }
             alreadyExistsRecordAnalyzeId = alreadyExistsDataMap.get(keys);
-            behospitalCodeDeptInfoSet = keysBehospitalCodesMap.get(keys).stream().map(bec -> behospitalCodeDeptInfoMap.get(bec)).collect(Collectors.toSet());
+            behospitalCodeDeptInfoSet = keysBehospitalCodesMap.get(keys).stream().distinct().map(bec -> behospitalCodeDeptInfoMap.get(bec)).collect(Collectors.toSet());
             RecordAnalyze recordAnalyze = new RecordAnalyze();
             if (alreadyExistsRecordAnalyzeId == null) {
                 recordAnalyze.setName(modeName + "-" + recTitle + "-" + sexAdd + type);
@@ -247,7 +248,7 @@ public class XmlDataAnalysisFacade {
                 uptRecordAnalyzeList.add(recordAnalyze);
 
                 exitBecs = raBecsMap.get(alreadyExistsRecordAnalyzeId);
-                for (String bhrec : keysBehospitalCodesMap.get(keys)) {
+                for (String bhrec : keysBehospitalCodesMap.get(keys).stream().distinct().collect(Collectors.toList())) {
                     if (exitBecs == null || !exitBecs.contains(bhrec)) {
                         RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
                         recordAnalyzeExample.setRecordAnalyzeId(alreadyExistsRecordAnalyzeId);
@@ -272,12 +273,14 @@ public class XmlDataAnalysisFacade {
                     recordAnalyzeDetailList.add(recordAnalyzeDetail);
                 });
 
-                keysBehospitalCodesMap.get(mapKeySet).forEach(bocd -> {
+                keysBehospitalCodesMap.get(mapKeySet).stream().distinct().forEach(bocd -> {
                     RecordAnalyzeExample recordAnalyzeExample = new RecordAnalyzeExample();
                     recordAnalyzeExample.setRecordAnalyzeId(raly.getId());
                     recordAnalyzeExample.setBehospitalCode(bocd);
                     recordAnalyzeExampleList.add(recordAnalyzeExample);
+                });
 
+                keysBehospitalCodesMap.get(mapKeySet).forEach(bocd -> {
                     Abnormal abnormal = new Abnormal();
                     abnormal.setHospitalId(hospitalId);
                     abnormal.setBehospitalCode(bocd);
@@ -301,11 +304,11 @@ public class XmlDataAnalysisFacade {
     }
 
     private Set<String> getKeys(long hospitalId, long modelId, String recTitle, String sex, String xml) throws Exception {
-        Set<String> keys = Sets.newHashSet();
+        Set<String> keys = new HashSet<>();
         if (hospitalId == 1) {
-            keys = CxXmlUtil.firstLevelNodeValue(xml).keySet();
+            keys.addAll(CxXmlUtil.firstLevelNodeValue(xml).keySet());
         } else if (hospitalId == 3) {
-            keys = TzXmlUtil.getXmlToMapForTZ(xml).keySet();
+            keys.addAll(TzXmlUtil.getXmlToMapForTZ(xml).keySet());
         }
         if (keys.size() > 0) {
             if (StringUtil.isNotBlank(sex)) {