Browse Source

1、乐团课课酬结算调整

Joburgess 5 years ago
parent
commit
175497616e

+ 19 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -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)){