| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | 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 { |
| | | scheduleNextTask(Long.parseLong(dsrwsjjg)); |
| | | 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) { |