Jelajahi Sumber

Merge branch 'dev/20220228_v3.0.1通用版_渠道管理第一期' into debug

zhanghang 3 tahun lalu
induk
melakukan
a9566f3afc

+ 80 - 79
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -484,87 +484,88 @@ public class BlockLossManagementFacade {
      * @Return void
      */
     private Boolean upBlockLossStatus(Map<String, List<BlocklossResult>> lossResultMap, Long hospitalId, Long principleId) {
-        AtomicReference<Boolean> flag = new AtomicReference<>(true);
-        //获取已丢失的病历(按照人来更新)
-        if(ListUtil.isNotEmpty(lossResultMap.get(LossTypeEnum.CODE_LOSS.getKey()))){
-            List<String> lossCodes = lossResultMap.get(LossTypeEnum.CODE_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
-            //已经补录的患者信息
-            List<String> behospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
-                    .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                    .in("behospital_code", lossCodes)
-                    .eq("is_deleted", IsDeleteEnum.N.getKey()))
-                    .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
-            //有补录的病历时
-            if(ListUtil.isNotEmpty(behospitalCodes)){
-                lossResultMap.keySet().stream().forEach(lossType -> {
-                    //0:文书丢失 1:病案首页丢失 2:患者信息丢失
-                    switch (lossType) {
-                        case "0":
-                            //文书丢失
-                            List<String> redIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
-                                    .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                                    .in("rec_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
-                                    .in("behospital_code", behospitalCodes)
-                                    .eq("is_deleted", IsDeleteEnum.N.getKey()))
-                                    .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
-                            //更新状态-已恢复
-                            if (ListUtil.isNotEmpty(redIds)) {
-                                flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
-                                        .set("solve_time", DateUtil.now())
-                                        .set("gmt_modified", DateUtil.now())
-                                        .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                        .set("modifier", principleId != null ? principleId + "" : "0")
-                                        .eq("status", LossStatusEnum.IS_LOSS.getKey())
-                                        .eq("loss_type", lossType)
-                                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                                        .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                                        .in("rec_id", redIds)));
-                            }
-                            break;
-                        case "1":
-                            //病案首页丢失
-                            List<String> homePages = homePageFacade.list(new QueryWrapper<HomePage>()
-                                    .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                                    .in("home_page_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
-                                    .in("behospital_code", behospitalCodes)
-                                    .eq("is_deleted", IsDeleteEnum.N.getKey()))
-                                    .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
-
-                            //更新状态-已恢复
-                            if (ListUtil.isNotEmpty(homePages)) {
-                                flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
-                                        .set("solve_time", DateUtil.now())
-                                        .set("gmt_modified", DateUtil.now())
-                                        .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                        .set("modifier", principleId != null ? principleId + "" : "0")
-                                        .eq("status", LossStatusEnum.IS_LOSS.getKey())
-                                        .eq("loss_type", lossType)
-                                        .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                                        .in("rec_id", homePages)
-                                        .eq("is_deleted", IsDeleteEnum.N.getKey())));
-                            }
-                            break;
-                        case "2":
-                            //更新状态-已恢复
-                            if (ListUtil.isNotEmpty(behospitalCodes)) {
-                                flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
-                                        .set("solve_time", DateUtil.now())
-                                        .set("gmt_modified", DateUtil.now())
-                                        .set("status", LossStatusEnum.NOT_LOSS.getKey())
-                                        .set("modifier", principleId != null ? principleId + "" : "0")
-                                        .eq("status", LossStatusEnum.IS_LOSS.getKey())
-                                        .eq("loss_type", lossType)
-                                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                                        .eq("hospital_id", hospitalId != null ? hospitalId : 0)
-                                        .in("behospital_code", behospitalCodes)));
-                            }
-                            break;
-                        default:
-                            break;
+        //====获取已丢失病历记录
+        List<String> lossCodes = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
+                .select("id,behospital_code")
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .eq("status", LossStatusEnum.IS_LOSS.getKey())
+                .eq("loss_type", LossTypeEnum.CODE_LOSS.getKey())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
+        AtomicReference<Boolean> flag = new AtomicReference<>(false);
+        lossResultMap.keySet().stream().forEach(lossType -> {
+            //0:文书丢失 1:病案首页丢失 2:患者信息丢失
+            switch (lossType) {
+                case "0":
+                    //文书丢失
+                    List<String> redIds = medicalRecordFacade.list(new QueryWrapper<MedicalRecord>()
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                            .in("rec_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
+                            .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
+                            .notIn(ListUtil.isNotEmpty(lossCodes),"behospital_code",lossCodes)//如果说入院记录丢失了,文书的状态还是已丢失不会更新
+                            .eq("is_deleted", IsDeleteEnum.N.getKey()))
+                            .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
+                    //更新状态-已恢复
+                    if (ListUtil.isNotEmpty(redIds)) {
+                        flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
+                                .set("solve_time", DateUtil.now())
+                                .set("gmt_modified", DateUtil.now())
+                                .set("status", LossStatusEnum.NOT_LOSS.getKey())
+                                .set("modifier", principleId != null ? principleId + "" : "0")
+                                .eq("status", LossStatusEnum.IS_LOSS.getKey())
+                                .eq("loss_type", lossType)
+                                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                                .in("rec_id", redIds)));
                     }
-                });
+                    break;
+                case "1":
+                    //病案首页丢失
+                    List<String> homePages = homePageFacade.list(new QueryWrapper<HomePage>()
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                            .in("home_page_id", lossResultMap.get(lossType).stream().map(BlocklossResult::getRecId).collect(Collectors.toList()))
+                            .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
+                            .notIn(ListUtil.isNotEmpty(lossCodes),"behospital_code",lossCodes)//如果说入院记录丢失了,病案首页的状态还是已丢失不会更新
+                            .eq("is_deleted", IsDeleteEnum.N.getKey()))
+                            .stream().map(HomePage::getHomePageId).collect(Collectors.toList());
+                    //更新状态-已恢复
+                    if (ListUtil.isNotEmpty(homePages)) {
+                        flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
+                                .set("solve_time", DateUtil.now())
+                                .set("gmt_modified", DateUtil.now())
+                                .set("status", LossStatusEnum.NOT_LOSS.getKey())
+                                .set("modifier", principleId != null ? principleId + "" : "0")
+                                .eq("status", LossStatusEnum.IS_LOSS.getKey())
+                                .eq("loss_type", lossType)
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                                .in("rec_id", homePages)
+                                .eq("is_deleted", IsDeleteEnum.N.getKey())));
+                    }
+                    break;
+                case "2":
+                    //患者信息丢失
+                    List<String> behospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
+                            .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                            .in("behospital_code", lossResultMap.get(lossType).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList()))
+                            .eq("is_deleted", IsDeleteEnum.N.getKey()))
+                            .stream().map(BehospitalInfo::getBehospitalCode).collect(Collectors.toList());
+                    //更新状态-已恢复
+                    if (ListUtil.isNotEmpty(behospitalCodes)) {
+                        flag.set(blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
+                                .set("solve_time", DateUtil.now())
+                                .set("gmt_modified", DateUtil.now())
+                                .set("status", LossStatusEnum.NOT_LOSS.getKey())
+                                .set("modifier", principleId != null ? principleId + "" : "0")
+                                .eq("status", LossStatusEnum.IS_LOSS.getKey())
+                                .eq("loss_type", lossType)
+                                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                                .eq("hospital_id", hospitalId != null ? hospitalId : 0)
+                                .in("behospital_code", behospitalCodes)));
+                    }
+                    break;
+                default:
+                    break;
             }
