Merge remote-tracking branch 'origin/dev-tmp1' into dev-tmp1
commit
3da4937be0
|
|
@ -36,6 +36,10 @@
|
||||||
<groupId>io.swagger</groupId>
|
<groupId>io.swagger</groupId>
|
||||||
<artifactId>swagger-annotations</artifactId>
|
<artifactId>swagger-annotations</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.jjb.saas</groupId>
|
||||||
|
<artifactId>jjb-saas-framework-job</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- EasyExcel -->
|
<!-- EasyExcel -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ public class CourseManagementServiceImpl extends ServiceImpl<CourseManagementMap
|
||||||
IPage<CourseManagementVO> convert = page.convert(courseManagementConvertor::convertEToVo);
|
IPage<CourseManagementVO> convert = page.convert(courseManagementConvertor::convertEToVo);
|
||||||
Map<Long, Integer> collectMap = classCourseMapper.selectList(new LambdaQueryWrapper<ClassCourseDO>()
|
Map<Long, Integer> collectMap = classCourseMapper.selectList(new LambdaQueryWrapper<ClassCourseDO>()
|
||||||
.in(ClassCourseDO::getCourseId, convert.getRecords().stream().map(CourseManagementVO::getId)))
|
.in(ClassCourseDO::getCourseId, convert.getRecords().stream().map(CourseManagementVO::getId)))
|
||||||
.stream().collect(Collectors.toMap(ClassCourseDO::getCourseId, v -> 1));
|
.stream().map(ClassCourseDO::getCourseId).distinct().collect(Collectors.toMap(v -> v, v -> 1));
|
||||||
convert.getRecords().forEach(vo -> {
|
convert.getRecords().forEach(vo -> {
|
||||||
vo.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
vo.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
||||||
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
||||||
|
|
@ -81,11 +81,15 @@ public class CourseManagementServiceImpl extends ServiceImpl<CourseManagementMap
|
||||||
.eq(CourseManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
.eq(CourseManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
|
||||||
.one();
|
.one();
|
||||||
CourseManagementVO courseManagementVO = courseManagementConvertor.convertEToVo(entity);
|
CourseManagementVO courseManagementVO = courseManagementConvertor.convertEToVo(entity);
|
||||||
|
Map<Long, Integer> collectMap = classCourseMapper.selectList(new LambdaQueryWrapper<ClassCourseDO>()
|
||||||
|
.eq(ClassCourseDO::getCourseId, courseManagementVO.getId()))
|
||||||
|
.stream().map(ClassCourseDO::getCourseId).distinct().collect(Collectors.toMap(v -> v, v -> 1));
|
||||||
courseManagementVO.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
courseManagementVO.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
|
||||||
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
courseRelCoursewareMapper.selectList(new LambdaQueryWrapper<CourseRelCoursewareDO>()
|
||||||
.eq(CourseRelCoursewareDO::getCourseId, courseManagementVO.getId())
|
.eq(CourseRelCoursewareDO::getCourseId, courseManagementVO.getId())
|
||||||
.orderByAsc(CourseRelCoursewareDO::getSort))
|
.orderByAsc(CourseRelCoursewareDO::getSort))
|
||||||
));
|
));
|
||||||
|
courseManagementVO.setUsed(Math.toIntExact(collectMap.getOrDefault(Long.valueOf(courseManagementVO.getId()), 0)));
|
||||||
return courseManagementVO;
|
return courseManagementVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
package org.qinan.cedu.service.support.job;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.jjb.saas.framework.job.Job;
|
||||||
|
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||||
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
|
import com.xxl.job.core.context.XxlJobHelper;
|
||||||
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.qinan.cedu.enums.ClassStatusEnum;
|
||||||
|
import org.qinan.cedu.enums.DeleteEnum;
|
||||||
|
import org.qinan.cedu.mapper.ClassManagementMapper;
|
||||||
|
import org.qinan.cedu.model.entity.ClassManagementDO;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 过程控制签字完成,超过3天未归档
|
||||||
|
*
|
||||||
|
* @author ltq
|
||||||
|
* @since 2026/08/13
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ClassManagementStateJob implements Job {
|
||||||
|
|
||||||
|
private final ClassManagementMapper classManagementMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班级管理状态检查
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@XxlJob("classManagementStateTask")
|
||||||
|
@JobRegister(cron = "0 7 0 * * ?",
|
||||||
|
jobDesc = "班级管理状态检查",
|
||||||
|
author = "ltq",
|
||||||
|
triggerStatus = 1)
|
||||||
|
public ReturnT<String> execute(String param) {
|
||||||
|
param = XxlJobHelper.getJobParam();
|
||||||
|
log.info("班级管理状态检查开始, param: {}", param);
|
||||||
|
List<ClassManagementDO> classManagementDOS = classManagementMapper.selectList(new LambdaQueryWrapper<ClassManagementDO>()
|
||||||
|
.ne(ClassManagementDO::getStatus, 1));
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
for (ClassManagementDO classManagementDO : classManagementDOS) {
|
||||||
|
log.info("班级管理状态检查 {}", classManagementDO.getClassName());
|
||||||
|
LocalDate start = classManagementDO.getStartDate().toLocalDate();
|
||||||
|
LocalDate end = classManagementDO.getDelayTime().toLocalDate();
|
||||||
|
if (Objects.isNull(end)) {
|
||||||
|
end = classManagementDO.getEndDate().toLocalDate();
|
||||||
|
}
|
||||||
|
ClassStatusEnum pendingStart;
|
||||||
|
if (now.isBefore(start)) {
|
||||||
|
pendingStart = ClassStatusEnum.PENDING_START;
|
||||||
|
} else if (now.isAfter(start) && now.isBefore(end)) {
|
||||||
|
pendingStart = ClassStatusEnum.IN_PROGRESS;
|
||||||
|
} else if (now.isAfter(end)) {
|
||||||
|
pendingStart = ClassStatusEnum.FINISHED;
|
||||||
|
} else {
|
||||||
|
pendingStart = ClassStatusEnum.NOT_APPLIED;
|
||||||
|
}
|
||||||
|
log.info("班级管理状态检查结束 {}, 状态: {}", classManagementDO.getClassName(), pendingStart.getDesc());
|
||||||
|
classManagementMapper.update(new LambdaUpdateWrapper<ClassManagementDO>()
|
||||||
|
.set(ClassManagementDO::getStatus, pendingStart.getCode())
|
||||||
|
.set(ClassManagementDO::getUpdateTime, LocalDateTime.now())
|
||||||
|
.eq(ClassManagementDO::getId, classManagementDO.getId())
|
||||||
|
.eq(ClassManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode()));
|
||||||
|
|
||||||
|
}
|
||||||
|
log.info("班级管理状态检查完成");
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue