Browse Source

feat:教师端课酬

Joburgess 4 years ago
parent
commit
59557ce6ea

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherSalaryDeductReasonDto.java

@@ -12,10 +12,16 @@ public class TeacherSalaryDeductReasonDto {
 
     private DeductReasonEnum deductReason;
 
+    private String deductReasonMsg;
+
+    private String deductReasonStrDesc;
+
     private BigDecimal amount;
 
     public TeacherSalaryDeductReasonDto(DeductReasonEnum deductReason, BigDecimal amount) {
         this.deductReason = deductReason;
+        this.deductReasonMsg = deductReason.getMsg();
+        this.deductReasonStrDesc = deductReason.getDesc();
         this.amount = amount.setScale(2, BigDecimal.ROUND_DOWN);
     }
 
@@ -34,4 +40,20 @@ public class TeacherSalaryDeductReasonDto {
     public void setAmount(BigDecimal amount) {
         this.amount = amount.setScale(2, BigDecimal.ROUND_DOWN);
     }
+
+    public String getDeductReasonMsg() {
+        return deductReasonMsg;
+    }
+
+    public void setDeductReasonMsg(String deductReasonMsg) {
+        this.deductReasonMsg = deductReasonMsg;
+    }
+
+    public String getDeductReasonStrDesc() {
+        return deductReasonStrDesc;
+    }
+
+    public void setDeductReasonStrDesc(String deductReasonStrDesc) {
+        this.deductReasonStrDesc = deductReasonStrDesc;
+    }
 }

+ 17 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DeductReasonEnum.java

@@ -7,18 +7,22 @@ import com.ym.mec.common.enums.BaseEnum;
  * @Date 2021/4/16 0016
  **/
 public enum DeductReasonEnum implements BaseEnum<String,DeductReasonEnum> {
-    SIGN_IN_TIME_ERR("SIGN_IN_TIME_ERR", "签到异常"),
-    SIGN_OUT_TIME_ERR("SIGN_OUT_TIME_ERR", "签退异常"),
-    GPS_ERR("GPS_ERR", "签到签退地点异常"),
-    TRAIL("TRAIL", "试用期内");
+    SIGN_IN_TIME_ERR("SIGN_IN_TIME_ERR", "签到时间异常", ""),
+    SIGN_OUT_TIME_ERR("SIGN_OUT_TIME_ERR", "签退时间异常", ""),
+    GPS_ERR("GPS_ERR", "位置异常", ""),
+    NOT_SETTLEMENT("NOT_SETTLEMENT", "不结算课酬", "特殊老师不结算课酬"),
+    TRAIL("TRAIL", "试用期扣减", "试用期老师课酬按正式老师的80%计算");
 
     private String code;
 
     private String msg;
 
-    DeductReasonEnum(String code, String msg) {
+    private String desc;
+
+    DeductReasonEnum(String code, String msg, String desc) {
         this.code = code;
         this.msg = msg;
+        this.desc = desc;
     }
 
     @Override
@@ -37,4 +41,12 @@ public enum DeductReasonEnum implements BaseEnum<String,DeductReasonEnum> {
     public void setMsg(String msg) {
         this.msg = msg;
     }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherIncomeQueryInfo.java

@@ -17,6 +17,8 @@ public class TeacherIncomeQueryInfo extends QueryInfo {
 
     private CourseStatusEnum courseStatus;
 
+    private Boolean updated;
+
     public Integer getTeacherId() {
         return teacherId;
     }
@@ -48,4 +50,12 @@ public class TeacherIncomeQueryInfo extends QueryInfo {
     public void setCourseStatus(CourseStatusEnum courseStatus) {
         this.courseStatus = courseStatus;
     }
+
+    public Boolean getUpdated() {
+        return updated;
+    }
+
+    public void setUpdated(Boolean updated) {
+        this.updated = updated;
+    }
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleTeacherSalaryService.java

@@ -233,7 +233,7 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @return void
      */
     void calMusicCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                           List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange);
+                                           List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange, Boolean updated);
 
     /**
      * @describe 计算VIP课教师实际课酬
@@ -244,7 +244,7 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @return void
      */
     void calVipCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                         List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange);
+                                         List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange, Boolean updated);
 
     /**
      * @describe 计算网管课教师实际课酬
@@ -255,7 +255,7 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
      * @return void
      */
     void calPracticeTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                        List<TeacherAttendance> teacherAttendances, School school, Teacher teacher);
+                                        List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, Boolean updated);
 
     /**
      * @describe

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

@@ -1593,10 +1593,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
     @Override
     public void calMusicCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                                  List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
+                                                  List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange, Boolean updated) {
 
         if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
             //不结算课酬
+            if(updated){
+                List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.SIGN_IN_TIME_ERR, courseScheduleTeacherSalary.getExpectSalary().abs()));
+                courseScheduleTeacherSalary.setDeductReasons(deductReasons);
+            }
             return;
         }
 
@@ -1828,11 +1834,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
     @Override
     public void calVipCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                                List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
+                                                List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange, Boolean updated) {
         List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
 
         if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
             //不结算课酬
+            if(updated){
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.SIGN_IN_TIME_ERR, courseScheduleTeacherSalary.getExpectSalary().abs()));
+                courseScheduleTeacherSalary.setDeductReasons(deductReasons);
+            }
             return;
         }
         
@@ -1935,11 +1946,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
     @Override
     public void calPracticeTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
-                                               List<TeacherAttendance> teacherAttendances, School school, Teacher teacher) {
+                                               List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, Boolean updated) {
         List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
 
         if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
             //不结算课酬
+            if(updated){
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.SIGN_IN_TIME_ERR, courseScheduleTeacherSalary.getExpectSalary().abs()));
+                courseScheduleTeacherSalary.setDeductReasons(deductReasons);
+            }
             return;
         }
         
@@ -2107,13 +2123,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             switch (courseSchedule.getGroupType()){
                 case MUSIC:
-                    calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
+                    calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange, false);
                     break;
                 case VIP:
-                    calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
+                    calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange, false);
                     break;
                 case PRACTICE:
-                    calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
+                    calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, false);
                     break;
             }
         }
@@ -2211,13 +2227,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
                 switch (courseSchedule.getGroupType()){
                     case MUSIC:
-                        calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
+                        calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange, queryInfo.getUpdated());
                         break;
                     case VIP:
-                        calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
+                        calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange, queryInfo.getUpdated());
                         break;
                     case PRACTICE:
-                        calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
+                        calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, queryInfo.getUpdated());
                         break;
                 }