Joburgess 4 سال پیش
والد
کامیت
379402bdc5

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherCourseStatistics.java

@@ -30,37 +30,37 @@ public class TeacherCourseStatistics {
     /**
     * vip课节数
     */
-    private Integer vipCourseNum;
+    private Integer vipCourseNum = 0;
 
     /**
     * 乐团课节数
     */
-    private Integer musicCourseNum;
+    private Integer musicCourseNum = 0;
 
     /**
      * 网管课节数
      */
-    private Integer practiceCourseNum;
+    private Integer practiceCourseNum = 0;
 
     /**
     * 预计乐团课酬
     */
-    private BigDecimal expectMusicCourseSalary;
+    private BigDecimal expectMusicCourseSalary = BigDecimal.ZERO;
 
     /**
     * 预计小课课酬
     */
-    private BigDecimal expectVipCourseSalary;
+    private BigDecimal expectVipCourseSalary = BigDecimal.ZERO;
 
     /**
      * 预计小课课酬
      */
-    private BigDecimal expectPracticeCourseSalary;
+    private BigDecimal expectPracticeCourseSalary = BigDecimal.ZERO;
 
     /**
     * 预计合计课酬
     */
-    private BigDecimal expectTotalSalary;
+    private BigDecimal expectTotalSalary = BigDecimal.ZERO;
 
     /**
     * 平均上课时长

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -10,7 +10,6 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     HIGH_CLASS_STUDENT_LESS_THAN_THREE("HIGH_CLASS_STUDENT_LESS_THAN_THREE", "基础技能班学员数量异常"),
     MUSIC_PATROL_ITEM("MUSIC_PATROL_ITEM", "乐团巡查事项异常"),
 
-    STUDENT_COURSE_FEE_NOT_ENOUGH("STUDENT_COURSE_FEE_NOT_ENOUGH", "学员欠费上课"),
     STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "学员未缴费"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
     ;

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCourseStatisticsQueryInfo.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -20,6 +21,9 @@ public class TeacherCourseStatisticsQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "月份")
     private Date month;
 
+    @ApiModelProperty(value = "最大课酬")
+    private BigDecimal maxSalary;
+
     public String getOrganId() {
         return organId;
     }
@@ -51,4 +55,12 @@ public class TeacherCourseStatisticsQueryInfo extends QueryInfo {
     public void setMonth(Date month) {
         this.month = month;
     }
+
+    public BigDecimal getMaxSalary() {
+        return maxSalary;
+    }
+
+    public void setMaxSalary(BigDecimal maxSalary) {
+        this.maxSalary = maxSalary;
+    }
 }

+ 43 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1076,19 +1076,37 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (courseScheduleIds.size() > 0) {
             hasTeacherSalaryCount = courseScheduleTeacherSalaryDao.getHasTeacherSalaryCount(courseScheduleIds);
         }
-        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && hasTeacherSalaryCount > 0) {
+        if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && hasTeacherSalaryCount > 0) {
             Integer studentNum = classGroup.getStudentNum() + 1;
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             for (CourseSchedule courseSchedule : courseScheduleList) {
                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(courseSchedule.getType());
-                    if (studentNum > 5) {
+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
+                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
                         studentNum = 5;
                     }
-                    BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
+
+                    BigDecimal salary = null;
+                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                            throw new BizException("请设置老师课酬");
+                        }
+                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                        }
+                        salary = salary.multiply(new BigDecimal(studentNum));
+                    }
+                    if(Objects.isNull(salary)){
+                        throw new BizException("请设置老师课酬");
+                    }
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
@@ -1222,7 +1240,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
                 for (CourseSchedule courseSchedule : courseScheduleList) {
                     for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                        List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                        List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                         if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
                             throw new BizException("请设置老师线上网管课课酬");
                         }
@@ -1230,11 +1248,28 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
 
                         int studentNum = classGroup.getStudentNum() + 1;
-                        if (studentNum > 5) {
+                        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
                             studentNum = 5;
                         }
 
-                        BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        BigDecimal salary = null;
+                        if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                        }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                            MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                            TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                            if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                                throw new BizException("请设置老师课酬");
+                            }
+                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                            if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                                salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                            }
+                            salary = salary.multiply(new BigDecimal(studentNum));
+                        }
+                        if(Objects.isNull(salary)){
+                            throw new BizException("请设置老师课酬");
+                        }
 
                         CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
                         courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());

+ 21 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -329,23 +329,40 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         }
         //4、调整未上课课酬
         List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId);
-        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && courseScheduleList.size() > 0) {
+        if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && courseScheduleList.size() > 0) {
             studentNum += userIdStrSet.size();
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             for (CourseSchedule courseSchedule : courseScheduleList) {
                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
                         throw new BizException("请设置老师线上网管课课酬");
                     }
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(courseSchedule.getType());
-                    if (studentNum > 5) {
+                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
                         studentNum = 5;
                     }
-                    BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
+                    BigDecimal salary = null;
+                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
+                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                            throw new BizException("请设置老师课酬");
+                        }
+                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                        }
+                        salary = salary.multiply(new BigDecimal(studentNum));
+                    }
+                    if(Objects.isNull(salary)){
+                        throw new BizException("请设置老师课酬");
+                    }
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
                     courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());

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

@@ -132,7 +132,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
                 courseScheduleTeacherSalary.setUserId(courseSchedules.get(i).getActualTeacherId().intValue());
                 courseScheduleTeacherSalary.setClassGroupId(courseSchedules.get(i).getClassGroupId());
-                courseScheduleTeacherSalary.setSubsidy(subsidy);
+//                courseScheduleTeacherSalary.setSubsidy(subsidy);
 
                 if (Objects.nonNull(vipGroupActivity)
                         &&vipGroupActivity.getType() == VipGroupActivityTypeEnum.GIVE_CLASS

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java

@@ -98,7 +98,7 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
             teacherCourseStatistics.setPracticeCourseNum(practiceCourseNum);
 
             BigDecimal organWarningSalary = salaryConfigObject.getBigDecimal(teacherCourseStatistics.getOrganId().toString());
-            if(Objects.isNull(organWarningSalary)||teacherCourseStatistics.getExpectTotalSalary().compareTo(organWarningSalary)<=0){
+            if(Objects.isNull(organWarningSalary)||Objects.isNull(teacherCourseStatistics.getExpectTotalSalary())||teacherCourseStatistics.getExpectTotalSalary().compareTo(organWarningSalary)<=0){
                 teacherCourseStatistics.setLowSalary(true);
             }else{
                 teacherCourseStatistics.setLowSalary(false);

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/TeacherCourseStatisticsMapper.xml

@@ -110,6 +110,9 @@
             <if test="userId != null">
                 AND tcs.user_id_ = #{userId}
             </if>
+            <if test="maxSalary != null">
+                AND tcs.expect_total_salary_ &lt;= #{maxSalary}
+            </if>
         </where>
     </sql>
 </mapper>