private List <org_treedata> GetTreeData_ChildrenDepartment(List <Base_Department> listDepartment, List <Base_Department> listDepartment_Children)
        {
            List <org_treedata> listTreeData_Children = new List <org_treedata>();

            foreach (var item in listDepartment_Children)
            {
                org_treedata tempdata = new org_treedata()
                {
                    id         = item.DepartmentCode,
                    text       = item.DepartmentName,
                    iconCls    = "icon-standard-note",
                    state      = "open",
                    children   = new List <org_treedata>(),
                    attributes = new org_attributes()
                    {
                        org_type = 9, org_code = item.DepartmentCode, org_pcode = item.ParentCode, org_fcode = item.CompanyCode, org_sort = item.Sort, org_enabled = item.Enabled, org_remark = item.Remark
                    }
                };
                var listDepartment_Children_Temp = listDepartment.FindAll(p => p.ParentCode == item.DepartmentCode);//递归获取子节点
                if (listDepartment_Children_Temp.Count > 0)
                {
                    tempdata.children = GetTreeData_ChildrenDepartment(listDepartment, listDepartment_Children_Temp);
                }
                listTreeData_Children.Add(tempdata);
            }
            return(listTreeData_Children);
        }
        /// <summary>
        /// 查询公司和部门的数据,最终构造成tree数据,便于树状显示
        /// </summary>
        public List <org_treedata> GetTreeData_Comany()
        {
            var listComany     = Base_CompanyService.Instance.GetList_Fish("and 1=1 order by Sort ASC", true);
            var listDepartment = Base_DepartmentService.Instance.GetList_Fish("and 1=1 order by Sort ASC", true);
            List <org_treedata> listTreeData = new List <org_treedata>();

            var          rootParentComany = listComany.Find(p => p.ParentCode == "0");//查询根节点。 其实就一个根节点,集团
            org_treedata rootdata         = new org_treedata()
            {
                id         = rootParentComany.CompanyCode,
                text       = rootParentComany.CompanyName,
                iconCls    = "icon-standard-house",
                state      = "open",
                attributes = new org_attributes()
                {
                    org_type = 1, org_code = rootParentComany.CompanyCode, org_pcode = rootParentComany.ParentCode, org_sort = rootParentComany.Sort, org_enabled = rootParentComany.Enabled, org_remark = rootParentComany.Remark
                }
            };

            //根公司的下级公司
            List <org_treedata> listTreeData_ChildrenComany = new List <org_treedata>();
            //根节点下一级节点
            var listComany_Children = listComany.FindAll(p => p.ParentCode == rootParentComany.CompanyCode);//一级节点所有公司

            if (listComany_Children.Count > 0)
            {
                listTreeData_ChildrenComany = GetTreeData_ChildrenComany(listComany, listComany_Children, listDepartment);
            }
            //根公司的下级部门
            List <org_treedata> listTreeData_ChildrenDepartment = new List <org_treedata>();
            var listDepartment_Current = listDepartment.FindAll(p => p.CompanyCode == rootParentComany.CompanyCode && p.ParentCode == "0");//获取当前公司下面的所有一级部门

            if (listDepartment_Current.Count > 0)
            {
                listTreeData_ChildrenDepartment = GetTreeData_Department(listDepartment, listDepartment_Current);
            }
            listTreeData_ChildrenComany.AddRange(listTreeData_ChildrenDepartment);
            rootdata.children = listTreeData_ChildrenComany;
            listTreeData.Add(rootdata);
            return(listTreeData);
        }
        private List <org_treedata> GetTreeData_ChildrenComany(List <Base_Company> listComany, List <Base_Company> listComany_Children, List <Base_Department> listDepartment)
        {
            List <org_treedata> listResult = new List <org_treedata>();

            foreach (var item in listComany_Children)
            {
                org_treedata tempdata = new org_treedata()
                {
                    id         = item.CompanyCode,
                    text       = item.CompanyName,
                    iconCls    = "icon-standard-image",
                    state      = "open",
                    children   = new List <org_treedata>(),
                    attributes = new org_attributes()
                    {
                        org_type = item.CompanyType, org_code = item.CompanyCode, org_pcode = item.ParentCode, org_sort = item.Sort, org_enabled = item.Enabled, org_remark = item.Remark
                    }
                };
                List <org_treedata> listTreeData_Children = new List <org_treedata>();                    //存储所有下级节点数据
                //递归下级公司
                var listComany_Children_Temp = listComany.FindAll(p => p.ParentCode == item.CompanyCode); //递归获取子节点
                if (listComany_Children_Temp.Count > 0)
                {
                    listTreeData_Children = GetTreeData_ChildrenComany(listComany, listComany_Children_Temp, listDepartment);
                }
                //下级部门
                var listDepartment_Current = listDepartment.FindAll(p => p.CompanyCode == item.CompanyCode && p.ParentCode == "0");//获取当前公司下面的所有一级部门
                if (listDepartment_Current.Count > 0)
                {
                    listTreeData_Children.AddRange(GetTreeData_Department(listDepartment, listDepartment_Current));
                }
                tempdata.children = listTreeData_Children;
                listResult.Add(tempdata);
            }
            return(listResult);
        }