package com.xjrsoft.module.courseTable.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xjrsoft.module.courseTable.dto.ClassListDto;
import com.xjrsoft.module.courseTable.entity.CourseTable;
import com.xjrsoft.module.courseTable.vo.ClassListVo;
import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
import com.xjrsoft.module.schedule.dto.CourseTableDto;
import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
import com.xjrsoft.module.schedule.vo.CourseListVo;
import com.xjrsoft.module.schedule.vo.CourseTableVo;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 课表 服务类
 * </p>
 *
 * @author baomidou
 * @since 2023-09-02 02:19:56
 */
public interface ICourseTableService extends IService<CourseTable> {

    Boolean wordImport(InputStream inputStream) throws IOException;

    List<ClassListVo> classList(ClassListDto dto);

    CourseTableVo getList(CourseTableDto dto);

    List<CourseListVo> getAdjustList(String teacherId, String adjustDate, String classId);

    String getPreCheck(String preCheckType, String courseId, String swapCourseId, String swapDate, String subTeacherId);

    /**
     * 流程审批通过后，根据日期
     * @param courseAdjust
     * @return
     */
    Boolean adjustCourse(WfCourseAdjust courseAdjust) throws Exception;

    ByteArrayOutputStream listScheduleWeekExportQuery(ScheduleWeekExportQueryDto dto);
}
