package com.yanzhu.jh.project.mapper;

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

import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;

/**
 * 考勤人员基本属性Mapper接口
 * 
 * @author ruoyi
 * @date 2023-09-24
 */
public interface SurProjectAttendanceUserMapper 
{
    /**
     * 查询考勤人员基本属性
     * 
     * @param id 考勤人员基本属性主键
     * @return 考勤人员基本属性
     */
    public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);

    /**
     * 查询考勤人员信息
     *
     * @param surProjectAttendanceUser
     * @return 考勤人员基本属性
     */
    public SurProjectAttendanceUser findCurrentAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);

    /**
     * 查询考勤人员基本属性列表
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 考勤人员基本属性集合
     */
    public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser);


    public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserListJgw(SurProjectAttendanceUser surProjectAttendanceUser);
    /**
     * 新增考勤人员基本属性
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 结果
     */
    public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);

    /**
     * 修改考勤人员基本属性
     * 
     * @param surProjectAttendanceUser 考勤人员基本属性
     * @return 结果
     */
    public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);

    /**
     * 删除考勤人员基本属性
     * 
     * @param id 考勤人员基本属性主键
     * @return 结果
     */
    public int deleteSurProjectAttendanceUserById(Long id);

    /**
     * 批量删除考勤人员基本属性
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSurProjectAttendanceUserByIds(Long[] ids);

    /**
     * 批量删除考勤人员基本属性
     *
     * @param list 需要删除的数据参数集合
     * @return 结果
     */
    public int deleteSurProjectAttendanceUserByParams(List<String> list);

    /**
     * 批量新增考勤人员基本属性
     *
     * @param surProjectAttendanceUserList 考勤人员基本属性列表
     * @return 结果
     */
    public int batchSurProjectAttendanceUser(List<SurProjectAttendanceUser> surProjectAttendanceUserList);

    /**
     * 下面三个方法完成考勤记录分页查询
     * countAttendance 获取总记录条数
     * queryAttendanceUsers 获取当前页workerIds
     * queryAttendanceByUserIds 根据workerIds查询一页数据然后组装
     * @param where
     * @return
     */
    public List<SurProjectAttendanceUser> queryAttendanceByUserIds(SurProjectAttendanceUser where);
    public long countAttendance(SurProjectAttendanceCfg where);
    public List<SurProjectAttendanceUser> queryAttendanceUsers(SurProjectAttendanceUser where);

    public long countTodayAttendance(SurProjectAttendanceUser where);


    public List<SurProjectAttendanceUser> todayAttendance(SurProjectAttendanceUser where);
    public List<SurProjectAttendanceUser> todayAttendanceData(List<String> list);

    public List<SurProjectAttendanceUser> todayAttendanceOtherData(Map<String,Object> data);

}
