package com.qmth.distributed.print.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.dto.ExamTaskPrintDto;
import com.qmth.teachcloud.common.bean.dto.TaskPrintClassDto;
import com.qmth.distributed.print.business.bean.dto.TaskPrintExtendFieldsDto;
import com.qmth.distributed.print.business.bean.dto.TaskPrintHouseDto;
import com.qmth.distributed.print.business.bean.params.ExamTaskPrintParams;
import com.qmth.teachcloud.common.entity.BasicStudent;
import com.qmth.distributed.print.business.entity.ExamDetail;
import com.qmth.distributed.print.business.entity.ExamTaskPrint;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 以试卷作为起点生成考务数据 服务类
 * </p>
 *
 * @author xf
 * @since 2021-08-02
 */
public interface ExamTaskPrintService extends IService<ExamTaskPrint> {
    IPage<BasicStudent> listStudentByClass(String classId, Integer pageNumber, Integer pageSize);

    void remove(Long examTaskPrintId);

    ExamTaskPrintDto listTaskPrint(Long printPlanId, String courseCode, String paperNumber);

    ExamDetail createTaskPrint(ExamTaskPrint examTaskPrint);

    List<TaskPrintClassDto> listClass(String printPlanId, String courseCode, String paperNumber, Long examTaskPrintId);

    List<TaskPrintHouseDto> listHouse();

    List<TaskPrintExtendFieldsDto> listTaskPrintExtendFields();

    void submitTaskPrint(ExamTaskPrintParams examTaskPrintParams) throws IOException;

    List<TaskPrintClassDto> listExamTaskClass(String courseCode);
}
