فهرست منبع

修改病例块数据比对接口

songxinlu 3 سال پیش
والد
کامیت
82c024f16b
1فایلهای تغییر یافته به همراه210 افزوده شده و 102 حذف شده
  1. 210 102
      daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

+ 210 - 102
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -26,6 +26,7 @@ import com.lantone.daqe.entity.BlocklossResult;
 import com.lantone.daqe.entity.HomePage;
 import com.lantone.daqe.entity.MedicalRecord;
 import com.lantone.daqe.enums.DataSaveUrlEnum;
+import com.lantone.daqe.enums.LossIsAuditedEnum;
 import com.lantone.daqe.enums.LossStatusEnum;
 import com.lantone.daqe.enums.LossTypeEnum;
 import com.lantone.daqe.enums.LossWayEnum;
@@ -120,19 +121,45 @@ public class BlockLossManagementFacade {
                 .eq(hospitalId != null, "hospital_id", hospitalId)
                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
-//        Map<String, List<BlocklossResult>> lossResultMap = null;
         if (ListUtil.isNotEmpty(lossResults)) {
             Map<String, List<BlocklossResult>> lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
             //更新以缺失数据的状态
             flag = upBlockLossStatus(lossResultMap, hospitalId, principleId);
             //删除当前时间段的对比记录
             flag = blocklossResultFacade.remove(new UpdateWrapper<BlocklossResult>()
-                    .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
-                    .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
+                    .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
+                    .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
                     .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
                     .eq(hospitalId != null, "hospital_id", hospitalId)
+                    .eq("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
                     .eq("is_deleted", IsDeleteEnum.N.getKey()));
         }
+        //已核查的数据(筛选区间)
+        List<BlocklossResult> auditedResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
+                .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
+                .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
+                .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
+                .eq(hospitalId != null, "hospital_id", hospitalId)
+                .notIn("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
+                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        List<String> auditedResultCodes = null;
+        List<String> auditedResultHomePages = null;
+        List<String> auditedResultRecIds = null;
+        if (ListUtil.isNotEmpty(auditedResults)) {
+            Map<String, List<BlocklossResult>> auditedResultMap = EntityUtil.makeEntityListMap(auditedResults, "lossType");
+            if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.CODE_LOSS.getKey()))) {
+                auditedResultCodes = auditedResultMap.get(LossTypeEnum.CODE_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
+            }
+            if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()))) {
+                auditedResultHomePages = auditedResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
+            }
+            if (ListUtil.isNotEmpty(auditedResultMap.get(LossTypeEnum.REC_LOSS.getKey()))) {
+                auditedResultRecIds = auditedResultMap.get(LossTypeEnum.REC_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
+            }
+        }
+        //定义对应要更新的已核查集合
+        List<GetOperationLogDTO> dataUps = new ArrayList<>();
+
 
         //====2.某时间的数据对比
         //=====2.1获取数据
@@ -169,8 +196,8 @@ public class BlockLossManagementFacade {
         //病历数据
         List<String> dataBaseBehospitalCodes = behospitalInfoFacade.list(new QueryWrapper<BehospitalInfo>()
                 .select("behospital_code")
-                .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
-                .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
+                .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getStartDate())
+                .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "behospital_date", dataCompareVO.getEndDate())
                 .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
                 .eq(hospitalId != null, "hospital_id", hospitalId)
                 .eq("is_deleted", IsDeleteEnum.N.getKey()))
@@ -216,11 +243,11 @@ public class BlockLossManagementFacade {
             //外部丢失数据集合
             List<BlocklossResult> outInserts = new ArrayList<>();
             //文书数据对比
-            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts,  hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
             //病案首页数据对比
-            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
             //病历数据对比
-            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
 
             flag = blocklossResultServiceImpl.saveBatch(outInserts);
         }
