|
@@ -1784,7 +1784,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- String classCourseMinute = null;
|
|
|
for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
|
|
|
if(classGroup4MixDto.getCourseTimeDtoList() == null || classGroup4MixDto.getCourseTimeDtoList().size() == 0){
|
|
|
break;
|
|
@@ -1986,7 +1985,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public List<CourseSchedule> getCourseSchedules(ClassGroup4MixDto classGroup4MixDto){
|
|
|
+ public List<CourseSchedule> getCourseSchedules(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList){
|
|
|
Date date = new Date();
|
|
|
String musicGroupId = classGroup4MixDto.getMusicGroupId();
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
@@ -2038,7 +2037,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
}
|
|
|
ClassGroup classGroup = classGroup4MixDto.getClassGroup();
|
|
|
- List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
+ courseScheduleList.clear();
|
|
|
int times = 0;
|
|
|
WhileNode:
|
|
|
while (true) {
|
|
@@ -2133,7 +2132,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Date stringToDate = DateUtil.stringToDate(classGroup4MixDto.getStartDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
classGroup4MixDto.setStartDate(DateUtil.format(DateUtil.addDays(stringToDate, 7),DateUtil.ISO_EXPANDED_DATE_FORMAT));
|
|
|
//再次尝试排课
|
|
|
- courseScheduleList = getCourseSchedules(classGroup4MixDto);
|
|
|
+ courseScheduleList = getCourseSchedules(classGroup4MixDto,courseScheduleList);
|
|
|
autoAdjust(classGroup4MixDto,courseScheduleList);
|
|
|
}
|
|
|
return courseScheduleList;
|
|
@@ -2161,27 +2160,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
|
|
|
|
|
|
- Set<Integer> noRepeatTeacherIds = classGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
|
|
|
- if(noRepeatTeacherIds.size()!=classGroupTeacherMapperList.size()){
|
|
|
- throw new BizException("主教与助教存在冲突");
|
|
|
- }
|
|
|
-
|
|
|
//获取默认的排课时长
|
|
|
String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
|
|
|
JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
|
|
|
long classCourseDuration = Integer.parseInt(jsonObject.get(classGroup4MixDto.getCourseType().getCode()).toString());
|
|
|
-
|
|
|
- //建班
|
|
|
- ClassGroup classGroup = createClassGroup(classGroup4MixDto);
|
|
|
- //排课
|
|
|
- classGroup4MixDto.setClassGroup(classGroup);
|
|
|
- List<CourseSchedule> courseScheduleList = getCourseSchedules(classGroup4MixDto);
|
|
|
-
|
|
|
- //自动排课,校验冲突
|
|
|
- if(courseScheduleList.size() > 0){
|
|
|
- //冲突校验
|
|
|
- courseScheduleList = autoAdjust(classGroup4MixDto,courseScheduleList);
|
|
|
-
|
|
|
+ ClassGroup classGroup = classGroup4MixDto.getClassGroup();
|
|
|
+ if(classGroup == null){
|
|
|
+ //建班
|
|
|
+ classGroup = createClassGroup(classGroup4MixDto);
|
|
|
+ classGroup4MixDto.setClassGroup(classGroup);
|
|
|
//2、将学生加入新班级(学生注册表,关联表
|
|
|
List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
|
|
|
List<Integer> userIds = new ArrayList<>(); //用户ids
|
|
@@ -2214,6 +2201,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
|
|
|
//创建IM群组
|
|
|
addImGroup(classGroup, userIds);
|
|
|
+ }
|
|
|
+ //排课
|
|
|
+ List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
+ getCourseSchedules(classGroup4MixDto,courseScheduleList);
|
|
|
+
|
|
|
+ //自动排课,校验冲突
|
|
|
+ if(courseScheduleList.size() > 0){
|
|
|
+ //冲突校验
|
|
|
+ courseScheduleList = autoAdjust(classGroup4MixDto,courseScheduleList);
|
|
|
|
|
|
List<Integer> allTeacherIds = classGroupTeacherMapperList.stream()
|
|
|
.map(ClassGroupTeacherMapper::getUserId)
|
|
@@ -2294,7 +2290,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
//线上小班课
|
|
|
if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)||classGroup4MixDto.getCourseType().equals(CourseScheduleType.HIGH)) {
|
|
|
teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
|
|
|
- Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
|
|
|
+ Integer classGroupId = classGroupTeacherMapper.getClassGroupId();
|
|
|
+ if(classGroupId == null){
|
|
|
+ classGroupId = classGroup.getId();
|
|
|
+ }
|
|
|
+ Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupId);
|
|
|
if(studentNum>5){
|
|
|
studentNum=5;
|
|
|
}
|
|
@@ -3620,6 +3620,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
if(unitPrice == null){
|
|
|
throw new BizException("分部默认课程类型单价不存在,请设置");
|
|
|
}
|
|
|
+ settingsDetail.setCourseTotalNum(subNum.intValue());
|
|
|
settingsDetail.setCourseType(CourseScheduleType.valueOf(courseType));
|
|
|
settingsDetail.setCourseTotalMinuties(Integer.parseInt(jsonObject.get(courseType).toString()) * subNum.intValue());
|
|
|
settingsDetail.setCourseCurrentPrice(unitPrice.multiply(new BigDecimal(settingsDetail.getCourseTotalMinuties())));
|
|
@@ -3715,10 +3716,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
//如果缴费项目不需要审核,那么生成班级以及课表
|
|
|
if(status == null || status != AUDITING){
|
|
|
//每种课程类型单独进行排课
|
|
|
+ ClassGroup classGroup = null;
|
|
|
for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
|
|
|
+ classGroup4MixDto.setClassGroup(classGroup);
|
|
|
classGroup4MixDto.setMusicGroupStudentClassAdjustId(musicGroupStudentClassAdjust.getId());
|
|
|
classGroup4MixDto.setClassCourseMinute(musicGroupStudentClassAdjust.getClassCourseMinute());
|
|
|
- classGroupService.classGroupAdjust2(classGroup4MixDto);
|
|
|
+ classGroup = classGroupService.classGroupAdjust2(classGroup4MixDto);
|
|
|
}
|
|
|
//排课完成后删除所选课程
|
|
|
courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds,studentIds);
|
|
@@ -3733,7 +3736,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
List<Long> delCourseIds = courseScheduleDao.findNoStudentCourseIds(courseIds);
|
|
|
if(delCourseIds != null && delCourseIds.size() > 0){
|
|
|
+ //删除课程
|
|
|
courseScheduleDao.deleteCourseSchedulesByClassGroupIds(delCourseIds);
|
|
|
+ //删除教师考勤
|
|
|
+ teacherAttendanceDao.batchDeleteByCourseSchedules(delCourseIds);
|
|
|
+ //删除教师课酬
|
|
|
+ courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(delCourseIds);
|
|
|
}
|
|
|
return "学员班级调整完成";
|
|
|
}else {
|