/// <summary>
 /// 按某个权限获取组织机构 主键数组
 /// </summary>
 /// <param name="managerUserId">管理用户主键</param>
 /// <param name="permissionItemCode">权限编号</param>
 /// <param name="organizeIdOnly">只返回组织机构主键</param>
 /// <returns>主键数组</returns>
 public string[] GetOrganizeIds(string managerUserId, string permissionItemCode = "Resource.ManagePermission", bool organizeIdOnly = true)
 {
     // 这里应该考虑,当前用户的管理权限是,所在公司?所在部门?所以在工作组等情况
     string sqlQuery = string.Empty;
     if (BasePermissionScopeManager.UseGetChildrensByCode)
     {
         sqlQuery = this.GetOrganizeIdsSqlByCode(managerUserId, permissionItemCode);
     }
     else
     {
         if (this.DbHelper.CurrentDbType == DbTypes.Oracle)
         {
             sqlQuery = this.GetOrganizeIdsSqlByParentId(managerUserId, permissionItemCode);
         }
         else
         {
             // edit by zgl 不默认获取子部门
             // string[] ids = this.GetTreeResourceScopeIds(managerUserId, BaseOrganizeEntity.TableName, permissionItemCode, true);
             string[] ids = this.GetTreeResourceScopeIds(managerUserId, BaseOrganizeEntity.TableName, permissionItemCode, false);
             if (ids != null && ids.Length >0 && organizeIdOnly)
             {
                 TransformPermissionScope(managerUserId, ref ids);
             }
             // 这里是否应该整理,自己的公司、部门、工作组的事情?
             if (organizeIdOnly)
             {
                 // 这里列出只是有效地,没被删除的组织机构主键
                 if (ids != null && ids.Length > 0)
                 {
                     BaseOrganizeManager organizeManager = new BaseOrganizeManager(this.DbHelper, this.UserInfo);
                     List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
                     parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldId, ids));
                     parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldEnabled, 1));
                     parameters.Add(new KeyValuePair<string, object>(BaseOrganizeEntity.FieldDeletionStateCode, 0));
                     ids = organizeManager.GetIds(parameters);
                 }
             }
             return ids;
         }
     }
     DataTable dataTable = DbHelper.Fill(sqlQuery);
     return BaseBusinessLogic.FieldToArray(dataTable, BaseOrganizeEntity.FieldId);
 }