package jnpf.personnels.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.model.personnels.dto.staff.transfer.TransferPositionDto;
import jnpf.model.personnels.po.FtbPersonnelsStaffTransferPosition;
import jnpf.model.personnels.req.transfer.AppQueryTransferListReq;
import jnpf.model.personnels.req.transfer.QueryTransferListReq;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface FtbPersonnelsStaffTransferPositionMapper extends BaseMapper<FtbPersonnelsStaffTransferPosition> {

    /**
     * web已调岗列表
     *
     * @param page
     * @param params
     * @return
     */
    Page<TransferPositionDto> complatePagingQuery(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page
            , @Param("params") QueryTransferListReq params, @Param("orgIds") List<String> orgIds);

    /**
     * web调岗审批列表
     *
     * @param page
     * @param params
     * @return
     */
    Page<TransferPositionDto> waitCheckPagingQuery(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page
            , @Param("params") QueryTransferListReq params, @Param("orgIds") List<String> orgIds);


    /**
     * 我的调岗
     *
     * @param page
     * @param loginUserId
     * @return
     */
    Page<TransferPositionDto> myPagingQuery(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page, @Param("loginUserId") String loginUserId);

    /**
     * 查询未完成的调岗
     *
     * @param userId
     * @return
     */

    TransferPositionDto queryNoCompleteForUserId(String userId);

    TransferPositionDto getInfoForId(String id);

    Page<TransferPositionDto> appPagingQuery(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page
            , @Param("params") AppQueryTransferListReq params,@Param("orgIds") List<String> orgIds);


    Page<TransferPositionDto> getListByRegularForApp(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page,
                                                     @Param("dto") AppQueryTransferListReq dto,
                                                     @Param("checkUserId") String checkUserId);

    Page<TransferPositionDto> getListForApp(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page,
                                            @Param("dto") AppQueryTransferListReq dto,
                                            @Param("checkUserId") String checkUserId);

    /**
     * web 查询我的审批列表
     *
     * @param page
     * @param configType
     * @return
     */
    Page<TransferPositionDto> pagingQueryWebMyCheckList(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page,
                                                        @Param("userId") String userId,
                                                        @Param("configType") Integer configType);

    Integer getCountByRegularForApp(@Param("dto") AppQueryTransferListReq dto, @Param("checkUserId") String checkUserId);

    Integer getCountForApp(@Param("dto") AppQueryTransferListReq dto,
                           @Param("checkUserId") String checkUserId);

    Page<TransferPositionDto> getApprovedList(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page,
                                              @Param("userId") String userId,
                                              @Param("configType")  Integer configType);

    Page<TransferPositionDto> queryAccordingToTheCorrespondingStatus(@Param("page") Page<FtbPersonnelsStaffTransferPosition> page,
                                                                     @Param("checkStatus")Integer checkStatus,
                                                                     @Param("userId") String userId,
                                                                     @Param("configType") Integer configType);
}