瀏覽代碼

自动化测试高危手术条件遍历

zhaops 4 年之前
父節點
當前提交
42aec85c26
共有 1 個文件被更改,包括 18 次插入6 次删除
  1. 18 6
      cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java

+ 18 - 6
cdssman-service/src/main/java/com/diagbot/facade/MedRuleConvertFacade.java

@@ -850,12 +850,24 @@ public class MedRuleConvertFacade {
             if (ListUtil.isEmpty(entry.getValue())) {
                 continue;
             }
-            Integer num = 0;
-            List<String> baseIdList = Arrays.asList(entry.getKey().split("\\|"));
-            for (Long ruleId : entry.getValue()) {
-                retList.add(baseNestMap.get(ruleId).get(baseIdList.get(num++)));
-                if (num == baseIdList.size()) {
-                    num = 0;
+
+            List<String> baseIdList = Arrays.asList(entry.getKey().split("\\|")).stream().sorted().collect(Collectors.toList());
+            if (baseIdList.size() > entry.getValue().size()) {
+                Integer num = 0;
+                List<Long> ruleIds = entry.getValue().stream().collect(Collectors.toList());
+                for (String cond : baseIdList) {
+                    retList.add(baseNestMap.get(ruleIds.get(num++)).get(cond));
+                    if (num == ruleIds.size()) {
+                        num = 0;
+                    }
+                }
+            } else {
+                Integer num = 0;
+                for (Long ruleId : entry.getValue()) {
+                    retList.add(baseNestMap.get(ruleId).get(baseIdList.get(num++)));
+                    if (num == baseIdList.size()) {
+                        num = 0;
+                    }
                 }
             }
         }