|
@@ -115,25 +115,15 @@ public class BlockLossManagementFacade {
|
|
|
}
|
|
|
|
|
|
|
|
|
- //====1.获取已丢失状态记录,去数据库中对比判断是否补录
|
|
|
- List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
|
- .select("id,behospital_code,rec_id,loss_type,loss_way")
|
|
|
+ //====1.删除当前时间段的对比记录(未核查的)
|
|
|
+ flag = blocklossResultFacade.remove(new UpdateWrapper<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)
|
|
|
- .eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
|
+ .eq("is_audited", LossIsAuditedEnum.NOT_AUDITED.getKey())
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
- 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()), "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())
|
|
@@ -142,19 +132,51 @@ public class BlockLossManagementFacade {
|
|
|
.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;
|
|
|
+ //再按照内部|外部区分
|
|
|
+ List<String> inAuditedResultCodes = null;
|
|
|
+ List<String> inAuditedResultHomePages = null;
|
|
|
+ List<String> inAuditedResultRecIds = null;
|
|
|
+ List<String> outAuditedResultCodes = null;
|
|
|
+ List<String> outAuditedResultHomePages = null;
|
|
|
+ List<String> outAuditedResultRecIds = 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());
|
|
|
+ List<BlocklossResult> auditedResultCodes = auditedResultMap.get(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
+ if(ListUtil.isNotEmpty(auditedResultCodes)){
|
|
|
+ Map<String, List<BlocklossResult>> tempCodeMap = EntityUtil.makeEntityListMap(auditedResultCodes,"lossWay");
|
|
|
+ if(ListUtil.isNotEmpty(tempCodeMap.get(LossWayEnum.IN_LOSS.getKey()))){
|
|
|
+ inAuditedResultCodes = tempCodeMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if(ListUtil.isNotEmpty(tempCodeMap.get(LossWayEnum.OUT_LOSS.getKey()))){
|
|
|
+ outAuditedResultCodes = tempCodeMap.get(LossWayEnum.OUT_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());
|
|
|
+ List<BlocklossResult> auditedResultHomePages = auditedResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
+ if(ListUtil.isNotEmpty(auditedResultHomePages)){
|
|
|
+ Map<String, List<BlocklossResult>> tempHomePageMap = EntityUtil.makeEntityListMap(auditedResultHomePages,"lossWay");
|
|
|
+ if(ListUtil.isNotEmpty(tempHomePageMap.get(LossWayEnum.IN_LOSS.getKey()))){
|
|
|
+ inAuditedResultHomePages = tempHomePageMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if(ListUtil.isNotEmpty(tempHomePageMap.get(LossWayEnum.OUT_LOSS.getKey()))){
|
|
|
+ outAuditedResultHomePages = tempHomePageMap.get(LossWayEnum.OUT_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<BlocklossResult> auditedResultRecIds = auditedResultMap.get(LossTypeEnum.REC_LOSS.getKey());
|
|
|
+ if(ListUtil.isNotEmpty(auditedResultRecIds)){
|
|
|
+ Map<String, List<BlocklossResult>> tempRecMap = EntityUtil.makeEntityListMap(auditedResultRecIds,"lossWay");
|
|
|
+ if(ListUtil.isNotEmpty(tempRecMap.get(LossWayEnum.IN_LOSS.getKey()))){
|
|
|
+ inAuditedResultRecIds = tempRecMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if(ListUtil.isNotEmpty(tempRecMap.get(LossWayEnum.OUT_LOSS.getKey()))){
|
|
|
+ outAuditedResultRecIds = tempRecMap.get(LossWayEnum.OUT_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//定义对应要更新的已核查集合
|
|
@@ -243,11 +265,11 @@ public class BlockLossManagementFacade {
|
|
|
//外部丢失数据集合
|
|
|
List<BlocklossResult> outInserts = new ArrayList<>();
|
|
|
//文书数据对比
|
|
|
- compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outAuditedResultRecIds, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
//病案首页数据对比
|
|
|
- compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outAuditedResultHomePages, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
//病历数据对比
|
|
|
- compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outAuditedResultCodes, outInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
|
|
|
flag = blocklossResultServiceImpl.saveBatch(outInserts);
|
|
|
}
|
|
@@ -256,13 +278,13 @@ public class BlockLossManagementFacade {
|
|
|
//内部丢失数据集合
|
|
|
List<BlocklossResult> inInserts = new ArrayList<>();
|
|
|
if (ListUtil.isNotEmpty(recLogs)) {
|
|
|
- compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), auditedResultRecIds, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inAuditedResultRecIds, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(homePageLogs)) {
|
|
|
- compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), auditedResultHomePages, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inAuditedResultHomePages, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
}
|
|
|
if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
|
- compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), auditedResultCodes, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
+ compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inAuditedResultCodes, inInserts, hisMedicalRecordMap, hospitalId, principleId, dataUps);
|
|
|
}
|
|
|
//更新核查数据的时间
|
|
|
if (ListUtil.isNotEmpty(dataUps)) {
|
|
@@ -278,8 +300,7 @@ public class BlockLossManagementFacade {
|
|
|
.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));
|
|
|
+ .eq(finalHospitalId != null, "hospital_id", finalHospitalId));
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -287,6 +308,19 @@ public class BlockLossManagementFacade {
|
|
|
flag = blocklossResultServiceImpl.saveBatch(inInserts);
|
|
|
}
|
|
|
|
|
|
+ //====3.获取已丢失状态记录,去数据库中对比判断是否补录
|
|
|
+ List<BlocklossResult> lossResults = blocklossResultFacade.list(new QueryWrapper<BlocklossResult>()
|
|
|
+ .select("id,behospital_code,rec_id,loss_type,loss_way")
|
|
|
+ .eq(hospitalId != null, "hospital_id", hospitalId)
|
|
|
+ .eq("status", LossStatusEnum.IS_LOSS.getKey())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ if (ListUtil.isNotEmpty(lossResults)) {
|
|
|
+ Map<String, List<BlocklossResult>> lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
|
|
|
+ //更新以缺失数据的状态
|
|
|
+ flag = upBlockLossStatus(lossResultMap, hospitalId, principleId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return flag;
|
|
|
}
|
|
|
|