105 lines
5.2 KiB
Java
Raw Normal View History

2024-05-16 02:20:09 +08:00
package com.zhgd.xmgl.task;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.xmgl.modules.exam.entity.*;
import com.zhgd.xmgl.modules.exam.service.*;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.service.IProjectService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
public class ExamTask {
@Autowired
private IProjectService projectService;
@Autowired
private IExamPaperService examPaperService;
@Autowired
private IExamRecordService examRecordService;
@Autowired
private IExamCourseTaskService examCourseTaskService;
@Autowired
private IExamCourseService examCourseService;
@Autowired
private IExamCourseRecordService examCourseRecordService;
@Autowired
private IExamNoticeConfigService examConfigService;
// @Scheduled(cron = "0 0 9 * * ?")
public void examNotice() {
List<Project> list = projectService.list();
List<ExamNotice> noticeList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
ExamNoticeConfig examNoticeConfig = examConfigService.getOne(Wrappers.<ExamNoticeConfig>lambdaQuery().eq(ExamNoticeConfig::getProjectSn, list.get(i)));
if (examNoticeConfig != null) {
if (examNoticeConfig.getExamNum() != null && examNoticeConfig.getExamType() != null) {
List<ExamPaper> examPapers = examPaperService.list(Wrappers.<ExamPaper>lambdaQuery().eq(ExamPaper::getProjectSn, list.get(i)));
for (int j = 0; j < examPapers.size(); j++) {
if (DateUtil.compare(new Date(), getTime(examNoticeConfig.getExamType(), examNoticeConfig.getExamNum())) < 0) {
List<ExamRecord> examRecords = examRecordService.list(Wrappers.<ExamRecord>lambdaQuery().eq(ExamRecord::getExamId, examPapers.get(j)));
for (int i1 = 0; i1 < examRecords.size(); i1++) {
2024-05-19 20:39:44 +08:00
if (examRecords.get(i1).getScore() == null) {
ExamNotice examNotice = new ExamNotice();
examNotice.setWorkerId(examRecords.get(i1).getUserId());
examNotice.setWorkerName(examRecords.get(i1).getUserName());
examNotice.setType(1);
examNotice.setContent("参加安全教育课程考试");
examNotice.setProjectSn(list.get(i).getProjectSn());
noticeList.add(examNotice);
}
2024-05-16 02:20:09 +08:00
}
}
}
}
if (examNoticeConfig.getCourseNum() != null && examNoticeConfig.getCourseType() != null) {
List<ExamCourse> examCourseList = examCourseService.list(Wrappers.<ExamCourse>lambdaQuery().eq(ExamCourse::getProjectSn, list.get(i)));
for (int j = 0; j < examCourseList.size(); j++) {
if (DateUtil.compare(new Date(), getTime(examNoticeConfig.getCourseType(), examNoticeConfig.getCourseNum())) < 0) {
List<ExamCourseRecord> examCourseRecords = examCourseRecordService.list(Wrappers.<ExamCourseRecord>lambdaQuery().eq(ExamCourseRecord::getCourseId, examCourseList.get(j)));
2024-05-19 20:39:44 +08:00
// List<ExamCourseTask> examCourseTasks = examCourseTaskService.list(Wrappers.<ExamCourseTask>lambdaQuery()
// .in(ExamCourseTask::getRecordId, examCourseRecords.stream().map(r -> r.getId()).collect(Collectors.toList())));
for (int i1 = 0; i1 < examCourseRecords.size(); i1++) {
if (examCourseRecords.get(i).getNumber() == null || examCourseRecords.get(i).getNumber() == 0) {
ExamNotice examNotice = new ExamNotice();
examNotice.setWorkerId(examCourseRecords.get(i1).getWorkerId().toString());
examNotice.setWorkerName(examCourseRecords.get(i1).getWorkerName());
examNotice.setType(1);
examNotice.setContent("参加安全教育课程学习");
examNotice.setProjectSn(list.get(i).getProjectSn());
noticeList.add(examNotice);
}
2024-05-16 02:20:09 +08:00
}
}
}
}
}
}
}
private DateTime getTime(int type, int num){
DateTime dateTime = null;
if (type == 1) {
dateTime = DateUtil.offsetHour(new Date(), -num);
} else if (type == 1) {
dateTime = DateUtil.offsetDay(new Date(), -num);
}
return dateTime;
}
}