package com.dcsoft.system.kq.mapper;

import java.util.List;

import com.dcsoft.system.face.domain.FaceStudent;
import com.dcsoft.system.kq.domain.*;
import org.apache.ibatis.annotations.Param;

/**
 * 出勤调整Mapper接口
 *
 * @author nichun
 * @date 2023-06-09
 */
public interface KqAdjustMapper
{
    /**
     * 查询出勤调整
     *
     * @param adjustId 出勤调整主键
     * @return 出勤调整
     */
    public KqAdjust selectKqAdjustByAdjustId(Long adjustId);

    /**
     * 查询出勤调整列表
     *
     * @param kqAdjust 出勤调整
     * @return 出勤调整集合
     */
    public List<KqAdjust> selectKqAdjustList(KqAdjust kqAdjust);

    /**
     * 新增出勤调整
     *
     * @param kqAdjust 出勤调整
     * @return 结果
     */
    public int insertKqAdjust(KqAdjust kqAdjust);

    /**
     * 修改出勤调整
     *
     * @param kqAdjust 出勤调整
     * @return 结果
     */
    public int updateKqAdjust(KqAdjust kqAdjust);

    /**
     * 删除出勤调整
     *
     * @param adjustId 出勤调整主键
     * @return 结果
     */
    public int deleteKqAdjustByAdjustId(Long adjustId);

    /**
     * 批量删除出勤调整
     *
     * @param adjustIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteKqAdjustByAdjustIds(Long[] adjustIds);

    public KqAdjust selectKqAdjustByAdjustCode(String code);

    /**
     * 查询今天的请假数据
     * @return
     */
    List<KqAdjust> queryWorkingHours();

    /**
     * 查询今日出勤调整时间
     * @return
     */
    List<KqWorkingHours> queryAttendanceAdjustList();

    void updateKqGather(@Param("list") List<KqWorkingHours> attendanceAdjustList, @Param("leaveTime") String leaveTime);

    /**
     * 查询请假人员
     * @return
     */
    List<KqGroupUser> queryAskForLeave();

    /**
     * 查询今日考勤信息
     * @return
     */
    List<KqAskForLeave> queryAskForLeaveInfo();

    /**
     * 查询未考勤人员信息
     * @param list
     * @return
     */
    List<KqGather> queryGroupUser(List<KqGroupUser> list);

    /**
     * 查询补卡信息
     * @return
     */
    List<KqWorkingHours> queryCardReplacement();

    /**
     * 更新补卡时间
     */
    void updateCardReplacement(kqSummary kqSummary);

}
