// 根据用户的帐套获取组织机构 public List <OrgTreeNodeDto> GetOrgTreeByZtCode() { long userId = this.AbpSession.UserId ?? 0; var ztCodeArray = this._userZtRepository.GetAll().Where(x => x.UserId == userId).Select(x => x.ZtCode).ToArray(); var orgInfoList = _repository.GetAll().Where(x => x.IsUse).ToList(); var rootOrgList = orgInfoList.Where(x => ztCodeArray.Contains(x.Code)).ToList(); List <OrgTreeNodeDto> treeNodes = new List <OrgTreeNodeDto>(); foreach (var rootOrg in rootOrgList) { OrgTreeNodeDto rootNode = new OrgTreeNodeDto() { id = rootOrg.Id.ToString(), expanded = true, key = rootOrg.Code, title = rootOrg.AliasName, }; List <OrgTreeNodeDto> orgNodes = GetTreeNodeListByParent(rootOrg, orgInfoList); rootNode.children = orgNodes; treeNodes.Add(rootNode); } return(treeNodes); }
// 将所有组织生成树 private static List <OrgTreeNodeDto> GetOrgTreeByOrgList(List <OrgInfo> orgList) { var rootLayer = orgList.Min(x => x.Layer); var rootOrg = orgList.Where(x => x.Layer == rootLayer).OrderBy(x => x.Code).ToList(); List <OrgTreeNodeDto> treeNodes = new List <OrgTreeNodeDto>(); foreach (var item in rootOrg) { OrgTreeNodeDto rootNode = new OrgTreeNodeDto() { id = item.Code.ToString(), name = item.AliasName, }; if (item.Code.Length < 13) { rootNode.open = true; rootNode.isChecked = true; } else { rootNode.open = false; rootNode.isChecked = false; } List <OrgTreeNodeDto> orgNodes = GetTreeNodeListByParent(item, orgList); rootNode.children = orgNodes; treeNodes.Add(rootNode); } return(treeNodes); }
private static List <OrgTreeNodeDto> GetTreeNodeListByParent(OrgInfo parent, List <OrgInfo> orgList) { var childrenList = orgList.Where(x => x.FatherCode == parent.Code).ToList(); if (childrenList.Count() == 0) { return(null); } List <OrgTreeNodeDto> nodeList = new List <OrgTreeNodeDto>(); foreach (var item in childrenList) { OrgTreeNodeDto tempNode = new OrgTreeNodeDto() { id = item.Code.ToString(), name = item.AliasName }; if (item.Code.Length < 13) { tempNode.open = true; tempNode.isChecked = true; } else { tempNode.open = false; tempNode.isChecked = false; } List <OrgTreeNodeDto> childNodeList = GetTreeNodeListByParent(item, orgList); tempNode.children = childNodeList; nodeList.Add(tempNode); } return(nodeList); }
private List <OrgTreeNodeDto> GetOrgTreeByOrgList(List <OrgInfo> orgList) { var rootLayer = orgList.Min(x => x.Layer); var rootOrg = orgList.Where(x => x.Layer == rootLayer).OrderBy(x => x.Code).ToList(); List <OrgTreeNodeDto> treeNodes = new List <OrgTreeNodeDto>(); foreach (var item in rootOrg) { OrgTreeNodeDto rootNode = new OrgTreeNodeDto() { id = item.Id.ToString(), expanded = true, key = item.Code, title = item.AliasName, }; List <OrgTreeNodeDto> orgNodes = GetTreeNodeListByParent(item, orgList); rootNode.children = orgNodes; treeNodes.Add(rootNode); } return(treeNodes); }
// 递归获取所有子结点 private List <OrgTreeNodeDto> GetTreeNodeListByParent(OrgInfo parent, List <OrgInfo> orgList) { var childrenList = orgList.Where(x => x.FatherCode == parent.Code).ToList(); if (childrenList.Count() == 0) { return(null); } List <OrgTreeNodeDto> nodeList = new List <OrgTreeNodeDto>(); foreach (var item in childrenList) { OrgTreeNodeDto tempNode = new OrgTreeNodeDto() { id = item.Id.ToString(), key = item.Code, title = item.AliasName, }; List <OrgTreeNodeDto> childNodeList = GetTreeNodeListByParent(item, orgList); if (childNodeList == null) { tempNode.expanded = false; tempNode.isLeaf = true; } else { bool isExpanded = item.Layer >= 3 ? false : true; tempNode.expanded = isExpanded; tempNode.isLeaf = false; tempNode.children = childNodeList; } nodeList.Add(tempNode); } return(nodeList); }
// 将整个组织结构生成树 public List <OrgTreeNodeDto> GetOrgTree() { var orgInfoList = _repository.GetAll().Where(x => x.IsUse).ToList(); var rootOrg = orgInfoList.Where(x => x.FatherCode == "0").First(); OrgTreeNodeDto rootNode = new OrgTreeNodeDto() { id = rootOrg.Id.ToString(), expanded = true, key = rootOrg.Code, title = rootOrg.AliasName, }; List <OrgTreeNodeDto> orgNodes = GetTreeNodeListByParent(rootOrg, orgInfoList); rootNode.children = orgNodes; List <OrgTreeNodeDto> treeNodes = new List <OrgTreeNodeDto>(); treeNodes.Add(rootNode); return(treeNodes); }