|
@@ -410,7 +410,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, Date groupEndDate, Date groupStartDate, List<CourseTimeDto> teachingArrangementList,
|
|
|
- TeachModeEnum teachMode, CourseScheduleType type, Integer schoolId, boolean isJumpHoliday) {
|
|
|
+ TeachModeEnum teachMode, CourseScheduleType type, Integer schoolId, boolean isJumpHoliday, List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaries) {
|
|
|
ClassGroup classGroup = classGroupService.get(classGroupId);
|
|
|
if (classGroup == null) {
|
|
|
throw new BizException("排课失败,班级信息不存在");
|
|
@@ -432,6 +432,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
throw new BizException("请设置课时安排");
|
|
|
}
|
|
|
|
|
|
+ if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaries)){
|
|
|
+ oldCourseScheduleTeacherSalaries.sort(Comparator.comparing(c->c.getCourseSchedule().getStartClassTime()));
|
|
|
+ }
|
|
|
+
|
|
|
BigDecimal subSidy = new BigDecimal(0);
|
|
|
// 查询教学点补贴
|
|
|
if (schoolId != null) {
|
|
@@ -627,6 +631,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
courseScheduleDao.insert(courseSchedule);
|
|
|
courseScheduleList.add(courseSchedule);
|
|
|
|
|
|
+ CourseScheduleTeacherSalary oldCourseMainTeacherSalary = null;
|
|
|
+ if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaries)){
|
|
|
+ oldCourseMainTeacherSalary = oldCourseScheduleTeacherSalaries.get(courseScheduleList.size()-1);
|
|
|
+ }
|
|
|
+
|
|
|
// 课程与老师薪水表
|
|
|
for (ClassGroupTeacherMapper cgtm : classGroupTeacherMapperList) {
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
@@ -635,7 +644,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
courseScheduleTeacherSalary.setTeacherRole(cgtm.getTeacherRole());
|
|
|
courseScheduleTeacherSalary.setUserId(cgtm.getUserId());
|
|
|
- if (type == CourseScheduleType.PRACTICE) {
|
|
|
+ if(TeachTypeEnum.BISHOP.equals(cgtm.getTeacherRole())&&Objects.nonNull(oldCourseMainTeacherSalary)&&!oldCourseMainTeacherSalary.getEnableChangeSalary()){
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(oldCourseMainTeacherSalary.getExpectSalary());
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(oldCourseMainTeacherSalary.getSubsidy());
|
|
|
+ courseScheduleTeacherSalary.setEnableChangeSalary(oldCourseMainTeacherSalary.getEnableChangeSalary());
|
|
|
+ }else if (type == CourseScheduleType.PRACTICE) {
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.parseLong(classGroup.getMusicGroupId()));
|
|
|
if(practiceGroup == null){
|
|
|
throw new BizException("课程组不存在");
|
|
@@ -874,6 +887,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ Map<Long, CourseSchedule> idCourseMap = courseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c, (c1, c2) -> c1));
|
|
|
+ List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
|
|
|
+ oldCourseScheduleTeacherSalaries = oldCourseScheduleTeacherSalaries.stream().filter(c->TeachTypeEnum.BISHOP.equals(c.getTeacherRole())).collect(Collectors.toList());
|
|
|
+ oldCourseScheduleTeacherSalaries.forEach(o->o.setCourseSchedule(idCourseMap.get(o.getCourseScheduleId())));
|
|
|
+
|
|
|
courseScheduleDao.batchDeleteAllCourseSchedules(courseScheduleIds);
|
|
|
courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
|
courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
|
|
@@ -902,7 +920,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
// 批量加课
|
|
|
batchAddCourseSchedule(classGroupId, batchInsertCoursesDto.getCourseScheduleIdList().size(), batchInsertCoursesDto.getStartDate(), endDate, startDate,
|
|
|
batchInsertCoursesDto.getTeachingArrangementList(), batchInsertCoursesDto.getTeachMode(), batchInsertCoursesDto.getType(),
|
|
|
- batchInsertCoursesDto.getSchoolId(), batchInsertCoursesDto.getIsJumpHoliday());
|
|
|
+ batchInsertCoursesDto.getSchoolId(), batchInsertCoursesDto.getIsJumpHoliday(), oldCourseScheduleTeacherSalaries);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -2973,6 +2991,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(courseSalaryListMap.containsKey(oldCourses.get(i).getId())){
|
|
|
List<CourseScheduleTeacherSalary> ctss = courseSalaryListMap.get(oldCourses.get(i).getId());
|
|
|
for (CourseScheduleTeacherSalary teacherSalary : ctss) {
|
|
|
+ //课酬调整后不能更新课酬
|
|
|
+ if(!teacherSalary.getEnableChangeSalary()){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
courseScheduleTeacherSalaryService.updateSingleCourseTeacherSalary(oldCourses.get(i), teacherSalary);
|
|
|
}
|
|
|
courseScheduleTeacherSalaryDao.batchUpdate(ctss);
|
|
@@ -3617,14 +3639,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
|
|
|
Map<Long, List<CourseScheduleTeacherSalary>> courseSalaryListMap = new HashMap<>();
|
|
|
- Boolean changeMainTeacherSalary = false;
|
|
|
CourseScheduleTeacherSalary mainTeacherSalary = null;
|
|
|
if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaryList)){
|
|
|
courseSalaryListMap = oldCourseScheduleTeacherSalaryList.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
|
|
|
List<CourseScheduleTeacherSalary> mainTeacherSalarys = oldCourseScheduleTeacherSalaryList.stream().filter(t -> TeachTypeEnum.BISHOP.equals(t.getTeacherRole())).collect(Collectors.toList());
|
|
|
if(!CollectionUtils.isEmpty(mainTeacherSalarys)){
|
|
|
mainTeacherSalary = mainTeacherSalarys.get(0);
|
|
|
- changeMainTeacherSalary = mainTeacherSalary.getEnableChangeSalary();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -3645,7 +3665,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
ts.setUpdateTime(date);
|
|
|
ts.setUserId(teacherId);
|
|
|
|
|
|
- if(TeachTypeEnum.BISHOP.equals(ts.getTeacherRole())&&!changeMainTeacherSalary){
|
|
|
+ if(Objects.nonNull(mainTeacherSalary)&&!mainTeacherSalary.getEnableChangeSalary()){
|
|
|
ts.setExpectSalary(mainTeacherSalary.getExpectSalary());
|
|
|
ts.setSubsidy(mainTeacherSalary.getSubsidy());
|
|
|
}else{
|