From 9017efdeaa64c6d5f0fd0bae4c9f28dcfcf53220 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 09 一月 2025 14:49:51 +0800 Subject: [PATCH] zjh20250109 --- ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java | 185 +++++++++++++++++++++++++++------------------- 1 files changed, 108 insertions(+), 77 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java index 6a6e5cc..59a0f39 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java @@ -1,9 +1,7 @@ package com.ltkj.web.config.timer; import com.ltkj.framework.datasource.DynamicDataSourceContextHolder; -import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.mapper.TestMapper; -import com.ltkj.hosp.mapper.TjOrderMapper; import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.LtkjExamJcbgd; import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd; @@ -12,11 +10,14 @@ import com.ltkj.system.service.ISysConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.text.SimpleDateFormat; +import java.time.LocalTime; +import java.time.ZonedDateTime; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -34,6 +35,7 @@ */ @Slf4j @Component +@Profile("!dev") public class DefaultScheduled { @@ -51,6 +53,9 @@ private LtkjHysqdService ltkjHysqdService; @Resource private TestMapper testMapper; + @Resource + private TjAsyncService asyncService; + private final ReentrantLock reentrantLock = new ReentrantLock(); @@ -77,92 +82,118 @@ } private void exec() { - log.info("浠诲姟寮�濮嬫墽琛屾椂闂� -> {}", dateTimeFormat.format(new Date())); + String dsqkssj = configService.selectConfigByKey("dsqkssj"); + String dsqjssj = configService.selectConfigByKey("dsqjssj"); + boolean panduandangqianshijian = panduandangqianshijian(dsqkssj, dsqjssj); + log.info("褰撳墠鏃堕棿鏄惁鍦� " + dsqkssj + " 鐐瑰埌 " + dsqjssj + " 鐐逛箣闂�: " + panduandangqianshijian); + String dsrwsjjg = configService.selectConfigByKey("dsrwsjjg"); + boolean lock = reentrantLock.tryLock(); + try { + if (!panduandangqianshijian) { + if (lock) { + log.info("浠诲姟寮�濮嬫墽琛屾椂闂� -> {}", dateTimeFormat.format(new Date())); + long start = System.currentTimeMillis(); + // 鏌ヨ浠诲姟鏁版嵁 + log.info("寮�濮嬫墽琛屽悓姝� 鎵ц鏁伴噺->{}", 0); + List<String> jy = orderService.getDingShiTongBuJianYanTjNum(); - String dsrwsjjg = configService.selectConfigByKey("dsrwsjjg"); + List<String> jc = orderService.getDingShiTongBuJianChaTjNum(); - boolean lock = reentrantLock.tryLock(); + + if (null != jy && !jy.isEmpty()) { + log.info("鍚屾妫�楠屼汉鍛� 鎵ц鏁伴噺->{}", jy.size()); + for (String s : jy) { +// TjOrder order = orderService.getOrderByTjNum(s); + extractedjianyan(s); + } + } + + + if (null != jc && !jc.isEmpty()) { + log.info("鍚屾妫�鏌ヤ汉鍛� 鎵ц鏁伴噺->{}", jc.size()); + for (String s : jc) { +// TjOrder order = orderService.getOrderByTjNum(s); + extractedjiancha(s); + } + } + Map<String, Object> map = new HashMap<>(); + testMapper.tjplUpdateDetatilByVi(map); + Integer object = (Integer) map.get("total"); + log.info("鎵ц瀛樺偍杩囩▼鍚庡嚭鍙�->{}", object); + if (null != object && object.equals(1)) { + long end = System.currentTimeMillis(); + log.info("鍚屾缁撴潫 鑰楁椂锛歿}绉�", (end - start) / 1000); + // 鍔ㄦ�佽幏鍙栦笅娆′换鍔$殑闂撮殧 + int minute = Integer.parseInt(dsrwsjjg); + if (minute < 5) minute = 5; + if (minute > 59) minute = 59; + scheduleNextTask(minute); + }else { + log.info("鎵ц瀛樺偍杩囩▼鍑哄弬澶辫触"); + scheduleNextTask(Long.parseLong(dsrwsjjg)); + } + } + }else { + log.info("涓嶅湪瀹氭椂鍣ㄦ墽琛屾椂闂磋寖鍥翠箣鍐�!!!"); + scheduleNextTask(Long.parseLong(dsrwsjjg)); + } + } catch (Exception e) { + scheduleNextTask(Long.parseLong(dsrwsjjg)); + log.error("瀹氭椂鍣ㄦ墽琛屾姤閿�"); + e.printStackTrace(); + } finally { + reentrantLock.unlock(); + } + + } + + private boolean panduandangqianshijian(String kssj, String jssj) { + ZonedDateTime now = ZonedDateTime.now(); + LocalTime time = now.toLocalTime(); + return time.isAfter(LocalTime.of(Integer.parseInt(kssj), 0)) && time.isBefore(LocalTime.of(Integer.parseInt(jssj), 0)); + } + + private void extractedjianyan(String s) { try { - if (lock) { - long start = System.currentTimeMillis(); - // 鏌ヨ浠诲姟鏁版嵁 - log.info("寮�濮嬫墽琛屽悓姝� 鎵ц鏁伴噺->{}", 0); - List<String> jy= orderService.getDingShiTongBuJianYanTjNum(); - - List<String> jc = orderService.getDingShiTongBuJianChaTjNum(); - - if(null !=jy && !jy.isEmpty()){ - for (String s : jy) { - TjOrder order = orderService.getOrderByTjNum(s); - extractedjianyan(s,order); + List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(s); + if (null != hysqdList && !hysqdList.isEmpty()) { + for (LtkjHysqd hysqd : hysqdList) { + LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh()); + if (null != jybgid) { + ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh()); + ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh()); + } + if (ltkjHysqdService.save(hysqd)) { + List<LtkjHybgd> hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh()); + ltkjHybgdService.saveBatch(hybgdList); } } - - if(null !=jc && !jc.isEmpty()){ - for (String s : jc) { - TjOrder order = orderService.getOrderByTjNum(s); - extractedjiancha(s,order); - } - } - - long end = System.currentTimeMillis(); - log.info("鍚屾缁撴潫 鑰楁椂锛歿}绉�", (end - start) / 1000); - // 鍔ㄦ�佽幏鍙栦笅娆′换鍔$殑闂撮殧 - int minute = Integer.parseInt(dsrwsjjg); - if (minute < 5) minute = 5; - if (minute > 59) minute = 59; - scheduleNextTask(minute); + DynamicDataSourceContextHolder.clearDataSourceType(); } } catch (Exception e) { - e.printStackTrace(); - } finally { - reentrantLock.unlock(); + log.info("鍚屾妫�楠屾暟鎹け璐�"); + throw new RuntimeException(e); } } - private void extractedjianyan(String s,TjOrder order) { - List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber()); - if(null != hysqdList && !hysqdList.isEmpty()){ - for (LtkjHysqd hysqd : hysqdList) { - LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh()); - if (null != jybgid) { - ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh()); - ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh()); - } - if (ltkjHysqdService.save(hysqd)) { - List<LtkjHybgd> hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh()); - ltkjHybgdService.saveBatch(hybgdList); - } + + private void extractedjiancha(String s) { + + try { + List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(s); + if (null != jcsqdList && !jcsqdList.isEmpty()) { + DynamicDataSourceContextHolder.clearDataSourceType(); + jcsqdService.deletedLtkjJcsqdByTjhAndTmh(s); + jcbgdService.deletedLtkjJcbgdByTjhAndTmh(s); + jcsqdService.saveBatch(jcsqdList); + List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(s); + DynamicDataSourceContextHolder.clearDataSourceType(); + if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList); + DynamicDataSourceContextHolder.clearDataSourceType(); } - DynamicDataSourceContextHolder.clearDataSourceType(); + } catch (Exception e) { + log.info("鍚屾妫�鏌ユ暟鎹け璐�"); + throw new RuntimeException(e); } -// String tjNumber1 = order.getTjNumber(); -// log.info("鏌ヨ鍑烘潵鐨勪綋妫�鍙锋槸: " + tjNumber1); -// log.info("浼犺繃鏉ョ殑鐨勪綋妫�鍙锋槸: "+ s); - Map<String,Object> map=new HashMap<>(); - map.put("tjnum", s); - testMapper.tjUpdateDetatilByVi(map); - log.info("瀹氭椂浠诲姟瀛樺偍杩囩▼宸叉墽琛�!!!"); - } - - - private void extractedjiancha(String s,TjOrder order) { - - List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber()); - if(null !=jcsqdList && !jcsqdList.isEmpty()){ - jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); - jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); - jcsqdService.saveBatch(jcsqdList); - List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId()); - if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList); - DynamicDataSourceContextHolder.clearDataSourceType(); - } -// String tjNumber1 = order.getTjNumber(); -// log.info("鏌ヨ鍑烘潵鐨勪綋妫�鍙锋槸: " + tjNumber1); -// log.info("浼犺繃鏉ョ殑鐨勪綋妫�鍙锋槸: "+ s); - Map<String,Object> map=new HashMap<>(); - map.put("tjnum", s); - testMapper.tjUpdateDetatilByVi(map); - log.info("瀹氭椂浠诲姟瀛樺偍杩囩▼宸叉墽琛�!!!"); } } -- Gitblit v1.8.0