예제 #1
0
        // 根据用户的帐套获取组织机构
        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);
        }
예제 #2
0
        // 将所有组织生成树
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        // 递归获取所有子结点
        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);
        }
예제 #6
0
        // 将整个组织结构生成树
        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);
        }