Przeglądaj źródła

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

songxinlu 3 lat temu
rodzic
commit
ba5ac2e098

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

@@ -450,80 +450,87 @@ public class BlockLossManagementFacade {
      * @Return void
      */
     private Boolean upBlockLossStatus(Map<String, List<BlocklossResult>> lossResultMap, Long hospitalId, Long principleId) {
-        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()))
-                            .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()))
-                            .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)));
+        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;
                     }
-                    break;
-                default:
-                    break;
+                });
             }
-        });
+        }
         return flag.get();
     }