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));
        }
Exemple #2
0
        /// <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>());
            }
        }