package com.ruoyi.project.plant.service;


import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.project.plant.domain.TStaffmgr;

import java.util.List;

/**
 * 人员管理Service接口
 *
 * @author ruoyi
 * @date 2020-11-25
 */
public interface ITStaffmgrService
{
    /**
     * 查询导师下拉列表
     *
     * @param tStaffmgr 人员管理
     * @return 人员管理集合
     */
    @DataScope(deptAlias = "d")
    public List<TStaffmgr> selectMentorList(TStaffmgr tStaffmgr);

    /**
     * 查询人员管理
     *
     * @param staffid 人员管理员工编号
     * @return 人员管理
     */
    public TStaffmgr selectTStaffmgrByStaffId(String staffid);

    /**
     * 查询人员管理
     *
     * @param id 人员管理ID
     * @return 人员管理
     */
    public TStaffmgr selectTStaffmgrById(Long id);

    /**
     * 查询人员管理列表
     *
     * @param tStaffmgr 人员管理
     * @return 人员管理集合
     */
    public List<TStaffmgr> selectTStaffmgrList(TStaffmgr tStaffmgr);

    /**
     * 定时任务查询人员管理列表
     *
     * @param tStaffmgr 人员管理
     * @return 人员管理集合
     */
    public List<TStaffmgr> selectList(TStaffmgr tStaffmgr);

    List<TStaffmgr> selectTaskList(TStaffmgr tStaffmgr);
    /**
     * 培训查询人员管理列表
     *
     * @param tStaffmgr 人员管理
     * @return 人员管理集合
     */
    public List<TStaffmgr> selectRecordList(TStaffmgr tStaffmgr);

    /**
     * 新增人员管理
     *
     * @param tStaffmgr 人员管理
     * @return 结果
     */
    public int insertTStaffmgr(TStaffmgr tStaffmgr);

    /**
     * 修改人员管理
     *
     * @param tStaffmgr 人员管理
     * @return 结果
     */
    public int updateTStaffmgr(TStaffmgr tStaffmgr);

    /**
     * 批量删除人员管理
     *
     * @param ids 需要删除的人员管理ID
     * @return 结果
     */
    public int deleteTStaffmgrByIds(Long[] ids);

    /**
     * 删除人员管理信息
     *
     * @param id 人员管理ID
     * @return 结果
     */
    public int deleteTStaffmgrById(Long id);
    public int deleteLeftTStaffmgrByIds(Long ids);
    List<TStaffmgr> selectLeftTStaffmgrList(TStaffmgr tStaffmgr);


    int reLeftTStaffmgrByIds(Long id);


    List<TStaffmgr> selectTStaffmgrByPost(SysUser sysUser);
    List<TStaffmgr> selectStaffByTeam(TStaffmgr tStaffmgr);

    List<TStaffmgr> selectTMentorStaffmgrByPost(SysUser sysUser);
}
