|
@@ -222,8 +222,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ //获取课程对应教学点补贴
|
|
|
+ List<Map<Long, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(new ArrayList<>(courseScheduleIds));
|
|
|
+ Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
|
|
|
+
|
|
|
someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
|
|
|
|
|
|
+ BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+ if (Objects.isNull(subsidy)) {
|
|
|
+ subsidy = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().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")));
|
|
@@ -340,9 +351,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseScheduleIds);
|
|
|
Map<String, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().collect(Collectors.groupingBy(ta -> org.apache.commons.lang3.StringUtils.joinWith(":", ta.getCourseScheduleId(), ta.getTeacherId())));
|
|
|
|
|
|
+ //获取课程对应教学点补贴
|
|
|
+ List<Map<Long, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
|
|
|
+ Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
|
|
|
+
|
|
|
//处理课酬信息
|
|
|
someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
|
|
|
|
|
|
+ BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+ if (Objects.isNull(subsidy)) {
|
|
|
+ subsidy = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().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")));
|
|
@@ -542,6 +564,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
teacherSalary = BigDecimal.ZERO;
|
|
|
}
|
|
|
|
|
|
+ BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
|
|
|
+ if (Objects.isNull(subsidy)) {
|
|
|
+ subsidy = new BigDecimal(0);
|
|
|
+ }
|
|
|
+ teacherSalary = teacherSalary.add(subsidy);
|
|
|
+
|
|
|
//如果上课日期在转正日期之前的按80%结算
|
|
|
if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
|
|
|
teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
|
|
@@ -601,6 +629,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
|
|
|
|
|
|
//更新教师结算信息
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
@@ -645,16 +674,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
|
|
|
}
|
|
|
|
|
|
- if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
|
|
|
- teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
|
|
|
- }
|
|
|
-
|
|
|
- BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getSchoolId());
|
|
|
+ BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
|
|
|
if (Objects.isNull(subsidy)) {
|
|
|
subsidy = new BigDecimal(0);
|
|
|
}
|
|
|
teacherSalary = teacherSalary.add(subsidy);
|
|
|
|
|
|
+ if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
|
|
|
+ teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
|
|
|
+ }
|
|
|
+
|
|
|
//扣除费用
|
|
|
BigDecimal deductCost = BigDecimal.ZERO;
|
|
|
List<String> deductReasons = new ArrayList<>();
|
|
@@ -760,6 +789,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
|
|
|
//更新教师结算信息
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|