|
@@ -3590,21 +3590,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<>(16);
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
- if(StringUtils.isNotBlank(queryInfo.getTeacherName())){
|
|
|
- List<TeacherBasicDto> teachers = teacherDao.searchTeachers(params);
|
|
|
- if(!CollectionUtils.isEmpty(teachers)){
|
|
|
- List<Integer> teacherIds = teachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
|
|
|
- params.put("teacherIdList",StringUtils.join(teacherIds.toArray(),","));
|
|
|
- }
|
|
|
- }
|
|
|
- Set<Integer> courseScheduleIdSet = new HashSet<>();
|
|
|
- courseScheduleIdSet.addAll(courseScheduleDao.queryMusicCourseScheduleIds(params));
|
|
|
- courseScheduleIdSet.addAll(courseScheduleDao.queryVipCourseScheduleIds(params));
|
|
|
- courseScheduleIdSet.addAll(courseScheduleDao.queryPracticeCourseScheduleIds(params));
|
|
|
- if(courseScheduleIdSet.size() == 0){
|
|
|
+
|
|
|
+ List<Group> groups = groupDao.searchGroups(params);
|
|
|
+
|
|
|
+ if(groups.size() <= 0){
|
|
|
return pageInfo;
|
|
|
}
|
|
|
- params.put("courseScheduleIds", courseScheduleIdSet);
|
|
|
+ params.put("classGroupIds", groups.stream().map(Group::getClassGroupId).collect(Collectors.toSet()));
|
|
|
List<CourseScheduleEndDto> results = new ArrayList<>();
|
|
|
int count = courseScheduleDao.endCountCourseSchedules(params);
|
|
|
if(queryInfo.getIsExport() && count > 50000){
|
|
@@ -3619,52 +3611,45 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
Map<Long, List<TeacherAttendance>> courseTeacherAttendanceMap = teacherAttendances.stream().collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
|
|
|
Map<Integer, Long> studentNumCourseMap = MapUtil.convertIntegerMap(studentAttendanceDao.countStudentAttendancesByCourses(courseScheduleIds));
|
|
|
Map<Long, String> studentIdMap = MapUtil.convertIntegerMap(courseScheduleStudentPaymentDao.getStudentIdMap(courseScheduleIds));
|
|
|
- List<Group> groups=new ArrayList<>();
|
|
|
- groups.add(null);
|
|
|
- List<Integer> teacherIds=new ArrayList<>();
|
|
|
- for (CourseScheduleEndDto courseScheduleEndDto : results) {
|
|
|
- Group group=new Group(courseScheduleEndDto.getMusicGroupId(),courseScheduleEndDto.getGroupType());
|
|
|
- groups.add(group);
|
|
|
- teacherIds.add(courseScheduleEndDto.getActualTeacherId());
|
|
|
- }
|
|
|
- List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIds(StringUtils.join(teacherIds,","));
|
|
|
+ List<Integer> teacherIds=results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
|
|
|
Map<Integer, String> nameIdMap=MapUtil.convertIntegerMap(nameIdMaps);
|
|
|
- groups = groupDao.findByGroupIds(groups);
|
|
|
- Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
|
|
|
- //获取班级声部名称
|
|
|
+
|
|
|
+ Map<Integer, Group> classGroupIdGroupMap = groups.stream().collect(Collectors.toMap(Group::getClassGroupId, e -> e));
|
|
|
+
|
|
|
+ //获取班级声部名称
|
|
|
List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
|
|
|
Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
|
|
|
- results.forEach(result -> {
|
|
|
- Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());
|
|
|
- result.setTeacher(null);
|
|
|
- if(Objects.nonNull(groupsTypeMap)){
|
|
|
- List<Group> groupTemps = groupsTypeMap.get(result.getGroupType());
|
|
|
- if(!CollectionUtils.isEmpty(groupTemps)){
|
|
|
- result.setGroupName(groupTemps.get(0).getGroupName());
|
|
|
- result.setOrganName(groupTemps.get(0).getOrganName());
|
|
|
- }
|
|
|
- }
|
|
|
- result.setTeacherName(nameIdMap.get(result.getActualTeacherId()));
|
|
|
- result.setSubjectName(classGroupSubjectNameMap.get(result.getId()));
|
|
|
- result.setStudentId(studentIdMap.get(result.getId()));
|
|
|
- List<TeacherAttendance> courseTeacherAttendances = courseTeacherAttendanceMap.get(result.getId());
|
|
|
- if(!CollectionUtils.isEmpty(courseTeacherAttendances)){
|
|
|
- TeacherAttendance teacherAttendance=courseTeacherAttendances.get(0);
|
|
|
- result.setIsSignIn(Objects.isNull(teacherAttendance.getSignInStatus())?3:teacherAttendance.getSignInStatus().getCode());
|
|
|
- result.setIsSignOut(Objects.isNull(teacherAttendance.getSignOutStatus())?3:teacherAttendance.getSignOutStatus().getCode());
|
|
|
+ for (CourseScheduleEndDto result : results) {
|
|
|
+ Group group = classGroupIdGroupMap.get(result.getClassGroupId());
|
|
|
+ result.setTeacher(null);
|
|
|
+ if(Objects.nonNull(group)){
|
|
|
+ result.setGroupName(group.getGroupName());
|
|
|
+ result.setOrganName(group.getOrganName());
|
|
|
+ result.setClassGroupName(group.getClassGroupName());
|
|
|
+ }
|
|
|
+ result.setTeacherName(nameIdMap.get(result.getActualTeacherId()));
|
|
|
+ result.setSubjectName(classGroupSubjectNameMap.get(result.getId()));
|
|
|
+ result.setStudentId(studentIdMap.get(result.getId()));
|
|
|
+ List<TeacherAttendance> courseTeacherAttendances = courseTeacherAttendanceMap.get(result.getId());
|
|
|
+ if(!CollectionUtils.isEmpty(courseTeacherAttendances)){
|
|
|
+ TeacherAttendance teacherAttendance=courseTeacherAttendances.get(0);
|
|
|
+ result.setIsSignIn(Objects.isNull(teacherAttendance.getSignInStatus())?3:teacherAttendance.getSignInStatus().getCode());
|
|
|
+ result.setIsSignOut(Objects.isNull(teacherAttendance.getSignOutStatus())?3:teacherAttendance.getSignOutStatus().getCode());
|
|
|
result.setSignInStatusEnum(result.getIsSignIn() == 1?NORMAL:result.getIsSignIn() == 0?UNUSUAL:NO);
|
|
|
result.setSignOutStatusEnum(result.getIsSignOut() == 1?SignOutStatusEnum.NORMAL:result.getIsSignOut() == 0? SignOutStatusEnum.UNUSUAL: SignOutStatusEnum.NO);
|
|
|
- result.setSignInTime(teacherAttendance.getSignInTime());
|
|
|
- result.setSignOutTime(teacherAttendance.getSignOutTime());
|
|
|
- result.setRemark(teacherAttendance.getRemark());
|
|
|
- }
|
|
|
- Long studentNum = studentNumCourseMap.get(result.getId());
|
|
|
- if (Objects.nonNull(studentNum)) {
|
|
|
- result.setIsCallNames(studentNum > 0 ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
- } else {
|
|
|
- result.setIsCallNames(YesOrNoEnum.NO);
|
|
|
- }
|
|
|
- });
|
|
|
+ result.setSignInTime(teacherAttendance.getSignInTime());
|
|
|
+ result.setSignOutTime(teacherAttendance.getSignOutTime());
|
|
|
+ result.setRemark(teacherAttendance.getRemark());
|
|
|
+ }
|
|
|
+ Long studentNum = studentNumCourseMap.get(result.getId());
|
|
|
+ if (Objects.nonNull(studentNum)) {
|
|
|
+ result.setIsCallNames(studentNum > 0 ? YesOrNoEnum.YES : YesOrNoEnum.NO);
|
|
|
+ } else {
|
|
|
+ result.setIsCallNames(YesOrNoEnum.NO);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
pageInfo.setRows(results);
|
|
|
return pageInfo;
|