public ActionResult GetDepartment() { var result = new StandardJsonResult <List <DepartmentTree> >(); result.Try(() => { var service = ML.BC.Infrastructure.Ioc.GetService <IEnterpriseDepartmentManagementService>(); List <DepartmentDto> list = new List <DepartmentDto>(); if (HasFunction(Functions.Root_SystemSetting_OrganizationManagement_ShowAll)) { list = service.GetMyDepartment(BCSession.User.EnterpriseID); } else if (BCSession.User.DepartmentID.HasValue) { list = service.GetMyDepartment(BCSession.User.EnterpriseID, BCSession.User.DepartmentID); } if (list != null && list.Count > 0) { List <DepartmentManageModel> mylist = new List <DepartmentManageModel>(); foreach (var l in list) { if (l.Available) { DepartmentManageModel m = new DepartmentManageModel() { DepartmentID = l.DepartmentID, Description = l.Description, _parentId = l.ParentID, Deleted = l.Deleted, Available = l.Available, EnterpriseID = l.EnterpriseID, Name = l.Name, ParentID = l.ParentID }; mylist.Add(m); } } mylist[0]._parentId = 0;//不在根节点部门下的管理者不能显示 List <DepartmentTree> all = new List <DepartmentTree>(); foreach (var rot in mylist) { if (rot._parentId == 0) { DepartmentTree root = new DepartmentTree(); root.id = rot.DepartmentID; root.text = rot.Name; root.children = new List <DepartmentTree>(); root.children = process2TreeModel(mylist, root); all.Add(root); } } result.Value = new List <DepartmentTree>(); result.Value = all; } }); return(Json(result.Value, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取所有部门转换成树形结构 /// </summary> /// <returns></returns> public List <UserTree> GetDepartment(List <FrontUserDto> userlist) { var service = ML.BC.Infrastructure.Ioc.GetService <IEnterpriseDepartmentManagementService>(); List <DepartmentDto> list = new List <DepartmentDto>(); if (HasFunction(Functions.Root_SystemSetting_OrganizationManagement_ShowAll)) { list = service.GetMyDepartment(BCSession.User.EnterpriseID); } else if (BCSession.User.DepartmentID.HasValue) { list = service.GetMyDepartment(BCSession.User.EnterpriseID, BCSession.User.DepartmentID); } if (list != null && list.Count > 0) { List <DepartmentManageModel> mylist = new List <DepartmentManageModel>(); foreach (var l in list) { if (l.Available) { DepartmentManageModel m = new DepartmentManageModel() { DepartmentID = l.DepartmentID, Description = l.Description, _parentId = l.ParentID, Deleted = l.Deleted, Available = l.Available, EnterpriseID = l.EnterpriseID, Name = l.Name, ParentID = l.ParentID }; mylist.Add(m); } } mylist[0]._parentId = 0; //不在根节点部门下的管理者不能显示 List <UserTree> all = new List <UserTree>(); var noDepartmentUser = userlist.Where(u => u.DepartmentID == null).ToList(); foreach (var nouser in noDepartmentUser) { all.Add(new UserTree() { id = nouser.UserID, text = nouser.Name, iconCls = "icon-user", type = 1, children = new List <UserTree>() }); } foreach (var rot in mylist) { if (rot._parentId == 0) { UserTree root = new UserTree(); root.id = rot.DepartmentID.ToString(); root.text = rot.Name; root.type = 0; root.children = new List <UserTree>(); root.children = process2TreeModel(mylist, root, userlist); var res = userlist.Where(u => u.DepartmentID == Convert.ToInt32(root.id)); if (res.Count() > 0) { foreach (var u in res) { root.children.Add(new UserTree() { id = u.UserID, text = u.Name, type = 1, iconCls = "icon-user", children = new List <UserTree>() }); } } all.Add(root); } } return(all); } else { return(new List <UserTree>()); } }