CZT
2024-03-02 82723ea5ecc5dd0e197d544a61bcfe86f63692a3
解决数据定时同步及上报不执行问题
已修改3个文件
189 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/entity/ApiConfs.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/timer/PushDataScheduled.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/timer/SyncDataScheduled.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/entity/ApiConfs.java
@@ -94,15 +94,15 @@
    @Column(name = "syncType_11", length = 2)
    private String syncType11;
    @PropertyDef(label = "基础接口-天", description = "1-周一,2-周二,3-周三等等,* 表示每天")
    @PropertyDef(label = "基础接口-同步-天", description = "1-周一,2-周二,3-周三等等,* 表示每天")
    @Column(name = "syncDay_11")
    private String syncDay11;
    @PropertyDef(label = "基础接口-时", description = "0-23表示具体小时,* 表示每小时")
    @PropertyDef(label = "基础接口-同步-时", description = "0-23表示具体小时,* 表示每小时")
    @Column(name = "syncHour_11", length = 4)
    private String syncHour11;
    @PropertyDef(label = "基础接口-分", description = "具体执行时间,分为:0和30两个选择,表示整点执行30分钟执行")
    @PropertyDef(label = "基础接口-同步-分", description = "具体执行时间,分为:0和30两个选择,表示整点执行30分钟执行")
    @Column(name = "syncMinute_11", length = 4)
    private String syncMinute11;
@@ -110,15 +110,15 @@
    @Column(name = "pushType_11", length = 2)
    private String pushType11;
    @PropertyDef(label = "基础接口-天")
    @PropertyDef(label = "基础接口-推送-天")
    @Column(name = "pushDay_11", length = 4)
    private String pushDay11;
    @PropertyDef(label = "基础接口-时")
    @PropertyDef(label = "基础接口-同步-时")
    @Column(name = "pushHour_11", length = 4)
    private String pushHour11;
    @PropertyDef(label = "基础接口-分")
    @PropertyDef(label = "基础接口-同步-分")
    @Column(name = "pushMinute_11", length = 4)
    private String pushMinute11;
@@ -126,31 +126,31 @@
    @Column(name = "syncType_99", length = 2)
    private String syncType99;
    @PropertyDef(label = "其他数据-天")
    @PropertyDef(label = "其他数据-同步-天")
    @Column(name = "syncDay_99", length = 4)
    private String syncDay99;
    @PropertyDef(label = "其他数据-时")
    @PropertyDef(label = "其他数据-同步-时")
    @Column(name = "syncHour_99", length = 4)
    private String syncHour99;
    @PropertyDef(label = "其他数据-分")
    @PropertyDef(label = "其他数据-同步-分")
    @Column(name = "syncMinute_99", length = 4)
    private String syncMinute99;
    @PropertyDef(label = "其他数据-推送", description = "自动同步,自动同步")
    @PropertyDef(label = "其他数据-推送方式", description = "自动同步,自动同步")
    @Column(name = "pushType_99", length = 2)
    private String pushType99;
    @PropertyDef(label = "其他数据-天")
    @PropertyDef(label = "其他数据-推送-天")
    @Column(name = "pushDay_99", length = 4)
    private String pushDay99;
    @PropertyDef(label = "其他数据-时")
    @PropertyDef(label = "其他数据-推送-时")
    @Column(name = "pushHour_99", length = 4)
    private String pushHour99;
    @PropertyDef(label = "其他数据-分")
    @PropertyDef(label = "其他数据-推送-分")
    @Column(name = "pushMinute_99", length = 4)
    private String pushMinute99;
