|
@@ -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,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
- courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
}
|
|
|
-
|
|
|
+ if(!CollectionUtils.isEmpty(deductReasons))
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
@@ -358,21 +364,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);
|
|
@@ -421,16 +431,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
|
|
|
if(TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
|
|
|
- deductCost = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
- deductReasons.clear();
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
- courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
}
|
|
|
+ if(!CollectionUtils.isEmpty(deductReasons))
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
|
|
|
BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
@@ -563,21 +573,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()));
|
|
|
|
|
@@ -626,7 +640,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, ";"));
|
|
|
+ if(!CollectionUtils.isEmpty(deductReasons))
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
|
|
|
|
|
|
//更新教师结算信息
|
|
|
courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
@@ -674,19 +689,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;
|
|
@@ -775,9 +795,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
|
|
|
if(!signInInRange&&!signOutInRange){
|
|
|
- deductReasons.clear();
|
|
|
//签到签退GPS定位在指定距离外
|
|
|
- deductCost = teacherSalary;
|
|
|
+ deductCost = deductCost.add(teacherSalary);
|
|
|
deductReasons.add("签到签退GPS定位在指定距离外,扣除全部课酬");
|
|
|
}
|
|
|
|
|
@@ -785,6 +804,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
+ }
|
|
|
+ if(!CollectionUtils.isEmpty(deductReasons)){
|
|
|
courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
|
|
|
}
|
|
|
|