From 3de32b4d7d49e57a6733172d9cdc259342d41907 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Tue, 29 Apr 2025 09:18:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B9=BF=E5=B7=9E=E5=B8=82=E4=B8=80?= =?UTF-8?q?=E6=A3=80=E9=AA=8C=E6=8A=A5=E5=91=8A=E5=90=8C=E6=AD=A5job?= =?UTF-8?q?=E8=BF=91=E6=9C=9F=EF=BC=9B=E4=BC=98=E5=8C=96=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/job/GzFirstLabReportSyncJob.java | 56 ++++++++++++++++--- .../resources/mapper/mysql/BasicMapper.xml | 36 ++++++------ 2 files changed, 66 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/docus/demo/job/GzFirstLabReportSyncJob.java b/src/main/java/com/docus/demo/job/GzFirstLabReportSyncJob.java index bbe12fa..e9d24b9 100644 --- a/src/main/java/com/docus/demo/job/GzFirstLabReportSyncJob.java +++ b/src/main/java/com/docus/demo/job/GzFirstLabReportSyncJob.java @@ -28,20 +28,21 @@ public class GzFirstLabReportSyncJob { @Resource private BasicMapper basicMapper; - private AtomicBoolean isRunning = new AtomicBoolean(false); + private AtomicBoolean isAllRunning = new AtomicBoolean(false); + private AtomicBoolean isThreeRunning = new AtomicBoolean(false); - @Scheduled(cron = "0 0 3/12 * * ?") - public void syncLabReport() { + @Scheduled(cron = "0 0 3 1 * ?") + public void syncAllLabReport() { LocalDate today = LocalDate.now(); String startDisDateTime = "2018-01-01 00:00:00"; String startDateTime = "2018-01-01 00:00:00"; String endDateTime = today + " 23:59:59"; - if (isRunning.compareAndSet(false, true)) { + if (isAllRunning.compareAndSet(false, true)) { try { int offset = 0; int limit = 1000; while (true) { - log.info("广州市第一人民医院,同步已扫描患者检验报告,患者参数查询,startDisDateTime={},offset={},limit={}", startDisDateTime, offset, limit); + log.info("广州市第一人民医院,同步全部已扫描患者检验报告,患者参数查询,startDisDateTime={},offset={},limit={}", startDisDateTime, offset, limit); List tbasicList = basicMapper.getLabSyncBasicList(startDisDateTime, offset, limit); if (CollUtil.isEmpty(tbasicList)) { break; @@ -51,16 +52,53 @@ public class GzFirstLabReportSyncJob { } offset = offset + limit; } - log.info("广州市第一人民医院,同步已扫描患者检验报告,同步完成!"); + log.info("广州市第一人民医院,同步全部已扫描患者检验报告,同步完成!"); } catch (Exception ex) { - log.info("广州市第一人民医院,同步已扫描患者检验报告,出现异常:" + ex.getMessage(), ex); + log.info("广州市第一人民医院,同步全部已扫描患者检验报告,出现异常:" + ex.getMessage(), ex); } finally { - isRunning.set(false); + isAllRunning.set(false); } } else { - log.warn("广州市第一人民医院,同步已扫描患者检验报告正在调度!"); + log.warn("广州市第一人民医院,同步全部已扫描患者检验报告正在调度!"); } } + + + @Scheduled(cron = "0 0,30 * * * ?") + public void syncThreeMonthLabReport() { + LocalDate today = LocalDate.now(); + String startDisDateTime = today.minusMonths(3)+" 00:00:00"; + String startDateTime = "2018-01-01 00:00:00"; + String endDateTime = today + " 23:59:59"; + if (isThreeRunning.compareAndSet(false, true)) { + try { + int offset = 0; + int limit = 1000; + while (true) { + log.info("广州市第一人民医院,同步部分已扫描患者检验报告,患者参数查询,startDisDateTime={},offset={},limit={}", startDisDateTime, offset, limit); + List tbasicList = basicMapper.getLabSyncBasicList(startDisDateTime, offset, limit); + if (CollUtil.isEmpty(tbasicList)) { + break; + } + for (Tbasic tbasic : tbasicList) { + iWebService.syncInspection(tbasic, startDateTime, endDateTime); + } + offset = offset + limit; + } + log.info("广州市第一人民医院,同步部分已扫描患者检验报告,同步完成!"); + } catch (Exception ex) { + log.info("广州市第一人民医院,同步部分已扫描患者检验报告,出现异常:" + ex.getMessage(), ex); + } finally { + isThreeRunning.set(false); + } + } else { + log.warn("广州市第一人民医院,同步部分已扫描患者检验报告正在调度!"); + } + + } + + + } diff --git a/src/main/resources/mapper/mysql/BasicMapper.xml b/src/main/resources/mapper/mysql/BasicMapper.xml index 9124927..6d86f65 100644 --- a/src/main/resources/mapper/mysql/BasicMapper.xml +++ b/src/main/resources/mapper/mysql/BasicMapper.xml @@ -199,23 +199,25 @@