/// <summary> /// 获取职务隶属的组织机构 /// </summary> /// <param name="positionId">职务ID</param> /// <returns>从根机构开始的链</returns> public List <BusinessObjects.AuthorizationDS.OrganizationUnitRow> GetParentOUsOfPosition(int positionId) { List <BusinessObjects.AuthorizationDS.OrganizationUnitRow> result = new List <AuthorizationDS.OrganizationUnitRow>(); int ouId = DS.Position.FindByPositionId(positionId).OrganizationUnitId; BusinessObjects.AuthorizationDS.OrganizationUnitRow row = DS.OrganizationUnit.FindByOrganizationUnitId(ouId); while (row != null) { result.Insert(0, row); row = row.OrganizationUnitRowParent; } return(result); }
public string GetOUNamesOfPosition(int positionId) { StringBuilder result = new StringBuilder(); int ouId = DS.Position.FindByPositionId(positionId).OrganizationUnitId; BusinessObjects.AuthorizationDS.OrganizationUnitRow row = DS.OrganizationUnit.FindByOrganizationUnitId(ouId); while (row != null) { result.Insert(0, row.OrganizationUnitName + "-"); row = row.OrganizationUnitRowParent; } return(result.ToString()); }
/// <summary> /// 构建机构的机构路径 /// </summary> /// <param name="ou"></param> public void BuildOUOrganizationTreePath(BusinessObjects.AuthorizationDS.OrganizationUnitRow ou) { StringBuilder path = new StringBuilder(); AuthorizationDS.OrganizationUnitRow parent = ou.OrganizationUnitRowParent; if (parent != null) { path.Append(parent.OrganizationTreePath); path.Append("P" + parent.OrganizationUnitId + "P "); } ou.OrganizationTreePath = path.ToString(); this.OrganizationUnitTA.Update(ou); foreach (BusinessObjects.AuthorizationDS.PositionRow position in ou.GetPositionRows()) { BuildPositionOrganizationTreePath(position); } foreach (AuthorizationDS.OrganizationUnitRow childOU in ou.GetOrganizationUnitRows()) { BuildOUOrganizationTreePath(childOU); } }