|
@@ -221,27 +221,57 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
|
|
|
|
TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
- if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
- //未签到或异常签到扣除一半课酬
|
|
|
|
- deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
|
|
- deductReasons.add("未签到或异常签到扣除一半课酬");
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
|
|
|
|
+ //未签到扣除全部课酬
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("未签到扣除全部课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
+ //异常签到
|
|
|
|
+ int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseScheduleTeacherSalary.getCourseSchedule().getStartClassTime());
|
|
|
|
+ int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
+ if(signCourseTimeBetween<1&&signCourseTimeBetween>-3){
|
|
|
|
+ //课程开始前1分钟至开始后3分钟进入教室
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除50元");
|
|
|
|
+ }else if(signCourseTimeBetween<-3){
|
|
|
|
+ //课程开始后3分钟后进入教室
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
|
|
|
|
- //未签退或异常签退扣除一半课酬
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ //未签退扣除一半课酬
|
|
deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
- deductReasons.add("未签退或异常签退扣除一半课酬");
|
|
|
|
|
|
+ deductReasons.add("未签退扣除一半课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ //异常签退
|
|
|
|
+ int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseScheduleTeacherSalary.getCourseSchedule().getStartClassTime());
|
|
|
|
+ int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
+
|
|
|
|
+ int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseScheduleTeacherSalary.getCourseSchedule().getEndClassTime());
|
|
|
|
+ int signOutCourseTimeBetween = signOutCourseTimeBetweenSeconds/60;
|
|
|
|
+
|
|
|
|
+ if(signCourseTimeBetween<20&&signCourseTimeBetween>-3){
|
|
|
|
+ //课程开始前20分钟至开始后3分钟退出教室
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("课程开始前20分钟至开始后3分钟退出教室扣除全部课酬");
|
|
|
|
+ }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
|
|
|
|
+ //课程结束前3分钟后至课程结束前退出教室
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除50元");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
}
|
|
}
|
|
|
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary);
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary);
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
- courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -304,26 +334,68 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
|
|
|
|
TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
- if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
- //未签到或异常签到扣除一半课酬
|
|
|
|
- deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
|
|
- deductReasons.add("未签到或异常签到扣除一半课酬");
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
|
|
|
|
+ //未签到扣除全部课酬
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("未签到扣除全部课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
+ //异常签到
|
|
|
|
+ int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseScheduleTeacherSalary.getCourseSchedule().getStartClassTime());
|
|
|
|
+ int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
+ if(signCourseTimeBetween<1&&signCourseTimeBetween>-3){
|
|
|
|
+ //课程开始前1分钟至开始后3分钟进入教室
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除50元");
|
|
|
|
+ }else if(signCourseTimeBetween<-3){
|
|
|
|
+ //课程开始后3分钟后进入教室
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
|
|
|
|
+ deductCost = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
|
+ deductReasons.clear();
|
|
|
|
+ deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
|
|
|
|
- //未签退或异常签退扣除一半课酬
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ //未签退扣除一半课酬
|
|
deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary().divide(new BigDecimal(2)));
|
|
- deductReasons.add("未签退或异常签退扣除一半课酬");
|
|
|
|
|
|
+ deductReasons.add("未签退扣除一半课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ //异常签退
|
|
|
|
+ int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseScheduleTeacherSalary.getCourseSchedule().getStartClassTime());
|
|
|
|
+ int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
+
|
|
|
|
+ int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseScheduleTeacherSalary.getCourseSchedule().getEndClassTime());
|
|
|
|
+ int signOutCourseTimeBetween = signOutCourseTimeBetweenSeconds/60;
|
|
|
|
+
|
|
|
|
+ if(signCourseTimeBetween<20&&signCourseTimeBetween>-3){
|
|
|
|
+ //课程开始前20分钟至开始后3分钟退出教室
|
|
|
|
+ deductCost = deductCost.add(courseScheduleTeacherSalary.getExpectSalary());
|
|
|
|
+ deductReasons.add("课程开始前20分钟至开始后3分钟退出教室扣除全部课酬");
|
|
|
|
+ }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
|
|
|
|
+ //课程结束前3分钟后至课程结束前退出教室
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除50元");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
|
|
|
|
+ deductCost = courseScheduleTeacherSalary.getExpectSalary();
|
|
|
|
+ deductReasons.clear();
|
|
|
|
+ deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
}
|
|
}
|
|
|
|
|
|
BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
BigDecimal finalSalary = courseScheduleTeacherSalary.getExpectSalary().subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary);
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary);
|
|
- courseScheduleTeacherSalary.setDeductionReason(StringUtils.join(deductReasons, ";"));
|
|
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
});
|
|
});
|
|
@@ -375,7 +447,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|| CourseSchedule.CourseScheduleType.HIGH.equals(c.getType()))
|
|
|| CourseSchedule.CourseScheduleType.HIGH.equals(c.getType()))
|
|
.map(CourseSchedule::getId).collect(Collectors.toList());
|
|
.map(CourseSchedule::getId).collect(Collectors.toList());
|
|
|
|
|
|
- List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseIds(needStudentAttendanceCourseScheduleIds);
|
|
|
|
|
|
+ List<StudentAttendance> studentAttendances = null;
|
|
|
|
+ if(!CollectionUtils.isEmpty(needStudentAttendanceCourseScheduleIds)){
|
|
|
|
+ studentAttendances = studentAttendanceDao.findByCourseIds(needStudentAttendanceCourseScheduleIds);
|
|
|
|
+ }
|
|
Map<Long, Long> courseNormalStudentsMap = new HashMap<>();
|
|
Map<Long, Long> courseNormalStudentsMap = new HashMap<>();
|
|
if(!CollectionUtils.isEmpty(studentAttendances)){
|
|
if(!CollectionUtils.isEmpty(studentAttendances)){
|
|
courseNormalStudentsMap =studentAttendances.stream()
|
|
courseNormalStudentsMap =studentAttendances.stream()
|
|
@@ -489,52 +564,65 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if(CollectionUtils.isEmpty(courseTeacherAttendances)||!isCallName){
|
|
|
|
- //无签到记录或者未点名扣除全部课酬
|
|
|
|
|
|
+ TeacherAttendance teacherAttendance = null;
|
|
|
|
+ if(!CollectionUtils.isEmpty(courseTeacherAttendances)){
|
|
|
|
+ teacherAttendance = courseTeacherAttendances.get(0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignInStatus())){
|
|
|
|
+ //无签到记录扣除全部课酬
|
|
deductCost = deductCost.add(teacherSalary);
|
|
deductCost = deductCost.add(teacherSalary);
|
|
- deductReasons.add("无签到记录扣除全部课酬");
|
|
|
|
- }else{
|
|
|
|
- TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
|
|
- if(Objects.isNull(teacherAttendance.getSignInStatus())){
|
|
|
|
- //未签到扣除全部课酬
|
|
|
|
|
|
+ deductReasons.add("未签到扣除全部课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
+ int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
|
|
|
|
+ int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
+ if(signCourseTimeBetween>=0&&signCourseTimeBetween<20){
|
|
|
|
+ //未提前20分钟打卡扣除50元
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("未提前20分钟打卡扣除50元");
|
|
|
|
+ }else if(signCourseTimeBetween<0&&signCourseTimeBetween>-30){
|
|
|
|
+ //迟到30分钟内扣除一半课酬
|
|
|
|
+ deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
|
|
|
|
+ deductReasons.add("迟到30分钟内扣除一半课酬");
|
|
|
|
+ }else if(signCourseTimeBetween<=-30){
|
|
|
|
+ //迟到30分钟及以上扣除全部课酬
|
|
deductCost = deductCost.add(teacherSalary);
|
|
deductCost = deductCost.add(teacherSalary);
|
|
- deductReasons.add("未签到扣除全部课酬");
|
|
|
|
- }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
|
|
|
|
- int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
|
|
|
|
- int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
|
|
|
|
- if(signCourseTimeBetween>=0&&signCourseTimeBetween<20){
|
|
|
|
- //未提前20分钟打卡扣除50元
|
|
|
|
- deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
- deductReasons.add("未提前20分钟打卡扣除50元");
|
|
|
|
- }else if(signCourseTimeBetween<0&&signCourseTimeBetween>-30){
|
|
|
|
- //迟到30分钟内扣除一半课酬
|
|
|
|
- deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
|
|
|
|
- deductReasons.add("迟到30分钟内扣除一半课酬");
|
|
|
|
- }else if(signCourseTimeBetween<=-30){
|
|
|
|
- //迟到30分钟及以上扣除全部课酬
|
|
|
|
- deductCost = deductCost.add(teacherSalary);
|
|
|
|
- deductReasons.add("迟到30分钟及以上扣除全部课酬");
|
|
|
|
- }
|
|
|
|
|
|
+ deductReasons.add("迟到30分钟及以上扣除全部课酬");
|
|
|
|
+ }else{
|
|
|
|
+ //其他,例如签到经纬度不在范围内
|
|
|
|
+ deductCost = deductCost.add(new BigDecimal(50));
|
|
|
|
+ deductReasons.add("经纬度不在范围内扣除50元");
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- if((Objects.isNull(teacherAttendance.getSignOutStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus()))&&isCallName){
|
|
|
|
- //异常签退或者未签退,但是正常点名扣除50元课酬
|
|
|
|
|
|
+ if(Objects.isNull(teacherAttendance)||!isCallName||Objects.isNull(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ //未签退或者未点名扣除全部课酬
|
|
|
|
+ deductCost = deductCost.add(teacherSalary);
|
|
|
|
+ deductReasons.add("未签退或者未点名扣除全部课酬");
|
|
|
|
+ }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
|
|
|
|
+ int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getSignOutTime());
|
|
|
|
+ int signOutCourseTimeBetween = signOutCourseTimeBetweenSeconds/60;
|
|
|
|
+ if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
|
|
|
|
+ //早退
|
|
|
|
+ deductCost = deductCost.add(teacherSalary);
|
|
|
|
+ deductReasons.add("早退扣除全部课酬");
|
|
|
|
+ }if(isCallName){
|
|
|
|
+ //异常签退,但是正常点名扣除50元课酬
|
|
deductCost = deductCost.add(new BigDecimal(50));
|
|
deductCost = deductCost.add(new BigDecimal(50));
|
|
deductReasons.add("异常签退或者未签退,但是正常点名扣除50元课酬");
|
|
deductReasons.add("异常签退或者未签退,但是正常点名扣除50元课酬");
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
BigDecimal finalSalary = teacherSalary.subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
BigDecimal finalSalary = teacherSalary.subtract(deductCost).setScale(BigDecimal.ZERO.intValue(), BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
if(BigDecimal.ZERO.compareTo(deductCost)<0){
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
deductReasons.add("扣除总费用:" + deductCost);
|
|
|
|
+ courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
|
|
}
|
|
}
|
|
|
|
|
|
//更新教师结算信息
|
|
//更新教师结算信息
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
courseScheduleTeacherSalary.setSettlementTime(now);
|
|
- courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
|
|
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
|
|
}
|
|
}
|
|
}
|
|
}
|