|
@@ -1083,6 +1083,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
//计算每节课的课酬
|
|
//计算每节课的课酬
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>();
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>();
|
|
|
|
+ List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
|
+
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
int times = 0;
|
|
int times = 0;
|
|
|
|
|
|
@@ -1101,6 +1103,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
}
|
|
}
|
|
int dayOfWeek = now.getDayOfWeek().getValue();//当前星期
|
|
int dayOfWeek = now.getDayOfWeek().getValue();//当前星期
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
|
|
+ if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) {
|
|
|
|
+ throw new BizException("排课循环周期错误,请核查");
|
|
|
|
+ }
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
|
|
|
|
//课时长度
|
|
//课时长度
|
|
@@ -1129,8 +1134,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
courseSchedule.setName(subjectNames + "-" + CourseSchedule.CourseScheduleType.SINGLE.getMsg());
|
|
courseSchedule.setName(subjectNames + "-" + CourseSchedule.CourseScheduleType.SINGLE.getMsg());
|
|
courseSchedule.setTeacherId(teacherId);
|
|
courseSchedule.setTeacherId(teacherId);
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
-
|
|
|
|
courseScheduleDao.insert(courseSchedule);
|
|
courseScheduleDao.insert(courseSchedule);
|
|
|
|
+ courseScheduleList.add(courseSchedule);
|
|
|
|
|
|
times++;
|
|
times++;
|
|
|
|
|
|
@@ -1207,9 +1212,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
}
|
|
}
|
|
now = now.plusDays(1);
|
|
now = now.plusDays(1);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //检测新排课冲突
|
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
//老师结算表
|
|
//老师结算表
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
-
|
|
|
|
//学生结算表
|
|
//学生结算表
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
|
|
return classGroup;
|
|
return classGroup;
|
|
@@ -1234,13 +1241,25 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
//1、更新班级关联老师信息
|
|
//1、更新班级关联老师信息
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
|
|
|
|
|
|
- //5、插入班级排课信息
|
|
|
|
|
|
+ Integer teacherId = null;
|
|
|
|
+ for (ClassGroupTeacherMapper groupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
|
+ if (groupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP)) {
|
|
|
|
+ teacherId = groupTeacherMapper.getUserId();
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //2、获取班级学生
|
|
|
|
+ List<StudentRegistration> studentList = studentRegistrationService.findClassGroupStu(musicGroup.getId(), classGroup.getId());
|
|
|
|
+
|
|
|
|
+ //3、插入班级排课信息
|
|
LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
|
LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
|
|
|
|
|
//计算每节课的课酬
|
|
//计算每节课的课酬
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>();
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPaymentList = new ArrayList<>();
|
|
- BigDecimal expectPrice = new BigDecimal("0");
|
|
|
|
|
|
+ List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
|
+
|
|
int times = 0;
|
|
int times = 0;
|
|
Map<String, Integer> holidayDays = new HashMap<>();
|
|
Map<String, Integer> holidayDays = new HashMap<>();
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
@@ -1257,6 +1276,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
}
|
|
}
|
|
int dayOfWeek = now.getDayOfWeek().getValue();
|
|
int dayOfWeek = now.getDayOfWeek().getValue();
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
|
|
+ if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) {
|
|
|
|
+ throw new BizException("排课循环周期错误,请核查");
|
|
|
|
+ }
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
|
|
|
|
//课时长度
|
|
//课时长度
|
|
@@ -1281,11 +1303,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
|
|
courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
|
|
courseSchedule.setType(classGroup4MixDto.getCourseType());
|
|
courseSchedule.setType(classGroup4MixDto.getCourseType());
|
|
- courseSchedule.setName(subjectNames + "-" + CourseSchedule.CourseScheduleType.SINGLE.getMsg());
|
|
|
|
|
|
+ courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
|
|
courseSchedule.setGroupType(GroupType.MUSIC);
|
|
courseSchedule.setGroupType(GroupType.MUSIC);
|
|
-
|
|
|
|
|
|
+ courseSchedule.setTeacherId(teacherId);
|
|
|
|
+ courseSchedule.setActualTeacherId(teacherId);
|
|
courseScheduleDao.insert(courseSchedule);
|
|
courseScheduleDao.insert(courseSchedule);
|
|
-
|
|
|
|
|
|
+ courseScheduleList.add(courseSchedule);
|
|
times++;
|
|
times++;
|
|
|
|
|
|
for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
@@ -1311,6 +1334,21 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
}
|
|
}
|
|
|
|
+ //课堂课课酬
|
|
|
|
+ if (musicGroup.isClassroomLessons()) {
|
|
|
|
+ //课程时长与结算单位时长占比
|
|
|
|
+ classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
|
+ baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
|
+ }
|
|
|
|
+ //基础技能提高课
|
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
|
|
|
|
+ //课程时长与结算单位时长占比
|
|
|
|
+ classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
|
|
|
|
+ baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
|
|
|
|
+ if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
|
+ baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
@@ -1325,18 +1363,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
courseScheduleTeacherSalary.setUpdateTime(date);
|
|
courseScheduleTeacherSalary.setUpdateTime(date);
|
|
courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
}
|
|
}
|
|
-// for (StudentRegistration studentRegistration : studentList) {
|
|
|
|
-// CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
|
-// courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
|
|
|
|
-// courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
|
-// courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
|
|
|
|
-// courseScheduleStudentPayment.setUserId(studentRegistration.getUserId());
|
|
|
|
-// courseScheduleStudentPayment.setExpectPrice(expectPrice);
|
|
|
|
-// courseScheduleStudentPayment.setCreateTime(date);
|
|
|
|
-// courseScheduleStudentPayment.setUpdateTime(date);
|
|
|
|
-// courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
|
|
|
|
-// courseScheduleStudentPaymentList.add(courseScheduleStudentPayment);
|
|
|
|
-// }
|
|
|
|
|
|
+ for (StudentRegistration studentRegistration : studentList) {
|
|
|
|
+ CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
|
+ courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
|
|
|
|
+ courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
|
+ courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
|
|
|
|
+ courseScheduleStudentPayment.setUserId(studentRegistration.getUserId());
|
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
|
+ courseScheduleStudentPayment.setCreateTime(date);
|
|
|
|
+ courseScheduleStudentPayment.setUpdateTime(date);
|
|
|
|
+ courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
|
|
|
|
+ courseScheduleStudentPaymentList.add(courseScheduleStudentPayment);
|
|
|
|
+ }
|
|
if (classGroup4MixDto.getCourseTimes().equals(times)) {
|
|
if (classGroup4MixDto.getCourseTimes().equals(times)) {
|
|
break WhileNode;
|
|
break WhileNode;
|
|
}
|
|
}
|
|
@@ -1347,6 +1385,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //检测新排课冲突
|
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
|
+
|
|
//老师结算表
|
|
//老师结算表
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
|
|
|
@@ -1452,7 +1494,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
int dayOfWeek = now.getDayOfWeek().getValue();
|
|
int dayOfWeek = now.getDayOfWeek().getValue();
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
|
|
- if(courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7){
|
|
|
|
|
|
+ if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) {
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
}
|
|
}
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
|
|
@@ -1811,7 +1853,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
userIdList.add(musicGroup.getTeamTeacherId());
|
|
userIdList.add(musicGroup.getTeamTeacherId());
|
|
userIdList.add(musicGroup.getOperatorUserId());
|
|
userIdList.add(musicGroup.getOperatorUserId());
|
|
userIdList.add(musicGroup.getDirectorUserId());
|
|
userIdList.add(musicGroup.getDirectorUserId());
|
|
- if (classGroupImGroupDto.getUserIds() != null && classGroupImGroupDto.getUserIds().size()>0) {
|
|
|
|
|
|
+ if (classGroupImGroupDto.getUserIds() != null && classGroupImGroupDto.getUserIds().size() > 0) {
|
|
userIdList.addAll(classGroupImGroupDto.getUserIds());
|
|
userIdList.addAll(classGroupImGroupDto.getUserIds());
|
|
}
|
|
}
|
|
|
|
|