|
@@ -4347,6 +4347,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
|
|
|
Map<Long, String> eduName = null;
|
|
|
Map<String, MusicGroupBasicDto> cooperationMap = new HashMap<>();
|
|
|
+ Map<String, String> vipGroupTypeMap = new HashMap<>();
|
|
|
if (queryInfo.isExport()) {
|
|
|
List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
eduName = new HashMap<>(courseScheduleIds.size());
|
|
@@ -4358,7 +4359,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
cooperationMap.put(map.getId(), map);
|
|
|
}
|
|
|
}
|
|
|
- List<Long> vipCourseIds = results.stream().filter(e -> e.getGroupType() == VIP).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
+ List<Long> vipGroupIds = results.stream().filter(e -> e.getType() == CourseScheduleType.VIP)
|
|
|
+ .map(e->Long.parseLong(e.getMusicGroupId())).distinct().collect(Collectors.toList());
|
|
|
+ //获取vip课程具体课程类型
|
|
|
+ if (CollectionUtils.isNotEmpty(vipGroupIds)){
|
|
|
+ vipGroupTypeMap = MapUtil.convertMybatisMap(vipGroupDao.findVipGroupTypeMaps(vipGroupIds));
|
|
|
+ }
|
|
|
+ List<Long> vipCourseIds = results.stream().filter(e -> e.getGroupType() == VIP).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
if (vipCourseIds != null && vipCourseIds.size() > 0) {
|
|
|
eduName.putAll(MapUtil.convertMybatisMap(vipGroupDao.queryEduNameMapByCourseId(vipCourseIds)));
|
|
|
}
|
|
@@ -4369,6 +4376,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
for (CourseScheduleEndDto result : results) {
|
|
|
+ if (queryInfo.isExport()) {
|
|
|
+ if(result.getType() == CourseScheduleType.VIP){
|
|
|
+ result.setCourseScheduleType(vipGroupTypeMap.get(result.getMusicGroupId()));
|
|
|
+ }else {
|
|
|
+ result.setCourseScheduleType(result.getType().getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
if(StringUtils.isNotEmpty(result.getTeachingTeacherIds())){
|
|
|
List<String> ids = Arrays.stream(result.getTeachingTeacherIds().split(",")).collect(Collectors.toList());
|
|
|
StringBuffer sb = new StringBuffer();
|
|
@@ -4406,6 +4420,130 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public List<CourseScheduleEndDto> exportSuperCourseSchedules(ExportCourseScheduleQueryInfo queryInfo) {
|
|
|
+ Map<String, Object> params = new HashMap<>(16);
|
|
|
+ if (StringUtils.isNotEmpty(queryInfo.getMonth())) {
|
|
|
+ Date month = DateUtil.stringToDate(queryInfo.getMonth(), DateUtil.ISO_YEAR_MONTH_FORMAT);
|
|
|
+ params.put("startTime", DateUtil.getFirstDayOfMonth(month));
|
|
|
+ params.put("endTime", DateUtil.getLastDayOfMonth(month));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(queryInfo.getOrganIds())){
|
|
|
+ List<Integer> collect = Arrays.stream(queryInfo.getOrganIds().split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
|
|
+ params.put("organIds", collect);
|
|
|
+ }
|
|
|
+ List<CourseScheduleEndDto> results = courseScheduleDao.exportSuperCourseSchedules(params);
|
|
|
+ if(CollectionUtils.isEmpty(results)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<Integer> organIdList = results.stream().map(e -> e.getOrganId()).distinct().collect(Collectors.toList());
|
|
|
+ Map<Integer, String> organNameMap = new HashMap<>();
|
|
|
+ if(CollectionUtils.isNotEmpty(organIdList)){
|
|
|
+ organNameMap = this.getMap("organization","id_","name_",organIdList,queryInfo.getTenantId(),Integer.class,String.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> schoolIdList = results.stream().map(e -> e.getSchoolId()).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<Integer, String> schoolameMap = new HashMap<>();
|
|
|
+ if(CollectionUtils.isNotEmpty(schoolIdList)){
|
|
|
+ schoolameMap = this.getMap("school","id_","name_",schoolIdList,queryInfo.getTenantId(),Integer.class,String.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> courseScheduleIds = results.stream().map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
+ List<Integer> teacherIds = results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
|
|
|
+ List<Integer> teachingUserIdsList = results.stream()
|
|
|
+ .filter(u -> StringUtils.isNotEmpty(u.getTeachingTeacherIds()))
|
|
|
+ .flatMap(u -> Arrays.stream(u.getTeachingTeacherIds().split(",")))
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
+ .map(Integer::parseInt)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if(CollectionUtils.isNotEmpty(teachingUserIdsList)){
|
|
|
+ teacherIds.addAll(teachingUserIdsList);
|
|
|
+ }
|
|
|
+ List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
|
|
|
+ Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(nameIdMaps);
|
|
|
+
|
|
|
+ List<Map<Long, Long>> courseMergeCourseNum = courseScheduleDao.countCourseMergeCourseNum(courseScheduleIds);
|
|
|
+ Map<Long, Long> courseMergeCourseNumMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(courseMergeCourseNum)){
|
|
|
+ courseMergeCourseNumMap = MapUtil.convertIntegerMap(courseMergeCourseNum);
|
|
|
+ }
|
|
|
+ //获取课程的预计人数
|
|
|
+ List<CourseSchedule> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
|
|
|
+ Map<Long, Integer> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseSchedule::getId, CourseSchedule::getStudentNum));
|
|
|
+ //获取班级声部名称
|
|
|
+ List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
|
|
|
+ Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
|
|
|
+ Map<String, MusicGroupBasicDto> cooperationMap = new HashMap<>();
|
|
|
+ Map<String, String> vipGroupTypeMap = new HashMap<>();
|
|
|
+ List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
+ Map<Long, String> eduName = new HashMap<>(courseScheduleIds.size());
|
|
|
+ if (musicCourseIds != null && musicCourseIds.size() > 0) {
|
|
|
+ eduName.putAll(MapUtil.convertMybatisMap(musicGroupDao.queryEduNameMapByCourseId(musicCourseIds)));
|
|
|
+ //获取合作单位,只有groupType是 MUSIC 的才有合作单位
|
|
|
+ List<MusicGroupBasicDto> maps = musicGroupDao.findMusicByCourseIds(musicCourseIds);
|
|
|
+ for (MusicGroupBasicDto map : maps) {
|
|
|
+ cooperationMap.put(map.getId(), map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Long> vipGroupIds = results.stream().filter(e -> e.getType() == CourseScheduleType.VIP)
|
|
|
+ .map(e->Long.parseLong(e.getMusicGroupId())).distinct().collect(Collectors.toList());
|
|
|
+ //获取vip课程具体课程类型
|
|
|
+ if (CollectionUtils.isNotEmpty(vipGroupIds)){
|
|
|
+ vipGroupTypeMap = MapUtil.convertMybatisMap(vipGroupDao.findVipGroupTypeMaps(vipGroupIds));
|
|
|
+ }
|
|
|
+ List<Long> vipCourseIds = results.stream().filter(e -> e.getGroupType() == VIP).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
+ if (vipCourseIds != null && vipCourseIds.size() > 0) {
|
|
|
+ eduName.putAll(MapUtil.convertMybatisMap(vipGroupDao.queryEduNameMapByCourseId(vipCourseIds)));
|
|
|
+ }
|
|
|
+ List<Long> practiceCourseIds = results.stream().filter(e -> e.getGroupType() == PRACTICE).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
|
|
|
+ if (practiceCourseIds != null && practiceCourseIds.size() > 0) {
|
|
|
+ eduName.putAll(MapUtil.convertMybatisMap(practiceGroupDao.queryEduNameMapByCourseId(practiceCourseIds)));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (CourseScheduleEndDto result : results) {
|
|
|
+ if(result.getType() == CourseScheduleType.VIP){
|
|
|
+ result.setCourseScheduleType(vipGroupTypeMap.get(result.getMusicGroupId()));
|
|
|
+ }else {
|
|
|
+ result.setCourseScheduleType(result.getType().getMsg());
|
|
|
+ }
|
|
|
+ result.setOrganName(organNameMap.get(result.getOrganId()));
|
|
|
+ result.setSchoolName(schoolameMap.get(result.getSchoolId()));
|
|
|
+ if(StringUtils.isNotEmpty(result.getTeachingTeacherIds())){
|
|
|
+ List<String> ids = Arrays.stream(result.getTeachingTeacherIds().split(",")).collect(Collectors.toList());
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ for (String teachingId : ids) {
|
|
|
+ String teachingName = nameIdMap.get(Integer.parseInt(teachingId));
|
|
|
+ if(StringUtils.isNotEmpty(teachingName)){
|
|
|
+ if(sb.length() > 0){
|
|
|
+ sb.append(",");
|
|
|
+ }
|
|
|
+ sb.append(teachingName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ result.setTeachingUserNames(sb.toString());
|
|
|
+ }
|
|
|
+ if (eduName != null) {
|
|
|
+ result.setEducationTeacherName(eduName.get(result.getId()));
|
|
|
+ }
|
|
|
+ result.setTeacher(null);
|
|
|
+ result.setTeacherName(nameIdMap.get(result.getActualTeacherId()));
|
|
|
+ result.setSubjectName(classGroupSubjectNameMap.get(result.getId()));
|
|
|
+ result.setIsSettlement(Objects.isNull(result.getSettlementTime()) ? 0 : 1);
|
|
|
+ if (courseMergeCourseNumMap.containsKey(result.getId())) {
|
|
|
+ result.setBeMerged(courseMergeCourseNumMap.get(result.getId()) > 0 ? true : false);
|
|
|
+ }
|
|
|
+ result.setStudentNum(courseScheduleStudentNumMap.getOrDefault(result.getId(), 0));
|
|
|
+
|
|
|
+ MusicGroupBasicDto musicGroupBasicDto = cooperationMap.get(result.getId().toString());
|
|
|
+ if(null != musicGroupBasicDto){
|
|
|
+ result.setCooperationOrgan(musicGroupBasicDto.getCooperationOrganName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return results;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void practiceCourseAdjust(CourseSchedule courseSchedule) {
|
|
|
SysUser user = sysUserService.getUser();
|