|
@@ -260,6 +260,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
|
|
|
|
|
|
+ if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
|
|
|
+
|
|
|
+ courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
+ courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
|
|
|
// boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
|
|
|
|
|
@@ -336,6 +347,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
});
|
|
|
}
|
|
@@ -390,6 +402,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
|
|
|
|
|
|
+ if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
|
|
|
+
|
|
|
+ courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
+ courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
|
|
|
// boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
|
|
|
|
|
@@ -469,6 +492,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
});
|
|
|
}
|
|
@@ -570,6 +594,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
|
|
|
|
|
|
+ if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
|
|
|
+
|
|
|
+ courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setSubsidy(BigDecimal.ZERO);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
+ courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
+ courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
if(CourseSchedule.CourseScheduleType.MUSIC_NETWORK.equals(courseSchedule.getType())||CourseSchedule.CourseScheduleType.HIGH_ONLINE.equals(courseSchedule.getType())){
|
|
|
Long normalStudentNum = courseNormalStudentsMap.get(courseSchedule.getId());
|
|
|
if(Objects.isNull(normalStudentNum)){
|
|
@@ -667,6 +702,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//更新教师结算信息
|
|
|
courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
|
|
@@ -813,6 +849,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//更新教师结算信息
|
|
|
courseScheduleTeacherSalary.setSubsidy(subsidy);
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
|
+ courseScheduleTeacherSalary.setBelongToDaya(false);
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
|
}
|
|
@@ -1558,6 +1595,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
public void calMusicCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
|
|
|
List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
|
|
|
|
|
|
+ if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
|
|
|
+ //不结算课酬
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
BigDecimal teacherSalary = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
|
|
|
if(CourseSchedule.CourseScheduleType.MUSIC_NETWORK.equals(courseSchedule.getType())||CourseSchedule.CourseScheduleType.HIGH_ONLINE.equals(courseSchedule.getType())){
|
|
@@ -1789,6 +1831,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
|
|
|
List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
|
|
|
|
|
|
+ if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
|
|
|
+ //不结算课酬
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
BigDecimal expectSalary = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
|
|
|
BigDecimal subsidy = new BigDecimal(0);
|
|
@@ -1891,6 +1938,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
List<TeacherAttendance> teacherAttendances, School school, Teacher teacher) {
|
|
|
List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
|
|
|
|
|
|
+ if(StringUtils.isNotBlank(courseScheduleTeacherSalary.getDeductionReason())&&"不结算课酬".equals(courseScheduleTeacherSalary.getDeductionReason())){
|
|
|
+ //不结算课酬
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
BigDecimal expectSalary = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
|
|
|
BigDecimal subsidy = new BigDecimal(0);
|
|
@@ -2187,11 +2239,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
if(trailReasonNum<=0){
|
|
|
teacherSalary.getDeductReasons().add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.TRAIL, teacherIncomeInfo.getExpectIncome().subtract(teacherIncomeInfo.getExpectIncome().multiply(new BigDecimal("0.8")))));
|
|
|
}
|
|
|
- }else{
|
|
|
+ }else if(!CollectionUtils.isEmpty(teacherSalary.getDeductReasons())){
|
|
|
teacherSalary.setDeductReasons(teacherSalary.getDeductReasons().stream().filter(p->!DeductReasonEnum.TRAIL.equals(p.getDeductReason())).collect(Collectors.toList()));
|
|
|
}
|
|
|
}
|
|
|
teacherIncomeInfo.setDeductReasons(teacherSalary.getDeductReasons());
|
|
|
+ if(CollectionUtils.isEmpty(teacherSalary.getDeductReasons())){
|
|
|
+ teacherIncomeInfo.setDeductReasons(Collections.EMPTY_LIST);
|
|
|
+ }
|
|
|
teacherIncomeInfo.setTeacherAttendance(teacherAttendances.get(0));
|
|
|
if(Objects.nonNull(school)&&Objects.nonNull(teacherIncomeInfo.getTeacherAttendance())){
|
|
|
teacherIncomeInfo.getTeacherAttendance().setSchoolLongitudeLatitude(school.getLongitudeLatitude());
|