From d63647980440eae154b96b286423b7881350cf06 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Thu, 13 Nov 2025 17:08:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A2=85=E5=B7=9E=E4=B8=89=E9=99=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E9=9B=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/mzsy/job/MzsyReportCollectJob.java | 74 ++++++++++++++++--- .../mzsy/mapper/MzsyReportDataViewMapper.java | 12 +++ .../mapper/MzsyReportDataViewMapper.xml | 23 +++++- 3 files changed, 98 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/docus/server/mzsy/job/MzsyReportCollectJob.java b/src/main/java/com/docus/server/mzsy/job/MzsyReportCollectJob.java index d187c36..f868db5 100644 --- a/src/main/java/com/docus/server/mzsy/job/MzsyReportCollectJob.java +++ b/src/main/java/com/docus/server/mzsy/job/MzsyReportCollectJob.java @@ -5,6 +5,7 @@ import com.docus.core.util.Func; import com.docus.infrastructure.core.utils.TableJsonRead; import com.docus.infrastructure.web.api.CommonResult; import com.docus.infrastructure.web.api.ResultCode; +import com.docus.server.archive.entity.TBasic; import com.docus.server.archive.mapper.TBasicMapper; import com.docus.server.mzsy.entity.MzsyMectReportView; import com.docus.server.mzsy.entity.MzsyReportDataView; @@ -13,15 +14,26 @@ import com.docus.server.mzsy.mapper.MzsyReportDataViewMapper; import com.docus.server.mzsy.mapper.MzsyShoumaReportDataViewMapper; import com.docus.server.rpc.DownPlatformService; import com.docus.server.rpc.TaskDistributeService; -import com.docus.server.rpc.dto.*; +import com.docus.server.rpc.dto.ReportDownDto; +import com.docus.server.rpc.dto.ReportDownPatientDto; +import com.docus.server.rpc.dto.ReportDownScanFileDto; +import com.docus.server.rpc.dto.ReportDownTwoDto; +import com.docus.server.rpc.dto.ReportHospitalTwoDto; +import com.docus.server.rpc.dto.ReportPatientTwoDto; +import com.docus.server.rpc.dto.ReportTaskTwoDto; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * @author YongBin Wen @@ -64,8 +76,32 @@ public class MzsyReportCollectJob { ReportHospitalTwoDto hospitalTwoDto = downTwoDto.getHospitals().get(0); ReportPatientTwoDto reportPatientTwoDto = downTwoDto.getPatient(); String jzh = downTwoDto.getJzh(); + String patientId = downTwoDto.getPatientId(); + List basicList = tBasicMapper.getTbasicByPatientIds(Collections.singletonList(patientId)); + TBasic tBasic = basicList.get(0); + + List mzsyReportDataViewList = new ArrayList<>(); + List mzsyReportDataViewListByJzh = reportDataViewMapper.findByPatJzhAndOtherCondition(jzh, extraCondition); + List mzsyReportDataViewListByInpatNoTime = reportDataViewMapper.findByPatNoTimeAndOtherCondition(tBasic.getInpatientNo(), Func.formatDateTime(tBasic.getAdmissDate()), Func.formatDateTime(tBasic.getDisDate()), extraCondition); + Map fileIdDistinct = new HashMap<>(); + + for (MzsyReportDataView mzsyReportDataView : mzsyReportDataViewListByJzh) { + mzsyReportDataViewList.add(mzsyReportDataView); + fileIdDistinct.put(mzsyReportDataView.getFfileId(), "0"); + } + for (MzsyReportDataView mzsyReportDataView : mzsyReportDataViewListByInpatNoTime) { + if (fileIdDistinct.containsKey(mzsyReportDataView.getFfileId())) { + continue; + } + mzsyReportDataViewList.add(mzsyReportDataView); + fileIdDistinct.put(mzsyReportDataView.getFfileId(), "0"); + } + mzsyReportDataViewList = mzsyReportDataViewList.stream() + .sorted(Comparator.comparing(MzsyReportDataView::getFpatModule) + .thenComparing(MzsyReportDataView::getFfileTime)) + .collect(Collectors.toList()); + - List mzsyReportDataViewList = reportDataViewMapper.findByPatJzhAndOtherCondition(jzh, extraCondition); int size = mzsyReportDataViewList.size(); log.info("住院号:{},住院次数:{},记账号:{} 采集视图数据:{} 条!数据:{}", reportPatientTwoDto.getInpatientNo(), hospitalTwoDto.getAdmissTimes(), jzh, size, Func.toJson(mzsyReportDataViewList)); if (size <= 0) { @@ -75,14 +111,14 @@ public class MzsyReportCollectJob { JSONObject moduleAlisConfig = tableJsonRead.Read("data-config", "mzsy-module-alis", JSONObject.class); ReportDownPatientDto patient = new ReportDownPatientDto(); - patient.setPatientid(downTwoDto.getPatientId()); + patient.setPatientid(patientId); ReportDownDto reportDownDto = new ReportDownDto(); reportDownDto.setCollectorid(collectorId); reportDownDto.setIp(""); reportDownDto.setPatient(patient); int sort = 0; - tBasicMapper.invalidFileBySource(downTwoDto.getPatientId(),collectorId); + tBasicMapper.invalidFileBySource(patientId, collectorId); for (MzsyReportDataView mzsyReportDataView : mzsyReportDataViewList) { ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto(); reportDownScanFileDto.setDownurl(mzsyReportDataView.getFfilePath()); @@ -154,7 +190,7 @@ public class MzsyReportCollectJob { reportDownDto.setIp(""); reportDownDto.setPatient(patient); int sort = 0; - tBasicMapper.invalidFileBySource(downTwoDto.getPatientId(),collectorId); + tBasicMapper.invalidFileBySource(downTwoDto.getPatientId(), collectorId); for (MzsyShoumaReportDataView mzsyShouMaReportDataView : shoumaReportDataViewList) { ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto(); reportDownScanFileDto.setDownurl(mzsyShouMaReportDataView.getFilePath()); @@ -217,7 +253,7 @@ public class MzsyReportCollectJob { reportDownDto.setIp(""); reportDownDto.setPatient(patient); int sort = 0; - tBasicMapper.invalidFileBySource(downTwoDto.getPatientId(),collectorId); + tBasicMapper.invalidFileBySource(downTwoDto.getPatientId(), collectorId); for (MzsyMectReportView mzsyMectReportView : mzsyMectReportViews) { ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto(); reportDownScanFileDto.setDownurl(mzsyMectReportView.getPdfReportPath()); @@ -243,8 +279,28 @@ public class MzsyReportCollectJob { public static void main(String[] args) { - TableJsonRead tableJsonRead = new TableJsonRead(); - JSONObject moduleAlisConfig = tableJsonRead.Read("data-config", "mzsy-module-alis", JSONObject.class); - System.out.println(moduleAlisConfig); + MzsyReportDataView mzsyReportDataView1 = new MzsyReportDataView(); + mzsyReportDataView1.setFfileTime(Func.parseDate("2025-11-13 01:01:02","yyyy-MM-dd HH:mm:ss")); + mzsyReportDataView1.setFpatModule("ct"); + MzsyReportDataView mzsyReportDataView2 = new MzsyReportDataView(); + mzsyReportDataView2.setFfileTime(Func.parseDate("2025-11-13 05:01:02","yyyy-MM-dd HH:mm:ss")); + mzsyReportDataView2.setFpatModule("ecg"); + MzsyReportDataView mzsyReportDataView3 = new MzsyReportDataView(); + mzsyReportDataView3.setFfileTime(Func.parseDate("2025-11-13 04:01:02","yyyy-MM-dd HH:mm:ss")); + mzsyReportDataView3.setFpatModule("ecg"); + MzsyReportDataView mzsyReportDataView4 = new MzsyReportDataView(); + mzsyReportDataView4.setFfileTime(Func.parseDate("2025-11-12 04:01:02","yyyy-MM-dd HH:mm:ss")); + mzsyReportDataView4.setFpatModule("ct"); + List mzsyReportDataViewList = new ArrayList<>(); + mzsyReportDataViewList.add(mzsyReportDataView1); + mzsyReportDataViewList.add(mzsyReportDataView2); + mzsyReportDataViewList.add(mzsyReportDataView3); + mzsyReportDataViewList.add(mzsyReportDataView4); + System.out.println("排序前:"+Func.toJson(mzsyReportDataViewList)); + mzsyReportDataViewList = mzsyReportDataViewList.stream() + .sorted(Comparator.comparing(MzsyReportDataView::getFpatModule) + .thenComparing(MzsyReportDataView::getFfileTime)) + .collect(Collectors.toList()); + System.out.println("排序后:"+Func.toJson(mzsyReportDataViewList)); } } diff --git a/src/main/java/com/docus/server/mzsy/mapper/MzsyReportDataViewMapper.java b/src/main/java/com/docus/server/mzsy/mapper/MzsyReportDataViewMapper.java index 497716d..68b00f7 100644 --- a/src/main/java/com/docus/server/mzsy/mapper/MzsyReportDataViewMapper.java +++ b/src/main/java/com/docus/server/mzsy/mapper/MzsyReportDataViewMapper.java @@ -33,4 +33,16 @@ public interface MzsyReportDataViewMapper { * @return 视图数据 */ List findByPatIdAndOtherCondition(@Param("patId") String patId, @Param("ext") String extCondition); + + /** + * 根据患者住院号和住院时间和额外条件查询视图数据 + * + * @param inpatientNo 病案号 + * @param extCondition 额外条件 + * @param admissDate 入院时间 + * @param disDate 出院时间 + * @return 视图数据 + */ + List findByPatNoTimeAndOtherCondition(@Param("inpatientNo") String inpatientNo, @Param("admissDate") String admissDate, @Param("disDate") String disDate, @Param("ext") String extCondition); + } diff --git a/src/main/resources/mapper/MzsyReportDataViewMapper.xml b/src/main/resources/mapper/MzsyReportDataViewMapper.xml index 5371d5e..dc51db3 100644 --- a/src/main/resources/mapper/MzsyReportDataViewMapper.xml +++ b/src/main/resources/mapper/MzsyReportDataViewMapper.xml @@ -18,11 +18,11 @@ FPAT_MODULE AS fpatModule, UPDATE_TIME AS updateTime from dbo.V_REPORT_DATA - where FPAT_JZH=#{jzh} + where FPAT_JZH = #{jzh} ${ext} - order by FPAT_MODULE asc,FFILE_AF_TIME asc,FFILE_TIME asc + +