Procházet zdrojové kódy

feat: 课酬结算判断人士状态

Joburgess před 4 roky
rodič
revize
533bb3ef72

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

@@ -250,7 +250,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
-            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+
+            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.isNull(teacher.getFormalStaffDate())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+            //如果上课日期在转正日期之前的按80%结算
+            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }
@@ -387,7 +392,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
-            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+
+            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.isNull(teacher.getFormalStaffDate())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }
@@ -594,8 +603,13 @@ 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.isNull(teacher.getFormalStaffDate())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
                 //如果上课日期在转正日期之前的按80%结算
-                if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                     deductReasons.add("未转正");
                 }
@@ -710,7 +724,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 deductReasons.add("教学点补贴:" + subsidy);
             }
 
-            if(Objects.isNull(teacher)||Objects.isNull(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.isNull(teacher.getFormalStaffDate())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
             }