package com.ruoyi.cs.service;

import java.util.Date;
import java.util.List;
import com.ruoyi.cs.domain.CsUserInfo;
import com.ruoyi.cs.domain.dto.CsUserInfoDTO;
import com.ruoyi.cs.domain.vo.CsUserInfoVO;

/**
 * 使用人员信息Service接口
 * 
 * @author ruoyi
 * @date 2024-04-25
 */
public interface ICsUserInfoService 
{
    /**
     * 查询使用人员信息
     * 
     * @param userInfoId 使用人员信息主键
     * @return 使用人员信息
     */
    public CsUserInfo selectCsUserInfoByUserInfoId(String userInfoId);

    /**
     * 查询使用人员信息列表
     * 
     * @param csUserInfo 使用人员信息
     * @return 使用人员信息集合
     */
    public List<CsUserInfo> selectCsUserInfoList(CsUserInfo csUserInfo);

    /**
     * 新增使用人员信息
     * 
     * @param csUserInfo 使用人员信息
     * @return 结果
     */
    public int insertCsUserInfo(CsUserInfo csUserInfo);



    /**
     * 修改使用人员信息
     * 
     * @param csUserInfo 使用人员信息
     * @return 结果
     */
    public int updateCsUserInfo(CsUserInfo csUserInfo);

    /**
     * 批量删除使用人员信息
     * 
     * @param userInfoIds 需要删除的使用人员信息主键集合
     * @return 结果
     */
    public int deleteCsUserInfoByUserInfoIds(String[] userInfoIds);

    /**
     * 删除使用人员信息信息
     * 
     * @param userInfoId 使用人员信息主键
     * @return 结果
     */
    public int deleteCsUserInfoByUserInfoId(String userInfoId);

    /**
     * 批量新增使用人员信息
     * @param list 人员信息列表
     * @param applyId 申请资源id
     * @param createAt 创建时间
     * @return
     */
    public int batchInsertCsUserInfo(List<CsUserInfoDTO> list, String applyId, Date createAt);

    /**
     * 查询资源申请使用人员列表
     * @param applyId
     * @return
     */
    public List<CsUserInfoVO>  selectApplyUserInfoList(String applyId);

    /**
     * 批量覆盖使用人员信息
     * @param applyId 申请资源id
     * @return
     */
    public int batchCoverCsUserInfo(List<CsUserInfoDTO> list, String applyId, Date createAt);
}
