|
@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
-import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
@@ -160,7 +157,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
|
|
|
public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
|
|
|
Date date = new Date();
|
|
|
- Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
|
|
|
+ Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
List<Integer> classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId()).collect(Collectors.toList());
|
|
|
|
|
|
List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds, GroupType.MUSIC);
|
|
@@ -215,8 +212,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
|
|
|
Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
|
|
|
- if(Objects.nonNull(teacher.getEntryDate())
|
|
|
- &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|
|
|
+ if (Objects.nonNull(teacher.getEntryDate())
|
|
|
+ && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
|
|
|
settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
|
|
|
}
|
|
|
|
|
@@ -248,8 +245,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
}
|
|
|
}
|
|
|
//线上小班课
|
|
|
- if(classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
|
|
|
Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ if (studentNum < 3 || studentNum > 5) {
|
|
|
+ ClassGroup classGroup = classGroupService.get(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
|
|
|
+ throw new BizException(classGroup.getName() + numWaring + "请调整");
|
|
|
+ }
|
|
|
salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
}
|
|
|
|
|
@@ -275,10 +277,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
public void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules, String musicGroupId) {
|
|
|
Date date = new Date();
|
|
|
MusicGroup musicGroup = musicGroupService.get(musicGroupId);
|
|
|
- Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
|
|
|
+ Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
List<Integer> teacherUserIds = courseSchedules.stream()
|
|
|
- .map(CourseSchedule::getActualTeacherId)
|
|
|
- .collect(Collectors.toList());
|
|
|
+ .map(CourseSchedule::getActualTeacherId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
//所有教师列表
|
|
|
List<Teacher> teachers = teacherDao.findByTeacherIds(teacherUserIds);
|
|
|
Map<Integer, Teacher> teacherMap = teachers.stream()
|
|
@@ -313,8 +315,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
|
|
|
Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
|
|
|
SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
|
|
|
- if(Objects.nonNull(teacher.getEntryDate())
|
|
|
- &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|
|
|
+ if (Objects.nonNull(teacher.getEntryDate())
|
|
|
+ && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
|
|
|
settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
|
|
|
}
|
|
|
|
|
@@ -334,10 +336,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
for (CourseScheduleTeacherSalary teacherSalary : allTeacherSalarys) {
|
|
|
- if(teacherSalary.getUserId().equals(classGroupTeacherMapper.getUserId())
|
|
|
- &&teacherSalary.getTeacherRole().equals(classGroupTeacherMapper.getTeacherRole())){
|
|
|
- int oldDuration=DateUtil.minutesBetween(teacherSalary.getCourseSchedule().getStartClassTime(),teacherSalary.getCourseSchedule().getEndClassTime());
|
|
|
- salary=teacherSalary.getExpectSalary().divide(new BigDecimal(oldDuration), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(duration)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if (teacherSalary.getUserId().equals(classGroupTeacherMapper.getUserId())
|
|
|
+ && teacherSalary.getTeacherRole().equals(classGroupTeacherMapper.getTeacherRole())) {
|
|
|
+ int oldDuration = DateUtil.minutesBetween(teacherSalary.getCourseSchedule().getStartClassTime(), teacherSalary.getCourseSchedule().getEndClassTime());
|
|
|
+ salary = teacherSalary.getExpectSalary().divide(new BigDecimal(oldDuration), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(duration)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -354,8 +356,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
}
|
|
|
}
|
|
|
//线上小班课
|
|
|
- if(classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
|
|
|
Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ if (studentNum < 3 || studentNum > 5) {
|
|
|
+ ClassGroup classGroup = classGroupService.get(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
|
|
|
+ throw new BizException(classGroup.getName() + numWaring + "请调整");
|
|
|
+ }
|
|
|
salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
}
|
|
|
|
|
@@ -390,7 +397,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules) {
|
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
- Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(),"yyyy-MM-dd");
|
|
|
+ Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
|
|
|
//课程编号列表
|
|
|
List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
@@ -399,7 +406,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
//助教老师列表
|
|
|
List<Integer> teachingTeacherIds = new ArrayList<>();
|
|
|
courseSchedules.forEach(courseSchedule -> {
|
|
|
- if(Objects.nonNull(courseSchedule.getTeachingTeacherIdList())){
|
|
|
+ if (Objects.nonNull(courseSchedule.getTeachingTeacherIdList())) {
|
|
|
teachingTeacherIds.addAll(courseSchedule.getTeachingTeacherIdList());
|
|
|
}
|
|
|
});
|
|
@@ -446,8 +453,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
|
|
|
if (!courseSchedule.isBishopTeacherSalaryNotCreate()) {
|
|
|
Teacher teacher = teacherMap.get(courseSchedule.getActualTeacherId());
|
|
|
- if(Objects.nonNull(teacher.getEntryDate())
|
|
|
- &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|
|
|
+ if (Objects.nonNull(teacher.getEntryDate())
|
|
|
+ && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
|
|
|
settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
|
|
|
}
|
|
|
|
|
@@ -469,12 +476,12 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
return;
|
|
|
}
|
|
|
for (Integer teacherId : teachingTeacherIdList) {
|
|
|
- if(Objects.isNull(teacherId)){
|
|
|
+ if (Objects.isNull(teacherId)) {
|
|
|
return;
|
|
|
}
|
|
|
Teacher teacher = teacherMap.get(teacherId);
|
|
|
- if(Objects.nonNull(teacher.getEntryDate())
|
|
|
- &&(teacher.getEntryDate().after(entryDate)||teacher.getEntryDate().getTime()==entryDate.getTime())){
|
|
|
+ if (Objects.nonNull(teacher.getEntryDate())
|
|
|
+ && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
|
|
|
settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
|
|
|
}
|
|
|
TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryWithTeacherId = teacherDefaultMusicGroupSalariesGroupByTeacherId.get(teacherId);
|
|
@@ -487,7 +494,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
teacherDefaultMusicGroupSalaryWithTeacherId));
|
|
|
}
|
|
|
}
|
|
|
- if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaryList)){
|
|
|
+ if (!CollectionUtils.isEmpty(courseScheduleTeacherSalaryList)) {
|
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
}
|
|
|
}
|
|
@@ -519,7 +526,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
//课时长度
|
|
|
int duration = DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
|
|
|
|
|
|
- BigDecimal teacherDefaultSalary=BigDecimal.ZERO;
|
|
|
+ BigDecimal teacherDefaultSalary = BigDecimal.ZERO;
|
|
|
|
|
|
//如果结算方式是教师默认课酬
|
|
|
if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT.getCode())) {
|
|
@@ -561,8 +568,13 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
}
|
|
|
}
|
|
|
//线上小班课
|
|
|
- if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)){
|
|
|
+ if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
|
|
|
Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(courseSchedule.getClassGroupId());
|
|
|
+ if (studentNum < 3 || studentNum > 5) {
|
|
|
+ ClassGroup classGroup = classGroupService.get(courseSchedule.getClassGroupId());
|
|
|
+ String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
|
|
|
+ throw new BizException(classGroup.getName() + numWaring + "请调整");
|
|
|
+ }
|
|
|
teacherSalary = JSON.parseObject(teacherDefaultMusicGroupSalaryWithTeacherId.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
|
|
|
}
|
|
|
|
|
@@ -583,7 +595,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void updateTeacher(String groupId, Integer teacherId,String groupType) {
|
|
|
- classGroupTeacherMapperDao.updateTeacher(groupId,teacherId,groupType);
|
|
|
+ public void updateTeacher(String groupId, Integer teacherId, String groupType) {
|
|
|
+ classGroupTeacherMapperDao.updateTeacher(groupId, teacherId, groupType);
|
|
|
}
|
|
|
}
|