From fd8a7c0f0118ad150c4ed7ef1a205048e62c6e3a Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Tue, 8 Oct 2024 10:35:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0job=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=A4=9A=E6=9D=A1=E4=B8=8D=E5=8C=B9=E9=85=8D=EF=BC=88?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=90=8E=E5=85=A5=E9=99=A2=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E6=95=B0=E6=8D=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/archive/mapper/TBasicMapper.java | 2 + .../server/ydzyy/job/PacsCollectJob.java | 45 ++++++++++++++++++- src/main/resources/mapper/TBasicMapper.xml | 19 ++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java b/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java index 40e12e1..20b6a6f 100644 --- a/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java @@ -39,4 +39,6 @@ public interface TBasicMapper { int mergeYzyFile(@Param("yzhPatientId") String yzhPatientId, @Param("zyPatientId") String zyPatientId); List getYzyPatientIdFromScanAssort(); + + List getNoTaskPatientByDisDate(@Param("startDateTime") String startDateTime,@Param("collectorId") String collectorId); } diff --git a/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java b/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java index 217d8a8..3302f36 100644 --- a/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java +++ b/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java @@ -16,6 +16,7 @@ import com.docus.server.util.TableJsonRead; import com.docus.server.ydzyy.dto.YdZyyPacsViewCondition; import com.docus.server.ydzyy.entity.YdZyyPacsView; import com.docus.server.ydzyy.mapper.YdZyyPacsViewMapper; +import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -52,6 +53,32 @@ public class PacsCollectJob { private YdZyyPacsService ydZyyPacsService; + @XxlJob("Ydzyy-CollectPacsByDisDateNotCollected") + public void collectPacsByDisDateNotCollected(){ + String collectorId = "3"; + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,开始任务!"); + int days; + try { + String daysStr = XxlJobHelper.getJobParam(); + days=Integer.parseInt(daysStr); + }catch (Exception ex){ + days=31; + } + LocalDate startDate = LocalDate.now().plusDays(-days); + String startDateTime = startDate.toString()+" 00:00:00"; + + try { + List basicList = tBasicMapper.getNoTaskPatientByDisDate(startDateTime,collectorId); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间:{} 采集未采集的患者,{} 个",startDateTime,basicList.size()); + for (TBasic basic : basicList) { + collectPacs(basic); + } + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,任务结束!"); + }catch (Exception ex){ + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,任务异常!"+ex.getMessage(),ex); + } + } + @XxlJob("Ydzyy-CollectPacsByModifyTime") public void collectPacsByModifyTime() { LocalDateTime jobRunTime = LocalDateTime.now(); @@ -95,9 +122,25 @@ public class PacsCollectJob { log.warn(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集job,pacs视图数据,未匹配到患者基础数据,请检查!数据:{}", JSON.toJSONString(ydZyyPacsView)); continue; } + // 如果有住院号,住院号一定要匹配,并且根据住院日期倒序取第一个(最大的出院日期) + tBasicListByPacsCondition = tBasicListByPacsCondition.stream() + .filter(p -> { + if (Func.isNotBlank(inpatientNo)) { + return inpatientNo.equalsIgnoreCase(p.getInpatientNo()); + } + return true; + }) + .collect(Collectors.toList()); + if (Func.isEmpty(tBasicListByPacsCondition)) { + log.warn(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集job,pacs视图数据,未匹配到患者基础数据,请检查!数据:{}", JSON.toJSONString(ydZyyPacsView)); + continue; + } + if (tBasicListByPacsCondition.size() > 1) { log.warn(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集job,pacs视图数据,匹配到多个患者基础数据,请检查!数据:{}", JSON.toJSONString(ydZyyPacsView)); - return; + tBasicListByPacsCondition = tBasicListByPacsCondition.stream() + .sorted(Comparator.comparing(TBasic::getAdmissDate).reversed()) + .collect(Collectors.toList()); } TBasic basic = tBasicListByPacsCondition.get(0); String patientId = basic.getPatientId(); diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 9b3e04d..0cc9e92 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -97,5 +97,24 @@ ) ) +