|
@@ -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;
|