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> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>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);
|
}
|
});
|
}
|
}
|
|
}
|