package jnpf.personnels.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.personnels.dto.base.PersonnelsQueryDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsForAppQueryDTO;
import jnpf.model.personnels.po.FtbPersonnelsPostApply;
import jnpf.model.personnels.vo.apply.FtbPersonnelsApplyVO;
import org.apache.ibatis.annotations.Param;

public interface FtbPersonnelsPostApplyMapper extends BaseMapper<FtbPersonnelsPostApply> {
    /**
     * 获取人员申请列表信息
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> getListInfo(Page<FtbPersonnelsApplyVO> page, @Param("dto") PersonnelsQueryDTO dto);

    /**
     * 获取用于App端的人员申请列表
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的、用于App端的人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> getListForApp(Page<FtbPersonnelsApplyVO> page, @Param("dto") FtbPersonnelsForAppQueryDTO dto);

    /**
     * 获取需要App端审批的人员申请列表
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的、需要App端审批的人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> getListByApprovalForApp(Page<FtbPersonnelsApplyVO> page, @Param("dto") FtbPersonnelsForAppQueryDTO dto);

    /**
     * 获取待审批的数据列表
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的、待审批的人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> listOfDataToBeApproved(Page<FtbPersonnelsApplyVO> page, @Param("dto") FtbPersonnelsForAppQueryDTO dto);

    /**
     * 获取审批列表
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的审批人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> getApprovalList(Page<FtbPersonnelsApplyVO> page, @Param("dto") FtbPersonnelsForAppQueryDTO dto);

    /**
     * 获取抄送列表
     *
     * @param page 分页对象，包含分页查询的信息
     * @param dto 查询参数对象，用于传递查询条件
     * @return 返回分页的抄送人员申请列表信息
     */
    Page<FtbPersonnelsApplyVO> getListForCC(Page<FtbPersonnelsApplyVO> page, @Param("dto") FtbPersonnelsForAppQueryDTO dto);
}