|
@@ -136,14 +136,16 @@ public class BlockLossManagementFacade {
|
|
|
List<String> logCodes = null;
|
|
|
//没有病历数据就不用去查病案首页和文书
|
|
|
if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
|
|
|
+ //日志去重防止多次操作
|
|
|
+ behospitalCodeLogs = removeRepeat(behospitalCodeLogs, "behospitalCode");
|
|
|
logCodes = behospitalCodeLogs.stream().map(GetOperationLogDTO::getBehospitalCode).collect(Collectors.toList());
|
|
|
dataCompareVO.setBehospitalCodes(logCodes);
|
|
|
//病案首页数据
|
|
|
dataCompareVO.setOperationUrl("save/saveHomePages");
|
|
|
- homePageLogs = getOperationLogs(dataCompareVO);
|
|
|
+ homePageLogs = removeRepeat(getOperationLogs(dataCompareVO), "homePageId");
|
|
|
//文书数据
|
|
|
dataCompareVO.setOperationUrl("save/saveRecs");
|
|
|
- recLogs = getOperationLogs(dataCompareVO);
|
|
|
+ recLogs = removeRepeat(getOperationLogs(dataCompareVO), "recTitle");
|
|
|
}
|
|
|
|
|
|
//获取库中数据
|
|
@@ -263,6 +265,22 @@ public class BlockLossManagementFacade {
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 数据去重
|
|
|
+ *
|
|
|
+ * @param homePageLogs
|
|
|
+ * @param key
|
|
|
+ * @Return java.util.List<com.lantone.common.dto.GetOperationLogDTO>
|
|
|
+ */
|
|
|
+ private List<GetOperationLogDTO> removeRepeat(List<GetOperationLogDTO> homePageLogs, String key) {
|
|
|
+ Map<String, GetOperationLogDTO> tempMap = EntityUtil.makeEntityMap(homePageLogs, key);
|
|
|
+ List<GetOperationLogDTO> out = new ArrayList<>();
|
|
|
+ tempMap.keySet().stream().forEach(id -> {
|
|
|
+ out.add(tempMap.get(id));
|
|
|
+ });
|
|
|
+ return out;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 日志与入库数据对比
|
|
|
*
|
|
@@ -290,7 +308,9 @@ public class BlockLossManagementFacade {
|
|
|
blocklossResult.setRecTitle(rec.getRecTitle());
|
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
//拼装病历数据块丢失明细其他信息
|
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
|
inInserts.add(blocklossResult);
|
|
@@ -318,7 +338,9 @@ public class BlockLossManagementFacade {
|
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
|
|
|
blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
//拼装病历数据块丢失明细其他信息
|
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
|
inInserts.add(blocklossResult);
|
|
@@ -339,7 +361,9 @@ public class BlockLossManagementFacade {
|
|
|
blocklossResult.setRecTitle("病案首页丢失");
|
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
//拼装病历数据块丢失明细其他信息
|
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
|
inInserts.add(blocklossResult);
|
|
@@ -357,7 +381,9 @@ public class BlockLossManagementFacade {
|
|
|
blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
|
|
|
blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
|
|
|
blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
|
|
|
- blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
|
|
|
+ if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
|
|
|
+ blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
|
|
|
+ }
|
|
|
//拼装病历数据块丢失明细其他信息
|
|
|
assembleOtherBlocklossResult(blocklossResult);
|
|
|
inInserts.add(blocklossResult);
|