From ccfc0e292579840f223af4c3c3819f62db273031 Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Fri, 8 Aug 2025 15:47:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/ahsbs/base/dao/TrainingDao.java | 31 +++++++++ .../bonus/ahsbs/base/task/TrainingTask.java | 66 +++++++++++++++++++ .../resources/mappers/base/TrainingMapper.xml | 19 ++++++ 3 files changed, 116 insertions(+) create mode 100644 src/main/java/com/bonus/ahsbs/base/dao/TrainingDao.java create mode 100644 src/main/java/com/bonus/ahsbs/base/task/TrainingTask.java create mode 100644 src/main/resources/mappers/base/TrainingMapper.xml diff --git a/src/main/java/com/bonus/ahsbs/base/dao/TrainingDao.java b/src/main/java/com/bonus/ahsbs/base/dao/TrainingDao.java new file mode 100644 index 0000000..c0a9126 --- /dev/null +++ b/src/main/java/com/bonus/ahsbs/base/dao/TrainingDao.java @@ -0,0 +1,31 @@ +package com.bonus.ahsbs.base.dao; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +/** + * packageName com.bonus.ahsbs.base.dao + * + * @author lsun + * @version 1.0.0 + * @className TrainingDao (此处以class为例) + * @date 2025/8/8 + * @description 培评预警 + */ +@Repository(value = "TrainingDao") +public interface TrainingDao { + + /** + * 获取某天培训人数 + * @param startTime endTime + * @return + */ + int getAttNum(@Param("startTime") String startTime, @Param("endTime") String endTime); + + /** + * 添加培训人数 + * @param date + * @param attNum + */ + void add(String date, int attNum); +} diff --git a/src/main/java/com/bonus/ahsbs/base/task/TrainingTask.java b/src/main/java/com/bonus/ahsbs/base/task/TrainingTask.java new file mode 100644 index 0000000..6cca1ce --- /dev/null +++ b/src/main/java/com/bonus/ahsbs/base/task/TrainingTask.java @@ -0,0 +1,66 @@ +package com.bonus.ahsbs.base.task; + +import com.bonus.ahsbs.base.dao.TrainingDao; +import com.bonus.ahsbs.base.entity.BlackListBean; +import com.bonus.ahsbs.core.util.DateTimeHelper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * packageName com.bonus.ahsbs.base.task + * + * @author lsun + * @version 1.0.0 + * @className TrainingTask (此处以class为例) + * @date 2025/8/8 + * @description 培评预警 + */ +@Component +@Slf4j +@EnableScheduling +@EnableAsync +public class TrainingTask { + + @Resource(name = "TrainingDao") + private TrainingDao dao; + + @Scheduled(cron = "0 0 1 * * ?") // 每天凌晨1点执行 +// @Scheduled(cron = "0 */3 * * * ?") // 每3秒执行一次 + public void add() { + log.info("培评预警定时任务开始执行"); + try { + String date = DateTimeHelper.getPervDate(1); //获取前一天 + + // 使用正确的日期格式解析 + DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate localDate = LocalDate.parse(date, dateFormatter); + + // 获取当天开始时间:00:00:00 + LocalDateTime startOfDay = localDate.atStartOfDay(); + // 获取当天结束时间:23:59:59 + LocalDateTime endOfDay = localDate.atTime(23, 59, 59); + + // 使用完整的日期时间格式进行格式化 + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + String startTime = startOfDay.format(dateTimeFormatter); + String endTime = endOfDay.format(dateTimeFormatter); + + int attNum = dao.getAttNum(startTime,endTime); //获取前天出勤人数 + + dao.add(date,attNum); + } catch (Exception e) { + log.error(e.toString(), e); + } + log.info("培评预警定时任务结束执行"); + } + +} diff --git a/src/main/resources/mappers/base/TrainingMapper.xml b/src/main/resources/mappers/base/TrainingMapper.xml new file mode 100644 index 0000000..6cff284 --- /dev/null +++ b/src/main/resources/mappers/base/TrainingMapper.xml @@ -0,0 +1,19 @@ + + + + + INSERT INTO `xbg_training`(`date`, `att_num`) + VALUES (#{ date}, #{attNum}) + + + + \ No newline at end of file