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