diff --git a/src/main/java/com/docus/server/archive/job/LisPatientReportCollectJob.java b/src/main/java/com/docus/server/archive/job/LisPatientReportCollectJob.java index 609d0ed..f4b11df 100644 --- a/src/main/java/com/docus/server/archive/job/LisPatientReportCollectJob.java +++ b/src/main/java/com/docus/server/archive/job/LisPatientReportCollectJob.java @@ -15,6 +15,8 @@ import com.docus.server.fsy.api.dto.LisPatientGroupReportRequest; import com.docus.server.fsy.api.dto.LisPatientGroupReportResponse; import com.docus.server.fsy.api.dto.LisPatientListRequest; import com.docus.server.fsy.api.dto.LisPatientListResponse; +import com.docus.server.fsy.api.dto.LisPatientReportRequest; +import com.docus.server.fsy.api.dto.LisPatientReportResponse; import com.docus.server.fsy.converter.LisReportConverter; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; @@ -87,31 +89,37 @@ public class LisPatientReportCollectJob { log.info("佛山三院Lis检验报告采集任务,采集任务id:{} 未查询到Lis患者文件数据", taskId); continue; } + // 报告类型gen需要合并 + List genPatientList = patientList.stream().filter(p -> "gen".equalsIgnoreCase(p.getRepReportType())).collect(Collectors.toList()); + List otherPatientList = patientList.stream().filter(p -> !"gen".equalsIgnoreCase(p.getRepReportType())).collect(Collectors.toList()); - - /// 文件列表查询每个文件,进行上报下载服务 ,于 2025-3-11 更换为 合并获取接口 -// for (LisPatientListResponse.Patient patient : patientList) { -// LisPatientReportRequest lisPatientReportRequest = new LisPatientReportRequest(); -// lisPatientReportRequest.setRepId(patient.getRepId()); -// lisPatientReportRequest.setCustomReportSuffix(""); -// LisPatientReportResponse lisReportServicePatientReport = lisReportService.getPatientReport(lisPatientReportRequest); -// ReportDownDto reportDownDto = LisReportConverter.convertDownloadPlatform(reportDownTwoDto, patient, lisReportServicePatientReport); -// reportDownDto.setCollectorid(lisCollectorId); -// reportDownDto.setAssortid(lisAssortId); -// downPlatformService.report(reportDownDto); -// } - - // 合并获取接口 - String repIds = patientList.stream().map(LisPatientListResponse.Patient::getRepId).collect(Collectors.joining(",")); - LisPatientGroupReportRequest request = new LisPatientGroupReportRequest(); - request.setReportCode("GroupPrint"); - request.setRepIds(repIds); - LisPatientGroupReportResponse groupReport = lisReportService.getPatientGroupReport(request); - ReportDownDto reportDownDto = LisReportConverter.convertDownloadPlatform(reportDownTwoDto, groupReport); - reportDownDto.setCollectorid(lisCollectorId); - reportDownDto.setAssortid(lisAssortId); tBasicMapper.cancelFileBySource(lisCollectorId, reportDownTwoDto.getPatientId()); - downPlatformService.report(reportDownDto); + if (Func.isNotEmpty(genPatientList)) { + // 合并获取接口 + String repIds = genPatientList.stream().map(LisPatientListResponse.Patient::getRepId).collect(Collectors.joining(",")); + LisPatientGroupReportRequest request = new LisPatientGroupReportRequest(); + request.setReportCode("GroupPrint"); + request.setRepIds(repIds); + LisPatientGroupReportResponse groupReport = lisReportService.getPatientGroupReport(request); + ReportDownDto reportDownDto = LisReportConverter.convertDownloadPlatform(reportDownTwoDto, groupReport); + reportDownDto.setCollectorid(lisCollectorId); + reportDownDto.setAssortid(lisAssortId); + downPlatformService.report(reportDownDto); + + } + if (Func.isNotEmpty(otherPatientList)) { + // 文件列表查询每个文件,进行上报下载服务 + for (LisPatientListResponse.Patient patient : otherPatientList) { + LisPatientReportRequest lisPatientReportRequest = new LisPatientReportRequest(); + lisPatientReportRequest.setRepId(patient.getRepId()); + lisPatientReportRequest.setCustomReportSuffix(""); + LisPatientReportResponse lisReportServicePatientReport = lisReportService.getPatientReport(lisPatientReportRequest); + ReportDownDto reportDownDto = LisReportConverter.convertDownloadPlatform(reportDownTwoDto, patient, lisReportServicePatientReport); + reportDownDto.setCollectorid(lisCollectorId); + reportDownDto.setAssortid(lisAssortId); + downPlatformService.report(reportDownDto); + } + } } } catch (Exception ex) { log.error("====================> 佛山三院Lis检验报告采集任务出现异常_" + ex.getMessage(), ex); diff --git a/src/main/java/com/docus/server/fsy/api/dto/LisPatientListResponse.java b/src/main/java/com/docus/server/fsy/api/dto/LisPatientListResponse.java index e0106fa..8e4ec8a 100644 --- a/src/main/java/com/docus/server/fsy/api/dto/LisPatientListResponse.java +++ b/src/main/java/com/docus/server/fsy/api/dto/LisPatientListResponse.java @@ -37,5 +37,11 @@ public class LisPatientListResponse { * 检测日期 */ private String repInDate; + + + /** + * 报告类型(gen 为普通报告 mic为微生物报告) + */ + private String repReportType; } } diff --git a/src/main/java/com/docus/server/fsy/converter/LisReportConverter.java b/src/main/java/com/docus/server/fsy/converter/LisReportConverter.java index 9fe9ed5..700cab3 100644 --- a/src/main/java/com/docus/server/fsy/converter/LisReportConverter.java +++ b/src/main/java/com/docus/server/fsy/converter/LisReportConverter.java @@ -110,6 +110,9 @@ public class LisReportConverter { if ("RepInDate".equals(node.getNodeName())) { patient.setRepInDate(node.getTextContent()); } + if ("RepReportType".equals(node.getNodeName())) { + patient.setRepReportType(node.getTextContent()); + } } patients.add(patient); }