package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
import com.ym.mec.biz.dal.dto.SimpleUserDto;
import com.ym.mec.biz.dal.entity.IndexErrDataRecord;
import com.ym.mec.biz.dal.entity.InspectionItem;
import com.ym.mec.biz.dal.entity.InspectionItemPlan;
import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
import com.ym.mec.biz.dal.page.IndexErrRecordQueryInfo;
import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
import com.ym.mec.biz.dal.page.InspectionQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.page.QueryInfo;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface IndexErrDataRecordService extends BaseService<Long, IndexErrDataRecord> {

    /**
     * @describe 历史异常数据记录
     * @author Joburgess
     * @date 2021/5/28 0028
     * @param date:
     * @return void
     */
    void indexErrDataRecordTask(String date);

    /**
     * @describe 获取所有异常相关教务人员
     * @author Joburgess
     * @date 2021/6/2 0002
     * @param organIds:
     * @return java.util.List<com.ym.mec.biz.dal.dto.SimpleUserDto>
     */
    List<SimpleUserDto> getAllEducationUsers(String organIds);

    PageInfo<IndexErrorDataExportDto> queryRecord(IndexErrRecordQueryInfo queryInfo);

    /**
     * @describe 异常数据汇总
     * @author Joburgess
     * @date 2021/6/2 0002
     * @param queryInfo:
     * @return com.ym.mec.biz.dal.dto.IndexErrorDataExportDto
     */
    IndexErrorDataExportDto errDataSummarizing(IndexErrRecordQueryInfo queryInfo);

    /**
     * @describe 历史异常数据-乐团巡查事项异常
     * @author Joburgess
     * @date 2021/5/28 0028
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo
     */
    PageInfo<InspectionItemPlan> queryErrInspectionData(InspectionItemPlanQueryInfo queryInfo);

    /**
     * @describe 历史异常数据-回访任务未完成
     * @author Joburgess
     * @date 2021/5/28 0028
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.entity.InspectionItem>
     */
    PageInfo<InspectionItem> queryErrStudentVisit(InspectionQueryInfo queryInfo);

    /**
     * @describe 历史异常数据-课程(课程考勤异常/课程异常)
     * @author Joburgess
     * @date 2021/5/28 0028
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo<java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>>
     */
    PageInfo<CourseScheduleEndDto> queryHistoryErrCourseData(EndCourseScheduleQueryInfo queryInfo);
}
