| 
					
				 | 
			
			
				@@ -5823,8 +5823,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//2、获取班级学生 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<Integer> studentIds = Arrays.stream(groupDto.getUserIds().split(",")).map(id -> Integer.valueOf(id)).distinct().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List<Long> oldCourseIdList = Arrays.stream(groupDto.getCourseIds().split(",")).map(id -> Long.parseLong(id)).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<Integer> studentIds = Arrays.stream(groupDto.getUserIds().split(",")).map(Integer::valueOf).distinct().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<Long> oldCourseIdList = Arrays.stream(groupDto.getCourseIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//获取可转换课程时长,学员数量,课程数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		CourseConvertSumDto courseConvertSumDto = courseScheduleConvertDao.sumCourseConvert(oldCourseIdList); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5833,8 +5833,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<CourseSchedule> courseScheduleList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//校验老师是否冲突 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		courseTimeDtoList.stream().forEach(e->classGroupTeacherMapperService.checkTeachingBishop(e.getClassGroupTeacherMapperList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		LocalDateTime now = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		courseTimeDtoList.forEach(e->classGroupTeacherMapperService.checkTeachingBishop(e.getClassGroupTeacherMapperList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		LocalDateTime now = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//获取排课总时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		int totalCourseTimes = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		long totalCourseDuration = 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5867,28 +5867,39 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		int generateCourseTimes = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		WhileNode: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		while (true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			int dayOfWeek = now.getDayOfWeek().getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			int dayOfWeek = now.getDayOfWeek().getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (CourseTimeDto courseTimeDto : courseTimeDtoList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(courseTimeDto.getCalendar() == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					//排课开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					courseTimeDto.setCalendar(courseTimeDto.getStartDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<ClassGroupTeacherMapper> newClassGroupTeacherMapperList = courseTimeDto.getClassGroupTeacherMapperList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Set<Integer> noRepeatTeacherIds = newClassGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (noRepeatTeacherIds.size() != newClassGroupTeacherMapperList.size()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					throw new BizException("主教与助教存在冲突"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				Integer teacherId = newClassGroupTeacherMapperList.stream().filter(ct -> TeachTypeEnum.BISHOP.equals(ct.getTeacherRole())).findAny().get().getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (Objects.isNull(teacherId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					throw new BizException("请设置主教"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					throw new BizException("排课循环周期错误,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if (courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					throw new BizException("排课循环周期错误,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (Objects.isNull(courseTimeDto.getStartDate()) || Objects.isNull(courseTimeDto.getEndDate())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					throw new BizException("排课循环周期错误,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				//跳过节假日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (courseTimeDto.getHoliday() && holidayDays.contains(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (courseTimeDto.getHoliday() && holidayDays.contains(courseTimeDto.getCalendar().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					courseTimeDto.setCalendar(courseTimeDto.getCalendar().plusDays(courseTimeDto.getIntervalDays())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Date classDate = DateConvertor.toDate(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Date classDate = DateConvertor.toDate(courseTimeDto.getCalendar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (courseTimeDto.getStartDate().compareTo(classDate) > 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						|| courseTimeDto.getEndDate().compareTo(classDate) < 0 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5899,6 +5910,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if (totalCourseTimes <= generateCourseTimes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						break WhileNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					courseTimeDto.setCalendar(courseTimeDto.getCalendar().plusDays(courseTimeDto.getIntervalDays())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5944,8 +5956,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				courseScheduleList.add(courseSchedule); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				courseScheduleTeacherSalaryService.initMusicGroupCourseTeacherSalary(newClassGroupTeacherMapperList,courseSchedule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						musicGroup,courseScheduleTeacherSalaryList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				courseTimeDto.setCalendar(courseTimeDto.getCalendar().plusDays(courseTimeDto.getIntervalDays())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			now = now.plusDays(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this.checkNewCourseSchedules(courseScheduleList, false, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(!groupDto.getConfirmGenerate()){ 
			 |