Browse Source

fix:1、课酬结算补贴

Joburgess 4 years ago
parent
commit
1a89bce65a

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

@@ -227,6 +227,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
 
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
+            List<String> deductReasons = new ArrayList<>();
 
             BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             if (Objects.isNull(subsidy)) {
@@ -235,14 +236,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             courseScheduleTeacherSalary.setSubsidy(subsidy);
             courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
 
+            if(BigDecimal.ZERO.compareTo(subsidy)<0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
+
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
-            List<String> deductReasons = new ArrayList<>();
+
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
@@ -289,9 +295,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             }
-
+            courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
             courseScheduleTeacherSalary.setSettlementTime(now);
             courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
@@ -358,21 +363,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //处理课酬信息
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            List<String> deductReasons = new ArrayList<>();
             BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
             }
             courseScheduleTeacherSalary.setSubsidy(subsidy);
             courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
+            if(BigDecimal.ZERO.compareTo(subsidy)<0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
-            List<String> deductReasons = new ArrayList<>();
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
@@ -429,8 +438,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
             }
+            courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
 
             BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
 
@@ -563,21 +572,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 if(Objects.isNull(teacherSalary)){
                     teacherSalary = BigDecimal.ZERO;
                 }
+                List<String> deductReasons = new ArrayList<>();
 
                 BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
                 if (Objects.isNull(subsidy)) {
                     subsidy = new BigDecimal(0);
                 }
                 teacherSalary = teacherSalary.add(subsidy);
+                if(BigDecimal.ZERO.compareTo(subsidy)<0){
+                    deductReasons.add("教学点补贴:" + subsidy);
+                }
 
                 //如果上课日期在转正日期之前的按80%结算
                 if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+                    deductReasons.add("未转正");
                 }
 
                 //扣除费用
                 BigDecimal deductCost = new BigDecimal(0);
-                List<String> deductReasons = new ArrayList<>();
                 deductReasons.add("课程应到人数:" + normalStudentNum);
                 List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
@@ -674,19 +687,24 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
             }
 
+            List<String> deductReasons = new ArrayList<>();
+
             BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
             }
             teacherSalary = teacherSalary.add(subsidy);
+            if(BigDecimal.ZERO.compareTo(subsidy)<0){
+                deductReasons.add("教学点补贴:" + subsidy);
+            }
 
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+                deductReasons.add("未转正");
             }
 
             //扣除费用
             BigDecimal deductCost = BigDecimal.ZERO;
-            List<String> deductReasons = new ArrayList<>();
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             boolean isCallName = false;
@@ -785,8 +803,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
             }
+            courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
 
             //更新教师结算信息
             courseScheduleTeacherSalary.setSubsidy(subsidy);