|
@@ -173,6 +173,10 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
teacherIds.add(examRoom.getMainTeacherUserId());
|
|
|
if(StringUtils.isNotBlank(examRoom.getAssistantTeacherUserIdList())){
|
|
|
teacherIds.addAll(Arrays.stream(examRoom.getAssistantTeacherUserIdList().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList()));
|
|
|
+ HashSet<Integer> noRepeatTeacherIds = new HashSet<>(teacherIds);
|
|
|
+ if(teacherIds.size()!=noRepeatTeacherIds.size()){
|
|
|
+ throw new BizException("主考老师与监考老师不可重复");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Map<Integer, String> teacherIdNameMap = this.getMap("sys_user", "id_", "real_name_", teacherIds, Integer.class, String.class);
|
|
@@ -239,6 +243,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
throw new BizException("请指定教室");
|
|
|
}
|
|
|
|
|
|
+ ExamRoom existExamRoom = examRoomDao.get(examRoom.getId());
|
|
|
+
|
|
|
if(ExamModeEnum.ONLINE.equals(examRoom.getExamMode())){
|
|
|
examRoom.setExamLocationId(null);
|
|
|
}
|
|
@@ -247,6 +253,10 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
teacherIds.add(examRoom.getMainTeacherUserId());
|
|
|
if(StringUtils.isNotBlank(examRoom.getAssistantTeacherUserIdList())){
|
|
|
teacherIds.addAll(Arrays.stream(examRoom.getAssistantTeacherUserIdList().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList()));
|
|
|
+ HashSet<Integer> noRepeatTeacherIds = new HashSet<>(teacherIds);
|
|
|
+ if(teacherIds.size()!=noRepeatTeacherIds.size()){
|
|
|
+ throw new BizException("主考老师与监考老师不可重复");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Map<Integer, String> teacherIdNameMap = this.getMap("sys_user", "id_", "real_name_", teacherIds, Integer.class, String.class);
|
|
@@ -265,7 +275,14 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
Map<Integer, String> subjectIdNameMap = this.getMap("subject", "id_", "name_", subjectIds, Integer.class, String.class);
|
|
|
examRoom.setSubjectNameList(StringUtils.join(subjectIdNameMap.values(),","));
|
|
|
|
|
|
+ examRoom.setExamStartTime(existExamRoom.getExamStartTime());
|
|
|
+ examRoom.setExamEndTime(existExamRoom.getExamEndTime());
|
|
|
+
|
|
|
+ List<ExamRoom> examRooms=new ArrayList<>(Arrays.asList(examRoom));
|
|
|
+ checkRoomTeachers(examRooms);
|
|
|
+
|
|
|
examRoomDao.update(examRoom);
|
|
|
+ examTeacherSalaryService.teacherSalarySettlementWithExam(examRoom.getExaminationBasicId());
|
|
|
return examRoom;
|
|
|
}
|
|
|
|
|
@@ -398,6 +415,9 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
|
|
|
}
|
|
|
ExamRoom preExamRoom=teacherRooms.get(i-1);
|
|
|
ExamRoom currentExamRoom = teacherRooms.get(i);
|
|
|
+ if(Objects.nonNull(preExamRoom.getId())&&preExamRoom.getId().equals(currentExamRoom.getId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if(preExamRoom.getExamEndTime().compareTo(currentExamRoom.getExamStartTime())>0){
|
|
|
SysUser sysUser = sysUserDao.get(teacherRoomEntry.getKey());
|
|
|
throw new BizException("{}教师时间存在冲突", sysUser.getRealName());
|