package com.bonus.system.att.dao;

import com.bonus.system.att.entity.*;
import com.bonus.system.basic.domain.SysOrg;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * 月异常列表-数据访问层
 * @author hongchao
 */
@Repository("attDetailByMonthDao")
public interface AttDetailByMonthDao {

    /**
     * 获取月异常列表
     * @return list bean
     */
    List<AttDetailByMonthBean> getAllParentId();

    /**
     * 获取月异常列表
     * @param data 参数
     * @return list bean
     */
    List<AttDetailByMonthBean> selectAttDetailList(AttDetailByMonthBean data);

    /**
     * 获取月异常列表
     * @param data 参数
     * @return list bean
     */
    List<AttDetailByMonthBean> selectAttAllList(@Param("bean") AttDetailByMonthBean data);


    /**
     * 获取月异常列表(父级)
     * @param data 参数
     * @return list bean
     */
    List<AttDetailByMonthBean> selectAttParentId(AttDetailByMonthBean data);

    /**
     * 获取月异常列表(子级)
     * @param data 参数
     * @return list bean
     */
    List<AttDetailByMonthBean> selectAttSonsId(AttDetailByMonthBean data);

    SysOrg getOrgParentId(AttDetailByMonthBean data);

    /**
     * 根据用户id获取正常打卡详细信息
     * @param data 参数
     * @return list bean
     */
    List<AttDetailBean> getDetailList(AttDetailBean data);

    /**
     * 根据用户id获取请假详细信息
     * @param data 参数
     * @return list bean
     */
    List<AttDetailLeaveBean> getDetailLeaveList(AttDetailLeaveBean data);

    Map<String,Object> getDepartmentById(Map<String,Object> parentMap);

    List<Map<String,Object>> getSonsById(int orgId);

    Map<String,Object> getSonsFinish(int orgId);

    /**
     * 考勤报表->月异常报表->打卡记录
     * @param c
     * @return int
     * @author cwchen
     * @date 2025/2/18 19:59
     */
    int getClockingRecordNum(@Param("c")AttDetailByMonthBean c);
}
