|  | @@ -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,47 @@ 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,","));
 | 
	
		
			
				|  |  |              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;
 |