using APT.Infrastructure.Core;
using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities.FM;
using System;
using System.Collections.Generic;
using APT.Infrastructure.Api;
namespace APT.BaseData.Domain.IServices.FM
{
    /// 
    /// 
    /// 
    public partial interface IFMUserService : ICommonService
    {
        /// 
        /// 用户登录
        /// 
        /// 用户名
        /// 密码
        /// 用户对象
        List Login(string userName, string pwd);
        /// 
        /// 通过角色获取人员列表
        /// 
        /// 
        /// 
        /// 
        List GetUsersByRoles(IEnumerable roleIds, Guid? orgId);
        /// 
        /// 获取用户角色
        /// 
        /// 
        /// 
        UserRoleModel GetRolesByUser(Guid userId, KeywordFilter filter);
        /// 
        /// 获取用户角色
        /// 
        /// 
        /// 
        UserRoleModel NewGetRolesByUser(Guid userId, KeywordFilter filter);
        UserRoleModel AppGetRolesByUser(Guid userId, KeywordFilter filter);
        /// 
        /// 获取用户角色
        /// 
        /// 
        /// 
        List GetRolesByUser(IEnumerable userIds, KeywordFilter filter);
        /// 
        /// 获取部门节点下所有人员信息
        /// 
        /// 
        /// 
        List GetDownUser(Guid BaseDepartMentID, string[] UserParts = null);
        /// 
        /// 获取组织成员和下属有审批角色的人(负责人、安全员)
        /// 
        /// 
        /// 
        List GetUserContentNextHead(Guid DepartMentID);
        /// 
        /// 获取登陆者的生产单元
        /// 
        /// 
        List GetMineType(string minType = null);
        /// 
        /// 获取特定岗位的人
        /// 
        /// 
        /// 
        /// 
        T_FM_USER GetPostUser(ref string Msg, string postName = "人事专员");
        /// 
        /// 获取某个(部门)审批角色对应人
        /// 
        /// 
        /// 
        /// 
        /// FMDepartmentType 部门=0,  车间=1,   班组=2,  公司=3
        /// 
        T_FM_USER GetRoleUser(ref string Msg, string RoleName, Guid? DEPARTMENT_ID, int? DEPARTMENT_TYPE);
        /// 
        /// 获取部门岗位人员
        /// 
        /// 
        /// 
        /// 
        /// 只返回一个人
        /// 
        List GetDepPostUser(ref string Msg, Guid DEPARTMENT_ID, Guid POST_ID, bool IsOnly);
    }
}