package com.yida.data.attendance.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.attendance.configure.ThreadPollConfigure;
import com.yida.data.attendance.dto.DealRecordDTO;
import com.yida.data.attendance.dto.InOutPageDTO;
import com.yida.data.attendance.dto.ListRecordDTO;
import com.yida.data.attendance.vo.InOutDormPageVO;
import com.yida.data.attendance.vo.RecordDetailVO;
import com.yida.data.common.core.entity.attendance.EduAttendanceRecord;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.scheduling.annotation.Async;

public interface EduAttendanceRecordService extends IService<EduAttendanceRecord> {

    /**
     * 查询进出记录
     *
     * @param dto
     * @return
     */
    IPage<InOutDormPageVO> listInOutPage(InOutPageDTO dto);

    /**
     * 导出进出记录
     *
     * @param dto
     * @param response
     */
    void exportInOut(InOutPageDTO dto, HttpServletResponse response);


    RecordDetailVO getRecordDetail(Long id);

    @Async(ThreadPollConfigure.POLL_NAME)
    void receiveRecord(DealRecordDTO dto);

    /**
     * 查询进出记录
     *
     * @param dto
     * @return
     */
    List<RecordDetailVO> listRecord(ListRecordDTO dto);

}