-        }
+        });
         return flag.get();
     }
 

+ 588 - 117
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -41,6 +41,10 @@ import com.lantone.daqe.facade.base.RegularMappingFacade;
 import com.lantone.daqe.facade.base.RegularResultFacade;
 import com.lantone.daqe.facade.base.StandardvalueInfoFacade;
 import com.lantone.daqe.facade.base.StandardvalueResultFacade;
+import com.lantone.daqe.service.impl.ColumnResultServiceImpl;
+import com.lantone.daqe.service.impl.NonnullResultServiceImpl;
+import com.lantone.daqe.service.impl.RegularResultServiceImpl;
+import com.lantone.daqe.service.impl.StandardvalueResultServiceImpl;
 import com.lantone.daqe.vo.DataCheckVO;
 import com.lantone.daqe.vo.GetColumnResultNumberVO;
 import com.lantone.daqe.vo.GetColumnResultPageVO;
@@ -83,6 +87,14 @@ public class ColumnResultManagementFacade {
     StandardvalueInfoFacade standardvalueInfoFacade;
     @Autowired
     ColumnInfoFacade columnInfoFacade;
+    @Autowired
+    ColumnResultServiceImpl columnResultServiceImpl;
+    @Autowired
+    RegularResultServiceImpl regularResultServiceImpl;
+    @Autowired
+    NonnullResultServiceImpl nonnullResultServiceImpl;
+    @Autowired
+    StandardvalueResultServiceImpl standardvalueResultServiceImpl;
 
     /**
      * 获取字段校验问题明细分页列表数据
@@ -490,6 +502,18 @@ public class ColumnResultManagementFacade {
      * @return:
      */
     public void checkNonnull(List<NonnullInfo> nonnullInfos, List<String> behospitalCodeList, Long hospitalId, Long principleId, List<String> recColumnTable) {
+        //查询出这段时间内总表病历所有的非空问题数据 behospitalCode+type
+        List<ColumnResult> columnResultList = getColumnResultList(hospitalId, behospitalCodeList, ColumnResultTypeEnum.NONNULL_TYPE.getKey());
+        //查询出这段时间内非空表病历所有的非空问题数据 behospitalCode+type
+        List<NonnullResult> nonnullResultList = getNonnullResultList(hospitalId, behospitalCodeList);
+        //新增集合
+        List<NonnullResult> addNonnullResultList = new ArrayList<>();
+        //修改集合
+        List<NonnullResult> upNonnullResultList = new ArrayList<>();
+        //新增集合
+        List<ColumnResult> addColumnResultList = new ArrayList<>();
+        //修改集合
+        List<ColumnResult> upColumnResultList = new ArrayList<>();
         for (NonnullInfo nonnullInfo : nonnullInfos) {
             Long columnId = nonnullInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -507,55 +531,110 @@ public class ColumnResultManagementFacade {
             //枚举获取模块信息
             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) {
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
                 String val = getTableColumnInfoDTO.getVal();
-                //不是必填则直接跳过
+                //是否存在于原本表中 返回库中原本数据
+                ColumnResult columnResult = judgeColumnResultList(columnResultList, getTableColumnInfoDTO, columnId);
+                NonnullResult nonnullResult = judgeNonnullResultList(nonnullResultList, getTableColumnInfoDTO, columnId);
+                ColumnResult columnResultUp = null;
+                NonnullResult nonnullResultUp = null;
+                if (columnResult != null) {
+                    columnResultUp = upColumnResult(columnResult, getTableColumnInfoDTO, principleId);
+                }
+                if (nonnullResult != null) {
+                    nonnullResultUp = upNonnullResult(nonnullResult, getTableColumnInfoDTO, principleId);
+                }
+                //不是必填则判断是否已有数据存在于结果表中,若存在则修改
                 if (NonnullStatusEnum.NOT_NONNULL.equals(nonnullInfo.getIsRequired())) {
-                    continue;
+                    if (columnResultUp != null) {
+                        columnResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        nonnullResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upNonnullResultList.add(nonnullResultUp);
+                        //修改
+                    } else {
+                        continue;
+                    }
                 }
-                //符合非空情况直接跳过
+                //符合非空情况则判断是否已有数据存在于结果表中,若存在则修改
                 if (StringUtil.isNotEmpty(val)) {
-                    continue;
+                    if (columnResult != null) {
+                        columnResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        nonnullResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upNonnullResultList.add(nonnullResultUp);
+                    } else {
+                        continue;
+                    }
                 }
+                //符合非空情况则判断是否已有数据存在于结果表中,若存在则更新时间,否则则新增
                 if (StringUtil.isEmpty(val)) {
-                    //为空加入非空校验结果表
-                    NonnullResult nonnullResult = new NonnullResult();
-                    nonnullResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
-                    nonnullResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
-                    nonnullResult.setModeId(getTableColumnInfoDTO.getModeId());
-                    nonnullResult.setModeName(getTableColumnInfoDTO.getModeName());
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
-                        nonnullResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
-                    }
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
-                        nonnullResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    if (columnResult != null) {
+                        columnResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        nonnullResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upNonnullResultList.add(nonnullResultUp);
+                    } else {
+                        //新增
+                        //为空加入非空校验结果表
+                        NonnullResult nonnullResultAdd = new NonnullResult();
+                        nonnullResultAdd.setHospitalId(getTableColumnInfoDTO.getHospitalId());
+                        nonnullResultAdd.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
+                        nonnullResultAdd.setModeId(getTableColumnInfoDTO.getModeId());
+                        nonnullResultAdd.setModeName(getTableColumnInfoDTO.getModeName());
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                            nonnullResultAdd.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                        }
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                            nonnullResultAdd.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                        }
+                        nonnullResultAdd.setColumnId(nonnullInfo.getColumnId());
+                        nonnullResultAdd.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        nonnullResultAdd.setTableCname(columnInfo.getTableCname());
+                        nonnullResultAdd.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
+                        nonnullResultAdd.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        nonnullResultAdd.setTableEname(columnInfo.getTableEname());
+                        nonnullResultAdd.setColumnCname(columnInfo.getColumnCname());
+                        nonnullResultAdd.setColumnEname(columnInfo.getColumnEname());
+                        nonnullResultAdd.setTableVal(getTableColumnInfoDTO.getVal());
+                        if (principleId != null) {
+                            nonnullResultAdd.setCreator(principleId.toString());
+                        }
+                        nonnullResultAdd.setTableId(getTableColumnInfoDTO.getTableId());
+                        nonnullResultAdd.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        nonnullResultAdd.setSolveTime(new Date());
+                        nonnullResultAdd.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
+                        nonnullResultAdd.setGmtCreate(new Date());
+                        nonnullResultAdd.setGmtModified(new Date());
+                        addNonnullResultList.add(nonnullResultAdd);
+                        //加入总结果表
+                        ColumnResult columnResultAdd = addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, ColumnResultTypeEnum.NONNULL_TYPE.getKey(), principleId);
+                        addColumnResultList.add(columnResultAdd);
                     }
-                    nonnullResult.setColumnId(nonnullInfo.getColumnId());
-                    nonnullResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    nonnullResult.setTableCname(columnInfo.getTableCname());
-                    nonnullResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
-                    nonnullResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    nonnullResult.setTableEname(columnInfo.getTableEname());
-                    nonnullResult.setColumnCname(columnInfo.getColumnCname());
-                    nonnullResult.setColumnEname(columnInfo.getColumnEname());
-                    if (principleId != null) {
-                        nonnullResult.setCreator(principleId.toString());
-                    }
-                    nonnullResult.setTableId(getTableColumnInfoDTO.getTableId());
-                    nonnullResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
-                    nonnullResult.setSolveTime(new Date());
-                    nonnullResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
-                    nonnullResult.setGmtCreate(new Date());
-                    nonnullResult.setGmtModified(new Date());
-                    nonnullResultFacade.getBaseMapper().insert(nonnullResult);
-                    Long id = nonnullResult.getId();
-                    //加入总结果表
-                    addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, id, ColumnResultTypeEnum.NONNULL_TYPE.getKey(), principleId);
+
+                }
+            }
+        }
+        //调用修改接口
+        if (ListUtil.isNotEmpty(upNonnullResultList)) {
+            if (nonnullResultServiceImpl.saveOrUpdateBatch(upNonnullResultList)) {
+                if (ListUtil.isNotEmpty(upColumnResultList)) {
+                    columnResultServiceImpl.saveOrUpdateBatch(upColumnResultList);
+                }
+            }
+        }
+        //调用新增接口
+        if (ListUtil.isNotEmpty(addNonnullResultList)) {
+            if (nonnullResultServiceImpl.saveBatch(addNonnullResultList)) {
+                if (ListUtil.isNotEmpty(addColumnResultList)) {
+                    addColumnResultList = saveColumnResultNonnullId(addNonnullResultList, addColumnResultList);
+                    //将id插入总表新增集合中
+                    columnResultServiceImpl.saveBatch(addColumnResultList);
                 }
             }
         }
