package com.ruoyi.process.task; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper; import com.ruoyi.process.pojo.QualitySuperviseDetails; import com.ruoyi.system.mapper.UserMapper; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; /** * 培训计划使用提醒记录提醒 */ @Component public class QualitySuperviseSchedule { @Resource private QualitySuperviseDetailsMapper qualitySuperviseDetailsMapper; @Resource private UserMapper userMapper; @Resource private ThreadPoolTaskExecutor threadPoolTaskExecutor; /** * 提醒填写设备使用记录 */ // @Scheduled(cron = "0/5 * * * * *") @Scheduled(cron = "0 0 9 1 * *") // 每月1号执行 public void task1() { // 查询当月监督计划 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); String format = LocalDateTime.now().format(formatter); List qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.lambdaQuery() .eq(QualitySuperviseDetails::getSuperviseTime, format)); for (QualitySuperviseDetails qualitySuperviseDetail : qualitySuperviseDetails) { threadPoolTaskExecutor.execute(() -> { // 查询被监督人信息 User user = userMapper.selectById(qualitySuperviseDetail.getSupervisedUserId()); // 企业微信通知培训 String message = ""; message += "质量监督计划提醒通知"; message += "\n监督日期: " + qualitySuperviseDetail.getSuperviseTime(); message += "\n监督目的: " + qualitySuperviseDetail.getSupervisePurpose(); message += "\n监督项目: " + qualitySuperviseDetail.getSuperviseProject(); message += "\n被监督人: " + qualitySuperviseDetail.getSupervisee(); message += "\n计划当月进行监督计划"; //发送企业微信消息通知 try { WxCpUtils.inform(user.getAccount(), message, null); } catch (Exception e) { throw new RuntimeException(e); } }); } } }