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

处理数据校验问题优化

zhanghang 3 роки тому
батько
коміт
c16d80abae

+ 37 - 38
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -479,16 +479,16 @@ public class ColumnResultManagementFacade {
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
             List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            //枚举获取模块信息
+            String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
+            String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
+            //删除结果表所有的信息
+            removeNonnullResultSolved(behospitalCodeList, hospitalId,columnId);
+            removeColumnResultSolved(behospitalCodeList,hospitalId, columnId, ColumnResultTypeEnum.NONNULL_TYPE.getKey());
             for (GetTableColumnInfoDTO getTableColumnInfoDTO : tableColumnVal) {
-                //枚举获取模块信息
-                String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
-                String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
                 String val = getTableColumnInfoDTO.getVal();
-                //删除结果表所有的信息(根据type,tableId ,columnId)
-                removeNonnullResultSolved(getTableColumnInfoDTO, columnId);
-                removeColumnResultSolved(getTableColumnInfoDTO, columnId, ColumnResultTypeEnum.NONNULL_TYPE.getKey());
                 //不是必填则直接跳过
                 if (NonnullStatusEnum.NOT_NONNULL.equals(nonnullInfo.getIsRequired())) {
                     continue;
@@ -554,17 +554,17 @@ public class ColumnResultManagementFacade {
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
             List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
+            String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
             String regular = getRegular.getVal();
+            //删除病历集合对应字段结果表所有的信息
+            removeRegularResultSolved(behospitalCodeList,hospitalId, columnId);
+            removeColumnResultSolved(behospitalCodeList,hospitalId, columnId, ColumnResultTypeEnum.REGULAR_TYPE.getKey());
             for (GetTableColumnInfoDTO getTableColumnInfoDTO : tableColumnVal) {
-                String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
-                String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
                 String val = getTableColumnInfoDTO.getVal();
                 Boolean matches = judgeRegular(regular, val);
-                //删除结果表所有的信息(根据type,tableId ,columnId)
-                removeRegularResultSolved(getTableColumnInfoDTO, columnId);
-                removeColumnResultSolved(getTableColumnInfoDTO, columnId, ColumnResultTypeEnum.REGULAR_TYPE.getKey());
                 //符合正则  跳过
                 if (matches) {
                     continue;
@@ -632,15 +632,15 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
             List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
             String standardvalue = standardvalueInfo.getStandardvalue();
+            String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
+            String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
+            //删除结果表所有的信息
+            removeStandardvalueResultSolved(behospitalCodeList,hospitalId, columnId);
+            removeColumnResultSolved(behospitalCodeList,hospitalId, columnId, ColumnResultTypeEnum.STANDARD_TYPE.getKey());
             for (GetTableColumnInfoDTO getTableColumnInfoDTO : tableColumnVal) {
-                String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
-                String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
                 String val = getTableColumnInfoDTO.getVal();
-                //删除结果表所有的信息(根据type,tableId ,columnId)
-                removeStandardvalueResultSolved(getTableColumnInfoDTO, columnId);
-                removeColumnResultSolved(getTableColumnInfoDTO, columnId, ColumnResultTypeEnum.STANDARD_TYPE.getKey());
                 //判断是否符合标准值
                 Boolean contains = judgeStandardvalue(standardvalue, val);
                 String standardvalueMapping = getStandardvalueMapping(standardvalue, hospitalId);
@@ -735,70 +735,69 @@ public class ColumnResultManagementFacade {
     /**
      * 删除非空校验结果表信息
      *
-     * @param getTableColumnInfoDTO
+     * @param behospitalCodeList
+     * @param hospitalId
      * @param columnId
      * @return:
      */
-    public void removeNonnullResultSolved(GetTableColumnInfoDTO getTableColumnInfoDTO, Long columnId) {
+    public void removeNonnullResultSolved(List<String> behospitalCodeList,Long hospitalId, Long columnId) {
         nonnullResultFacade.remove(new UpdateWrapper<NonnullResult>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", getTableColumnInfoDTO.getHospitalId())
-                .eq("behospital_code", getTableColumnInfoDTO.getBehospitalCode())
+                .eq("hospital_id", hospitalId)
+                .in("behospital_code", behospitalCodeList)
                 .eq("column_id", columnId)
-                .eq("table_id", getTableColumnInfoDTO.getTableId())
         );
     }
 
     /**
-     * 删除正则校验结果表信息
+     *删除正则校验结果表信息
      *
-     * @param getTableColumnInfoDTO
+     * @param behospitalCodeList
+     * @param hospitalId
      * @param columnId
      * @return:
      */
-    public void removeRegularResultSolved(GetTableColumnInfoDTO getTableColumnInfoDTO, Long columnId) {
+    public void removeRegularResultSolved(List<String> behospitalCodeList,Long hospitalId, Long columnId) {
         regularResultFacade.remove(new UpdateWrapper<RegularResult>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", getTableColumnInfoDTO.getHospitalId())
-                .eq("behospital_code", getTableColumnInfoDTO.getBehospitalCode())
+                .eq("hospital_id", hospitalId)
+                .in("behospital_code", behospitalCodeList)
                 .eq("column_id", columnId)
-                .eq("table_id", getTableColumnInfoDTO.getTableId())
         );
     }
 
     /**
      * 删除关键字校验结果表信息
      *
-     * @param getTableColumnInfoDTO
+     * @param behospitalCodeList
+     * @param hospitalId
      * @param columnId
      * @return:
      */
-    public void removeStandardvalueResultSolved(GetTableColumnInfoDTO getTableColumnInfoDTO, Long columnId) {
+    public void removeStandardvalueResultSolved(List<String> behospitalCodeList,Long hospitalId, Long columnId) {
         standardvalueResultFacade.remove(new UpdateWrapper<StandardvalueResult>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", getTableColumnInfoDTO.getHospitalId())
-                .eq("behospital_code", getTableColumnInfoDTO.getBehospitalCode())
+                .eq("hospital_id", hospitalId)
+                .in("behospital_code", behospitalCodeList)
                 .eq("column_id", columnId)
-                .eq("table_id", getTableColumnInfoDTO.getTableId())
         );
     }
 
     /**
      * 删除结果总表
      *
-     * @param getTableColumnInfoDTO
+     * @param behospitalCodeList
+     * @param hospitalId
      * @param columnId
-     * @param type
      * @return:
      */
-    public void removeColumnResultSolved(GetTableColumnInfoDTO getTableColumnInfoDTO, Long columnId, String type) {
+    public void removeColumnResultSolved(List<String> behospitalCodeList,Long hospitalId, Long columnId, String type) {
         //未解决修改
         columnResultFacade.remove(new UpdateWrapper<ColumnResult>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", getTableColumnInfoDTO.getHospitalId())
-                .eq("behospital_code", getTableColumnInfoDTO.getBehospitalCode())
+                .eq("hospital_id", hospitalId)
+                .in("behospital_code", behospitalCodeList)
                 .eq("column_id", columnId)
-                .eq("table_id", getTableColumnInfoDTO.getTableId())
                 .eq("type", type)
         );
     }