|
@@ -289,6 +289,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
existCourseSchedules=existCourseSchedules.stream()
|
|
existCourseSchedules=existCourseSchedules.stream()
|
|
.filter(courseSchedule -> !updateCourseScheduleIds.contains(courseSchedule.getId()))
|
|
.filter(courseSchedule -> !updateCourseScheduleIds.contains(courseSchedule.getId()))
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
+ //新课程对应的班级编号列表
|
|
|
|
+ List<Integer> newCourseScheduleClassGroupIds = courseSchedules
|
|
|
|
+ .stream()
|
|
|
|
+ .map(CourseSchedule::getClassGroupId)
|
|
|
|
+ .distinct()
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
List<Long> existCourseScheduleIds = existCourseSchedules.stream()
|
|
List<Long> existCourseScheduleIds = existCourseSchedules.stream()
|
|
.map(CourseSchedule::getId)
|
|
.map(CourseSchedule::getId)
|
|
@@ -313,7 +319,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
.stream()
|
|
.stream()
|
|
.collect(Collectors.groupingBy(ClassGroupStudentMapper::getClassGroupId));
|
|
.collect(Collectors.groupingBy(ClassGroupStudentMapper::getClassGroupId));
|
|
|
|
|
|
- //根据班级获取助教id关联集合
|
|
|
|
|
|
+ //根据课程获取助教id关联集合
|
|
List<IntegerAndIntegerListDto> courseScheduleTeachingTeacherIdList = new ArrayList<>();
|
|
List<IntegerAndIntegerListDto> courseScheduleTeachingTeacherIdList = new ArrayList<>();
|
|
if(!CollectionUtils.isEmpty(existCourseScheduleIds)){
|
|
if(!CollectionUtils.isEmpty(existCourseScheduleIds)){
|
|
courseScheduleTeachingTeacherIdList = courseScheduleDao.findCourseScheduleIdAndUserIdsMap(existCourseScheduleIds, TeachTypeEnum.TEACHING.getCode());
|
|
courseScheduleTeachingTeacherIdList = courseScheduleDao.findCourseScheduleIdAndUserIdsMap(existCourseScheduleIds, TeachTypeEnum.TEACHING.getCode());
|
|
@@ -321,6 +327,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
Map<Integer, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
|
|
Map<Integer, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
|
|
.collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
|
|
.collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
|
|
|
|
|
|
|
|
+ //班级助教关联ID集合
|
|
|
|
+ List<IntegerAndIntegerListDto> classGroupAndUserIdsMap = courseScheduleDao.findClassGroupAndUserIdsMap(newCourseScheduleClassGroupIds, TeachTypeEnum.TEACHING.getCode());
|
|
|
|
+ Map<Integer, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
|
|
|
|
+ .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
|
|
|
|
+
|
|
//将课程计划按照开课时间排序
|
|
//将课程计划按照开课时间排序
|
|
allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
if(allCourseSchedules.size()>1){
|
|
if(allCourseSchedules.size()>1){
|
|
@@ -335,7 +346,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
if(!checkExistCourseSchedule
|
|
if(!checkExistCourseSchedule
|
|
&&existCourseScheduleIds.contains(preCourseSchedule.getId())
|
|
&&existCourseScheduleIds.contains(preCourseSchedule.getId())
|
|
&&existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
&&existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
- return;
|
|
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
//判断前后两节课是否存在冲突
|
|
//判断前后两节课是否存在冲突
|
|
if(backCourseSchedule.getStartClassTime().before(preCourseSchedule.getEndClassTime())){
|
|
if(backCourseSchedule.getStartClassTime().before(preCourseSchedule.getEndClassTime())){
|
|
@@ -353,13 +364,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
throw new BizException(errInfo.toString());
|
|
throw new BizException(errInfo.toString());
|
|
}
|
|
}
|
|
//助教冲突检测
|
|
//助教冲突检测
|
|
- if(existCourseScheduleIds.contains(preCourseSchedule.getId())){
|
|
|
|
|
|
+ if(Objects.isNull(preCourseSchedule.getId())){
|
|
|
|
+ IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(preCourseSchedule.getClassGroupId());
|
|
|
|
+ if(Objects.nonNull(integerAndIntegerListDto)){
|
|
|
|
+ preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
|
|
+ }
|
|
|
|
+ }else if(existCourseScheduleIds.contains(preCourseSchedule.getId())){
|
|
IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
|
|
IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
|
|
if(Objects.nonNull(integerAndIntegerListDto)){
|
|
if(Objects.nonNull(integerAndIntegerListDto)){
|
|
preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
|
|
|
|
+ if(Objects.isNull(backCourseSchedule.getId())){
|
|
|
|
+ IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(backCourseSchedule.getClassGroupId());
|
|
|
|
+ if(Objects.nonNull(integerAndIntegerListDto)){
|
|
|
|
+ backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
|
|
+ }
|
|
|
|
+ }else if(existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
|
|
IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
|
|
if(Objects.nonNull(integerAndIntegerListDto)){
|
|
if(Objects.nonNull(integerAndIntegerListDto)){
|
|
backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
|
|
@@ -403,6 +424,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
errInfo.append("安排的课程存在学生冲突");
|
|
errInfo.append("安排的课程存在学生冲突");
|
|
throw new BizException(errInfo.toString());
|
|
throw new BizException(errInfo.toString());
|
|
}
|
|
}
|
|
|
|
+ System.out.println(j==repeatTimes);
|
|
if(j==repeatTimes){
|
|
if(j==repeatTimes){
|
|
repeatTimes+=1;
|
|
repeatTimes+=1;
|
|
}
|
|
}
|