| 
					
				 | 
			
			
				@@ -94,6 +94,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private JiaRiFeignService jiaRiFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SysConfigService sysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private CourseScheduleService courseScheduleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -436,7 +440,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //老师课酬没有设置,设置成0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size()==0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (type.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String paramName = courseType.equals("SINGLE") ? "sigle_gradient_settlement_rule" : (courseType.equals("MIX") ? "max_gradient_settlement_rule" : "high_gradient_settlement_rule"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         SysConfig sysConfig = sysConfigService.findByParamName(paramName); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -594,18 +598,42 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ClassGroup addStudent(ClassGroup classGroup, int userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ClassGroup addStudent(ClassGroup classGroup, Integer userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //增加班级人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //1、增加班级人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroup.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupDao.addStudentNum(classGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //插入关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //2、插入关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupStudentMapper.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupStudentMapper.setUserId(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupStudentMapper.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroupStudentMapperDao.insert(classGroupStudentMapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //3、学生加入级未开始课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal coursePrice = new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (CourseSchedule courseSchedule : courseScheduleList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setUserId(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setExpectPrice(coursePrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setClassGroupId(classGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayment.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPayments.add(courseScheduleStudentPayment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (courseScheduleStudentPayments.size() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //3、加入班级群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return classGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -636,14 +664,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void addMusicGroupTeam(Integer teacherId, String musicGroupId, Integer improventClassesNum) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SysUser sysUser = sysUserFeignService.queryUserInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(sysUser == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new Exception("用户信息获取失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MusicGroup musicGroup = musicGroupDao.get(musicGroupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(musicGroup == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (musicGroup == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new Exception("乐团信息不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new Exception("当前乐团状态不允许此操作"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //所有学员都已经分配 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -661,7 +689,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         musicGroup.setImproventClassesNum(improventClassesNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         musicGroup.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         musicGroupDao.update(musicGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"成团确认(学员、班级、教学主管已设置)",sysUser.getId(),"")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "成团确认(学员、班级、教学主管已设置)", sysUser.getId(), "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -830,7 +858,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<StudentAttendanceViewDto> otherStudent = studentByCourse.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                &&!StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        && !StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         truantStudent.addAll(otherStudent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         truantStudent.addAll(leaveStudent); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -939,8 +967,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -971,19 +999,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1148,8 +1176,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1180,19 +1208,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1356,8 +1384,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //课时长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .toMinutes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1388,19 +1416,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //对应基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //基准课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //阶梯课酬 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         //课程时长与结算单位时长占比 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1463,13 +1491,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String join = StringUtils.join(classGroups, ","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //获取主教老师 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Integer, String> masterTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"))),HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, String> masterTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"))), HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //获取助教老师 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Integer, String> subTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"))),HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, String> subTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"))), HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //获取在读人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join))),HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join))), HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //获取退班人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join))),HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join))), HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dataList.forEach(e -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 e.setMasterTeacher(masterTeachers.get(e.getClassGroupId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 e.setSubTeacher(subTeachers.get(e.getClassGroupId())); 
			 |