RuoYi-Vue-master/ruoyi-system/src/main/java/com/ruoyi/education/service/IEduCourseScheduleService.java
Leo 233bce0b25 新增教育管理模块后端核心功能
- 新增学期管理功能:EduSemesterController、EduSemesterService、EduSemester实体类
- 新增课程班级管理功能:EduCourseClassController、EduCourseClassService、EduCourseClass实体类
- 新增课程安排管理功能:EduCourseScheduleController、EduCourseScheduleService、EduCourseSchedule实体类
- 新增对应的MyBatis映射文件和数据访问接口
- 实现完整的CRUD操作和业务逻辑处理
2025-09-28 21:48:58 +08:00

197 lines
5.0 KiB
Java

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<EduCourseSchedule> 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<EduCourseSchedule> selectScheduleByClassId(Long classId);
/**
* 根据开课ID删除节次安排
*
* @param classId 开课ID
* @return 结果
*/
public int deleteScheduleByClassId(Long classId);
/**
* 查询指定教室的课程安排
*
* @param classroomId 教室ID
* @param semesterId 学期ID
* @return 课程安排集合
*/
public List<EduCourseSchedule> selectScheduleByClassroom(Long classroomId, Long semesterId);
/**
* 查询指定教师的课程安排
*
* @param teacherId 教师ID
* @param semesterId 学期ID
* @return 课程安排集合
*/
public List<EduCourseSchedule> selectScheduleByTeacher(Long teacherId, Long semesterId);
/**
* 查询指定学期的所有课程安排
*
* @param semesterId 学期ID
* @return 课程安排集合
*/
public List<EduCourseSchedule> 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<EduCourseSchedule> generateClassroomTimetable(Long classroomId, Long semesterId);
/**
* 生成课表数据 - 按教师
*
* @param teacherId 教师ID
* @param semesterId 学期ID
* @return 课表数据
*/
public List<EduCourseSchedule> generateTeacherTimetable(Long teacherId, Long semesterId);
/**
* 批量添加节次安排
*
* @param classId 开课ID
* @param scheduleList 节次安排列表
* @return 结果
*/
public int batchAddSchedule(Long classId, List<EduCourseSchedule> 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);
}