From 32b5508f8fd2f20835958074f1d5eae47a6ba738 Mon Sep 17 00:00:00 2001 From: WenYongbin <1977763549@qq.com> Date: Tue, 21 Apr 2026 13:58:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=B9=BF=E4=B8=9C=E7=9C=81=E4=B8=AD?= =?UTF-8?q?=E5=8C=BB=E7=8F=A0=E6=B5=B7=EF=BC=8C=E6=A3=80=E9=AA=8C=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=9F=A5=E8=AF=A2=E5=88=86=E6=89=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E5=A4=A9=E6=95=B0=E5=A4=AA=E5=A4=9A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ReportCollectServiceImpl.java | 39 ++++++++++++++----- .../rpc/impl/GdSzyZhReportServiceImpl.java | 11 +++++- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/docus/server/gdszyzh/service/impl/ReportCollectServiceImpl.java b/src/main/java/com/docus/server/gdszyzh/service/impl/ReportCollectServiceImpl.java index be72991..35a4549 100644 --- a/src/main/java/com/docus/server/gdszyzh/service/impl/ReportCollectServiceImpl.java +++ b/src/main/java/com/docus/server/gdszyzh/service/impl/ReportCollectServiceImpl.java @@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -52,7 +53,7 @@ public class ReportCollectServiceImpl implements ReportCollectService { @Override public void collectPacs(List patientIds) { - if(Func.isEmpty(patientIds)){ + if (Func.isEmpty(patientIds)) { return; } List basicList = tBasicMapper.getTbasicByPatientIds(patientIds); @@ -63,7 +64,7 @@ public class ReportCollectServiceImpl implements ReportCollectService { @Override public void collectLis(List patientIds) { - if(Func.isEmpty(patientIds)){ + if (Func.isEmpty(patientIds)) { return; } List basicList = tBasicMapper.getTbasicByPatientIds(patientIds); @@ -74,7 +75,7 @@ public class ReportCollectServiceImpl implements ReportCollectService { @Override public void collectEcg(List patientIds) { - if(Func.isEmpty(patientIds)){ + if (Func.isEmpty(patientIds)) { return; } List basicList = tBasicMapper.getTbasicByPatientIds(patientIds); @@ -85,7 +86,7 @@ public class ReportCollectServiceImpl implements ReportCollectService { @Override public void collectShouMa(List patientIds) { - if(Func.isEmpty(patientIds)){ + if (Func.isEmpty(patientIds)) { return; } List basicList = tBasicMapper.getTbasicByPatientIds(patientIds); @@ -96,7 +97,7 @@ public class ReportCollectServiceImpl implements ReportCollectService { @Override public void collectIcu(List patientIds) { - if(Func.isEmpty(patientIds)){ + if (Func.isEmpty(patientIds)) { return; } List basicList = tBasicMapper.getTbasicByPatientIds(patientIds); @@ -173,10 +174,30 @@ public class ReportCollectServiceImpl implements ReportCollectService { log.error("采集LIS报告,患者:{},住院流水号:{},入院、出院时间,empId有空数据,无法采集!", basic.getInpatientNo(), jzh); return; } - String beginDate = Func.formatDate(admissDate); - String endDate = Func.formatDate(disDate); - GdSzyZhReportListDto lisList = gdSzyZhReportService.lisList(empId, jzh, beginDate, endDate); - List reportList = lisList.getReportList(); + List reportList = new ArrayList<>(); + String admissDateFormat = Func.formatDate(admissDate); + String disDateFormat = Func.formatDate(disDate); + int intervalDays = 20; + LocalDate beginDate = Func.parseDate(admissDateFormat); + LocalDate stopEndDate = Func.parseDate(disDateFormat).plusDays(15); + // 因为报告时间过长,LIS系统会响应超时,分时间段查询,intervalDays 天一组。 + while (true) { + if(beginDate.isAfter(stopEndDate)) { + break; + } + LocalDate endDate = beginDate.plusDays(intervalDays); + if (endDate.isAfter(stopEndDate)) { + endDate = stopEndDate; + } + GdSzyZhReportListDto dto = gdSzyZhReportService.lisList(empId, jzh, beginDate + " 00:00:00", endDate + " 23:59:59"); + List reports = dto.getReportList(); + reportList.addAll(reports); + // 截止 + if (endDate.isEqual(stopEndDate) || endDate.isAfter(stopEndDate)) { + break; + } + beginDate = endDate.plusDays(1); + } reportList = reportList.stream() .sorted(Comparator.comparing(GdSzyZhReportListDto.Report::getReportClass) .thenComparing(GdSzyZhReportListDto.Report::getReportTime)) diff --git a/src/main/java/com/docus/server/rpc/impl/GdSzyZhReportServiceImpl.java b/src/main/java/com/docus/server/rpc/impl/GdSzyZhReportServiceImpl.java index 89838c8..bada4be 100644 --- a/src/main/java/com/docus/server/rpc/impl/GdSzyZhReportServiceImpl.java +++ b/src/main/java/com/docus/server/rpc/impl/GdSzyZhReportServiceImpl.java @@ -264,13 +264,22 @@ public class GdSzyZhReportServiceImpl implements GdSzyZhReportService { Node testCategNameNode = xmlUtil.getNode("/Response/MsgInfo/Msg/ReportInfo[" + i + "]/TEST_CATEG_NAME"); Node sampleTypeCodeNode = xmlUtil.getNode("/Response/MsgInfo/Msg/ReportInfo[" + i + "]/SAMPLE_TYPE_CODE"); Node reportApprovalDatetimeNode = xmlUtil.getNode("/Response/MsgInfo/Msg/ReportInfo[" + i + "]/REPORT_APPROVAL_DATETIME"); + Node applyDatetimeNode = xmlUtil.getNode("/Response/MsgInfo/Msg/ReportInfo[" + i + "]/APPLY_DATETIME"); + String reportTime = reportApprovalDatetimeNode.getTextContent(); + if(Func.isBlank(reportTime)){ + reportTime = applyDatetimeNode.getTextContent(); + } + GdSzyZhReportListDto.Report report = new GdSzyZhReportListDto.Report(); report.setReportNo(sampleNoNode.getTextContent()); report.setReporPath(reportPdfUrlNode.getTextContent()); report.setReportClass(sampleTypeCodeNode.getTextContent()); report.setReportTitle(testCategNameNode.getTextContent()); - report.setReportTime(Func.parseDate(reportApprovalDatetimeNode.getTextContent(), "yyyy-MM-dd HH:mm:ss")); + if (Func.isNotBlank(reportTime)) { + report.setReportTime(Func.parseDate(reportTime, "yyyy-MM-dd HH:mm:ss")); + } + reportList.add(report); } GdSzyZhReportListDto dto = new GdSzyZhReportListDto();