@@ -229,17 +256,37 @@ public class BlockLossManagementFacade {
         //内部丢失数据集合
         List<BlocklossResult> inInserts = new ArrayList<>();
         if (ListUtil.isNotEmpty(recLogs)) {
-            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts,  hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
         }
         if (ListUtil.isNotEmpty(homePageLogs)) {
-            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
         }
         if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
-            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
+        }
+        //更新核查数据的时间
+        if (ListUtil.isNotEmpty(dataUps)) {
+            Long finalPrincipleId = principleId;
+            Long finalHospitalId = hospitalId;
+            dataUps.stream().forEach(data->{
+                blocklossResultFacade.update(new UpdateWrapper<BlocklossResult>()
+                        .set("gmt_modified", DateUtil.now())
+                        .set("modifier", finalPrincipleId != null ? finalPrincipleId + "" : "0")
+                        .eq(StringUtil.isNotBlank(data.getRecId()),"rec_id", data.getRecId())
+                        .notIn("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
+                        .eq("behospital_code",data.getBehospitalCode())
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .ge(dataCompareVO.getStartDate() != null , "behospital_date", dataCompareVO.getStartDate())
+                        .le(dataCompareVO.getEndDate() != null , "behospital_date", dataCompareVO.getEndDate())
+                        .eq(finalHospitalId != null, "hospital_id", finalHospitalId)
+                        .eq("hospital_id", finalHospitalId != null ? finalHospitalId : 0));
+            });
         }
+
         if (ListUtil.isNotEmpty(inInserts)) {
             flag = blocklossResultServiceImpl.saveBatch(inInserts);
         }
+
         return flag;
     }
 
