|  | @@ -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());
 |