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