|
@@ -402,7 +402,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
|
|
|
//教师对应的每个教学点的总课时
|
|
|
- Map<Integer, Map<Integer, Integer>> teacherClassMinutesMap = new HashMap<>();
|
|
|
+ Map<Integer, Map<Integer, Map<Date, Integer>>> teacherClassMinutesMap = new HashMap<>();
|
|
|
//计算老师对应的总课时
|
|
|
teacherSalarysByTeacher.forEach((teacherId, teacherSalarys) -> {
|
|
|
//当前老师所在课程的编号列表
|
|
@@ -416,19 +416,26 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//根据教学点将当前老师的课程分组
|
|
|
Map<Integer, List<CourseSchedule>> schoolCourseSchedules = currentTeacherCourseSchedules.stream()
|
|
|
.collect(Collectors.groupingBy(CourseSchedule::getSchoolId));
|
|
|
- Map<Integer, Integer> schoolClassMinutesMap = new HashMap<>();
|
|
|
+ Map<Integer, Map<Date,Integer>> schoolClassMinutesMap = new HashMap<>();
|
|
|
for (Integer schoolId : schoolCourseSchedules.keySet()) {
|
|
|
- Integer classMinutes = 0;
|
|
|
//当前教学点的课程
|
|
|
List<CourseSchedule> currentSchoolCourseSchedules = schoolCourseSchedules.get(schoolId);
|
|
|
- for (CourseSchedule courseSchedule : currentSchoolCourseSchedules) {
|
|
|
- //如果课程为单机课或者为合奏课,则算入总课时长
|
|
|
- if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE)
|
|
|
- || courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
- classMinutes += DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
|
|
|
+ Map<Date, List<CourseSchedule>> courseScheduleWithDate = currentSchoolCourseSchedules.stream()
|
|
|
+ .collect(Collectors.groupingBy(CourseSchedule::getClassDate));
|
|
|
+ Map<Date,Integer> dataClassMinutesMpa = new HashMap<>();
|
|
|
+ for (Date classDate:courseScheduleWithDate.keySet()){
|
|
|
+ Integer classMinutes = 0;
|
|
|
+ List<CourseSchedule> classCourses = courseScheduleWithDate.get(classDate);
|
|
|
+ for (CourseSchedule courseSchedule : classCourses) {
|
|
|
+ //如果课程为单机课或者为合奏课,则算入总课时长
|
|
|
+ if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE)
|
|
|
+ || courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
+ classMinutes += DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
|
|
|
+ }
|
|
|
}
|
|
|
+ dataClassMinutesMpa.put(classDate, classMinutes);
|
|
|
}
|
|
|
- schoolClassMinutesMap.put(schoolId, classMinutes);
|
|
|
+ schoolClassMinutesMap.put(schoolId, dataClassMinutesMpa);
|
|
|
}
|
|
|
teacherClassMinutesMap.put(teacherId, schoolClassMinutesMap);
|
|
|
});
|
|
@@ -444,8 +451,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
boolean durationIsChange = false;
|
|
|
//当前课酬对应的课程信息
|
|
|
CourseSchedule courseSchedule = courseScheduleIdMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
- Map<Integer, Integer> schoolClassMinutesMap = teacherClassMinutesMap.get(courseScheduleTeacherSalary.getUserId());
|
|
|
- Integer schoolClassMinutes = schoolClassMinutesMap.get(courseSchedule.getSchoolId());
|
|
|
+ Map<Integer, Map<Date,Integer>> schoolClassMinutesMap = teacherClassMinutesMap.get(courseScheduleTeacherSalary.getUserId());
|
|
|
+ Map<Date,Integer> classDateMinutes = schoolClassMinutesMap.get(courseSchedule.getSchoolId());
|
|
|
+ Integer schoolClassMinutes = classDateMinutes.get(courseSchedule.getClassDate());
|
|
|
//结算方式
|
|
|
String settlementType = musicGroupSettlementsMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
if(StringUtils.isEmpty(settlementType)){
|