@@ -570,6 +649,18 @@ public class ColumnResultManagementFacade {
      * @return:
      */
     public void checkRegular(List<GetRegular> regularMappings, List<String> behospitalCodeList, Long hospitalId, Long principleId, List<String> recColumnTable) {
+        //查询出这段时间内总表病历所有的正则问题数据 behospitalCode+type
+        List<ColumnResult> columnResultList = getColumnResultList(hospitalId, behospitalCodeList, ColumnResultTypeEnum.REGULAR_TYPE.getKey());
+        //查询出这段时间内正则表病历所有的正则问题数据 behospitalCode+type
+        List<RegularResult> regularResultList = getRegularResultList(hospitalId, behospitalCodeList);
+        //新增集合
+        List<RegularResult> addRegularResultList = new ArrayList<>();
+        //修改集合
+        List<RegularResult> upRegularResultList = new ArrayList<>();
+        //新增集合
+        List<ColumnResult> addColumnResultList = new ArrayList<>();
+        //修改集合
+        List<ColumnResult> upColumnResultList = new ArrayList<>();
         for (GetRegular getRegular : regularMappings) {
             Long columnId = getRegular.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -586,57 +677,101 @@ public class ColumnResultManagementFacade {
             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) {
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
+                //是否存在于原本表中 返回库中原本数据
+                ColumnResult columnResult = judgeColumnResultList(columnResultList, getTableColumnInfoDTO, columnId);
+                RegularResult regularResultU = judgeRegularResultList(regularResultList, getTableColumnInfoDTO, columnId);
+                ColumnResult columnResultUp = null;
+                RegularResult regularResultUp = null;
+                if (columnResult != null) {
+                    columnResultUp = upColumnResult(columnResult, getTableColumnInfoDTO, principleId);
+                }
+                if (regularResultU != null) {
+                    regularResultUp = upRegularResult(regularResultU, getTableColumnInfoDTO, principleId);
+                }
                 String val = getTableColumnInfoDTO.getVal();
                 Boolean matches = judgeRegular(regular, val);
-                //符合正则  跳过
+                //符合正则  原本存在数据则修改,否则跳过
                 if (matches) {
-                    continue;
+                    if (columnResultUp != null) {
+                        columnResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        regularResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upRegularResultList.add(regularResultUp);
+                    } else {
+                        continue;
+                    }
                 }
                 //不符合正则
                 if (!matches) {
-                    //加入校验结果表
-                    RegularResult regularResult = new RegularResult();
-                    regularResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
-                    regularResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
-                    regularResult.setModeId(getTableColumnInfoDTO.getModeId());
-                    regularResult.setModeName(getTableColumnInfoDTO.getModeName());
-                    regularResult.setColumnId(columnId);
-                    regularResult.setTableCname(columnInfo.getTableCname());
-                    regularResult.setTableEname(columnInfo.getTableEname());
-                    regularResult.setColumnCname(columnInfo.getColumnCname());
-                    regularResult.setColumnEname(columnInfo.getColumnEname());
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
-                        regularResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    //不符合原本存在则修改否则新增
+                    if (columnResultUp != null) {
+                        columnResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        regularResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upRegularResultList.add(regularResultUp);
+                    } else {
+                        //加入校验结果表
+                        RegularResult regularResult = new RegularResult();
+                        regularResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
+                        regularResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
+                        regularResult.setModeId(getTableColumnInfoDTO.getModeId());
+                        regularResult.setModeName(getTableColumnInfoDTO.getModeName());
+                        regularResult.setColumnId(columnId);
+                        regularResult.setTableCname(columnInfo.getTableCname());
+                        regularResult.setTableEname(columnInfo.getTableEname());
+                        regularResult.setColumnCname(columnInfo.getColumnCname());
+                        regularResult.setColumnEname(columnInfo.getColumnEname());
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                            regularResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                        }
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                            regularResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                        }
+                        regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        regularResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
+                        regularResult.setRegularId(getRegular.getId());
+                        if (principleId != null) {
+                            regularResult.setCreator(principleId.toString());
+                        }
+                        regularResult.setRegularName(getRegular.getName());
+                        regularResult.setTableVal(getTableColumnInfoDTO.getVal());
+                        regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        regularResult.setRegularVal(getRegular.getVal());
+                        regularResult.setRegularDes(getRegular.getDes());
+                        regularResult.setTableId(getTableColumnInfoDTO.getTableId());
+                        regularResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        regularResult.setSolveTime(new Date());
+                        regularResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
+                        regularResult.setGmtCreate(new Date());
+                        regularResult.setGmtModified(new Date());
+                        addRegularResultList.add(regularResult);
+                        //加入总结果表
+                        ColumnResult columnResultAdd = addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, ColumnResultTypeEnum.REGULAR_TYPE.getKey(), principleId);
+                        addColumnResultList.add(columnResultAdd);
                     }
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
-                        regularResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
-                    }
-                    regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    regularResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
-                    regularResult.setRegularId(getRegular.getId());
-                    if (principleId != null) {
-                        regularResult.setCreator(principleId.toString());
-                    }
-                    regularResult.setRegularName(getRegular.getName());
-                    regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    regularResult.setRegularVal(getRegular.getVal());
-                    regularResult.setRegularDes(getRegular.getDes());
-                    regularResult.setTableId(getTableColumnInfoDTO.getTableId());
-                    regularResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
-                    regularResult.setSolveTime(new Date());
-                    regularResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
-                    regularResult.setGmtCreate(new Date());
-                    regularResult.setGmtModified(new Date());
-                    regularResultFacade.getBaseMapper().insert(regularResult);
-                    Long id = regularResult.getId();
-                    //加入总结果表
-                    addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, id, ColumnResultTypeEnum.REGULAR_TYPE.getKey(), principleId);
+                }
+            }
+        }
+        //调用修改接口
+        if (ListUtil.isNotEmpty(upRegularResultList)) {
+            if (regularResultServiceImpl.saveOrUpdateBatch(upRegularResultList)) {
+                if (ListUtil.isNotEmpty(upColumnResultList)) {
+                    columnResultServiceImpl.saveOrUpdateBatch(upColumnResultList);
+                }
+            }
+        }
+        //调用新增接口
+        if(ListUtil.isNotEmpty(addRegularResultList)) {
+            if (regularResultServiceImpl.saveBatch(addRegularResultList)) {
+                if (ListUtil.isNotEmpty(addColumnResultList)) {
+                addColumnResultList = saveColumnResultRegularResultId(addRegularResultList, addColumnResultList);
+                //将id插入总表新增集合中
+                columnResultServiceImpl.saveBatch(addColumnResultList);
                 }
             }
         }
