package com.dcsoft.system.service;

import java.util.List;

import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.OfficialAccountVo;

/**
 * 人员管理Service接口
 *
 * @author nichun
 * @date 2023-03-08
 */
public interface ISysPeopleService
{
    /**
     * 查询人员管理
     *
     * @param id 人员管理主键
     * @return 人员管理
     */
    public SysPeople selectSysPeopleById(Long id);

    /**
     * 查询人员管理列表
     *
     * @param sysPeople 人员管理
     * @return 人员管理集合
     */
    public List<SysPeople> selectSysPeopleList(SysPeople sysPeople);

    public List<SysPeople> selectSysPeopleLists(SysPeople sysPeople);

    /**
     * 新增人员管理
     *
     * @param sysPeople 人员管理
     * @return 结果
     */
    public int insertSysPeople(SysPeople sysPeople);

    /**
     * 修改人员管理
     *
     * @param sysPeople 人员管理
     * @return 结果
     */
    public int updateSysPeople(SysPeople sysPeople);

    /**
     * 批量删除人员管理
     *
     * @param ids 需要删除的人员管理主键集合
     * @return 结果
     */
    public int deleteSysPeopleByIds(Long[] ids);

    /**
     * 删除人员管理信息
     *
     * @param id 人员管理主键
     * @return 结果
     */
    public int deleteSysPeopleById(Long id);

    SysPeople selectByGuid(SysPeople sysPeople);

    SysPeople selectSysPeopleByUserId(Long userId);

    SysPeople selectSysPeopleByBranchUser(String branchName, String userName);

    public String importPeople(List<SysPeople> userList, boolean updateSupport, String operName);

    SysPeople selectSysPeopleByPhoneUser(SysPeople people);

    List<SysPeople> queryPeopleInfo();

    List<SysPeople> queryPeople(List<String> collectStr);

    SysPeople queryPeopleDetails(String details);

    public int updateSysPeoples(SysPeople sysPeople);

    public int insertSysPeoples(SysPeople sysPeople);

    public int deleteSysPeopleByGuid(String guid);

    void updatePeople(SysPeople people);

    String selectDoorNo(Long id);

    String selectPeopleById(String card);

    void updatePeopleInfo(SysPeople sysPeople);

    OfficialAccountVo queryPeopleById(String id);

    SysPeople selectSysPeopleByOpenId(String openid);

    SysPeople selectSysPeopleByGh(String phone, String name);

    SysPeople queryPeopleName(String phone, List<String> collect);

    List<SysPeople> queryPeopleList(SysPeople sysPeople);

    SysPeople selectSysPeopleByGh(String gh);

    SysPeople selectSysPeopleByDoorNo(String doorNo);

    SysPeople queryEmpowerRecord(String phone);

    SysPeople queryPeopleByOpenid(String openid);

    List<SysPeople> queryPeopleByPosition(String position);

    List<SysPeople> querySysPeopleInfo(Long userId);

    Long selectAppSysPeople(SysUser sysUser);

    List<SysPeople> selectSysPeopleListByIds(List<Long> list);
}
