|  | @@ -94,6 +94,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |      private JiaRiFeignService jiaRiFeignService;
 |  |      private JiaRiFeignService jiaRiFeignService;
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  |      private SysConfigService sysConfigService;
 |  |      private SysConfigService sysConfigService;
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private CourseScheduleService courseScheduleService;
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
										
											
												
													
														|  | @@ -436,7 +440,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                  List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type);
 |  |                  List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type);
 | 
											
												
													
														|  |                  //老师课酬没有设置,设置成0
 |  |                  //老师课酬没有设置,设置成0
 | 
											
												
													
														|  | -                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size()==0) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size() == 0) {
 | 
											
												
													
														|  |                      if (type.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
 |  |                      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");
 |  |                          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);
 |  |                          SysConfig sysConfig = sysConfigService.findByParamName(paramName);
 | 
											
										
											
												
													
														|  | @@ -594,18 +598,42 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @Transactional(rollbackFor = Exception.class)
 | 
											
												
													
														|  | -    public ClassGroup addStudent(ClassGroup classGroup, int userId) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    public ClassGroup addStudent(ClassGroup classGroup, Integer userId) {
 | 
											
												
													
														|  |          Date date = new Date();
 |  |          Date date = new Date();
 | 
											
												
													
														|  | -        //增加班级人数
 |  | 
 | 
											
												
													
														|  | 
 |  | +        //1、增加班级人数
 | 
											
												
													
														|  |          classGroup.setCreateTime(date);
 |  |          classGroup.setCreateTime(date);
 | 
											
												
													
														|  |          classGroupDao.addStudentNum(classGroup);
 |  |          classGroupDao.addStudentNum(classGroup);
 | 
											
												
													
														|  | -        //插入关联关系
 |  | 
 | 
											
												
													
														|  | 
 |  | +        //2、插入关联关系
 | 
											
												
													
														|  |          ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
 |  |          ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
 | 
											
												
													
														|  |          classGroupStudentMapper.setClassGroupId(classGroup.getId());
 |  |          classGroupStudentMapper.setClassGroupId(classGroup.getId());
 | 
											
												
													
														|  |          classGroupStudentMapper.setUserId(userId);
 |  |          classGroupStudentMapper.setUserId(userId);
 | 
											
												
													
														|  |          classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 |  |          classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
											
												
													
														|  |          classGroupStudentMapper.setCreateTime(date);
 |  |          classGroupStudentMapper.setCreateTime(date);
 | 
											
												
													
														|  |          classGroupStudentMapperDao.insert(classGroupStudentMapper);
 |  |          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;
 |  |          return classGroup;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -636,14 +664,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @Transactional(rollbackFor = Exception.class)
 | 
											
												
													
														|  |      public void addMusicGroupTeam(Integer teacherId, String musicGroupId, Integer improventClassesNum) throws Exception {
 |  |      public void addMusicGroupTeam(Integer teacherId, String musicGroupId, Integer improventClassesNum) throws Exception {
 | 
											
												
													
														|  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 |  |          SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
											
												
													
														|  | -        if(sysUser == null){
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (sysUser == null) {
 | 
											
												
													
														|  |              throw new Exception("用户信息获取失败");
 |  |              throw new Exception("用户信息获取失败");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 |  |          MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 | 
											
												
													
														|  | -        if(musicGroup == null){
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (musicGroup == null) {
 | 
											
												
													
														|  |              throw new Exception("乐团信息不存在");
 |  |              throw new Exception("乐团信息不存在");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        if(musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE){
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE) {
 | 
											
												
													
														|  |              throw new Exception("当前乐团状态不允许此操作");
 |  |              throw new Exception("当前乐团状态不允许此操作");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          //所有学员都已经分配
 |  |          //所有学员都已经分配
 | 
											
										
											
												
													
														|  | @@ -661,7 +689,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |          musicGroup.setImproventClassesNum(improventClassesNum);
 |  |          musicGroup.setImproventClassesNum(improventClassesNum);
 | 
											
												
													
														|  |          musicGroup.setUpdateTime(new Date());
 |  |          musicGroup.setUpdateTime(new Date());
 | 
											
												
													
														|  |          musicGroupDao.update(musicGroup);
 |  |          musicGroupDao.update(musicGroup);
 | 
											
												
													
														|  | -        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"成团确认(学员、班级、教学主管已设置)",sysUser.getId(),""));
 |  | 
 | 
											
												
													
														|  | 
 |  | +        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "成团确认(学员、班级、教学主管已设置)", sysUser.getId(), ""));
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
										
											
												
													
														|  | @@ -830,7 +858,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |                  .collect(Collectors.toList());
 |  |                  .collect(Collectors.toList());
 | 
											
												
													
														|  |          List<StudentAttendanceViewDto> otherStudent = studentByCourse.stream()
 |  |          List<StudentAttendanceViewDto> otherStudent = studentByCourse.stream()
 | 
											
												
													
														|  |                  .filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())
 |  |                  .filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())
 | 
											
												
													
														|  | -                                                &&!StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        && !StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
 | 
											
												
													
														|  |                  .collect(Collectors.toList());
 |  |                  .collect(Collectors.toList());
 | 
											
												
													
														|  |          truantStudent.addAll(otherStudent);
 |  |          truantStudent.addAll(otherStudent);
 | 
											
												
													
														|  |          truantStudent.addAll(leaveStudent);
 |  |          truantStudent.addAll(leaveStudent);
 | 
											
										
											
												
													
														|  | @@ -939,8 +967,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
											
												
													
														|  |                  if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 |  |                  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();
 |  |                          .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));
 |  |                      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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
 |  |                          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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
 |  |                          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;
 |  |                  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();
 |  |                          .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));
 |  |                      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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
 |  |                          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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
 |  |                          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;
 |  |                  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();
 |  |                          .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));
 |  |                      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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
 |  |                          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));
 |  |                          classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
 | 
											
												
													
														|  |                          baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
 |  |                          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());
 |  |              Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
 | 
											
												
													
														|  |              String join = StringUtils.join(classGroups, ",");
 |  |              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 -> {
 |  |              dataList.forEach(e -> {
 | 
											
												
													
														|  |                  e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
 |  |                  e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
 | 
											
												
													
														|  |                  e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
 |  |                  e.setSubTeacher(subTeachers.get(e.getClassGroupId()));
 |