From 85d1fec512442be84d31248db4c93fb79c086df1 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 2 Jul 2025 13:50:59 +0800 Subject: [PATCH] =?UTF-8?q?20250702=E6=B7=BB=E5=8A=A0=E6=96=B0=E8=A7=84?= =?UTF-8?q?=E5=88=99=EF=BC=8C=E8=80=83=E8=AF=95=E5=91=A8=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=8C=89=E6=95=B4=E7=82=B9=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/common/entity/ClassEntity.java | 2 + .../service/impl/ClassEntityServiceImpl.java | 46 ++++++++++++++++--- .../service/impl/ClassExamServiceImpl.java | 10 +++- .../modules/job/task/ClassToExamTask.java | 32 +++++++------ 4 files changed, 67 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/entity/ClassEntity.java b/src/main/java/com/peanut/modules/common/entity/ClassEntity.java index 8af66045..6f2cdda1 100644 --- a/src/main/java/com/peanut/modules/common/entity/ClassEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/ClassEntity.java @@ -50,6 +50,8 @@ public class ClassEntity { @TableField(exist = false) private List> classUsers; @TableField(exist = false) + private Date studyEndTime; + @TableField(exist = false) private Date examStartTime; @TableField(exist = false) private Date examEndTime; diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java index 087ebfa4..24d4c6b1 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java @@ -218,8 +218,22 @@ public class ClassEntityServiceImpl extends ServiceImplDateUtils.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 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 ServiceImplDateUtils.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 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("教学时间未完"); } //结班限制 diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java index e98deac3..56e14036 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassExamServiceImpl.java @@ -158,8 +158,14 @@ public class ClassExamServiceImpl extends ServiceImpl 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()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()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; } - ); - } + } + ); } } }