package com.ruoyi.credit.mapper;

import java.util.List;
import com.ruoyi.credit.domain.EmployeeInfo;

/**
 * 员工信息Mapper接口
 * 
 * @author ruoyi
 * @date 2025-12-22
 */
public interface EmployeeInfoMapper 
{
    /**
     * 查询员工信息
     * 
     * @param employeeId 员工信息主键
     * @return 员工信息
     */
    public EmployeeInfo selectEmployeeInfoByEmployeeId(Long employeeId);

    /**
     * 根据员工工号查询员工信息
     * 
     * @param employeeNumber 员工工号
     * @return 员工信息
     */
    public EmployeeInfo selectEmployeeInfoByEmployeeNumber(String employeeNumber);

    /**
     * 根据员工库ID查询员工信息列表
     * 
     * @param libraryId 员工库ID
     * @return 员工信息集合
     */
    public List<EmployeeInfo> selectEmployeeInfosByLibraryId(Long libraryId);

    /**
     * 根据岗位查询员工信息列表
     * 
     * @param position 岗位
     * @return 员工信息集合
     */
    public List<EmployeeInfo> selectEmployeeInfosByPosition(String position);

    /**
     * 查询员工信息列表
     * 
     * @param employeeInfo 员工信息
     * @return 员工信息集合
     */
    public List<EmployeeInfo> selectEmployeeInfoList(EmployeeInfo employeeInfo);

    /**
     * 新增员工信息
     * 
     * @param employeeInfo 员工信息
     * @return 结果
     */
    public int insertEmployeeInfo(EmployeeInfo employeeInfo);

    /**
     * 修改员工信息
     * 
     * @param employeeInfo 员工信息
     * @return 结果
     */
    public int updateEmployeeInfo(EmployeeInfo employeeInfo);

    /**
     * 删除员工信息
     * 
     * @param employeeId 员工信息主键
     * @return 结果
     */
    public int deleteEmployeeInfoByEmployeeId(Long employeeId);

    /**
     * 批量删除员工信息
     * 
     * @param employeeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmployeeInfoByEmployeeIds(Long[] employeeIds);

    /**
     * 批量插入员工信息
     * 
     * @param employeeInfos 员工信息列表
     * @return 结果
     */
    public int batchInsertEmployeeInfo(List<EmployeeInfo> employeeInfos);

    /**
     * 根据员工库ID统计员工数量
     * 
     * @param libraryId 员工库ID
     * @return 员工数量
     */
    public int countEmployeesByLibraryId(Long libraryId);

    /**
     * 获取员工库中最大的员工工号数字部分
     * 
     * @param libraryId 员工库ID
     * @return 最大工号数字
     */
    public int getMaxEmployeeNumberByLibraryId(Long libraryId);
}