@@ -651,6 +786,18 @@ public class ColumnResultManagementFacade {
      * @return:
      */
     public void checkStandardvalue(List<GetStandardvalueInfoDTO> standardvalueInfos, List<String> behospitalCodeList, Long hospitalId, Long principleId, List<String> recColumnTable) {
+        //查询出这段时间内总表病历所有的正则问题数据 behospitalCode+type
+        List<ColumnResult> columnResultList = getColumnResultList(hospitalId, behospitalCodeList, ColumnResultTypeEnum.STANDARD_TYPE.getKey());
+        //查询出这段时间内正则表病历所有的标准值问题数据 behospitalCode+type
+        List<StandardvalueResult> standardvalueInfoList = getStandardvalueResult(hospitalId, behospitalCodeList);
+        //新增集合
+        List<StandardvalueResult> addStandardvalueResultList = new ArrayList<>();
+        //修改集合
+        List<StandardvalueResult> upStandardvalueResultList = new ArrayList<>();
+        //新增集合
+        List<ColumnResult> addColumnResultList = new ArrayList<>();
+        //修改集合
+        List<ColumnResult> upColumnResultList = new ArrayList<>();
         for (GetStandardvalueInfoDTO standardvalueInfo : standardvalueInfos) {
             Long columnId = standardvalueInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -674,52 +821,377 @@ public class ColumnResultManagementFacade {
                 getTableColumnInfoDTO.setModeId(Long.valueOf(modeId));
                 getTableColumnInfoDTO.setModeName(modeName);
                 String val = getTableColumnInfoDTO.getVal();
+                //是否存在于原本表中 返回库中原本数据
+                ColumnResult columnResult = judgeColumnResultList(columnResultList, getTableColumnInfoDTO, columnId);
+                StandardvalueResult standardvalueResultU = judgeStandardvalueResultList(standardvalueInfoList,getTableColumnInfoDTO, columnId);
+                ColumnResult columnResultUp=null;
+                StandardvalueResult StandardvalueResultUp=null;
+                if(columnResult!=null) {
+                    columnResultUp = upColumnResult(columnResult, getTableColumnInfoDTO, principleId);
+                }
+                if(standardvalueResultU!=null) {
+                    StandardvalueResultUp = upStandardvalueResult(standardvalueResultU, getTableColumnInfoDTO, principleId);
+                }
                 //判断是否符合标准值
                 Boolean contains = judgeStandardvalue(standardvalue, val);
                 String standardvalueMapping = getStandardvalueMapping(standardvalue, hospitalId);
                 //符合标准值,直接跳过
                 if (contains) {
-                    continue;
+                    if(columnResultUp!=null){
+                        columnResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        StandardvalueResultUp.setIsSolved(SolvedStatusEnum.IS_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upStandardvalueResultList.add(StandardvalueResultUp);
+                    }else {
+                        continue;
+                    }
                 }
                 //不符合标准值  若原表存在则修改,若不存在则新增
                 if (!contains) {
-                    //加入校验结果表
-                    StandardvalueResult standardvalueResult = new StandardvalueResult();
-                    standardvalueResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
-                    standardvalueResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
-                    standardvalueResult.setModeId(getTableColumnInfoDTO.getModeId());
-                    standardvalueResult.setModeName(getTableColumnInfoDTO.getModeName());
-                    standardvalueResult.setColumnId(columnId);
-                    standardvalueResult.setMappings(standardvalueMapping);
-                    standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
-                        standardvalueResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    //原本存在则修改否则新增
+                    if(columnResultUp!=null){
+                        columnResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        StandardvalueResultUp.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        //加入修改集合
+                        upColumnResultList.add(columnResultUp);
+                        upStandardvalueResultList.add(StandardvalueResultUp);
+                    }else {
+                        //加入校验结果表
+                        StandardvalueResult standardvalueResult = new StandardvalueResult();
+                        standardvalueResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
+                        standardvalueResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
+                        standardvalueResult.setModeId(getTableColumnInfoDTO.getModeId());
+                        standardvalueResult.setModeName(getTableColumnInfoDTO.getModeName());
+                        standardvalueResult.setColumnId(columnId);
+                        standardvalueResult.setMappings(standardvalueMapping);
+                        standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                            standardvalueResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                        }
+                        if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                            standardvalueResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                        }
+                        standardvalueResult.setTableCname(columnInfo.getTableCname());
+                        standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
+                        standardvalueResult.setTableEname(columnInfo.getTableEname());
+                        standardvalueResult.setColumnCname(columnInfo.getColumnCname());
+                        standardvalueResult.setTableVal(getTableColumnInfoDTO.getVal());
+                        standardvalueResult.setColumnEname(columnInfo.getColumnEname());
+                        standardvalueResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
+                        if (principleId != null) {
+                            standardvalueResult.setCreator(principleId.toString());
+                        }
+                        standardvalueResult.setTableId(getTableColumnInfoDTO.getTableId());
+                        standardvalueResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
+                        standardvalueResult.setSolveTime(new Date());
+                        standardvalueResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
+                        standardvalueResult.setGmtCreate(new Date());
+                        standardvalueResult.setGmtModified(new Date());
+                        addStandardvalueResultList.add(standardvalueResult);
+                        //加入总结果表
+                        ColumnResult columnResultAdd = addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, ColumnResultTypeEnum.STANDARD_TYPE.getKey(), principleId);
+                        addColumnResultList.add(columnResultAdd);
                     }
-                    if (StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
-                        standardvalueResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
-                    }
-                    standardvalueResult.setTableCname(columnInfo.getTableCname());
-                    standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    standardvalueResult.setTableEname(columnInfo.getTableEname());
-                    standardvalueResult.setColumnCname(columnInfo.getColumnCname());
-                    standardvalueResult.setColumnEname(columnInfo.getColumnEname());
-                    standardvalueResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
-                    if (principleId != null) {
-                        standardvalueResult.setCreator(principleId.toString());
+                }
+            }
+        }
+        //调用修改接口
+        if(ListUtil.isNotEmpty(upStandardvalueResultList)) {
+            if (standardvalueResultServiceImpl.saveOrUpdateBatch(upStandardvalueResultList)) {
+                if (ListUtil.isNotEmpty(upColumnResultList)) {
+                columnResultServiceImpl.saveOrUpdateBatch(upColumnResultList);
+                }
+            }
+        }
+        //调用新增接口
+            if(ListUtil.isNotEmpty(addStandardvalueResultList)) {
+                if (standardvalueResultServiceImpl.saveBatch(addStandardvalueResultList)) {
+                    if (ListUtil.isNotEmpty(addColumnResultList)) {
+                        addColumnResultList = saveColumnResultStandardvalueResultId(addStandardvalueResultList, addColumnResultList);
+                        //将id插入总表新增集合中
+                        columnResultServiceImpl.saveBatch(addColumnResultList);
                     }
-                    standardvalueResult.setTableId(getTableColumnInfoDTO.getTableId());
-                    standardvalueResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
-                    standardvalueResult.setSolveTime(new Date());
-                    standardvalueResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
-                    standardvalueResult.setGmtCreate(new Date());
-                    standardvalueResult.setGmtModified(new Date());
-                    standardvalueResultFacade.getBaseMapper().insert(standardvalueResult);
-                    Long id = standardvalueResult.getId();
-                    //加入总结果表
-                    addColumnResult(getTableColumnInfoDTO, columnInfo, columnId, id, ColumnResultTypeEnum.STANDARD_TYPE.getKey(), principleId);
+                }
+         }
+
+    }
+
+
+    /**
+     *修改结果总表对象
+     *
+     * @param columnResult
+     * @param getTableColumnInfoDTO
+     * @param principleId
+     * @return:
+     */
+    public ColumnResult upColumnResult(ColumnResult columnResult,GetTableColumnInfoDTO getTableColumnInfoDTO,Long principleId){
+        columnResult.setSolveTime(new Date());
+        columnResult.setGmtModified(new Date());
+        if(principleId!=null) {
+            columnResult.setModifier(principleId.toString());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getVal())){
+            columnResult.setTableVal(getTableColumnInfoDTO.getVal());
+        }
+        return columnResult;
+    }
+    /**
+     *修改结果非空表对象
+     *
+     * @param getTableColumnInfoDTO
+     * @param principleId
+     * @return:
+     */
+    public NonnullResult upNonnullResult(NonnullResult nonnullResult,GetTableColumnInfoDTO getTableColumnInfoDTO,Long principleId){
+        nonnullResult.setSolveTime(new Date());
+        nonnullResult.setGmtModified(new Date());
+        if(principleId!=null) {
+            nonnullResult.setModifier(principleId.toString());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getVal())){
+            nonnullResult.setTableVal(getTableColumnInfoDTO.getVal());
+        }
+        return nonnullResult;
+    }
+    /**
+     *修改结果正则表对象
+     *
+     * @param getTableColumnInfoDTO
+     * @param principleId
+     * @return:
+     */
+    public RegularResult upRegularResult(RegularResult regularResult,GetTableColumnInfoDTO getTableColumnInfoDTO,Long principleId){
+        regularResult.setSolveTime(new Date());
+        regularResult.setGmtModified(new Date());
+        if(principleId!=null) {
+            regularResult.setModifier(principleId.toString());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getVal())){
+            regularResult.setTableVal(getTableColumnInfoDTO.getVal());
+        }
+        return regularResult;
+    }
+    /**
+     *修改结果关键值表对象
+     *
+     * @param getTableColumnInfoDTO
+     * @param principleId
+     * @return:
+     */
+    public StandardvalueResult upStandardvalueResult(StandardvalueResult standardvalueResult,GetTableColumnInfoDTO getTableColumnInfoDTO,Long principleId){
+        standardvalueResult.setSolveTime(new Date());
+        standardvalueResult.setGmtModified(new Date());
+        if(principleId!=null) {
+            standardvalueResult.setModifier(principleId.toString());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getVal())){
+            standardvalueResult.setTableVal(getTableColumnInfoDTO.getVal());
+        }
+        return standardvalueResult;
+    }
+
+    /**
+     *查询出这段时间内病历总表所有的问题数据
+     *
+     * @param hospitalId
+     * @param behospitalCodeList
+     * @param type
+     * @return:
+     */
+    public  List<ColumnResult>  getColumnResultList(Long hospitalId, List<String> behospitalCodeList ,String type){
+        //查询出这段时间内病历所有的问题数据 behospitalCode+type
+        return columnResultFacade.getBaseMapper().selectList(new QueryWrapper<ColumnResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .eq("type", type)
+                .in(ListUtil.isNotEmpty(behospitalCodeList), "behospital_code", behospitalCodeList)
+        );
+    }
+    /**
+     *查询出这段时间内病历非空表所有的问题数据
+     *
+     * @param hospitalId
+     * @param behospitalCodeList
+     * @return:
+     */
+    public  List<NonnullResult>  getNonnullResultList(Long hospitalId, List<String> behospitalCodeList){
+        //查询出这段时间内病历所有的问题数据 behospitalCode+type
+        return nonnullResultFacade.getBaseMapper().selectList(new QueryWrapper<NonnullResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .in(ListUtil.isNotEmpty(behospitalCodeList), "behospital_code", behospitalCodeList)
+        );
+    }
+    /**
+     *查询出这段时间内病历正则表所有的问题数据
+     *
+     * @param hospitalId
+     * @param behospitalCodeList
+     * @return:
+     */
+    public  List<RegularResult>  getRegularResultList(Long hospitalId, List<String> behospitalCodeList){
+        //查询出这段时间内病历所有的问题数据 behospitalCode+type
+        return regularResultFacade.getBaseMapper().selectList(new QueryWrapper<RegularResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .in(ListUtil.isNotEmpty(behospitalCodeList), "behospital_code", behospitalCodeList)
+        );
+    }
+    /**
+     *查询出这段时间内病历标准值表所有的问题数据
+     *
+     * @param hospitalId
+     * @param behospitalCodeList
+     * @return:
+     */
+    public  List<StandardvalueResult>  getStandardvalueResult(Long hospitalId, List<String> behospitalCodeList){
+        //查询出这段时间内病历所有的问题数据 behospitalCode+type
+        return standardvalueResultFacade.getBaseMapper().selectList(new QueryWrapper<StandardvalueResult>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .in(ListUtil.isNotEmpty(behospitalCodeList), "behospital_code", behospitalCodeList)
+        );
+    }
+    /**
+     *判断总表是否存在该问题数据
+     *
+     * @param columnResultList
+     * @param getTableColumnInfoDTO
+     * @param columnId
+     * @return:
+     */
+    public ColumnResult judgeColumnResultList(List<ColumnResult> columnResultList , GetTableColumnInfoDTO getTableColumnInfoDTO,Long columnId){
+        if(ListUtil.isEmpty(columnResultList)){
+            return null;
+        }
+        for (ColumnResult columnResult : columnResultList) {
+            if(columnResult.getColumnId().longValue()==columnId.longValue()){
+                if((columnResult.getBehospitalCode().equals(getTableColumnInfoDTO.getBehospitalCode())) && columnResult.getTableId().longValue()==getTableColumnInfoDTO.getTableId().longValue()){
+                    return columnResult;
+                }
+            }
+        }
+        return null;
+    }
+    /**
+     *获取非空表存在该问题的数据
+     *
+     * @param nonnullResultList
+     * @param getTableColumnInfoDTO
+     * @param columnId
+     * @return:
+     */
+    public NonnullResult judgeNonnullResultList(List<NonnullResult> nonnullResultList , GetTableColumnInfoDTO getTableColumnInfoDTO,Long columnId ){
+        if(ListUtil.isEmpty(nonnullResultList)){
+            return null;
+        }
+        for (NonnullResult nonnullResult : nonnullResultList) {
+            if(nonnullResult.getColumnId().longValue()==columnId.longValue()){
+                if((nonnullResult.getBehospitalCode().equals(getTableColumnInfoDTO.getBehospitalCode())) && nonnullResult.getTableId().longValue()==getTableColumnInfoDTO.getTableId().longValue()){
+                    return nonnullResult;
+                }
+            }
+        }
+        return null;
+    }
+    /**
+     *获取正则表存在该问题的数据
+     *
+     * @param regularResultList
+     * @param getTableColumnInfoDTO
+     * @param columnId
+     * @return:
+     */
+    public RegularResult judgeRegularResultList(List<RegularResult> regularResultList , GetTableColumnInfoDTO getTableColumnInfoDTO,Long columnId ){
+        if(ListUtil.isEmpty(regularResultList)){
+            return null;
+        }
+        for (RegularResult regularResult : regularResultList) {
+            if(regularResult.getColumnId().longValue()==columnId.longValue()){
+                if((regularResult.getBehospitalCode().equals(getTableColumnInfoDTO.getBehospitalCode())) && regularResult.getTableId().longValue()==getTableColumnInfoDTO.getTableId().longValue()){
+                    return regularResult;
+                }
+            }
+        }
+        return null;
+    }
+    /**
+     *获取标准值表存在该问题的数据
+     *
+     * @param standardvalueResultList
+     * @param getTableColumnInfoDTO
+     * @param columnId
+     * @return:
+     */
+    public StandardvalueResult judgeStandardvalueResultList(List<StandardvalueResult> standardvalueResultList , GetTableColumnInfoDTO getTableColumnInfoDTO,Long columnId ){
+        if(ListUtil.isEmpty(standardvalueResultList)){
+            return null;
+        }
+        for (StandardvalueResult standardvalueResult : standardvalueResultList) {
+            if(standardvalueResult.getColumnId().longValue()==columnId.longValue()){
+                if((standardvalueResult.getBehospitalCode().equals(getTableColumnInfoDTO.getBehospitalCode())) && standardvalueResult.getTableId().longValue()==getTableColumnInfoDTO.getTableId().longValue()){
+                    return standardvalueResult;
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 新增总表插入非空子表id
+     *
+     * @return:
+     */
+    public List<ColumnResult> saveColumnResultNonnullId(List<NonnullResult> addNonnullResultList ,List<ColumnResult> addColumnResultList) {
+        ad:for (NonnullResult nonnullResult : addNonnullResultList) {
+            for (ColumnResult columnResult : addColumnResultList) {
+                if((nonnullResult.getColumnId().longValue()==columnResult.getColumnId().longValue()) && (nonnullResult.getBehospitalCode().equals(columnResult.getBehospitalCode()))
+                        && (nonnullResult.getTableId().longValue()==columnResult.getTableId().longValue())
+                ){
+                    columnResult.setResultId(nonnullResult.getId());
+                    continue ad;
+                }
+            }
+        }
+        return addColumnResultList;
+    }
+    /**
+     * 新增总表插入正则子表id
+     *
+     * @return:
+     */
+    public List<ColumnResult> saveColumnResultRegularResultId(List<RegularResult> addRegularResultList ,List<ColumnResult> addColumnResultList) {
+        ad:for (RegularResult regularResult : addRegularResultList) {
+            for (ColumnResult columnResult : addColumnResultList) {
+                if((regularResult.getColumnId().longValue()==columnResult.getColumnId().longValue()) && (regularResult.getBehospitalCode().equals(columnResult.getBehospitalCode()))
+                        && (regularResult.getTableId().longValue()==columnResult.getTableId().longValue())
+                ){
+                    columnResult.setResultId(regularResult.getId());
+                    continue ad;
+                }
+            }
+        }
+        return addColumnResultList;
+    }
+    /**
+     * 新增总表插入标准值子表id
+     *
+     * @return:
+     */
+    public List<ColumnResult> saveColumnResultStandardvalueResultId(List<StandardvalueResult> addStandardvalueResultList ,List<ColumnResult> addColumnResultList) {
+        ad:for (StandardvalueResult standardvalueResult : addStandardvalueResultList) {
+            for (ColumnResult columnResult : addColumnResultList) {
+                if((standardvalueResult.getColumnId().longValue()==columnResult.getColumnId().longValue()) && (standardvalueResult.getBehospitalCode().equals(columnResult.getBehospitalCode()))
+                        && (standardvalueResult.getTableId().longValue()==columnResult.getTableId().longValue())
+                ){
+                    columnResult.setResultId(standardvalueResult.getId());
+                    continue ad;
                 }
             }
         }
+        return addColumnResultList;
     }
 
     /**
@@ -850,11 +1322,10 @@ public class ColumnResultManagementFacade {
      * @param getTableColumnInfoDTO
      * @param columnInfo
      * @param columnId
-     * @param id
      * @param type
      * @return:
      */
-    public void addColumnResult(GetTableColumnInfoDTO getTableColumnInfoDTO, ColumnInfo columnInfo, Long columnId, Long id, String type, Long principleId) {
+    public ColumnResult addColumnResult(GetTableColumnInfoDTO getTableColumnInfoDTO, ColumnInfo columnInfo, Long columnId,String type, Long principleId) {
         ColumnResult columnResult = new ColumnResult();
         columnResult.setHospitalId(getTableColumnInfoDTO.getHospitalId());
         columnResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
@@ -877,6 +1348,7 @@ public class ColumnResultManagementFacade {
         columnResult.setColumnCname(columnInfo.getColumnCname());
         columnResult.setColumnEname(columnInfo.getColumnEname());
         columnResult.setTableId(getTableColumnInfoDTO.getTableId());
+        columnResult.setTableVal(getTableColumnInfoDTO.getVal());
         //数据缺失
         if (ColumnResultTypeEnum.NONNULL_TYPE.getKey().equals(type)) {
             columnResult.setType(ColumnResultTypeEnum.NONNULL_TYPE.getKey());
@@ -889,13 +1361,12 @@ public class ColumnResultManagementFacade {
         if (ColumnResultTypeEnum.REGULAR_TYPE.getKey().equals(type)) {
             columnResult.setType(ColumnResultTypeEnum.REGULAR_TYPE.getKey());
         }
-        columnResult.setResultId(id);
         columnResult.setIsSolved(SolvedStatusEnum.NOT_SOLVED.getKey());
         columnResult.setSolveTime(new Date());
         columnResult.setIsAudited(AuditStatusEnum.NOT_AUDIT.getKey());
         columnResult.setGmtCreate(new Date());
         columnResult.setGmtModified(new Date());
-        columnResultFacade.getBaseMapper().insert(columnResult);
+        return columnResult;
     }
 
 

+ 29 - 0
daqe-center/src/main/resources/upgrade/V2__daqe_init_uptable.sql

@@ -45,4 +45,33 @@ ADD PRIMARY KEY (`id`, `rec_id`, `hospital_id`);
 -- ----------------------------
 ALTER TABLE `dc_regular_result`
 MODIFY COLUMN `regular_des`  varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '正则式描述' AFTER `regular_val`;
+-- ----------------------------
+-- 10.修改`dc_column_result`表字段类型改为text
+-- ----------------------------
+ALTER TABLE `dc_column_result`
+MODIFY COLUMN `table_val`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '表字段的值' AFTER `table_id`;
+-- ----------------------------
+-- 11.修改`dc_nonnull_result`表字段类型改为text
+-- ----------------------------
+ALTER TABLE `dc_nonnull_result`
+MODIFY COLUMN `table_val`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '表字段的值' AFTER `table_id`;
+-- ----------------------------
+-- 12.修改`dc_regular_result`表字段类型改为text
+-- ----------------------------
+ALTER TABLE `dc_regular_result`
+MODIFY COLUMN `table_val`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '表字段的值' AFTER `table_id`;
+-- ----------------------------
+-- 13.修改`dc_standardvalue_result`表字段类型改为text
+-- ----------------------------
+ALTER TABLE `dc_standardvalue_result`
+MODIFY COLUMN `table_val`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '表字段的值' AFTER `table_id`;
+
+-- ----------------------------
+-- 14.修改`dc_regular_result`表-正则式值大小
+-- ----------------------------
+ALTER TABLE `dc_regular_result`
+MODIFY COLUMN `regular_val`  varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '正则式值' AFTER `regular_name`;
+
+
+