cy
2022-11-22 db14f311bfa3daba9e43fcad895048cbe2576c04
fix(quartz): 调整定时任务判断逻辑
5个文件已修改
476 ■■■■ 已修改文件
src/main/java/com/integrated/zyyt/ZyytQuartz.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/integrated/zyyt/service/ZyytService.java 234 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/integrated/zyyt/util/ZyytUtil.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/integrated/zyyt/ZyytQuartz.java
@@ -1,7 +1,7 @@
package com.integrated.zyyt;
import cn.hutool.core.convert.Convert;
import com.integrated.zyyt.service.ZyytService;
import com.integrated.zyyt.util.ZyytUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -10,7 +10,6 @@
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Map;
/**
 * @ClassName ZyytQuartz
@@ -31,7 +30,7 @@
    @Scheduled(cron = "0 0/30 * * * ?")
    private void stationInfoTask() {
        LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS);
        if (canGetAgain("STATIONINFO", yestDay)) {
        if (ZyytUtil.canGetAgain("STATIONINFO", yestDay)) {
            log.info("执行stationInfoTask--{}", yestDay);
            zyytService.stationInfoTasks();
        } else {
@@ -43,7 +42,7 @@
    @Scheduled(cron = "0 3/30  * * * ?")
    private void shkdrbTasks() {
        LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS);
        if (canGetAgain("YYZT_T_SHKDRB", yestDay)) {
        if (ZyytUtil.canGetAgain("YYZT_T_SHKDRB", yestDay)) {
            log.info("执行shkdrbTasks--{}", yestDay);
            zyytService.shkdrbTasks(yestDay);
        } else {
@@ -51,55 +50,14 @@
        }
    }
    @Scheduled(cron = "0 5/30 * * * ?")
    @Scheduled(cron = "0 7/30 * * * ?")
    private void djtjbTasks() {
        LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS);
        if (!canGetAgain("YYZT_T_DJTJB", yestDay)) {
        if (!ZyytUtil.canGetAgain("YYZT_T_DJTJB", yestDay)) {
            log.info("放弃执行djtjbTasks--{}", yestDay);
        }
        log.info("执行djtjbTasks--{}", yestDay);
        zyytService.djtjbTasks(yestDay);
    }
    /**
     * 判断指定日期是否需要重新执行
     *
     * @param tableName
     * @param date
     * @return true 需要执行,false 不需要
     */
    private boolean canGetAgain(String tableName, LocalDate date) {
        String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + ZyytConstant.batchNoPrefix + date + "'  AND TABLE_NAME='" + tableName + "' ORDER BY START_TIME DESC) tmp WHERE ROWNUM<=1";
        Map<String, Object> map = null;
        try {
            map = jdbcTemplate.queryForMap(sql);
        } catch (Exception e) {
            log.info("sql=={}没有查询到数据", sql);
        }
        if (map != null) {
            String isFinish = Convert.toStr(map.get("IS_FINISH"));
            if (!"1".equals(isFinish)) {
                return false;
            }
            //下面 isFinish都是1
            String isError = Convert.toStr(map.get("IS_ERROR"));
            if ("1".equals(isError)) {
                // 执行有误
                return true;
            }
            // 成功执行没有错
            String countNum = Convert.toStr(map.get("COUNT_NUM"));
            if ("0".equals(countNum)) {
                //没有拉取到数据
                log.info("stationInfoTask");
                return true;
            }
        } else {
            // 该批次未执行
            log.info("stationInfoTask");
            return true;
        }
        return false;
    }
}
src/main/java/com/integrated/zyyt/service/ZyytService.java
@@ -1,18 +1,11 @@
package com.integrated.zyyt.service;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.integrated.zyyt.ZyytConstant;
import com.integrated.zyyt.enetity.StationInfo;
import com.integrated.zyyt.enetity.YyztTDjtjb;
import com.integrated.zyyt.enetity.YyztTShkdrb;
import com.integrated.zyyt.enetity.ZyytDataResult;
import com.integrated.zyyt.enetity.business.Zyyt;
import com.integrated.zyyt.enetity.business.ZyytStationInfo;
import com.integrated.zyyt.enetity.business.ZyytTDjtjb;
import com.integrated.zyyt.enetity.business.ZyytTShkdrb;
import com.integrated.zyyt.util.ZyytUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
@@ -29,43 +22,25 @@
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ZyytService {
//    @Resource
//    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    @Resource
    private JdbcTemplate jdbcTemplate;
    //    private Integer getBatchIsFinish(String batchNo) {
//        String querySql = "select IS_FINISH from ZYYT_RECORD where BATCH_NO = '" + batchNo+"'";
//        return jdbcTemplate.queryForObject(querySql, Integer.class);
//    }
    //站点信息表
    public void stationInfoTasks() {
        log.info("开始进行 机构同步");
        LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS);
        String batchNo = ZyytUtil.getBatchNo(yestDay);
        if (!canGetAgain("STATIONINFO", yestDay)) {
        if (ZyytUtil.isRunning("STATIONINFO", yestDay)) {
            log.info("批次{}正在运行", batchNo);
            return;
        }
        JSONObject queryParams = new JSONObject();
        Zyyt<StationInfo> stationInfoService = new ZyytStationInfo(
                ZyytConstant.URL_AUTHON,
                ZyytConstant.URL_STATIONINFO_QUERY,
                false,
                ZyytConstant.CLIENT_STATIONINFO,
                ZyytConstant.SECRET_STATIONINFO,
                ZyytConstant.X_EOS_SOURCESYSKEY_STATIONINFO,
                queryParams
        );
        Zyyt<StationInfo> stationInfoService = ZyytUtil.getBusinessEntity("STATIONINFO", yestDay);
        String exeSql = "merge into STATIONINFO A USING" +
                " (select ? V_JGBH  from dual ) C " +
                "ON(A.V_JGBH=C.V_JGBH) " +
@@ -86,17 +61,11 @@
        try {
            // 查询总数
            ZyytDataResult<StationInfo> zyytDataResult = stationInfoService.getData(pageNum, 1);
            Long totalElements = zyytDataResult.getTotalElements();
            Long totalPages = 0L;
            totalPages = totalElements / pageSize;
            if (totalElements % pageSize != 0) {
                totalPages++;
            }
            log.info("共{}页,{}条数据", totalPages, totalElements);
            Long totalElements = ZyytUtil.getApiTotalElements("STATIONINFO", yestDay);
            Long totalPages = ZyytUtil.calcPages(totalElements, pageSize);
            log.info("共{}条数据,每页{}条,可分{}页,", totalElements, pageSize, totalPages);
            for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) {
                zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                ZyytDataResult<StationInfo> zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                List<StationInfo> stationInfoList = zyytDataResult.getContent();
                log.info("第{}次获取,本次获取到{}条数据", pageNum + 1, zyytDataResult.getContentSize());
@@ -205,7 +174,7 @@
            return;
        }
        stationInfoService.updateRecord(recordId, 0, totalSize, null);
        log.info("···········中邮易通 站点信息 任务执行完毕···········");
        log.info("···········中邮易通 {}站点信息 任务执行完毕···········", yestDay);
    }
@@ -217,12 +186,7 @@
    public void shkdrbTasks(LocalDate date) {
        log.info("开始进行 社会快递日报表");
        String batchNo = ZyytUtil.getBatchNo(date);
//        Integer batchIsFinish = getBatchIsFinish(batchNo);
//        if (batchIsFinish != null && batchIsFinish == 0) {
//            log.info("批次{}正在运行", batchNo);
//            return;
//        }
        if (!canGetAgain("YYZT_T_SHKDRB", date)) {
        if (ZyytUtil.isRunning("YYZT_T_SHKDRB", date)) {
            log.info("YYZT_T_SHKDRB 的 批次{}正在运行", batchNo);
            return;
        }
@@ -231,34 +195,7 @@
        String delSql = "delete from YYZT_T_SHKDRB where BATCH_NO='" + batchNo + "'";
        jdbcTemplate.update(delSql);
        // 设置请求参数
        JSONObject queryParams = new JSONObject();
        JSONObject criteria = new JSONObject();
        criteria.put("match", "and");
        JSONArray matchChildren = new JSONArray();
        JSONObject children1 = new JSONObject();
        children1.put("name", "dRbrq");
        JSONArray child1C = new JSONArray();
        child1C.add(date + " 00:00:00");
        children1.put("value", child1C);
        children1.put("match", "eq");
        matchChildren.add(children1);
        criteria.put("children", matchChildren);
        queryParams.put("criteria", criteria);
        Zyyt<YyztTShkdrb> stationInfoService = new ZyytTShkdrb(
                ZyytConstant.URL_AUTHON,
                ZyytConstant.URL_SHKDRB_QUERY,
                false,
                ZyytConstant.CLIENT_SHKDRB,
                ZyytConstant.SECRET_SHKDRB,
                ZyytConstant.X_EOS_SOURCESYSKEY_SHKDRB,
                queryParams
        );
        Zyyt<YyztTShkdrb> stationInfoService = ZyytUtil.getBusinessEntity("YYZT_T_SHKDRB", date);
        Long recordId = stationInfoService.insertRecord("YYZT_T_SHKDRB", batchNo);
        Long totalSize = 0L;
@@ -271,17 +208,12 @@
            String batchInsertSql = "INSERT INTO YYZT_T_SHKDRB (\"V_SFDM\",\"V_SFMC\",\"V_DSDM\",\"V_DSMC\",\"V_QXDM\",\"V_XSMC\",\"V_TDJGBH\",\"V_TDJGMC\",\"V_JGBH\",\"V_JGMC\",\"D_RBRQ\",\"N_ZGYZLJS\",\"N_ZGYZQJS\",\"N_SHKDLJS\",\"N_SHKDQJS\",\"N_ZTLJS\",\"N_ZTQJS\",\"N_YTLJS\",\"N_YTQJS\",\"N_STLJS\",\"N_STQJS\",\"N_BSLJS\",\"N_BSQJS\",\"N_YDLJS\",\"N_YDQJS\",\"N_YFLJS\",\"N_YFQJS\",\"N_JDLJS\",\"N_JDQJS\",\"N_JTLJS\",\"N_JTQJS\",\"N_TTLJS\",\"N_TTQJS\",\"N_DBLJS\",\"N_DBQJS\",\"N_DNLJS\",\"N_DNQJS\",\"N_FWLJS\",\"N_FWQJS\",\"N_YSLJS\",\"N_YSQJS\",\"N_QTLJS\",\"N_QTQJS\",\"RESERVED1\",\"RESERVED2\",\"RESERVED3\",\"RESERVED4\",\"BATCH_NO\") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            // 查询总数
            ZyytDataResult<YyztTShkdrb> zyytDataResult = stationInfoService.getData(pageNum, 1);
            Long totalElements = zyytDataResult.getTotalElements();
            Long totalPages = 0L;
            totalPages = totalElements / pageSize;
            if (totalElements % pageSize != 0) {
                totalPages++;
            }
            Long totalElements = ZyytUtil.getApiTotalElements("YYZT_T_SHKDRB", date);
            Long totalPages = ZyytUtil.calcPages(totalElements, pageSize);
            log.info("社会快递日报表(YYZT_T_SHKDRB) 共{}条数据,每页{}条,可分{}页,", totalElements, pageSize, totalPages);
            log.info("共{}页,{}条数据", totalPages, totalElements);
            for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) {
                zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                ZyytDataResult<YyztTShkdrb> zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                List<YyztTShkdrb> stationInfoList = zyytDataResult.getContent();
                totalSize += zyytDataResult.getContentSize();
@@ -372,20 +304,16 @@
            return;
        }
        stationInfoService.updateRecord(recordId, 0, totalSize, null);
        log.info("···········中邮易通 社会快递日报表 任务执行完毕···········");
        log.info("···········中邮易通 社会快递日报表{} 任务执行完毕···········", date);
    }
    // 代寄统计表
    public void djtjbTasks(LocalDate date) {
        log.info("开始进行 代寄统计表");
        log.info("开始进行 代寄统计表 -- {}", date);
        String batchNo = ZyytUtil.getBatchNo(date);
//        Integer batchIsFinish = getBatchIsFinish(batchNo);
//        if (batchIsFinish != null && batchIsFinish == 0) {
//            log.info("批次{}正在运行", batchNo);
//            return;
//        }
        if (!canGetAgain("YYZT_T_DJTJB", date)) {
        if (ZyytUtil.isRunning("YYZT_T_DJTJB", date)) {
            log.info("YYZT_T_DJTJB 的 批次{}正在运行", batchNo);
            return;
        }
@@ -394,33 +322,7 @@
        String delSql = "delete from YYZT_T_DJTJB where BATCH_NO='" + batchNo + "'";
        jdbcTemplate.update(delSql);
        // 设置请求参数
        JSONObject queryParams = new JSONObject();
        JSONObject criteria = new JSONObject();
        criteria.put("match", "and");
        JSONArray matchChildren = new JSONArray();
        JSONObject children1 = new JSONObject();
        children1.put("name", "dRbrq");
        JSONArray child1C = new JSONArray();
        child1C.add(date + " 00:00:00");
        children1.put("value", child1C);
        children1.put("match", "eq");
        matchChildren.add(children1);
        criteria.put("children", matchChildren);
        queryParams.put("criteria", criteria);
        Zyyt<YyztTDjtjb> stationInfoService = new ZyytTDjtjb(
                ZyytConstant.URL_AUTHON,
                ZyytConstant.URL_DJTJB_QUERY,
                false,
                ZyytConstant.CLIENT_DJTJB,
                ZyytConstant.SECRET_DJTJB,
                ZyytConstant.X_EOS_SOURCESYSKEY_DJTJB,
                queryParams
        );
        Zyyt<YyztTDjtjb> stationInfoService = ZyytUtil.getBusinessEntity("YYZT_T_DJTJB", date);
        Long recordId = stationInfoService.insertRecord("YYZT_T_DJTJB", batchNo);
        Long totalSize = 0L;
        //设置回滚点
@@ -432,16 +334,12 @@
            String batchInsertSql = "INSERT INTO YYZT_T_DJTJB (\"V_SFDM\", \"V_SFMC\", \"V_DSDM\", \"V_DSMC\", \"V_QXDM\", \"V_XSMC\", \"V_TDJGBH\", \"V_JGBH\", \"V_JGMC\", \"D_RBRQ\", \"V_YLGZDID\", \"V_YLGZDMC\", \"N_SJYWL\", \"N_TKYWL\", \"N_BKYEL\", \"N_SJZJE\", \"N_TKSR\", \"N_BKSR\", \"BATCH_NO\") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            // 查询总数
            ZyytDataResult<YyztTDjtjb> zyytDataResult = stationInfoService.getData(pageNum, 1);
            Long totalElements = zyytDataResult.getTotalElements();
            Long totalPages = 0L;
            totalPages = totalElements / pageSize;
            if (totalElements % pageSize != 0) {
                totalPages++;
            }
            log.info("共{}页,{}条数据", totalPages, totalElements);
            Long totalElements = ZyytUtil.getApiTotalElements("YYZT_T_DJTJB", date);
            Long totalPages = ZyytUtil.calcPages(totalElements, pageSize);
            log.info("共{}条数据,每页{}条,可分{}页,", totalElements, pageSize, totalPages);
            for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) {
                zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                ZyytDataResult<YyztTDjtjb> zyytDataResult = stationInfoService.getData(pageNum, pageSize);
                List<YyztTDjtjb> djtjbList = zyytDataResult.getContent();
                totalSize += zyytDataResult.getContentSize();
                log.info("第{}次获取,本次获取到{}条数据", pageNum + 1, zyytDataResult.getContentSize());
@@ -504,48 +402,48 @@
        }
        stationInfoService.updateRecord(recordId, 0, totalSize, null);
        log.info("···········中邮易通 代寄统计表 任务执行完毕···········");
        log.info("···········中邮易通 代寄统计表 -- [{}] 任务执行完毕···········", date);
    }
    /**
     * 判断指定日期是否需要重新执行
     *
     * @param tableName
     * @param date
     * @return true 需要执行,false 不需要
     */
    private boolean canGetAgain(String tableName, LocalDate date) {
        String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + ZyytConstant.batchNoPrefix + date + "'  AND TABLE_NAME='" + tableName + "' ORDER BY START_TIME DESC) tmp WHERE ROWNUM<=1";
        Map<String, Object> map = null;
        try {
            map = jdbcTemplate.queryForMap(sql);
        } catch (Exception e) {
            log.info("sql=={}没有查询到数据", sql);
        }
        if (map != null) {
            String isFinish = Convert.toStr(map.get("IS_FINISH"));
            if (!"1".equals(isFinish)) {
                return false;
            }
            //下面 isFinish都是1
            String isError = Convert.toStr(map.get("IS_ERROR"));
            if ("1".equals(isError)) {
                // 执行有误
                return true;
            }
            // 成功执行没有错
            String countNum = Convert.toStr(map.get("COUNT_NUM"));
            if ("0".equals(countNum)) {
                //没有拉取到数据
                log.info("stationInfoTask");
                return true;
            }
        } else {
            // 该批次未执行
            log.info("stationInfoTask");
            return true;
        }
        return false;
    }
//    /**
//     * 判断指定日期是否需要重新执行
//     *
//     * @param tableName
//     * @param date
//     * @return true 需要执行,false 不需要
//     */
//    private boolean canGetAgain(String tableName, LocalDate date) {
//        String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + ZyytConstant.batchNoPrefix + date + "'  AND TABLE_NAME='" + tableName + "' ORDER BY START_TIME DESC) tmp WHERE ROWNUM<=1";
//        Map<String, Object> map = null;
//        try {
//            map = jdbcTemplate.queryForMap(sql);
//        } catch (Exception e) {
//            log.info("sql=={}没有查询到数据", sql);
//        }
//        if (map != null) {
//            String isFinish = Convert.toStr(map.get("IS_FINISH"));
//            if (!"1".equals(isFinish)) {
//                return false;
//            }
//            //下面 isFinish都是1
//            String isError = Convert.toStr(map.get("IS_ERROR"));
//            if ("1".equals(isError)) {
//                // 执行有误
//                return true;
//            }
//
//            // 成功执行没有错
//            String countNum = Convert.toStr(map.get("COUNT_NUM"));
//            if ("0".equals(countNum)) {
//                //没有拉取到数据
//                log.info("stationInfoTask");
//                return true;
//            }
//        } else {
//            // 该批次未执行
//            log.info("stationInfoTask");
//            return true;
//        }
//        return false;
//    }
}
src/main/java/com/integrated/zyyt/util/ZyytUtil.java
@@ -1,17 +1,25 @@
package com.integrated.zyyt.util;
import cn.hutool.core.convert.Convert;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.integrated.zyyt.ZyytConstant;
import com.integrated.zyyt.enetity.TokenResult;
import com.integrated.zyyt.enetity.ZyytDataResult;
import com.integrated.zyyt.enetity.business.Zyyt;
import com.integrated.zyyt.enetity.business.ZyytStationInfo;
import com.integrated.zyyt.enetity.business.ZyytTDjtjb;
import com.integrated.zyyt.enetity.business.ZyytTShkdrb;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @ClassName ZyytGetData
@@ -23,6 +31,13 @@
@Component
@Slf4j
public class ZyytUtil {
    private static JdbcTemplate jdbcTemplate;
    @Autowired
    public void setAlphaService(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }
    /**
     * 获取批次号
@@ -119,4 +134,161 @@
    }
    /**
     * 查询执行日期是否在执行
     *
     * @param tableName
     * @param date
     */
    public static Map<String, Object> getLastRecord(String tableName, LocalDate date) {
        String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + getBatchNo(date) + "'  AND TABLE_NAME='" + tableName + "' ORDER BY START_TIME DESC) tmp WHERE ROWNUM<=1";
        Map<String, Object> map = null;
        try {
            map = jdbcTemplate.queryForMap(sql);
        } catch (Exception e) {
            log.error("sql=={} 查询发生了异常,可能因为没有查询到数据", sql);
            log.error(e.getMessage());
        }
        return map;
    }
    /**
     * 查询指定批次是否有正在运行的任务
     *
     * @param tableName
     * @param date
     * @return true 正在运行 false 没有运行
     */
    public static boolean isRunning(String tableName, LocalDate date) {
        Map<String, Object> lastRecord = getLastRecord(tableName, date);
        if (lastRecord != null) {
            String isFinish = Convert.toStr(lastRecord.get("IS_FINISH"));
            return !"1".equals(isFinish);
        } else {
            return false;
        }
    }
    /**
     * 判断指定日期是否需要重新执行
     *
     * @param tableName
     * @param date
     * @return true 需要执行,false 不需要
     */
    public static boolean canGetAgain(String tableName, LocalDate date) {
        Map<String, Object> map = getLastRecord(tableName, date);
        if (map != null) {
            String isFinish = Convert.toStr(map.get("IS_FINISH"));
            if (!"1".equals(isFinish)) {
                log.info("表:{} 日期: {},上次执行未完成,不执行拉取", tableName, date);
                return false;
            }
            //下面 isFinish都是1
            String isError = Convert.toStr(map.get("IS_ERROR"));
            if ("1".equals(isError)) {
                log.info("表:{} 日期: {},上次执行有误,执行拉取", tableName, date);
                return true;
            }
            // 成功执行没有错
            String countNum = Convert.toStr(map.get("COUNT_NUM"));
            // 同接口返回的最新业务数据条数比较,如果不相同则重新拉取
            Long apiTotalElements = getApiTotalElements(tableName, date);
            if (apiTotalElements == null) {
                log.error("API获取总数失败,不执行拉取");
                return false;
            }
            if (apiTotalElements.compareTo(Convert.toLong(countNum)) == 0) {
                log.info("API返回总数 与 数据库条数相同,不执行拉取");
                return false;
            } else {
                log.info("API返回总数 与 数据库条数 不相同,执行拉取");
                return true;
            }
        } else {
            // 该批次未执行
            log.info("表:{} 日期: {},未执行过", tableName, date);
            return true;
        }
    }
    public static Zyyt getBusinessEntity(String tableName, LocalDate date) {
        if ("STATIONINFO".equalsIgnoreCase(tableName)) {
            new ZyytStationInfo(
                    ZyytConstant.URL_AUTHON,
                    ZyytConstant.URL_STATIONINFO_QUERY,
                    false,
                    ZyytConstant.CLIENT_STATIONINFO,
                    ZyytConstant.SECRET_STATIONINFO,
                    ZyytConstant.X_EOS_SOURCESYSKEY_STATIONINFO,
                    new JSONObject()
            );
        } else {
            JSONObject queryParams = new JSONObject();
            JSONObject criteria = new JSONObject();
            criteria.put("match", "and");
            JSONArray matchChildren = new JSONArray();
            JSONObject children1 = new JSONObject();
            children1.put("name", "dRbrq");
            JSONArray child1C = new JSONArray();
            child1C.add(date + " 00:00:00");
            children1.put("value", child1C);
            children1.put("match", "eq");
            matchChildren.add(children1);
            criteria.put("children", matchChildren);
            queryParams.put("criteria", criteria);
            if ("YYZT_T_SHKDRB".equalsIgnoreCase(tableName)) {
                return new ZyytTShkdrb(
                        ZyytConstant.URL_AUTHON,
                        ZyytConstant.URL_SHKDRB_QUERY,
                        false,
                        ZyytConstant.CLIENT_SHKDRB,
                        ZyytConstant.SECRET_SHKDRB,
                        ZyytConstant.X_EOS_SOURCESYSKEY_SHKDRB,
                        queryParams
                );
            } else if ("YYZT_T_DJTJB".equalsIgnoreCase(tableName)) {
                return new ZyytTDjtjb(
                        ZyytConstant.URL_AUTHON,
                        ZyytConstant.URL_DJTJB_QUERY,
                        false,
                        ZyytConstant.CLIENT_DJTJB,
                        ZyytConstant.SECRET_DJTJB,
                        ZyytConstant.X_EOS_SOURCESYSKEY_DJTJB,
                        queryParams
                );
            }
        }
        return null;
    }
    /**
     * 获取API中返回的记录总数
     *
     * @param tableName
     * @param date
     * @return
     */
    public static Long getApiTotalElements(String tableName, LocalDate date) {
        Zyyt businessEntity = getBusinessEntity(tableName, date);
        ZyytDataResult zyytDataResult = businessEntity.getData(0, 1);
        log.info("总共拉取到数据{}条", zyytDataResult.getTotalElements());
        return zyytDataResult.getTotalElements();
    }
    public static Long calcPages(Long totalElements, int pageSize) {
        Long totalPages = 0L;
        totalPages = totalElements / pageSize;
        if (totalElements % pageSize != 0) {
            totalPages++;
        }
        return totalPages;
    }
}
src/main/resources/application-dev.yml
@@ -35,12 +35,4 @@
  #本地缓存目录
  path: D:\tmp
  sftpDownload: C:\ftpData\download
#超级账号
super:
  name: zhfwpt
orgCode: Adu_8097
work:
  bathSize: 1500
  batchInsertSize: 1000
base:
  url: http://localhost:9527
src/main/resources/application.yml
@@ -15,14 +15,6 @@
      max-request-size: 200MB
  application:
    name: integrated-schedule
  redis:
    jedis:
      pool:
        max-active: 2000
        max-wait: -1
        max-idle: 10
        min-idle: 0
    timeout: 30000
  #资源文件映射
  resources:
    static-locations: classpath:/verifyImg/,file:${file.path}