|
@@ -2833,6 +2833,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
return BaseController.succeed();
|
|
|
}
|
|
|
|
|
|
+ Set<String> musicGroupIds = oldCourses.stream().filter(c -> MUSIC.equals(c.getGroupType())).map(CourseSchedule::getMusicGroupId).collect(Collectors.toSet());
|
|
|
+ if(!CollectionUtils.isEmpty(musicGroupIds)){
|
|
|
+ List<MusicGroup> musicGroups = musicGroupDao.getMusicGroupByIds(new ArrayList<>(musicGroupIds));
|
|
|
+ if(CollectionUtils.isEmpty(musicGroups)){
|
|
|
+ throw new BizException("调整失败:乐团信息异常");
|
|
|
+ }
|
|
|
+ long errMusicGroupNum = musicGroups.stream().filter(m -> !MusicGroupStatusEnum.PROGRESS.equals(m.getStatus())).count();
|
|
|
+ if(errMusicGroupNum>0){
|
|
|
+ throw new BizException("调整失败:调整的课程所在乐团处于非进行中");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseAdjustInfo.getCourseScheduleIds());
|
|
|
Map<Long, List<CourseScheduleTeacherSalary>> courseSalaryListMap = new HashMap<>();
|
|
|
if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaryList)){
|
|
@@ -2858,6 +2870,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
//获取主教编号
|
|
|
Integer mainTeacherId = null;
|
|
|
if(!CollectionUtils.isEmpty(courseAdjustInfo.getClassGroupTeacherMapperList())){
|
|
|
+ Map<Integer, Long> userNumMap = courseAdjustInfo.getClassGroupTeacherMapperList().stream().collect(Collectors.groupingBy(ClassGroupTeacherMapper::getUserId, Collectors.counting()));
|
|
|
+ if(userNumMap.containsValue(Long.valueOf("2"))){
|
|
|
+ throw new BizException("主教与助教不可重复");
|
|
|
+ }
|
|
|
ClassGroupTeacherMapper classGroupTeacherMapper = courseAdjustInfo.getClassGroupTeacherMapperList().stream().filter(c -> TeachTypeEnum.BISHOP.equals(c.getTeacherRole())).findAny().get();
|
|
|
if(Objects.nonNull(classGroupTeacherMapper)){
|
|
|
mainTeacherId = classGroupTeacherMapper.getUserId();
|
|
@@ -2866,7 +2882,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
//上课日期变更
|
|
|
//间隔天数
|
|
|
- int betweenDays = 0, initBetweenDays = 0;
|
|
|
+ int betweenDays = 0;
|
|
|
//节假日
|
|
|
Set<String> holidayDays = new HashSet<>();
|
|
|
if(Objects.nonNull(courseAdjustInfo.getPauseDate())&&Objects.nonNull(courseAdjustInfo.getRecoveryDate())){
|
|
@@ -2881,7 +2897,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
LocalDate recoveryDate = LocalDate.parse(courseAdjustInfo.getRecoveryDate(), DateUtil.dateFormatter);
|
|
|
|
|
|
betweenDays = (int) (recoveryDate.toEpochDay()-pauseDate.toEpochDay());
|
|
|
- initBetweenDays = betweenDays;
|
|
|
}
|
|
|
|
|
|
//上课时间变更
|
|
@@ -2907,7 +2922,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
LocalDate classDate = LocalDateTime.ofInstant(oldCourses.get(i).getClassDate().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
classDate = classDate.plusDays(betweenDays);
|
|
|
if (courseAdjustInfo.getHoliday() && holidayDays.contains(classDate.toString())) {
|
|
|
- betweenDays=betweenDays+initBetweenDays;
|
|
|
+ betweenDays=betweenDays+7;
|
|
|
i=i-1;
|
|
|
continue;
|
|
|
}
|
|
@@ -2941,15 +2956,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
if(Objects.nonNull(courseAdjustInfo.getTeachMode())&&!courseAdjustInfo.getTeachMode().equals(oldCourses.get(i).getTeachMode())){
|
|
|
oldCourses.get(i).setTeachMode(courseAdjustInfo.getTeachMode());
|
|
|
- if(TeachModeEnum.ONLINE.equals(courseAdjustInfo.getTeachMode())){
|
|
|
- oldCourses.get(i).setSchoolId(null);
|
|
|
- }
|
|
|
if(VIP.equals(oldCourses.get(i).getGroupType())){
|
|
|
changeSalaryTeachTypes.add(TeachTypeEnum.BISHOP);
|
|
|
courseScheduleTeacherSalaryDao.deleteWithCourseAndTeachRole(Arrays.asList(oldCourses.get(i).getId()), TeachTypeEnum.BISHOP);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if(TeachModeEnum.ONLINE.equals(courseAdjustInfo.getTeachMode())){
|
|
|
+ oldCourses.get(i).setSchoolId(null);
|
|
|
+ }
|
|
|
+
|
|
|
//主教变更
|
|
|
if(Objects.nonNull(mainTeacherId)){
|
|
|
oldCourses.get(i).setActualTeacherId(mainTeacherId);
|
|
@@ -3390,7 +3406,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //课程冲突检测
|
|
|
+ Set<String> musicGroupIds = oldCourseScheduleList.stream().filter(c -> MUSIC.equals(c.getGroupType())).map(CourseSchedule::getMusicGroupId).collect(Collectors.toSet());
|
|
|
+ if(!CollectionUtils.isEmpty(musicGroupIds)){
|
|
|
+ List<MusicGroup> musicGroups = musicGroupDao.getMusicGroupByIds(new ArrayList<>(musicGroupIds));
|
|
|
+ if(CollectionUtils.isEmpty(musicGroups)){
|
|
|
+ throw new BizException("调整失败:乐团信息异常");
|
|
|
+ }
|
|
|
+ long errMusicGroupNum = musicGroups.stream().filter(m -> !MusicGroupStatusEnum.PROGRESS.equals(m.getStatus())).count();
|
|
|
+ if(errMusicGroupNum>0){
|
|
|
+ throw new BizException("调整失败:调整的课程所在乐团处于非进行中");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //课程冲突检测
|
|
|
checkNewCourseSchedules(newCourseSchedules, false,false);
|
|
|
|
|
|
Map<Long, List<TeacherAttendance>> teacherAttendanceMap = new HashMap<Long, List<TeacherAttendance>>();
|
|
@@ -3535,10 +3563,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
|
|
|
|
if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(newCourseSchedule.getMusicGroupId());
|
|
|
- if(Objects.isNull(musicGroup)||!MusicGroupStatusEnum.PROGRESS.equals(musicGroup.getStatus())){
|
|
|
- throw new BizException("非进行中乐团不可调整课程");
|
|
|
- }
|
|
|
// 所有教师列表
|
|
|
List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
|
|
|
teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
|