From 88ac1daa58ed755ad2f730b4cbb3ee08f00e5ef2 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Fri, 29 Aug 2025 08:32:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=9B=E5=B1=B1=E4=B8=89=E9=99=A2lis?= =?UTF-8?q?=E9=87=87=E9=9B=86=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9,gen?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=90=88=E5=B9=B6=EF=BC=8C=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=8D=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/LisPatientReportCollectJob.java | 54 +++++++++++-------- .../fsy/api/dto/LisPatientListResponse.java | 6 +++ .../fsy/converter/LisReportConverter.java | 3 ++ 3 files changed, 40 insertions(+), 23 deletions(-) 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); }