|
@@ -410,20 +410,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
|
|
|
if(allCourseSchedules.size()>1){
|
|
|
//记录连续冲突的次数
|
|
|
- Integer repeatTimes=1;
|
|
|
+ Integer repeatTimes=0;
|
|
|
for (int i=1;i<allCourseSchedules.size();i++){
|
|
|
- for(int j=repeatTimes;j>0;j--){
|
|
|
+ for(int j=1;j<=repeatTimes+1&&j<=i;j++){
|
|
|
//当前课程
|
|
|
CourseSchedule preCourseSchedule = allCourseSchedules.get(i-j);
|
|
|
//后面一节课程
|
|
|
CourseSchedule backCourseSchedule = allCourseSchedules.get(i);
|
|
|
- if(!checkExistCourseSchedule
|
|
|
- &&existCourseScheduleIds.contains(preCourseSchedule.getId())
|
|
|
- &&existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
|
- continue;
|
|
|
- }
|
|
|
//判断前后两节课是否存在冲突
|
|
|
if(backCourseSchedule.getStartClassTime().before(preCourseSchedule.getEndClassTime())){
|
|
|
+ if(!checkExistCourseSchedule
|
|
|
+ &&existCourseScheduleIds.contains(preCourseSchedule.getId())
|
|
|
+ &&existCourseScheduleIds.contains(backCourseSchedule.getId())){
|
|
|
+ if(j==repeatTimes){
|
|
|
+ repeatTimes+=1;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
//提示信息
|
|
|
StringBuffer errInfo = new StringBuffer("在");
|
|
|
errInfo.append(DateUtil.dateToString(preCourseSchedule.getStartClassTime(),"yyyy-MM-dd HH:mm"));
|
|
@@ -502,9 +506,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
repeatTimes+=1;
|
|
|
}
|
|
|
}else{
|
|
|
- if(j==repeatTimes){
|
|
|
- repeatTimes=1;
|
|
|
- }
|
|
|
+ repeatTimes=j;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -694,23 +697,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
//修改后的课程助教编号列表
|
|
|
List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
|
//找出重复的助教编号
|
|
|
- List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
|
+ List<Integer> foundInCurrentCourseTeachingTeacherIds;
|
|
|
|
|
|
//需要重新生成课酬的助教列表
|
|
|
List<Integer> newCreateSalaryTeachingTeacherIds=new ArrayList<>();
|
|
|
|
|
|
- newTeachingTeacherIdList.forEach(newTeachingTeacherId->{
|
|
|
- //如果不在重复列表中,则需要生成对应的课酬记录
|
|
|
- if(!foundInCurrentCourseTeachingTeacherIds.contains(newTeachingTeacherId)){
|
|
|
- //计算修改后的助教的课酬
|
|
|
- newCreateSalaryTeachingTeacherIds.add(newTeachingTeacherId);
|
|
|
+ if(!CollectionUtils.isEmpty(newTeachingTeacherIdList)){
|
|
|
+ foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
|
|
|
|
- if(Objects.nonNull(newTeachingTeacherId)){
|
|
|
- beReplaceTeacherIds.add(newTeachingTeacherId);
|
|
|
+ newTeachingTeacherIdList.forEach(newTeachingTeacherId->{
|
|
|
+ //如果不在重复列表中,则需要生成对应的课酬记录
|
|
|
+ if(!foundInCurrentCourseTeachingTeacherIds.contains(newTeachingTeacherId)){
|
|
|
+ //计算修改后的助教的课酬
|
|
|
+ newCreateSalaryTeachingTeacherIds.add(newTeachingTeacherId);
|
|
|
+
|
|
|
+ if(Objects.nonNull(newTeachingTeacherId)){
|
|
|
+ beReplaceTeacherIds.add(newTeachingTeacherId);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
|
|
|
+ });
|
|
|
+ newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
|
|
|
+ }
|
|
|
+
|
|
|
if(!newCourseSchedule.isBishopTeacherSalaryNotCreate()||!CollectionUtils.isEmpty(newCreateSalaryTeachingTeacherIds)){
|
|
|
//如果主教或者助教发生了变化,则需要重新生成课酬
|
|
|
needCreateCourseScheduleTeacherSalaryCourse.add(newCourseSchedule);
|