| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package com.xjrsoft.module.job;
- import cn.dev33.satoken.stp.StpUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.xjrsoft.common.enums.DeleteMark;
- import com.xjrsoft.common.enums.EnabledMark;
- import com.xjrsoft.module.base.entity.BaseClass;
- import com.xjrsoft.module.base.entity.BaseClassTeacherChange;
- import com.xjrsoft.module.base.entity.BaseGrade;
- import com.xjrsoft.module.base.service.IBaseClassService;
- import com.xjrsoft.module.base.service.IBaseClassTeacherChangeService;
- import com.xjrsoft.module.base.service.IBaseGradeService;
- 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.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 自动别业班级
- * @author dzx
- * @date 2025/1/14
- */
- @Component
- @Slf4j
- public class ClassGraduateTask {
- @Autowired
- private IBaseClassService classService;
- @Autowired
- private IBaseGradeService gradeService;
- @Autowired
- private IBaseClassTeacherChangeService classTeacherChangeService;
- @Scheduled(cron = "0 */15 23 30 6 ?")
- public void execute() {
- doExecute();
- }
- /**
- * 根据年级自动毕业班级和学生
- */
- public void doExecute() {
- LocalDateTime now = LocalDateTime.now();
- List<BaseGrade> gradeList = gradeService.list(
- new QueryWrapper<BaseGrade>().lambda()
- .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseGrade::getStatus, 1)
- .last("limit 4")
- );
- List<Long> gradeIds = gradeList.stream().map(BaseGrade::getId).collect(Collectors.toList());
- List<BaseClass> classList = classService.list(
- new QueryWrapper<BaseClass>().lambda()
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
- .eq(BaseClass::getIsGraduate, 1)
- .notIn(!gradeIds.isEmpty(), BaseClass::getGradeId, gradeIds)
- );
- //毕业后,记录班主任异动记录
- List<BaseClassTeacherChange> classTeacherChangeList = new ArrayList<>();
- for (BaseClass baseClass : classList) {
- classTeacherChangeList.add(
- new BaseClassTeacherChange(){{
- setClassId(baseClass.getId());
- setBeforeTeacherId(baseClass.getTeacherId());
- setCreateDate(LocalDateTime.now());
- setCreateUserId(StpUtil.getLoginIdAsLong());
- setDeleteMark(DeleteMark.NODELETE.getCode());
- setEnabledMark(EnabledMark.ENABLED.getCode());
- }}
- );
- }
- if(!classTeacherChangeList.isEmpty()){
- classTeacherChangeService.saveBatch(classTeacherChangeList);
- }
- }
- }
|