|
@@ -2630,6 +2630,70 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public HttpResponseResult confirmPreCourseSchedule(Integer musicGroupSchoolTermCourseDetailId) {
|
|
|
+ MusicGroupSchoolTermCourseDetail termCourseDetail = musicGroupSchoolTermCourseDetailDao.get(musicGroupSchoolTermCourseDetailId);
|
|
|
+ //校验所有学员的课时都有消耗
|
|
|
+ if(musicGroupSchoolTermStudentCourseDetailDao.checkNoCourse(musicGroupSchoolTermCourseDetailId)){
|
|
|
+ throw new BizException("操作失败:请确保所有学员都已排课");
|
|
|
+ }
|
|
|
+ //获取所有预排课课程列表
|
|
|
+ List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByMusicGroupId(termCourseDetail.getMusicGroupId());
|
|
|
+ if(courseSchedules.size() == 0){
|
|
|
+ throw new BizException("操作失败:请先预排课");
|
|
|
+ }
|
|
|
+ Map<Integer, List<CourseSchedule>> courseMap = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassGroupId));
|
|
|
+ courseMap.keySet().forEach(e->{
|
|
|
+ //更新班级课程数
|
|
|
+ classGroupService.updateTotalClassTimes(e, courseMap.get(e).size());
|
|
|
+ });
|
|
|
+ List<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ //取消预排课标记
|
|
|
+ courseScheduleDao.batchUpdateLockByCourseIds(courseScheduleIds,0,0);
|
|
|
+ //标记已排课
|
|
|
+ termCourseDetail.setCourseFlag(true);
|
|
|
+ musicGroupSchoolTermCourseDetailDao.update(termCourseDetail);
|
|
|
+ //更新学员服务指标
|
|
|
+ List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(courseScheduleIds);
|
|
|
+ List<Integer> studentIds = studentPayments.stream().map(e -> e.getUserId()).collect(Collectors.toList());
|
|
|
+ studentDao.updateStudentServiceTag(null, studentIds, YesOrNoEnum.YES.getCode());
|
|
|
+ //初始化老师考勤表
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
|
|
|
+ List<ClassGroup> byCourseSchedules = classGroupDao.findByCourseSchedules(courseScheduleIds);
|
|
|
+
|
|
|
+ Map<Integer, ClassGroup> classGroupMap = new HashMap<Integer, ClassGroup>();
|
|
|
+ for (ClassGroup classGroup : byCourseSchedules) {
|
|
|
+ if (!classGroupMap.containsKey(classGroup.getId())) {
|
|
|
+ classGroupMap.put(classGroup.getId(), classGroup);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TeacherAttendance> teacherIdByCourseSchedule = teacherAttendanceDao.findTeacherIdByCourseSchedule(courseScheduleIds);
|
|
|
+ Map<Long, List<TeacherAttendance>> courseScheduleTeacherAttendanceMap = teacherIdByCourseSchedule.stream()
|
|
|
+ .collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
|
|
|
+ List<TeacherAttendance> teacherAttendances = new ArrayList<>();
|
|
|
+ courseScheduleTeacherSalaries.forEach(courseScheduleTeacherSalary -> {
|
|
|
+ List<TeacherAttendance> teacherAttendancesTemp = courseScheduleTeacherAttendanceMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+ List<Integer> collect = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(teacherAttendancesTemp)) {
|
|
|
+ collect = teacherAttendancesTemp.stream().map(TeacherAttendance::getTeacherId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ TeacherAttendance teacherAttendance = new TeacherAttendance();
|
|
|
+ teacherAttendance.setGroupType(courseScheduleTeacherSalary.getGroupType());
|
|
|
+ teacherAttendance.setClassGroupId(courseScheduleTeacherSalary.getClassGroupId());
|
|
|
+ teacherAttendance.setMusicGroupId(courseScheduleTeacherSalary.getMusicGroupId());
|
|
|
+ if (CollectionUtils.isEmpty(collect) || !collect.contains(courseScheduleTeacherSalary.getUserId())) {
|
|
|
+ teacherAttendance.setTeacherId(courseScheduleTeacherSalary.getUserId());
|
|
|
+ teacherAttendance.setCourseScheduleId(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+ teacherAttendances.add(teacherAttendance);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (!CollectionUtils.isEmpty(teacherAttendances)) {
|
|
|
+ teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
+ }
|
|
|
+ imUserFriendService.refreshGroupImUserFriend(termCourseDetail.getMusicGroupId(),MUSIC);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResponseResult preCourseSchedule(List<ClassGroup4MixDto> classGroup4MixDtos) {
|
|
|
Date date = new Date();
|
|
@@ -2678,6 +2742,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
List<CourseSchedule> courseScheduleList = new ArrayList<>();
|
|
|
MusicGroupSchoolTermCourseDetail schoolTermCourseDetail = musicGroupSchoolTermCourseDetailDao.get(musicGroupSchoolTermCourseDetailId);
|
|
|
for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
|
|
|
+ //更新学员的排课时长
|
|
|
//3、插入班级排课信息
|
|
|
LocalDateTime now = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
|
|
@@ -4021,7 +4086,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
//冻结班级
|
|
|
classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 1);
|
|
|
//冻结所选班级的课程
|
|
|
- courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 1);
|
|
|
+ courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 1,null);
|
|
|
httpResponseResult.setMsg("学员班级调整申请已提交,缴费项目审核中");
|
|
|
}
|
|
|
return httpResponseResult;
|
|
@@ -4452,7 +4517,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
// 冻结班级
|
|
|
classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 1);
|
|
|
// 冻结所选班级的课程
|
|
|
- courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 1);
|
|
|
+ courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 1,null);
|
|
|
httpResponseResult.setMsg("操作成功:学员班级调整申请已提交,缴费项目审核中");
|
|
|
}
|
|
|
return httpResponseResult;
|
|
@@ -4488,7 +4553,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, studentIds);
|
|
|
}
|
|
|
//解冻课程
|
|
|
- courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 0);
|
|
|
+ courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 0,null);
|
|
|
//解冻班级
|
|
|
classGroupIds.add(masterClassGroupId);
|
|
|
classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 0);
|
|
@@ -4510,7 +4575,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
@Override
|
|
|
public List<CourseSchedule> queryPreCourseList(Integer classGroupId) {
|
|
|
- List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseList(classGroupId);
|
|
|
+ List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByClassGroupId(classGroupId);
|
|
|
if(courseSchedules.size() > 0){
|
|
|
List<Long> courseIdList = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
Map<Long, String> bishopTeacherMap = MapUtil.convertMybatisMap(courseScheduleTeacherSalaryDao.queryTeacherIdMap(courseIdList,"BISHOP"));
|
|
@@ -4522,9 +4587,4 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
return courseSchedules;
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- public HttpResponseResult confirmPreCourseSchedule(Integer musicGroupSchoolTermCourseDetailId) {
|
|
|
- return null;
|
|
|
- }
|
|
|
}
|