Prechádzať zdrojové kódy

优化全部校验接口

zhoutg 5 rokov pred
rodič
commit
bcf6fb00bb

+ 26 - 9
knowledgeman-service/src/main/java/com/diagbot/facade/DiagnoseFacade.java

@@ -292,7 +292,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
             Map<String, List<DiagnoseDetail>> map = EntityUtil.makeEntityListMap(diagnoseDetailWithDB, "disName");
 
             Long time2 = System.currentTimeMillis();
-            res.append("加载全部主表和明细表花费时间:" + (time2-time1)/1000.0).append("秒,");
+            res.append("加载全部主表和明细表:" + (time2-time1)/1000.0).append("秒,");
             // 明细数据
             List<DiagnoseDetail> diagnoseDetailList = new ArrayList<>();
             // 问题词数据
@@ -301,7 +301,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
             List<LibraryForDiagnoseDTO> libraryForDiagnoseDTOS = libraryInfoFacade.getLibraryForDiagnose();
             Set<String> set = libraryForDiagnoseDTOS.stream().map(row -> row.getName()+ "_"+row.getTypeId()).collect(Collectors.toSet());
             Long time3 = System.currentTimeMillis();
-            res.append("加载词库花费时间:" + (time3-time2)/1000.0).append("秒,");
+            res.append("加载词库:" + (time3-time2)/1000.0).append("秒,");
             Boolean flag = true;
             List<Integer> typeList = new ArrayList<>();
             // 校验明细数据
@@ -318,6 +318,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                     }
 
                     for (DiagnoseDetail bean : detail) {
+                        boolean updateFlag = false;
                         if (DiagnoseTypeEnum.Confirmed.getKey() == bean.getType() || (DiagnoseTypeEnum.Examination.getKey() == bean.getType() || (DiagnoseTypeEnum.Vigilant.getKey() == bean.getType()))) {
                             // 不需要校验公式
                         } else {
@@ -336,20 +337,25 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
 
                             // 校验标准词
                             if (StringUtil.isNotEmpty(bean.getStandard())) {
+                                String oldVerifyStandard = bean.getVerifyStandard();
                                 typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.standard.getKey());
                                 flag = verifyExist(set, bean.getStandard(), typeList);
                                 if (!flag) {
-                                    bean.setVerifyStandard(String.valueOf(bean.getStandard()));
+                                    bean.setVerifyStandard(bean.getStandard());
                                     DiagnoseQuestion diagnoseQuestion = createDiagnoseQuestion(bean.getDiagnoseId(), bean.getDisName(), bean.getType(),
                                             bean.getStandard(), DiagnoseFieldEnum.standard.getKey(), param, ++j);
                                     diagnoseQuestionList.add(diagnoseQuestion);
                                 } else {
                                     bean.setVerifyStandard(""); // 将原值清空
                                 }
+                                if (!oldVerifyStandard.equals(bean.getVerifyStandard())) {
+                                    updateFlag = true;
+                                }
                             }
 
                             // 校验关联词
                             if (StringUtil.isNotEmpty(bean.getRelation())) {
+                                String oldVerifyRelation = bean.getVerifyRelation();
                                 String[] arr = bean.getRelation().split("、");
                                 StringBuffer sb = new StringBuffer();
                                 for (String s : arr) {
@@ -369,10 +375,14 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                                 } else {
                                     bean.setVerifyRelation(""); // 将原值清空
                                 }
+                                if (!oldVerifyRelation.equals(bean.getVerifyRelation())) {
+                                    updateFlag = true;
+                                }
                             }
 
                             // 校验结果
                             if (StringUtil.isNotEmpty(bean.getResult())) {
+                                String oldVerifyResult = bean.getVerifyResult();
                                 typeList = DiagnoseTypeConvertUtil.diagnoseType2LibType(bean.getType(), DiagnoseFieldEnum.result.getKey());
                                 flag = verifyExist(set, bean.getResult(), typeList);
                                 if (!flag) {
@@ -383,20 +393,27 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
                                 } else {
                                     bean.setVerifyResult(""); // 将原值清空
                                 }
+                                if (!oldVerifyResult.equals(bean.getVerifyResult())) {
+                                    updateFlag = true;
+                                }
                             }
                         }
-                        diagnoseDetailList.add(bean);
+                        if (updateFlag) {
+                            diagnoseDetailList.add(bean);
+                        }
                     }
                 }
             }
             Long time4 = System.currentTimeMillis();
-            res.append("校验问题词花费时间:" + (time4-time3)/1000.0).append("秒,");
+            res.append("校验问题词:" + (time4-time3)/1000.0).append("秒,");
 
             // 更新明细
-            diagnoseDetailService.updateBatchById(diagnoseDetailList);
+            if (ListUtil.isNotEmpty(diagnoseDetailList)) {
+                diagnoseDetailService.updateBatchById(diagnoseDetailList);
+            }
 
             Long time5 = System.currentTimeMillis();
-            res.append("更新明细花费时间:" + (time5-time4)/1000.0).append("秒,");
+            res.append("更新明细"+diagnoseDetailList.size()+"条:" + (time5-time4)/1000.0).append("秒,");
 
             // 删除全部的问题词数据
             diagnoseQuestionService.remove(new QueryWrapper<DiagnoseQuestion>());
@@ -407,7 +424,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
 
             }
             Long time6 = System.currentTimeMillis();
-            res.append("新增问题词花费时间:" + (time6-time5)/1000.0).append("秒,");
+            res.append("新增问题词:" + (time6-time5)/1000.0).append("秒,");
 
             List<String> disNameList = diagnoseQuestionList.stream().map(row -> row.getDisName()).distinct().collect(Collectors.toList());
 
@@ -422,7 +439,7 @@ public class DiagnoseFacade extends DiagnoseServiceImpl {
             // 更新主表信息
             diagnoseService.updateBatchById(diagnoseListWithDB);
             Long time7 = System.currentTimeMillis();
-            res.append("更新主表状态花费时间:" + (time7-time6)/1000.0).append("秒,");
+            res.append("更新主表状态:" + (time7-time6)/1000.0).append("秒,");
             res.append("总计花费时间:" + (time7-time1)/1000.0).append("秒。");
         } catch (Exception e) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, e.getMessage());