package com.yunhai.bschclassmanage.scheduler; import com.yunhai.bschclassmanage.service.IBaseYearTermService; import com.yunhai.bschclassmanage.service.ISchClassService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; /** * 班级升级定时任务 * 每年9月1日凌晨2点执行 */ @Slf4j @Component public class ClassUpgradeScheduler { @Autowired private ISchClassService schClassService; // 注入业务服务 @Autowired private IBaseYearTermService baseYearTermService; // 注入业务服务 /** * 定时执行班级升级 * Cron:每天凌晨2点执行 */ @Scheduled(cron = "0 0 2 * * ?") // 每天凌晨2点执行 public void upgradeClasses() { log.info("===== 班级升级定时任务开始 ====="); try { Date today = new Date(); if (baseYearTermService.isUpgradeDate(today)) { // 如果今天是升级日,则执行升级 schClassService.upgradeAllClasses(); } else { log.info("今天不是升级日,跳过"); } log.info("===== 班级升级定时任务成功完成 ====="); } catch (Exception e) { log.error("班级升级定时任务执行失败", e); // 可以发送告警邮件或短信 } } /** * 定时执行数据备份 * Cron:每天凌晨0点执行 */ @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行 public void backupAllSnapshot() { log.info("===== 班级数据备份定时任务开始 ====="); try { Date today = new Date(); if (baseYearTermService.isBackupClassDataDate(today)) { // 如果今天是升级日,则执行升级 schClassService.backupAllSnapshot(); } else { log.info("今天不是备份日,跳过"); } log.info("===== 班级数据备份定时任务成功完成 ====="); } catch (Exception e) { log.error("班级数据备份定时任务执行失败", e); // 可以发送告警邮件或短信 } } }