|
@@ -383,6 +383,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
.collect(Collectors.groupingBy(StudentAttendance::getCourseScheduleId, Collectors.counting()));
|
|
|
}
|
|
|
|
|
|
+ //课程对应乐团结算方式集合
|
|
|
+ List<Map<String, String>> musicGroupSettlementTypeByCourse = courseScheduleTeacherSalaryDao.findMusicGroupSettlementTypeByCourse(courseScheduleIds);
|
|
|
+ Map<String, String> musicGroupSettlementsMap = MapUtil.convertMybatisMap(musicGroupSettlementTypeByCourse);
|
|
|
+
|
|
|
//所有老师编号
|
|
|
List<Integer> allTeacherIds = courseScheduleTeacherSalaries.stream()
|
|
|
.map(CourseScheduleTeacherSalary::getUserId)
|
|
@@ -427,7 +431,40 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
teacherSalary = BigDecimal.ZERO;
|
|
|
}
|
|
|
}else if(CourseSchedule.CourseScheduleType.HIGH.equals(courseSchedule.getType())){
|
|
|
+ //根据课程类型获取对应的默认课酬设置列表
|
|
|
+ List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithCourseType = teacherDefaultMusicGroupSalariesGroupByCourseType.get(courseSchedule.getType());
|
|
|
+ if (CollectionUtils.isEmpty(teacherDefaultMusicGroupSalariesWithCourseType)) {
|
|
|
+ LOGGER.error("存在未指定结算方式的课程类型[{}]", courseScheduleTeacherSalary.getId());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
+ //根据教师编号将对应结算方式下的默认课酬设置分组
|
|
|
+ Map<Integer, TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesGroupByTeacherId = teacherDefaultMusicGroupSalariesWithCourseType.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getUserId, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
|
|
|
+
|
|
|
+ TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(courseScheduleTeacherSalary.getUserId());
|
|
|
+
|
|
|
+ Long normalStudentNum = courseNormalStudentsMap.get(courseSchedule.getId());
|
|
|
+ if(Objects.isNull(normalStudentNum)){
|
|
|
+ normalStudentNum = Long.valueOf(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ //结算方式
|
|
|
+ String settlementType = musicGroupSettlementsMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+ if(StringUtils.isEmpty(settlementType)){
|
|
|
+ LOGGER.error("未指定课酬结算方式[{}]", courseScheduleTeacherSalary.getId());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ teacherSalary = TeachTypeEnum.BISHOP.equals(courseScheduleTeacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher30MinSalary();
|
|
|
+ if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
+ teacherSalary = TeachTypeEnum.BISHOP.equals(courseScheduleTeacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher90MinSalary();
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Objects.isNull(teacherSalary)){
|
|
|
+ LOGGER.error("教师课酬设置异常{}", courseSchedule.getId());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ teacherSalary = teacherSalary.multiply(new BigDecimal(normalStudentNum));
|
|
|
}else{
|
|
|
teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
|
|
|
}
|