|
@@ -2134,6 +2134,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//教师
|
|
|
Teacher teacher = idTeacherMap.get(teacherSalary.getUserId());
|
|
|
|
|
|
+ BigDecimal oldSalary = null;
|
|
|
+ BigDecimal oldSubsidy = null;
|
|
|
+ if(Objects.nonNull(teacherSalary.getSettlementTime())){
|
|
|
+ oldSalary = teacherSalary.getActualSalary();
|
|
|
+ oldSubsidy = teacherSalary.getSubsidy();
|
|
|
+ }
|
|
|
+
|
|
|
switch (courseSchedule.getGroupType()){
|
|
|
case MUSIC:
|
|
|
calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
|
|
@@ -2149,8 +2156,23 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
TeacherIncomeDto teacherIncomeInfo = new TeacherIncomeDto();
|
|
|
BeanUtils.copyProperties(courseSchedule, teacherIncomeInfo);
|
|
|
teacherIncomeInfo.setExpectSalary(teacherSalary.getExpectSalary());
|
|
|
- teacherIncomeInfo.setSubsidy(teacherSalary.getSubsidy());
|
|
|
- teacherIncomeInfo.setActualSalary(teacherSalary.getActualSalary());
|
|
|
+ teacherIncomeInfo.setSubsidy(Objects.nonNull(oldSalary)?oldSubsidy:teacherSalary.getSubsidy());
|
|
|
+ teacherIncomeInfo.setActualSalary(Objects.nonNull(oldSalary)?oldSalary:teacherSalary.getActualSalary());
|
|
|
+ //如果是已结算课程,则需要处理扣减原因
|
|
|
+ if(Objects.nonNull(oldSalary)){
|
|
|
+ //判断课程是否在试用期内
|
|
|
+ boolean trail = StringUtils.isBlank(teacherSalary.getDeductionReason())||teacherSalary.getDeductionReason().indexOf("未转正")!=-1;
|
|
|
+
|
|
|
+ //如果上课日期在试用期内按80%结算
|
|
|
+ if(trail){
|
|
|
+ long trailReasonNum = teacherSalary.getDeductReasons().stream().filter(p -> DeductReasonEnum.TRAIL.equals(p.getDeductReason())).count();
|
|
|
+ if(trailReasonNum<=0){
|
|
|
+ teacherSalary.getDeductReasons().add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.TRAIL, oldSalary.subtract(oldSalary.multiply(new BigDecimal("0.8")))));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ teacherSalary.setDeductReasons(teacherSalary.getDeductReasons().stream().filter(p->!DeductReasonEnum.TRAIL.equals(p.getDeductReason())).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
teacherIncomeInfo.setDeductReasons(teacherSalary.getDeductReasons());
|
|
|
teacherIncomeInfo.setTeacherAttendance(teacherAttendances.get(0));
|
|
|
teacherIncomeInfo.setBelongToDaya(teacherSalary.getBelongToDaya());
|