20250702添加新规则,考试周时间按整点计算
This commit is contained in:
@@ -50,6 +50,8 @@ public class ClassEntity {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<Map<String,Object>> classUsers;
|
private List<Map<String,Object>> classUsers;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
private Date studyEndTime;
|
||||||
|
@TableField(exist = false)
|
||||||
private Date examStartTime;
|
private Date examStartTime;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Date examEndTime;
|
private Date examEndTime;
|
||||||
|
|||||||
@@ -218,8 +218,22 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|||||||
}
|
}
|
||||||
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
||||||
classEntity.setClassModel(classModel);
|
classEntity.setClassModel(classModel);
|
||||||
classEntity.setExamStartTime(classEntity.getStartTime()==null?null:DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()));
|
//20250702添加新规则,考试周时间按整点计算
|
||||||
classEntity.setExamEndTime(classEntity.getStartTime()==null?null:DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()));
|
if(classEntity.getStartTime()!=null&&classModel.getIsExam()==1&&
|
||||||
|
DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()
|
||||||
|
>DateUtils.stringToDate("2025-07-02","yyyy-MM-dd").getTime()){
|
||||||
|
// classEntity.setStartTime(DateUtils.stringToDate(DateUtils.format(classEntity.getStartTime()),"yyyy-MM-dd"));
|
||||||
|
Date studyEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()-1);
|
||||||
|
classEntity.setStudyEndTime(DateUtils.stringToDate(DateUtils.format(studyEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss"));
|
||||||
|
Date examStartTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
||||||
|
classEntity.setExamStartTime(DateUtils.stringToDate(DateUtils.format(examStartTime),"yyyy-MM-dd"));
|
||||||
|
Date examEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()-1+classModel.getExamDays());
|
||||||
|
classEntity.setExamEndTime(DateUtils.stringToDate(DateUtils.format(examEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss"));
|
||||||
|
}else if (classEntity.getStartTime()!=null&&classModel.getIsExam()==1){
|
||||||
|
classEntity.setStudyEndTime(DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()));
|
||||||
|
classEntity.setExamStartTime(DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()));
|
||||||
|
classEntity.setExamEndTime(DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()));
|
||||||
|
}
|
||||||
MPJLambdaWrapper<ClassUser> userWrapper = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<ClassUser> userWrapper = new MPJLambdaWrapper<>();
|
||||||
userWrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,ClassUser::getUserId);
|
userWrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,ClassUser::getUserId);
|
||||||
userWrapper.select("t.role,t.user_id as userId,t1.tel,t1.name,t1.nickname");
|
userWrapper.select("t.role,t.user_id as userId,t1.tel,t1.name,t1.nickname");
|
||||||
@@ -1193,11 +1207,21 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|||||||
.in(ClassUser::getRole,1,2));
|
.in(ClassUser::getRole,1,2));
|
||||||
for (ClassUser cu:closeList) {
|
for (ClassUser cu:closeList) {
|
||||||
ClassEntity classEntity = this.getById(cu.getClassId());
|
ClassEntity classEntity = this.getById(cu.getClassId());
|
||||||
if (classEntity != null&&!"2".equals(classEntity.getState())){
|
if (classEntity != null&&"3".equals(classEntity.getState())){
|
||||||
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
||||||
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()).getTime()
|
//20250702添加新规则,考试周时间按整点计算
|
||||||
<=new Date().getTime()){
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()
|
||||||
sb.append(classEntity.getTitle()+"班级结班时间已到\n");
|
>DateUtils.stringToDate("2025-07-02","yyyy-MM-dd").getTime()){
|
||||||
|
Date examEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()-1+classModel.getExamDays());
|
||||||
|
examEndTime = DateUtils.stringToDate(DateUtils.format(examEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss");
|
||||||
|
if (examEndTime.getTime()<=new Date().getTime()){
|
||||||
|
sb.append(classEntity.getTitle()+"班级结班时间已到\n");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()).getTime()
|
||||||
|
<=new Date().getTime()){
|
||||||
|
sb.append(classEntity.getTitle()+"班级结班时间已到\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1562,7 +1586,15 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|||||||
return R.error("已结班");
|
return R.error("已结班");
|
||||||
}
|
}
|
||||||
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
||||||
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime() > new Date().getTime()){
|
//考试周开始时间
|
||||||
|
Date startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
||||||
|
//20250702添加新规则,考试周时间按整点计算
|
||||||
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()
|
||||||
|
>DateUtils.stringToDate("2025-07-02","yyyy-MM-dd").getTime()){
|
||||||
|
startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
||||||
|
startExamTime = DateUtils.stringToDate(DateUtils.format(startExamTime),"yyyy-MM-dd");
|
||||||
|
}
|
||||||
|
if (startExamTime.getTime() > new Date().getTime()){
|
||||||
return R.error("教学时间未完");
|
return R.error("教学时间未完");
|
||||||
}
|
}
|
||||||
//结班限制
|
//结班限制
|
||||||
|
|||||||
@@ -158,8 +158,14 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
|
|||||||
if ("1".equals(params.get("type").toString())){
|
if ("1".equals(params.get("type").toString())){
|
||||||
ClassEntity classEntity = classEntityDao.selectById(params.get("relationId").toString());
|
ClassEntity classEntity = classEntityDao.selectById(params.get("relationId").toString());
|
||||||
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
||||||
if ("3".equals(classEntity.getState())&&
|
Date examEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays());
|
||||||
DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()).getTime()<new Date().getTime()){
|
//20250702添加新规则,考试周时间按整点计算
|
||||||
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()
|
||||||
|
>DateUtils.stringToDate("2025-07-02","yyyy-MM-dd").getTime()){
|
||||||
|
examEndTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()-1+classModel.getExamDays());
|
||||||
|
examEndTime = DateUtils.stringToDate(DateUtils.format(examEndTime)+" 23:59:59","yyyy-MM-dd HH:mm:ss");
|
||||||
|
}
|
||||||
|
if ("3".equals(classEntity.getState())&&examEndTime.getTime()<new Date().getTime()){
|
||||||
return R.error("考试周已结束,等待结班");
|
return R.error("考试周已结束,等待结班");
|
||||||
}
|
}
|
||||||
examTime = classModel.getExamTime();//考试持续时间
|
examTime = classModel.getExamTime();//考试持续时间
|
||||||
|
|||||||
@@ -39,26 +39,30 @@ public class ClassToExamTask implements ITask{
|
|||||||
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
||||||
//考试周开始时间
|
//考试周开始时间
|
||||||
Date startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
Date startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
||||||
|
//20250702添加新规则,考试周时间按整点计算
|
||||||
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()
|
||||||
|
>DateUtils.stringToDate("2025-07-02","yyyy-MM-dd").getTime()){
|
||||||
|
startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays());
|
||||||
|
startExamTime = DateUtils.stringToDate(DateUtils.format(startExamTime),"yyyy-MM-dd");
|
||||||
|
}
|
||||||
if (startExamTime.getTime()<=new Date().getTime()){//已到考试周,调整小班状态为考试周
|
if (startExamTime.getTime()<=new Date().getTime()){//已到考试周,调整小班状态为考试周
|
||||||
classEntity.setState("3");
|
classEntity.setState("3");
|
||||||
classEntityDao.updateById(classEntity);
|
classEntityDao.updateById(classEntity);
|
||||||
}else if (DateUtils.format(startExamTime).equals(DateUtils.format(new Date()))){
|
}else if (DateUtils.format(startExamTime).equals(DateUtils.format(new Date()))){
|
||||||
//当天与考试周到达天相同,加入队列
|
//当天与考试周到达天相同,加入队列
|
||||||
if (classModel.getIsExam()==1){
|
//根据设置的天数将班级状态从进行中设置成考试中
|
||||||
//根据设置的天数将班级状态从进行中设置成考试中
|
rabbitTemplate.convertAndSend(
|
||||||
rabbitTemplate.convertAndSend(
|
DelayQueueConfig.COMMON_EXCHANGE,
|
||||||
DelayQueueConfig.COMMON_EXCHANGE,
|
DelayQueueConfig.COMMON_ROUTING_KEY,
|
||||||
DelayQueueConfig.COMMON_ROUTING_KEY,
|
"examDays" + "," + classEntity.getId(),
|
||||||
"examDays" + "," + classEntity.getId(),
|
new MessagePostProcessor() {
|
||||||
new MessagePostProcessor() {
|
@Override
|
||||||
@Override
|
public Message postProcessMessage(Message message) throws AmqpException {
|
||||||
public Message postProcessMessage(Message message) throws AmqpException {
|
message.getMessageProperties().setDelay((int)(DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()).getTime()-new Date().getTime()));
|
||||||
message.getMessageProperties().setDelay((int)(startExamTime.getTime()-new Date().getTime()));
|
return message;
|
||||||
return message;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
}
|
||||||
}
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user