- 新增学期管理功能:EduSemesterController、EduSemesterService、EduSemester实体类 - 新增课程班级管理功能:EduCourseClassController、EduCourseClassService、EduCourseClass实体类 - 新增课程安排管理功能:EduCourseScheduleController、EduCourseScheduleService、EduCourseSchedule实体类 - 新增对应的MyBatis映射文件和数据访问接口 - 实现完整的CRUD操作和业务逻辑处理
197 lines
5.0 KiB
Java
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);
|
|
} |