/// <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); }