src/main/java/com/fzzy/api/timer/PushDataScheduled.java
@@ -81,7 +81,7 @@
            isExecute = true;
        } else {
            int dayOfWeek = ContextUtil.getDayOfWeek(exeDate);
            if (String.valueOf(dayOfWeek).equals(conf.getPushDay11())) {
            if (String.valueOf(dayOfWeek).equals(conf.getPushDay99())) {
                isExecute = true;
                //开始时间提前7天
@@ -97,6 +97,43 @@
            return;
        }
        //核对时间是否匹配
        if (conf.getPushHour99().equals(ApiConfs.TIME_ALL)) {
            isExecute = true;
        } else {
            int hourOfDay = ContextUtil.getHourOfDay(exeDate);
            if (String.valueOf(hourOfDay).equals(conf.getPushHour99())) {
                isExecute = true;
                if (!isUpdateStart) {
                    start = DateUtils.addDays(start, -1);
                    isUpdateStart = true;
                }
            } else {
                isExecute = false;
            }
        }
        if (!isExecute) {
            log.debug("------->>>>>>>>>> 基础数据推送---时间配置小时不匹配");
            return;
        }
        //核对时间分钟是否匹配
        int minute = ContextUtil.getMinuteOfHour(exeDate);
        if (String.valueOf(minute).equals(conf.getPushMinute99())) {
            isExecute = true;
            if (!isUpdateStart) {
                start = DateUtils.addHours(start, -1);
            }
        } else {
            isExecute = false;
        }
        if (!isExecute) {
            log.debug("------->>>>>>>>>> 基础数据推送---时间配置分钟不匹配");
            return;
        }
        log.info("------->>>>>>>>>> 业务数据推送---开始查询相关业务数据进行推送");
        ApiParam param = new ApiParam();
        param.setPushProtocol(conf.getPushProtocol());
src/main/java/com/fzzy/api/timer/SyncDataScheduled.java
@@ -36,8 +36,7 @@
     * <p>
     * 固定时间:0分钟和30分钟执行
     */
//    @Scheduled(cron = "0 0,30 * * * ? ")
    @Scheduled(cron = "0 * * * * ? ")
    @Scheduled(cron = "0 0,30 * * * ? ")
    public void scheduled() {
        log.info("系统执行定时数据同步操作<<<<<<<<<<<<<--------");
@@ -73,66 +72,67 @@
        Date start = exeDate;
//        //是否执行
//        boolean isExecute = false;
//        boolean isUpdateStart = false;
//        //核对天是否匹配
//        if (conf.getSyncDay99().equals(ApiConfs.TIME_ALL)) {
//            isExecute = true;
//        } else {
//            int dayOfWeek = ContextUtil.getDayOfWeek(exeDate);
//            if (String.valueOf(dayOfWeek).equals(conf.getSyncDay11())) {
//                isExecute = true;
//
//                //开始时间提前7天
//                start = DateUtils.addDays(start, -7);
//                isUpdateStart = true;
//            } else {
//                isExecute = false;
//            }
//        }
//
//        if (!isExecute) {
//            log.debug("业务数据同步---时间配置天不匹配<<<<<<<<<<<<<-------");
//            return;
//        }
//
//        //核对时间是否匹配
//        if (conf.getSyncHour99().equals(ApiConfs.TIME_ALL)) {
//            isExecute = true;
//        } else {
//            int hourOfDay = ContextUtil.getHourOfDay(exeDate);
//            if (String.valueOf(hourOfDay).equals(conf.getSyncHour11())) {
//                isExecute = true;
//
//                if (!isUpdateStart) {
//                    start = DateUtils.addDays(start, -1);
//                    isUpdateStart = true;
//                }
//            } else {
//                isExecute = false;
//            }
//        }
//        if (!isExecute) {
//            log.debug("业务数据同步---时间配置小时不匹配<<<<<<<<<<<<<-------");
//            return;
//        }
//
//        //核对时间分钟是否匹配
//        int minute = ContextUtil.getMinuteOfHour(exeDate);
//        if (String.valueOf(minute).equals(conf.getSyncMinute99())) {
//            isExecute = true;
//            if (!isUpdateStart) {
//                start = DateUtils.addHours(start, -1);
//            }
//        } else {
//            isExecute = false;
//        }
//
//        if (!isExecute) {
//            log.debug("业务数据同步---时间配置分钟不匹配<<<<<<<<<<<<<-------");
//            return;
//        }
        //是否执行
        boolean isExecute = false;
        boolean isUpdateStart = false;
        //核对天是否匹配
        if (conf.getSyncDay99().equals(ApiConfs.TIME_ALL)) {
            //每天执行
            isExecute = true;
        } else {
            int dayOfWeek = ContextUtil.getDayOfWeek(exeDate);
            if (String.valueOf(dayOfWeek).equals(conf.getSyncDay99())) {
                isExecute = true;
                //开始时间提前7天
                start = DateUtils.addDays(start, -7);
                isUpdateStart = true;
            } else {
                isExecute = false;
            }
        }
        if (!isExecute) {
            log.debug("业务数据同步---时间配置天不匹配<<<<<<<<<<<<<-------");
            return;
        }
        //核对小时是否匹配
        if (conf.getSyncHour99().equals(ApiConfs.TIME_ALL)) {
            isExecute = true;
        } else {
            int hourOfDay = ContextUtil.getHourOfDay(exeDate);
            if (String.valueOf(hourOfDay).equals(conf.getSyncHour99())) {
                isExecute = true;
                if (!isUpdateStart) {
                    start = DateUtils.addDays(start, -1);
                    isUpdateStart = true;
                }
            } else {
                isExecute = false;
            }
        }
        if (!isExecute) {
            log.debug("业务数据同步---时间配置小时不匹配<<<<<<<<<<<<<-------");
            return;
        }
        //核对时间分钟是否匹配
        int minute = ContextUtil.getMinuteOfHour(exeDate);
        if (String.valueOf(minute).equals(conf.getSyncMinute99())) {
            isExecute = true;
            if (!isUpdateStart) {
                start = DateUtils.addHours(start, -1);
            }
        } else {
            isExecute = false;
        }
        if (!isExecute) {
            log.debug("业务数据同步---时间配置分钟不匹配<<<<<<<<<<<<<-------");
            return;
        }
        log.debug("业务数据同步---开始查询业务数据进行同步<<<<<<<<<<<<<-------");
        ApiParam param = new ApiParam();