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