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