/// <summary>
 /// 根据角色类型与科室编码获得角色名称列表
 /// </summary>
 /// <param name="roleStyle">角色类型</param>
 /// <param name="deptInfo">角色类型为仓管则为库房代码,角色类型为上级领导则为所需操作人员的人员工号或姓名,否则为需操作的部门编码</param>
 /// <returns>返回列表</returns>
 public List <string> GetSuperior(CE_RoleStyleType roleStyle, string info)
 {
     using (DepotManagementDataContext ctx = CommentParameter.DepotDataContext)
     {
         return(GetSuperior(ctx, roleStyle, info));
     }
 }
        /// <summary>
        /// 根据角色类型与科室编码获得角色名称列表
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="roleStyle">角色类型</param>
        /// <param name="deptInfo">角色类型为仓管则为库房代码,角色类型为上级领导则为所需操作人员的人员工号或姓名,否则为需操作的部门编码</param>
        /// <returns>返回列表</returns>
        public List <string> GetSuperior(DepotManagementDataContext ctx, CE_RoleStyleType roleStyle, string info)
        {
            List <string> result = new List <string>();

            if (info != null && info != "")
            {
                View_HR_Personnel personnelInfo = UniversalFunction.GetPersonnelInfo(ctx, info);

                switch (roleStyle)
                {
                case CE_RoleStyleType.仓管:

                    List <CE_RoleEnum> tempListRole = UniversalFunction.GetStoreroomKeeperRoleEnumList(info);

                    foreach (CE_RoleEnum item in tempListRole)
                    {
                        result.Add(item.ToString());
                    }
                    break;

                case CE_RoleStyleType.分管领导:
                    result = GetDeptLeaderRoleName(personnelInfo == null ? info : personnelInfo.部门编码).ToList();
                    break;

                case CE_RoleStyleType.负责人:
                    result = GetDeptPrincipalRoleName(personnelInfo == null ? info : personnelInfo.部门编码).ToList();
                    break;

                case CE_RoleStyleType.主管:
                    result = GetDeptDirectorRoleName(personnelInfo == null ? info : personnelInfo.部门编码).ToList();
                    break;

                case CE_RoleStyleType.所有上级领导:

                    List <string> lstFGLD1 = GetDeptLeaderRoleName(personnelInfo.部门编码).ToList();
                    List <string> lstFZR1  = GetDeptPrincipalRoleName(personnelInfo.部门编码).ToList();
                    List <string> lstZG1   = GetDeptDirectorRoleName(personnelInfo.部门编码).ToList();

                    result.AddRange(lstFGLD1);
                    result.AddRange(lstFZR1);
                    result.AddRange(lstZG1);
                    break;

                case CE_RoleStyleType.级领导:

                    List <string> lstFGLD = GetDeptLeaderRoleName(personnelInfo.部门编码).ToList();
                    List <string> lstFZR  = GetDeptPrincipalRoleName(personnelInfo.部门编码).ToList();
                    List <string> lstZG   = GetDeptDirectorRoleName(personnelInfo.部门编码).ToList();

                    IRoleManagement         serviceRole = PlatformFactory.GetObject <IRoleManagement>();
                    List <View_Auth_Role>   lstRole     = serviceRole.GetRoles(personnelInfo.工号).ToList();
                    List <CE_RoleStyleType> lstType     = new List <CE_RoleStyleType>();

                    foreach (View_Auth_Role role in lstRole)
                    {
                        if (lstFGLD.Contains(role.角色名称))
                        {
                            lstType.Add(CE_RoleStyleType.分管领导);
                        }
                        else if (lstFZR.Contains(role.角色名称))
                        {
                            lstType.Add(CE_RoleStyleType.负责人);
                        }
                        else if (lstZG.Contains(role.角色名称))
                        {
                            lstType.Add(CE_RoleStyleType.主管);
                        }
                    }

                    if (lstType == null || lstType.Count == 0)
                    {
                        return(lstZG);
                    }
                    else if (lstType.Contains(CE_RoleStyleType.分管领导))
                    {
                        result.Add(CE_RoleEnum.总经理.ToString());
                        result.Add(CE_RoleEnum.总经理.ToString());
                        return(result);
                    }
                    else if (lstType.Contains(CE_RoleStyleType.负责人))
                    {
                        return(lstFGLD);
                    }
                    else if (lstType.Contains(CE_RoleStyleType.主管))
                    {
                        return(lstFZR);
                    }

                    break;

                default:
                    break;
                }
            }

            return(result);
        }