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

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseFieldsDto;
import com.qmth.distributed.print.business.bean.params.SingleExamStudentAddParam;
import com.qmth.distributed.print.business.entity.ExamDetail;
import com.qmth.distributed.print.business.entity.ExamDetailCourse;
import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
import com.qmth.teachcloud.common.entity.BasicCourse;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 考务数据（考场关联科目） 服务类
 * </p>
 *
 * @author xf
 * @since 2021-03-23
 */
public interface ExamDetailCourseService extends IService<ExamDetailCourse> {

    List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId);

    void updatePaperNumber(List<Long> examDetailCourseIds, String paperNumber, String relatePaperType);

    List<ExamDetailCourse> listByExamDetailIdAndStatus(Long examDetailId);

    List<BasicCourse> listCoursesByPrintPlanId(String param, List<Long> printPlanIdList);

    List<ExamDetailCourse> listByPrintPlanIdAndCourseCodeAndPaperNumber(Long schoolId, Long printPlanId, String courseCode, String paperNumber);

    List<ExamDetailCourse> listExamDetailByExamIdAndPaperNumber(Long schoolId, Long examId, String paperNumber);

    TbTaskDetailResult getByExamDetailId(Long examDetailId);

    List<String> listPaperNumberByPrintPlanId(String param, List<Long> printPlanIdList, Set<Long> orgIds);

    List<ExamDetailCourse> listByExamDetailId(Long examDetailId);

    List<JSONObject> listExamDetailPaperNumber(Long examDetailId);

    boolean addExamStudent(SingleExamStudentAddParam singleExamStudentAddParam);

	List<ExamDetailCourse> listByExamDetailIds(List<Long> edIds);

    boolean deleteExamStudent(Long id);
}
