|
@@ -20,6 +20,7 @@ import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
|
|
|
import com.keao.edu.user.api.enums.ExamModeEnum;
|
|
|
import com.keao.edu.user.dao.*;
|
|
|
import com.keao.edu.user.dto.ExamRoomDto;
|
|
|
+import com.keao.edu.user.dto.ExamRoomExamTimeDto;
|
|
|
import com.keao.edu.user.dto.ExamRoomListDto;
|
|
|
import com.keao.edu.user.dto.ExamRoomStatisticsDto;
|
|
|
import com.keao.edu.user.entity.ExamLifecycleLog;
|
|
@@ -232,23 +233,18 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
examRooms.add(er);
|
|
|
}
|
|
|
checkRoomTeachers(examRooms);
|
|
|
+ examRoomDao.batchInsert(examRooms);
|
|
|
|
|
|
- Date minStartTime = examRooms.stream().min(Comparator.comparing(ExamRoom::getExamStartTime)).get().getExamStartTime();
|
|
|
- Date maxEndTime = examRooms.stream().max(Comparator.comparing(ExamRoom::getExamEndTime)).get().getExamEndTime();
|
|
|
+ ExamRoomExamTimeDto examRoomExamTime = examRoomDao.getExamRoomExamTime(examRoom.getExaminationBasicId());
|
|
|
|
|
|
- if(Objects.isNull(examinationBasic.getActualExamStartTime())){
|
|
|
- examinationBasic.setActualExamStartTime(minStartTime);
|
|
|
- }
|
|
|
- if(Objects.isNull(examinationBasic.getActualExamEndTime())){
|
|
|
- examinationBasic.setActualExamEndTime(maxEndTime);
|
|
|
- }
|
|
|
- if(minStartTime.compareTo(examinationBasic.getActualExamStartTime())<0){
|
|
|
- examinationBasic.setActualExamStartTime(DateUtils.truncate(minStartTime, Calendar.DAY_OF_MONTH));
|
|
|
- }
|
|
|
- if(maxEndTime.compareTo(examinationBasic.getActualExamEndTime())>0){
|
|
|
- examinationBasic.setActualExamEndTime(DateUtils.ceiling(maxEndTime, Calendar.DAY_OF_MONTH));
|
|
|
+ if(Objects.isNull(examRoomExamTime)){
|
|
|
+ examinationBasic.setActualExamStartTime(null);
|
|
|
+ examinationBasic.setActualExamEndTime(null);
|
|
|
+ }else{
|
|
|
+ examinationBasic.setActualExamStartTime(DateUtils.truncate(examRoomExamTime.getExamStartTime(), Calendar.DAY_OF_MONTH));
|
|
|
+ examinationBasic.setActualExamEndTime(DateUtils.ceiling(examRoomExamTime.getExamEndTime(), Calendar.DAY_OF_MONTH));
|
|
|
}
|
|
|
- examRoomDao.batchInsert(examRooms);
|
|
|
+
|
|
|
examinationBasicDao.update(examinationBasic);
|
|
|
|
|
|
examTeacherSalaryService.teacherSalarySettlementWithExam(examinationBasic.getId());
|
|
@@ -257,10 +253,18 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
@Override
|
|
|
public ExamRoom updateExamRoom(ExamRoom examRoom) {
|
|
|
if(Objects.isNull(examRoom.getId())){
|
|
|
- throw new BizException("请指定教室");
|
|
|
+ throw new BizException("请指定考场");
|
|
|
}
|
|
|
|
|
|
ExamRoom existExamRoom = examRoomDao.get(examRoom.getId());
|
|
|
+ if(Objects.isNull(existExamRoom)){
|
|
|
+ throw new BizException("考场不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ ExaminationBasic examinationBasic = examinationBasicDao.get(examRoom.getExaminationBasicId().longValue());
|
|
|
+ if(Objects.isNull(examinationBasic)){
|
|
|
+ throw new BizException("考级项目不存在");
|
|
|
+ }
|
|
|
|
|
|
ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(existExamRoom.getExaminationBasicId(), examRoom.getOrganId());
|
|
|
if(Objects.isNull(examOrganizationRelation)||examOrganizationRelation.getIsAllowArrangeExam()==0){
|
|
@@ -316,6 +320,17 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
checkRoomTeachers(examRooms);
|
|
|
|
|
|
examRoomDao.update(examRoom);
|
|
|
+
|
|
|
+ ExamRoomExamTimeDto examRoomExamTime = examRoomDao.getExamRoomExamTime(examRoom.getExaminationBasicId());
|
|
|
+ if(Objects.isNull(examRoomExamTime)){
|
|
|
+ examinationBasic.setActualExamStartTime(null);
|
|
|
+ examinationBasic.setActualExamEndTime(null);
|
|
|
+ }else{
|
|
|
+ examinationBasic.setActualExamStartTime(DateUtils.truncate(examRoomExamTime.getExamStartTime(), Calendar.DAY_OF_MONTH));
|
|
|
+ examinationBasic.setActualExamEndTime(DateUtils.ceiling(examRoomExamTime.getExamEndTime(), Calendar.DAY_OF_MONTH));
|
|
|
+ }
|
|
|
+ examinationBasicDao.update(examinationBasic);
|
|
|
+
|
|
|
examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
|
|
|
return examRoom;
|
|
|
}
|
|
@@ -330,6 +345,11 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
|
|
|
ExamRoom examRoom = examRoomDao.get(examRoomIds.get(0));
|
|
|
|
|
|
+ ExaminationBasic examinationBasic = examinationBasicDao.get(examRoom.getExaminationBasicId().longValue());
|
|
|
+ if(Objects.isNull(examinationBasic)){
|
|
|
+ throw new BizException("考级项目不存在");
|
|
|
+ }
|
|
|
+
|
|
|
ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examRoom.getExaminationBasicId(), organId);
|
|
|
if(Objects.isNull(examOrganizationRelation)||examOrganizationRelation.getIsAllowArrangeExam()==0){
|
|
|
throw new BizException("无权操作");
|
|
@@ -346,6 +366,17 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
}
|
|
|
|
|
|
examRoomDao.batchDeleteExamRooms(examRoomIds);
|
|
|
+
|
|
|
+ ExamRoomExamTimeDto examRoomExamTime = examRoomDao.getExamRoomExamTime(examRoom.getExaminationBasicId());
|
|
|
+ if(Objects.isNull(examRoomExamTime)){
|
|
|
+ examinationBasic.setActualExamStartTime(null);
|
|
|
+ examinationBasic.setActualExamEndTime(null);
|
|
|
+ }else{
|
|
|
+ examinationBasic.setActualExamStartTime(DateUtils.truncate(examRoomExamTime.getExamStartTime(), Calendar.DAY_OF_MONTH));
|
|
|
+ examinationBasic.setActualExamEndTime(DateUtils.ceiling(examRoomExamTime.getExamEndTime(), Calendar.DAY_OF_MONTH));
|
|
|
+ }
|
|
|
+ examinationBasicDao.update(examinationBasic);
|
|
|
+
|
|
|
examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
|
|
|
}
|
|
|
|