zjh
2024-12-19 53f4d74399565f76c94646b704a33f2c53808232
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;
@@ -18,6 +16,8 @@
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;
@@ -82,13 +82,16 @@
    }
    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);
@@ -125,15 +128,29 @@
                    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) {