@@ -265,82 +312,102 @@ public class BlockLossManagementFacade {
      * @param logs                日志记录
      * @param dataBases           入库数据
      * @param type                对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
+     * @param auditedResultDatas  已核查数据
      * @param inInserts           内部丢失插入集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
      * @param hospitalId          医院id
      * @param principleId         操作人id
+     * @param dataUps             要更新的已核查的集合
      * @Return void
      */
     private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
-                                     List<BlocklossResult> inInserts,
-                                     Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
+                                     List<String> auditedResultDatas, List<BlocklossResult> inInserts,
+                                     Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId, List<GetOperationLogDTO> dataUps) {
         switch (type) {
             case "0":
                 //文书丢失
                 logs.stream().forEach(rec -> {
                     //存在记录但是没有入库
                     if (!dataBases.contains(rec.getRecId())) {
-                        BlocklossResult blocklossResult = new BlocklossResult();
-                        blocklossResult.setBehospitalCode(rec.getBehospitalCode());
-                        blocklossResult.setRecId(rec.getRecId());
-                        blocklossResult.setRecTitle(rec.getRecTitle());
-                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                        blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                        if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
+                        if (auditedResultDatas == null || !auditedResultDatas.contains(rec.getRecId())) {
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(rec.getBehospitalCode());
+                            blocklossResult.setRecId(rec.getRecId());
+                            blocklossResult.setRecTitle(rec.getRecTitle());
+                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+                            if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
+                            }
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            inInserts.add(blocklossResult);
+                        } else {
+                            //更新人工操作记录(核查的)的时间
+                            GetOperationLogDTO temp = new GetOperationLogDTO();
+                            temp.setBehospitalCode(rec.getBehospitalCode());
+                            temp.setRecId(rec.getRecId());
+                            dataUps.add(temp);
                         }
-                        //拼装病历数据块丢失明细其他信息
-                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                        inInserts.add(blocklossResult);
+
                     }
                 });
                 //判断只插入文书id的情况
                 //获取插入的文书
-//                if (ListUtil.isNotEmpty(dataBases)) {
-//                    List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
-//                            .select("rec_id")
-//                            .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
-//                    List<String> tempList = new ArrayList<>(dataBases);
-//                    //移除查出来有内容的文书
-//                    tempList.removeAll(havingRecIds);
-//                    Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
-//                    //有文书id无内容文书
-//                    tempList.stream().forEach(recId -> {
-//                        //没有被记录过
-//                        BlocklossResult blocklossResult = new BlocklossResult();
-//                        blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
-//                        blocklossResult.setRecId(recId);
-//                        blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
-//                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-//                        blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-//                        blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
-//                        if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
-//                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
-//                        }
-//                        //拼装病历数据块丢失明细其他信息
-//                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-//                        inInserts.add(blocklossResult);
-//                    });
-//                }
+                //                if (ListUtil.isNotEmpty(dataBases)) {
+                //                    List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
+                //                            .select("rec_id")
+                //                            .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
+                //                    List<String> tempList = new ArrayList<>(dataBases);
+                //                    //移除查出来有内容的文书
+                //                    tempList.removeAll(havingRecIds);
+                //                    Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
+                //                    //有文书id无内容文书
+                //                    tempList.stream().forEach(recId -> {
+                //                        //没有被记录过
+                //                        BlocklossResult blocklossResult = new BlocklossResult();
+                //                        blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
+                //                        blocklossResult.setRecId(recId);
+                //                        blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
+                //                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                //                        blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+                //                        blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
+                //                        if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
+                //                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
+                //                        }
+                //                        //拼装病历数据块丢失明细其他信息
+                //                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                //                        inInserts.add(blocklossResult);
+                //                    });
+                //                }
 
                 break;
             case "1":
                 //病案首页丢失
                 logs.stream().forEach(homePages -> {
                     //存在记录但是没有入库
-                    if (!dataBases.contains(homePages.getRecId())) {
-                        BlocklossResult blocklossResult = new BlocklossResult();
-                        blocklossResult.setBehospitalCode(homePages.getBehospitalCode());
-                        blocklossResult.setRecId(homePages.getHomePageId());
-                        blocklossResult.setRecTitle("病案首页丢失");
-                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                        blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
-                        if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
+                    if (!dataBases.contains(homePages.getHomePageId())) {
+                        if (auditedResultDatas == null || !auditedResultDatas.contains(homePages.getHomePageId())) {
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(homePages.getBehospitalCode());
+                            blocklossResult.setRecId(homePages.getHomePageId());
+                            blocklossResult.setRecTitle("病案首页丢失");
+                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
+                            if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
+                            }
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            inInserts.add(blocklossResult);
+                        } else {
+                            //更新人工操作记录(核查的)的时间
+                            GetOperationLogDTO temp = new GetOperationLogDTO();
+                            temp.setBehospitalCode(homePages.getBehospitalCode());
+                            temp.setHomePageId(homePages.getHomePageId());
+                            dataUps.add(temp);
                         }
-                        //拼装病历数据块丢失明细其他信息
-                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                        inInserts.add(blocklossResult);
+
                     }
                 });
                 break;
@@ -349,16 +416,24 @@ public class BlockLossManagementFacade {
                 logs.stream().forEach(beHehospitalInfo -> {
                     //存在记录但是没有入库
                     if (!dataBases.contains(beHehospitalInfo.getBehospitalCode())) {
-                        BlocklossResult blocklossResult = new BlocklossResult();
-                        blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
-                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                        blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
-                        if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
+                        if (auditedResultDatas == null || !auditedResultDatas.contains(beHehospitalInfo.getBehospitalCode())) {
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
+                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
+                            if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
+                            }
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            inInserts.add(blocklossResult);
+                        } else {
+                            //更新人工操作记录(核查的)的时间
+                            GetOperationLogDTO temp = new GetOperationLogDTO();
+                            temp.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
+                            dataUps.add(temp);
                         }
-                        //拼装病历数据块丢失明细其他信息
-                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                        inInserts.add(blocklossResult);
+
                     }
                 });
                 break;
@@ -456,15 +531,18 @@ public class BlockLossManagementFacade {
      * @param medicalRecords      his数据
      * @param logs                日志数据
      * @param type                对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
+     * @param auditedResultDatas  已核查数据
      * @param outInserts          外部丢失插入集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
      * @param hospitalId          医院id
      * @param principleId         操作人id
+     * @param dataUps             要更新的已核查的集合
      * @Return void
      */
     private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
-                                   String type, List<BlocklossResult> outInserts,
-                                   Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
+                                   String type, List<String> auditedResultDatas, List<BlocklossResult> outInserts,
+                                   Map<String, HisMedicalRecordDTO> hisMedicalRecordMap,
+                                   Long hospitalId, Long principleId, List<GetOperationLogDTO> dataUps) {
         //his数据为空直接返回
         if (ListUtil.isEmpty(medicalRecords)) {
             return;
@@ -476,17 +554,28 @@ public class BlockLossManagementFacade {
                     //文书不存在操作记录
                     if (StringUtil.isNotEmpty(medicalRecord.getRecId())) {
                         if (!recLogs.contains(medicalRecord.getRecId())) {
-                            //该记录没有插入
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                            blocklossResult.setRecId(medicalRecord.getRecId());
-                            blocklossResult.setRecTitle(medicalRecord.getRecTitle());
-                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            outInserts.add(blocklossResult);
+                            if (auditedResultDatas == null || !auditedResultDatas.contains(medicalRecord.getRecId())) {
+                                //该记录没有插入
+                                BlocklossResult blocklossResult = new BlocklossResult();
+                                blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                                blocklossResult.setRecId(medicalRecord.getRecId());
+                                blocklossResult.setRecTitle(medicalRecord.getRecTitle());
+                                blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                                blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+                                if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
+                                    blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                                }
+                                //拼装病历数据块丢失明细其他信息
+                                assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                                outInserts.add(blocklossResult);
+                            } else {
+                                //更新人工操作记录(核查的)的时间
+                                GetOperationLogDTO temp = new GetOperationLogDTO();
+                                temp.setBehospitalCode(medicalRecord.getBehospitalCode());
+                                temp.setRecId(medicalRecord.getRecId());
+                                dataUps.add(temp);
+                            }
+
                         }
                     }
                 });
@@ -496,16 +585,26 @@ public class BlockLossManagementFacade {
                 medicalRecords.stream().forEach(medicalRecord -> {
                     //病案首页不存在操作记录
                     if (StringUtil.isNotEmpty(medicalRecord.getHomePageId()) && !homepageLogs.contains(medicalRecord.getHomePageId())) {
-                        BlocklossResult blocklossResult = new BlocklossResult();
-                        blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                        blocklossResult.setRecId(medicalRecord.getHomePageId());
-                        blocklossResult.setRecTitle("病案首页丢失");
-                        blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                        blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
-                        blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                        //拼装病历数据块丢失明细其他信息
-                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                        outInserts.add(blocklossResult);
+                        if (auditedResultDatas == null || !auditedResultDatas.contains(medicalRecord.getRecId())) {
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                            blocklossResult.setRecId(medicalRecord.getHomePageId());
+                            blocklossResult.setRecTitle("病案首页丢失");
+                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
+                            if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                            }
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            outInserts.add(blocklossResult);
+                        } else {
+                            //更新人工操作记录(核查的)的时间
+                            GetOperationLogDTO temp = new GetOperationLogDTO();
+                            temp.setBehospitalCode(medicalRecord.getBehospitalCode());
+                            temp.setHomePageId(medicalRecord.getHomePageId());
+                            dataUps.add(temp);
+                        }
                     }
                 });
                 break;
@@ -514,14 +613,23 @@ public class BlockLossManagementFacade {
                 medicalRecords.stream().forEach(medicalRecord -> {
                     //病历数据不存在操作记录
                     if (!behospitalCodeLogs.contains(medicalRecord.getBehospitalCode())) {
-                        BlocklossResult blocklossResult = new BlocklossResult();
-                        blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                        blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                        blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
-                        blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                        //拼装病历数据块丢失明细其他信息
-                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                        outInserts.add(blocklossResult);
+                        if (auditedResultDatas == null || !auditedResultDatas.contains(medicalRecord.getRecId())) {
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
+                            if (hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate() != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                            }
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            outInserts.add(blocklossResult);
+                        } else {
+                            //更新人工操作记录(核查的)的时间
+                            GetOperationLogDTO temp = new GetOperationLogDTO();
+                            temp.setBehospitalCode(medicalRecord.getBehospitalCode());
+                            dataUps.add(temp);
+                        }
                     }
                 });
                 break;