|
@@ -573,7 +573,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
batchAddImGroup(classGroupImGroupList);
|
|
|
classGroupTeacherMapperService.classGroupTeachersInsert(classGroupTeacherMapperList);
|
|
|
// 检测新排课冲突
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false,false);
|
|
|
courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
|
|
|
} finally {
|
|
|
redisCache.releaseLocked(key, value);
|
|
@@ -1676,16 +1676,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
|
|
|
throw new BizException("排课次数必须大于0");
|
|
|
}
|
|
|
- //准备自动排课数据
|
|
|
- List<ClassGroup4MixDto> classGroup4MixDtosBackup = Arrays.asList(new ClassGroup4MixDto[classGroup4MixDtos.size()]);
|
|
|
- Integer musicGroupStudentClassAdjustId = classGroup4MixDtos.get(0).getMusicGroupStudentClassAdjustId();
|
|
|
- if(StringUtils.isNotEmpty(classGroup4MixDtos.get(0).getClassCourseMinute())){
|
|
|
- try {
|
|
|
- Collections.copy(classGroup4MixDtosBackup,classGroup4MixDtos);
|
|
|
- } catch (Exception e) {
|
|
|
- throw new BizException("拷贝课程信息异常");
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
Integer schoolId = musicGroup.getSchoolId();
|
|
@@ -1798,31 +1788,24 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
String classCourseMinute = null;
|
|
|
for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
|
|
|
- List<CourseSchedule> courseSchedules = new ArrayList<>();
|
|
|
- courseSchedules.clear();
|
|
|
if(classGroup4MixDto.getCourseTimeDtoList() == null || classGroup4MixDto.getCourseTimeDtoList().size() == 0){
|
|
|
break;
|
|
|
}
|
|
|
//5、插入班级排课信息
|
|
|
LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
|
|
- //是否是合班后的自动排课
|
|
|
- classCourseMinute = classGroup4MixDto.getClassCourseMinute();
|
|
|
+
|
|
|
long courseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getCourseTimeDtoList().get(0).getStartClassTime() + ":00", formatter),
|
|
|
LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + classGroup4MixDto.getCourseTimeDtoList().get(0).getEndClassTime() + ":00", formatter))
|
|
|
.toMinutes();
|
|
|
- if(StringUtils.isNotEmpty(classCourseMinute)){
|
|
|
- Map<String, Integer> classCourseMinuteMap = JSON.parseObject(classCourseMinute, Map.class);
|
|
|
- classGroup4MixDto.setCourseTimes(classCourseMinuteMap.get(classGroup4MixDto.getCourseType().getCode())/(int)courseDuration);
|
|
|
- }else {
|
|
|
- if(!courseTypeMinutesMap.containsKey(classGroup4MixDto.getCourseType().getCode())){
|
|
|
- throw new BizException("{}课程类型暂无剩余课程时长", classGroup4MixDto.getCourseType().getMsg());
|
|
|
- }
|
|
|
- Integer totalMinutes = courseTypeMinutesMap.get(classGroup4MixDto.getCourseType().getCode());
|
|
|
- classGroup4MixDto.setCourseTimes(totalMinutes/(int)courseDuration);
|
|
|
|
|
|
- if(classGroup4MixDto.getCourseTimes()<=0){
|
|
|
- throw new BizException("{}课程类型剩余课程时长不足", classGroup4MixDto.getCourseType().getMsg());
|
|
|
- }
|
|
|
+ if(!courseTypeMinutesMap.containsKey(classGroup4MixDto.getCourseType().getCode())){
|
|
|
+ throw new BizException("{}课程类型暂无剩余课程时长", classGroup4MixDto.getCourseType().getMsg());
|
|
|
+ }
|
|
|
+ Integer totalMinutes = courseTypeMinutesMap.get(classGroup4MixDto.getCourseType().getCode());
|
|
|
+ classGroup4MixDto.setCourseTimes(totalMinutes/(int)courseDuration);
|
|
|
+
|
|
|
+ if(classGroup4MixDto.getCourseTimes()<=0){
|
|
|
+ throw new BizException("{}课程类型剩余课程时长不足", classGroup4MixDto.getCourseType().getMsg());
|
|
|
}
|
|
|
|
|
|
int times = 0;
|
|
@@ -1884,8 +1867,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
|
courseScheduleDao.insert(courseSchedule);
|
|
|
courseScheduleList.add(courseSchedule);
|
|
|
- courseSchedules.add(courseSchedule);
|
|
|
-
|
|
|
|
|
|
times++;
|
|
|
|
|
@@ -1988,26 +1969,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
now = now.plusDays(1);
|
|
|
}
|
|
|
- //自动排课,校验冲突
|
|
|
- if(courseSchedules.size() > 0 && StringUtils.isNotEmpty(classCourseMinute)){
|
|
|
- try {
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseSchedules, false);
|
|
|
- }catch (BizException e){
|
|
|
- //如果出现冲突
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- //排课开始时间加一周
|
|
|
- ClassGroup4MixDto group4MixDto = classGroup4MixDtosBackup.get(0);
|
|
|
- Date stringToDate = DateUtil.stringToDate(group4MixDto.getStartDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
|
|
|
- group4MixDto.setStartDate(DateUtil.format(DateUtil.addDays(stringToDate, 7),DateUtil.ISO_EXPANDED_DATE_FORMAT));
|
|
|
-// 再次尝试排课
|
|
|
- classGroupAdjust(classGroup4MixDtosBackup);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
- if(courseScheduleList.size() > 0 && StringUtils.isEmpty(classCourseMinute)){
|
|
|
+ if(courseScheduleList.size() > 0){
|
|
|
//检测新排课冲突
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false,false);
|
|
|
}
|
|
|
|
|
|
//老师结算表
|
|
@@ -2016,49 +1982,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
//学生结算表
|
|
|
if (courseScheduleList.size() > 0) {
|
|
|
- if(StringUtils.isEmpty(classCourseMinute)){
|
|
|
- courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIdList);
|
|
|
- }else {
|
|
|
- courseScheduleStudentPaymentService.createForMusicGroup(courseScheduleList, studentIdList,musicGroupStudentClassAdjustId);
|
|
|
- }
|
|
|
+ courseScheduleStudentPaymentService.createForMusicGroup(musicGroupId, courseScheduleList, studentIdList);
|
|
|
}
|
|
|
return classGroup;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public ClassGroup classGroupAdjust2(ClassGroup4MixDto classGroup4MixDto){
|
|
|
+ public List<CourseSchedule> getCourseSchedules(ClassGroup4MixDto classGroup4MixDto){
|
|
|
Date date = new Date();
|
|
|
String musicGroupId = classGroup4MixDto.getMusicGroupId();
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- if (musicGroup == null) {
|
|
|
- throw new BizException("乐团不存在");
|
|
|
- }
|
|
|
- if (classGroup4MixDto.getCourseTimes().compareTo(0) <= 0) {
|
|
|
- throw new BizException("排课次数必须大于0");
|
|
|
- }
|
|
|
Integer schoolId = musicGroup.getSchoolId();
|
|
|
|
|
|
- List<Integer> studentIdList = classGroup4MixDto.getStudents();
|
|
|
- List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
|
|
|
-
|
|
|
- List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
|
|
|
TeachModeEnum teachMode = TeachModeEnum.OFFLINE;
|
|
|
if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
|
|
|
- subjectIdList.clear();
|
|
|
- subjectIdList.add(classGroup4MixDto.getSubjectId());
|
|
|
teachMode = TeachModeEnum.ONLINE;
|
|
|
- }
|
|
|
-
|
|
|
- List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
|
|
|
-
|
|
|
- String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
|
|
|
- String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
|
|
|
-
|
|
|
- if(classGroup4MixDto.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)){
|
|
|
+ }else if(classGroup4MixDto.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)){
|
|
|
teachMode = TeachModeEnum.ONLINE;
|
|
|
- List<String> studentNames = studentDao.getStudentNames(studentIdList);
|
|
|
- classGroup4MixDto.setClassGroupName(subjectNames + "•" + StringUtils.join(studentNames, ","));
|
|
|
}
|
|
|
|
|
|
if (classGroup4MixDto.getType() == null) {
|
|
@@ -2067,11 +2007,6 @@ 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("主教与助教存在冲突");
|
|
|
- }
|
|
|
-
|
|
|
Integer teacherId = null;
|
|
|
for (ClassGroupTeacherMapper groupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
if (groupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP)) {
|
|
@@ -2080,8 +2015,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
String classCourseMinute = classGroup4MixDto.getClassCourseMinute();
|
|
|
-
|
|
|
- //5、插入班级排课信息
|
|
|
LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
|
|
//获取默认的排课时长
|
|
|
String courseDefaultMinutes = sysConfigDao.findConfigValue("music_course_default_minutes");
|
|
@@ -2091,6 +2024,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Map<String, Integer> classCourseMinuteMap = JSON.parseObject(classCourseMinute, Map.class);
|
|
|
classGroup4MixDto.setCourseTimes(classCourseMinuteMap.get(classGroup4MixDto.getCourseType().getCode())/(int)classCourseDuration);
|
|
|
|
|
|
+ List<Integer> studentIdList = classGroup4MixDto.getStudents();
|
|
|
+ List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
|
|
|
+
|
|
|
+ List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
|
|
|
+
|
|
|
+ String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
|
|
|
+
|
|
|
Set<String> holidayDays = new HashSet<>();
|
|
|
if (classGroup4MixDto.getHoliday()) {
|
|
|
SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
|
|
@@ -2098,7 +2039,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ ClassGroup classGroup = classGroup4MixDto.getClassGroup();
|
|
|
List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
int times = 0;
|
|
|
WhileNode:
|
|
@@ -2132,6 +2073,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseSchedule.setOrganId(musicGroup.getOrganId());
|
|
|
courseSchedule.setTeacherId(teacherId);
|
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
|
+ courseSchedule.setClassGroupId(classGroup.getId());
|
|
|
+ if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
+ courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
|
|
|
+ }else if(classGroup4MixDto.getCourseType().equals(CourseScheduleType.MUSIC_NETWORK)){
|
|
|
+ courseSchedule.setName(classGroup.getName());
|
|
|
+ } else {
|
|
|
+ courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
|
|
|
+ }
|
|
|
courseScheduleList.add(courseSchedule);
|
|
|
|
|
|
times++;
|
|
@@ -2142,51 +2091,98 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
now = now.plusDays(1);
|
|
|
}
|
|
|
+ return courseScheduleList;
|
|
|
+ }
|
|
|
|
|
|
- ClassGroup classGroup = classGroup4MixDto.getClassGroup();
|
|
|
- //计算每节课的课酬
|
|
|
- List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public ClassGroup createClassGroup(ClassGroup4MixDto classGroup4MixDto){
|
|
|
+ Date date = new Date();
|
|
|
+ String musicGroupId = classGroup4MixDto.getMusicGroupId();
|
|
|
+ List<Integer> studentIdList = classGroup4MixDto.getStudents();
|
|
|
+ List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
|
|
|
|
|
|
- if(classGroup == null){
|
|
|
+ List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
|
|
|
+ if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
|
|
|
+ subjectIdList.clear();
|
|
|
+ subjectIdList.add(classGroup4MixDto.getSubjectId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
|
|
|
+ String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
|
|
|
//1、新建班级
|
|
|
- classGroup = new ClassGroup();
|
|
|
- classGroup.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
|
|
|
- classGroup.setSubjectIdList(subjectIds);
|
|
|
- classGroup.setName(classGroup4MixDto.getClassGroupName());
|
|
|
- classGroup.setExpectStudentNum(studentList.size());
|
|
|
- classGroup.setStudentNum(studentList.size());
|
|
|
- classGroup.setType(classGroup4MixDto.getType());
|
|
|
- classGroup.setDelFlag(0);
|
|
|
- classGroup.setGroupType(MUSIC);
|
|
|
- classGroup.setCurrentClassTimes(0);
|
|
|
- classGroup.setTotalClassTimes(classGroup4MixDto.getCourseTimes());
|
|
|
- classGroup.setCreateTime(date);
|
|
|
- classGroup.setUpdateTime(date);
|
|
|
- classGroupDao.insert(classGroup);
|
|
|
- for (CourseSchedule courseSchedule : courseScheduleList) {
|
|
|
- courseSchedule.setClassGroupId(classGroup.getId());
|
|
|
- if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
|
|
|
- courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
|
|
|
- }else if(classGroup4MixDto.getCourseType().equals(CourseScheduleType.MUSIC_NETWORK)){
|
|
|
- courseSchedule.setName(classGroup.getName());
|
|
|
- } else {
|
|
|
- courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
|
|
|
- }
|
|
|
- }
|
|
|
+ ClassGroup classGroup = new ClassGroup();
|
|
|
+ classGroup.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
|
|
|
+ classGroup.setSubjectIdList(subjectIds);
|
|
|
+ classGroup.setName(classGroup4MixDto.getClassGroupName());
|
|
|
+ classGroup.setExpectStudentNum(studentList.size());
|
|
|
+ classGroup.setStudentNum(studentList.size());
|
|
|
+ classGroup.setType(classGroup4MixDto.getType());
|
|
|
+ classGroup.setDelFlag(0);
|
|
|
+ classGroup.setGroupType(MUSIC);
|
|
|
+ classGroup.setCurrentClassTimes(0);
|
|
|
+ classGroup.setTotalClassTimes(classGroup4MixDto.getCourseTimes());
|
|
|
+ classGroup.setCreateTime(date);
|
|
|
+ classGroup.setUpdateTime(date);
|
|
|
+ classGroupDao.insert(classGroup);
|
|
|
+ return classGroup;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public List<CourseSchedule> autoAdjust(ClassGroup4MixDto classGroup4MixDto,List<CourseSchedule> courseScheduleList){
|
|
|
+ Boolean checkFlag = courseScheduleService.checkNewCourseSchedules(courseScheduleList, false, true);
|
|
|
+ if(!checkFlag){
|
|
|
+ //排课开始时间加一周
|
|
|
+ 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);
|
|
|
+ autoAdjust(classGroup4MixDto,courseScheduleList);
|
|
|
+ }
|
|
|
+ return courseScheduleList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public ClassGroup classGroupAdjust2(ClassGroup4MixDto classGroup4MixDto){
|
|
|
+ Date date = new Date();
|
|
|
+ String musicGroupId = classGroup4MixDto.getMusicGroupId();
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ if (musicGroup == null) {
|
|
|
+ throw new BizException("乐团不存在");
|
|
|
+ }
|
|
|
+ if (classGroup4MixDto.getCourseTimes().compareTo(0) <= 0) {
|
|
|
+ throw new BizException("排课次数必须大于0");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> studentIdList = classGroup4MixDto.getStudents();
|
|
|
+ List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
|
|
|
+
|
|
|
+ if (classGroup4MixDto.getType() == null) {
|
|
|
+ classGroup4MixDto.setType(ClassGroupTypeEnum.NORMAL);
|
|
|
}
|
|
|
|
|
|
+ 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){
|
|
|
- try {
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
- }catch (BizException e){
|
|
|
- classGroup4MixDto.setClassGroup(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));
|
|
|
-// 再次尝试排课
|
|
|
- classGroupAdjust2(classGroup4MixDto);
|
|
|
- }
|
|
|
+ //冲突校验
|
|
|
+ courseScheduleList = autoAdjust(classGroup4MixDto,courseScheduleList);
|
|
|
|
|
|
//2、将学生加入新班级(学生注册表,关联表
|
|
|
List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
|
|
@@ -2233,6 +2229,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
|
|
|
|
|
|
Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
+ //计算每节课的课酬
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
+
|
|
|
for (CourseSchedule courseSchedule : courseScheduleList) {
|
|
|
//默认课程时长
|
|
|
for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
@@ -2647,7 +2646,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
// if (classGroup.getType().equals(ClassGroupTypeEnum.SNAP)) {
|
|
|
// courseScheduleService.checkSnapCourseShchedules(courseScheduleList);
|
|
|
// } else {
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false,false);
|
|
|
// }
|
|
|
|
|
|
//老师结算表
|
|
@@ -2940,7 +2939,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
// courseScheduleService.checkSnapCourseShchedules(courseScheduleList);
|
|
|
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseScheduleList, false);
|
|
|
+ courseScheduleService.checkNewCourseSchedules(courseScheduleList, false,false);
|
|
|
|
|
|
//老师结算表
|
|
|
if (courseScheduleTeacherSalaryList.size() > 0) {
|
|
@@ -3641,7 +3640,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public void mergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto) throws Exception {
|
|
|
List<Integer> classGroupIds = mergeClassSplitClassAffirmDto.getClassGroupIds();
|
|
|
if(classGroupIds == null || classGroupIds.size() == 0){
|