Bladeren bron

Merge remote-tracking branch 'origin/test' into test

zouxuan 4 jaren geleden
bovenliggende
commit
d9cf5914d0

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

@@ -12,7 +12,7 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     MUSIC_PATROL_ITEM("MUSIC_PATROL_ITEM", "乐团巡查事项异常"),
 
     STUDENT_INFO("STUDENT_INFO", "学员处理"),
-    STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "学员未缴费"),
+    STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "未缴费学员数"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
     WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
     ATTENDANCE_ERR_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考勤异常"),

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ProbationPeriodEnum.java

@@ -6,7 +6,8 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum ProbationPeriodEnum implements BaseEnum<Integer, ProbationPeriodEnum> {
     NORMAL(0,"正式"),
     TRY(1,"试用"),
-    LEAVE(2,"离职");
+    LEAVE(2,"离职"),
+    INTERNSHIP(3,"实习");
 
     private Integer code;
 

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

@@ -251,11 +251,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
 
-            //如果上课日期在转正日期之前的按80%结算
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
+
+
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }
@@ -265,10 +276,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
-            TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
+            TeacherAttendance teacherAttendance = null;
+            if(!CollectionUtils.isEmpty(courseTeacherAttendances)){
+                teacherAttendance = courseTeacherAttendances.get(0);
+            }
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
                 //未签到扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                 //异常签到
@@ -276,18 +290,18 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                     //课程开始前1分钟至开始后3分钟进入教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                 }else if(signCourseTimeBetween<=-3){
                     //课程开始后3分钟后进入教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                 }
             }
 
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                 //异常签退
@@ -296,11 +310,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
                 if(signOutCourseTimeBetween>3){
                     //课程开始前20分钟至开始后3分钟退出教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     //课程结束前3分钟后至课程结束前退出教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                 }
             }
@@ -368,10 +382,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
 
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
+
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }
@@ -383,7 +408,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 //            TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignInStatus())){
                 //未签到扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
                 //异常签到
@@ -391,21 +416,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                     //课程开始前1分钟至开始后3分钟进入教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                 }else if(signCourseTimeBetween<=-3){
                     //课程开始后3分钟后进入教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                 }
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
             }
 
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignOutStatus())){
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignOutStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
                 //异常签退
@@ -414,15 +439,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
                 if(signOutCourseTimeBetween>3){
                     //课程开始前20分钟至开始后3分钟退出教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     //课程结束前3分钟后至课程结束前退出教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                 }
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
             }
 
@@ -558,12 +583,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }
 
                 //未转正
-                boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//                boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
                 //试用期
-                boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//                boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+                //判断课程是否在试用期内
+                boolean trail = false;
+
+                if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseSchedule.getClassDate().compareTo(teacher.getEntryDate())>=0){
+                    trail = true;
+                }
+                if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                    trail = false;
+                }
 
-                //如果上课日期在转正日期之前的按80%结算
-                if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+                //如果上课日期在试用期内按80%结算
+                if(trail){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                     deductReasons.add("未转正");
                 }
@@ -576,7 +611,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
                     //未签到扣除全部课酬
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("未签到扣除全部课酬");
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                     //异常签到
@@ -584,18 +619,18 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                     if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                         //课程开始前1分钟至开始后3分钟进入教室
-                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                         deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                     }else if(signCourseTimeBetween<=-3){
                         //课程开始后3分钟后进入教室
-                        deductCost = deductCost.add(teacherSalary);
+                        deductCost = deductCost.add(teacherSalary.abs());
                         deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                     }
                 }
 
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                     //未签退扣除一半课酬
-                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("未签退扣除一半课酬");
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                     //异常签退
@@ -604,11 +639,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
                     if(signOutCourseTimeBetween>3){
                         //课程开始前20分钟至开始后3分钟退出教室
-                        deductCost = deductCost.add(teacherSalary);
+                        deductCost = deductCost.add(teacherSalary.abs());
                         deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                     }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                         //课程结束前3分钟后至课程结束前退出教室
-                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                         deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                     }
                 }
@@ -643,10 +678,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 deductReasons.add("教学点补贴:" + subsidy);
             }
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseSchedule.getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
 
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }
@@ -690,7 +736,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignInStatus())){
                 //无签到记录扣除全部课酬
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                 int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
@@ -701,11 +747,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     deductReasons.add("未提前20分钟打卡扣除50元");
                 }else if(signCourseTimeBetween<=0&&signCourseTimeBetween>-30){
                     //迟到30分钟内扣除一半课酬
-                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("迟到30分钟内扣除一半课酬");
                 }else if(signCourseTimeBetween<=-30){
                     //迟到30分钟及以上扣除全部课酬
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("迟到30分钟及以上扣除全部课酬");
                 }
                 if(!signInInRange){
@@ -719,14 +765,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                 int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime());
                 float signOutCourseTimeBetween = (float)signOutCourseTimeBetweenSeconds/(float) 60;
                 if(signOutCourseTimeBetween>3){
                     //早退
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("早退扣除全部课酬");
                 }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
                     //异常签退,扣除50元
@@ -743,7 +789,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(!signInInRange&&!signOutInRange){
                 //签到签退GPS定位在指定距离外
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("签到签退GPS定位在指定距离外,扣除全部课酬");
             }