Переглянути джерело

校验数据返回参数更改

zhoutg 5 роки тому
батько
коміт
80555cf35f

+ 8 - 1
knowledgeman-service/src/main/java/com/diagbot/dto/VerifyDataDTO.java

@@ -1,9 +1,11 @@
 package com.diagbot.dto;
 
 import com.diagbot.entity.DiagnoseDetail;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -14,6 +16,11 @@ import java.util.List;
 @Getter
 @Setter
 public class VerifyDataDTO {
-    private List<DiagnoseDetail> diagnoseDetailList;
+
+    @ApiModelProperty(value = "疾病特征")
+    private List<DiagnoseDetail> disFeature = new ArrayList<>();
+
+    @ApiModelProperty(value = "疾病公式")
+    private List<DiagnoseDetail> disformula = new ArrayList<>();
     private Integer hasQuestion;
 }

+ 46 - 6
knowledgeman-service/src/main/java/com/diagbot/facade/DiagnoseFacade.java

@@ -189,14 +189,19 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
         List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
         // 明细数据
         List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
+        List<DiagnoseDetail> disFeature = new ArrayList<>(); // 诊断特征
+        List<DiagnoseDetail> disformula = new ArrayList<>(); // 诊断公式
+
         // 问题词数据
         List<DiagnoseQuestion> diagnoseQuestionList = new ArrayList<>();
 
         // 处理诊断特征业务(校验编码|标准词|关联词|结果)
-        doDisFuture(diagnoseWrapper, param, libraryForDiagnoseDTOS, diagnoseDetailList, diagnoseQuestionList);
+        doDisFuture(diagnoseWrapper, param, libraryForDiagnoseDTOS, disFeature, diagnoseQuestionList);
         // 处理诊断公式业务(校验公式)
-        doDisFormula(diagnoseWrapper, param, diagnoseDetailList, diagnoseQuestionList);
+        doDisFormula(diagnoseWrapper, param, disformula, diagnoseQuestionList);
 
+        diagnoseDetailList.addAll(disFeature);
+        diagnoseDetailList.addAll(disformula);
         // 保存明细
         diagnoseDetailService.saveBatch(diagnoseDetailList);
         // 保存问题词
@@ -211,7 +216,8 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                 .eq("id", diagnoseWrapper.getId())
         );
         verifyDataDTO.setHasQuestion(ListUtil.isNotEmpty(diagnoseQuestionList) ? HasQuestionEnum.HAS_QUESTION.getKey() : HasQuestionEnum.NO_QUESTION.getKey());
-        verifyDataDTO.setDiagnoseDetailList(diagnoseDetailList);
+        verifyDataDTO.setDisFeature(disFeature);
+        verifyDataDTO.setDisformula(disformula);
         return verifyDataDTO;
     }
 
@@ -600,13 +606,13 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
 
     public static void main(String[] args) {
         String s = "(1.1/1.2/1.3)任一+(1.4/1.17/1.18)任六+(2.1/2.2/2.3/2.4/2.5/2.6/2.7/2.8/2.9/2.11)任一";
-        String s1 = "111任一任二22";
-        System.out.println(splitCode(s));
+        String s1 = "(1.1)任一+(1.2任二)";
+        System.out.println(isMatch(s1));
 
 
 //        System.out.println(isMatch(s));
 
-        // 待解决 任前面一定是),括号内容不能为空
+        // 待解决,括号是否嵌套,括号内容不能为空
         /**
          * 1、括号成对校验
          * 2、是否出现重复分隔符
@@ -616,11 +622,45 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
 
 
 
+
+    /**
+     * 校验括号是否嵌套
+     * @param s
+     * @return
+     */
+    public static boolean verifyBracketNest(String s) {
+        int i = s.indexOf("(");
+        while(-1 != i) {
+            if(i == 0) {
+                return false;
+            } else {
+                char ch = s.charAt(i-1);
+                if (')' != ch) {
+                    return false;
+                }
+                i =  s.indexOf("任", i + 1);
+            }
+        }
+        return true;
+    }
+
+
+    /**
+     * 校验任字前面是否“)”
+     * @param s
+     * @return
+     */
     public static boolean verifyRen(String s) {
         int i = s.indexOf("任");
         while(-1 != i) {
             if(i == 0) {
                 return false;
+            } else {
+                char ch = s.charAt(i-1);
+                if (')' != ch) {
+                    return false;
+                }
+                i =  s.indexOf("任", i + 1);
             }
         }
         return true;