package com.ruoyi.education.service; import java.util.List; import com.ruoyi.education.domain.EduCourseSchedule; /** * 开课节次安排Service接口 * * @author ruoyi * @date 2024-09-26 */ public interface IEduCourseScheduleService { /** * 查询开课节次安排 * * @param scheduleId 开课节次安排主键 * @return 开课节次安排 */ public EduCourseSchedule selectEduCourseScheduleByScheduleId(Long scheduleId); /** * 查询开课节次安排列表 * * @param eduCourseSchedule 开课节次安排 * @return 开课节次安排集合 */ public List selectEduCourseScheduleList(EduCourseSchedule eduCourseSchedule); /** * 新增开课节次安排 * * @param eduCourseSchedule 开课节次安排 * @return 结果 */ public int insertEduCourseSchedule(EduCourseSchedule eduCourseSchedule); /** * 修改开课节次安排 * * @param eduCourseSchedule 开课节次安排 * @return 结果 */ public int updateEduCourseSchedule(EduCourseSchedule eduCourseSchedule); /** * 批量删除开课节次安排 * * @param scheduleIds 需要删除的开课节次安排主键集合 * @return 结果 */ public int deleteEduCourseScheduleByScheduleIds(Long[] scheduleIds); /** * 删除开课节次安排信息 * * @param scheduleId 开课节次安排主键 * @return 结果 */ public int deleteEduCourseScheduleByScheduleId(Long scheduleId); /** * 根据开课ID查询节次安排 * * @param classId 开课ID * @return 节次安排集合 */ public List selectScheduleByClassId(Long classId); /** * 根据开课ID删除节次安排 * * @param classId 开课ID * @return 结果 */ public int deleteScheduleByClassId(Long classId); /** * 查询指定教室的课程安排 * * @param classroomId 教室ID * @param semesterId 学期ID * @return 课程安排集合 */ public List selectScheduleByClassroom(Long classroomId, Long semesterId); /** * 查询指定教师的课程安排 * * @param teacherId 教师ID * @param semesterId 学期ID * @return 课程安排集合 */ public List selectScheduleByTeacher(Long teacherId, Long semesterId); /** * 查询指定学期的所有课程安排 * * @param semesterId 学期ID * @return 课程安排集合 */ public List selectScheduleBySemester(Long semesterId); /** * 检查时间冲突 * * @param eduCourseSchedule 节次安排 * @return 结果 */ public String checkTimeConflict(EduCourseSchedule eduCourseSchedule); /** * 检查教室时间冲突 * * @param eduCourseSchedule 节次安排 * @return 结果 */ public String checkClassroomTimeConflict(EduCourseSchedule eduCourseSchedule); /** * 检查教师时间冲突 * * @param eduCourseSchedule 节次安排 * @return 结果 */ public String checkTeacherTimeConflict(EduCourseSchedule eduCourseSchedule); /** * 校验节次设置是否合理 * * @param eduCourseSchedule 节次安排 * @return 结果 */ public String checkPeriodValid(EduCourseSchedule eduCourseSchedule); /** * 生成课表数据 - 按教室 * * @param classroomId 教室ID * @param semesterId 学期ID * @return 课表数据 */ public List generateClassroomTimetable(Long classroomId, Long semesterId); /** * 生成课表数据 - 按教师 * * @param teacherId 教师ID * @param semesterId 学期ID * @return 课表数据 */ public List generateTeacherTimetable(Long teacherId, Long semesterId); /** * 批量添加节次安排 * * @param classId 开课ID * @param scheduleList 节次安排列表 * @return 结果 */ public int batchAddSchedule(Long classId, List scheduleList); /** * 复制节次安排 * * @param sourceClassId 源开课ID * @param targetClassId 目标开课ID * @return 结果 */ public int copySchedule(Long sourceClassId, Long targetClassId); /** * 自动排课 * * @param classId 开课ID * @param semesterId 学期ID * @param courseHours 课程总学时 * @return 结果 */ public String autoSchedule(Long classId, Long semesterId, Integer courseHours); /** * 获取时间段统计信息 * * @param semesterId 学期ID * @return 统计结果 */ public Object getTimeSlotStatistics(Long semesterId); /** * 检查周次范围是否合理 * * @param weeks 周次字符串 * @return 结果 */ public String checkWeeksValid(String weeks); }