Exemplo n.º 1
0
        public void SetState(short mode, int deptId)
        {
            var obj = Get(deptId);

            obj.Status = mode == 1;
            DepartRepository.SaveChanges();
        }
Exemplo n.º 2
0
 public AccountController(IUnitOfWork unitOfWork)
     : base(unitOfWork)
 {
     _repository = new UserRepository(unitOfWork);
     _departRepository= new DepartRepository(unitOfWork);
     _roleRepository = new RoleRepository(unitOfWork);
 }
Exemplo n.º 3
0
 public OpResult SaveOrUpdate(Entity.SysDepartments obj, short parentDepth)
 {
     if (!obj.DeptCode.IsNullOrEmpty() && DepartRepository.IsExists(o => o.DeptCode == obj.DeptCode && o.Id != obj.Id))
     {
         return(OpResult.Fail("该代码已存在!"));
     }
     if (obj.Id == 0)
     {
         obj.DeptId    = DepartRepository.GetMaxInt(o => (int?)o.DeptId);
         obj.CreateDT  = DateTime.Now;
         obj.CreateUID = CurrentUser.UID;
         obj.SortOrder = DepartRepository.GetMaxInt(o => (int?)o.SortOrder);
         obj.Depth     = ++parentDepth;
         DepartRepository.Add(obj, false);
     }
     else
     {
         var menu = DepartRepository.Get(obj.Id);
         obj.ToCopyProperty(menu, new List <string>()
         {
             "CreateDT", "CreateUID", "DeptId", "SortOrder", "Depth"
         });
     }
     DepartRepository.SaveChanges();
     return(OpResult.Success());
 }
Exemplo n.º 4
0
 public AppSettingController(IUnitOfWork unitOfWork)
     : base(unitOfWork)
 {
     _departRepository= new DepartRepository(unitOfWork);
     _roleRepository = new RoleRepository(unitOfWork);
     _wbsTaskRepository = new WBSTaskRepository(unitOfWork);
     _taskRepository = new TaskRepository(unitOfWork);
     _categoryRepostitory = new CategoryRepostitory(unitOfWork);
     _stateCategoryRepostitory = new StateCategoryRepostitory(unitOfWork);
     _nodeDocTypeRepository = new NodeDocTypeRepository(unitOfWork);
 }
Exemplo n.º 5
0
        public void MoveItem(short mode, int deptId)
        {
            var obj  = DepartRepository.Find(o => o.DeptId == deptId);
            var list = DepartRepository.GetQuery(o => o.PDeptId == obj.PDeptId).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 2:    //下移
                var obj1 = list.LastOrDefault();
                if (obj.Id != obj1.Id)
                {
                    Entity.SysDepartments next = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            next = list[i + 1]; break;
                        }
                    }
                    if (next != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = next.SortOrder;
                        next.SortOrder = sort;
                        DepartRepository.SaveChanges();
                    }
                }
                break;

            default:    //上移
                var obj2 = list.FirstOrDefault();
                if (obj.Id != obj2.Id)
                {
                    Entity.SysDepartments prev = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            prev = list[i - 1]; break;
                        }
                    }
                    if (prev != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = prev.SortOrder;
                        prev.SortOrder = sort;
                        DepartRepository.SaveChanges();
                    }
                }
                break;
            }
        }
Exemplo n.º 6
0
        public OpResult Deletes(int[] ids)
        {
            var idstr = ids.Select(o => "," + o + ",").ToList();

            if (PositionRepository.IsExists(o => idstr.Contains("," + o.DeptId + ",")))
            {
                return(OpResult.Fail("存在职位关联不能移除!"));
            }
            if (UserRepository.IsExists(o => ids.Contains(o.DeptId)))
            {
                return(OpResult.Fail("存在人员关联不能移除!"));
            }
            var list = DepartRepository.GetQuery(o => ids.Contains(o.DeptId)).ToList();

            DepartRepository.RemoveRange(list);
            return(OpResult.Success());
        }
Exemplo n.º 7
0
        public IEnumerable <dynamic> GetInput(string searchName)
        {
            var query     = DepartRepository.GetQuery(o => o.Title.Contains(searchName) || (o.DeptCode != null && o.DeptCode.Contains(searchName)));
            var queryDept = DepartRepository.GetQuery();

            query = query.Where(o => o.Status);
            var q = from x in query
                    select new
            {
                x.DeptId,
                x.Title,
                x.PDeptId,
                PDeptTitle = queryDept.Where(i => i.DeptId == queryDept.Where(o => o.DeptId == x.DeptId).Select(o => o.PDeptId).FirstOrDefault()).Select(o => o.Title).FirstOrDefault() + "/"
            };

            return(q.ToList());
        }
Exemplo n.º 8
0
        public IEnumerable <dynamic> GetPageList(System.Collections.Specialized.NameValueCollection nvl)
        {
            var status     = nvl["Status"];
            var queryPosit = PositionRepository.GetQuery();
            var queryUser  = UserRepository.GetQuery();
            var queryDept  = DepartRepository.GetQuery();
            var query      = from x in queryPosit
                             orderby x.UpdateDT
                             select new {
                x.Id,
                x.Code,
                x.Title,
                x.UpdateDT,
                x.UpdateUID,
                x.Status,
                x.DeptId,
                Updater   = (x.UpdateUID == null || x.UpdateUID == string.Empty) ? string.Empty : queryUser.Where(o => o.UserId == x.UpdateUID).Select(o => o.FullName).FirstOrDefault(),
                UserCount = queryUser.Count(o => o.PositId == x.PositId),
                //DepartMent=x.DeptId>0?queryDept.Where(o=>o.DeptId==x.DeptId).Select(o=>o.Title).FirstOrDefault():string.Empty,
                //PDepartMent = x.DeptId > 0 ?queryDept.Where(i=>i.DeptId== queryDept.Where(o => o.DeptId == x.DeptId).Select(o => o.PDeptId).FirstOrDefault()).Select(o=>o.Title).FirstOrDefault()+"/" : string.Empty,
            };

            if (!status.IsNullOrEmpty())
            {
                var st = Convert.ToBoolean(status);
                query = query.Where(o => o.Status == st);
            }
            var list  = query.ToList();
            var depts = DeptService.GetFullTitle(true);

            return(list.Select(x => new
            {
                x.Id,
                x.Code,
                x.Title,
                x.UpdateDT,
                x.UpdateUID,
                x.Status,
                x.Updater,
                x.UserCount,
                DepartMent = GetDepartment(x.DeptId, depts)
            }));
        }
Exemplo n.º 9
0
        public List <int> GetDeptChildByDeptId(int deptId)
        {
            if (UserRepository == null)
            {
                UserRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysUser> >();
            }
            if (DepartRepository == null)
            {
                DepartRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysDepartments> >();
            }
            var all  = DepartRepository.GetQuery().ToList();
            var dept = all.FirstOrDefault(o => o.DeptId == deptId);
            var list = new List <Entity.SysDepartments>();

            SetChilds(dept, all, list);
            var deptIds = list.Select(o => o.DeptId).ToList();

            return(deptIds);
        }
Exemplo n.º 10
0
        public IEnumerable <Entity.DepartMentExt> GetPageList(bool all = true)
        {
            var query         = DepartRepository.GetQuery();
            var queryUser     = UserRepository.GetQuery();
            var queryPosition = PositionRepository.GetQuery();
            var q             = from x in query
                                orderby x.SortOrder
                                select new Entity.DepartMentExt()
            {
                Id            = x.Id,
                CreateDT      = x.CreateDT,
                CreateUID     = x.CreateUID,
                DeptCode      = x.DeptCode,
                Depth         = x.Depth,
                DeptId        = x.DeptId,
                PDeptId       = x.PDeptId,
                Title         = x.Title,
                SortOrder     = x.SortOrder,
                Status        = x.Status,
                UserCount     = queryUser.Count(o => o.DeptId == x.DeptId),
                PositionCount = queryPosition.Count(o => ("," + o.DeptId + ",").Contains("," + x.DeptId + ",")),
                ManagerTitle  = (x.ManagerUId == null || x.ManagerUId == string.Empty) ? "" : queryUser.Where(o => o.UserId == x.ManagerUId).Select(o => o.FullName).FirstOrDefault(),
                DeputyTitle   = (x.DeputyUId == null || x.DeputyUId == string.Empty) ? "" : queryUser.Where(o => o.UserId == x.DeputyUId).Select(o => o.FullName).FirstOrDefault()
            };

            if (!all)
            {
                q = q.Where(o => o.Status);
            }
            var ms   = q.ToList();
            var list = new List <Entity.DepartMentExt>();

            foreach (var dept in ms.Where(o => o.PDeptId <= 0))
            {
                SetChilds(dept, ms);
                dept.Index = list.Count;
                list.Add(dept);
            }
            return(list);
        }
Exemplo n.º 11
0
        public void MoveUpItem(short mode, int deptId)
        {
            var obj  = DepartRepository.Find(o => o.DeptId == deptId);
            var list = DepartRepository.GetQuery(o => o.PDeptId <= 0).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 4:                                                                                         //降级
                var obj1 = list.LastOrDefault(o => o.DeptId != obj.DeptId && o.SortOrder <= obj.SortOrder); //上同节点
                if (obj1 != null && obj.Id != obj1.Id)
                {
                    var last = DepartRepository.GetQuery(o => o.PDeptId == obj1.DeptId).OrderByDescending(o => o.SortOrder).FirstOrDefault();
                    obj.PDeptId = obj1.DeptId;
                    obj.Depth   = Convert.ToInt16(obj1.Depth + 1);
                    if (last != null)
                    {
                        obj.SortOrder = last.SortOrder + 1;
                    }
                    DepartRepository.SaveChanges();
                }
                break;

            default:    //升级
                var obj2 = list.FirstOrDefault(o => o.DeptId == obj.PDeptId);
                if (obj2 != null && obj.Id != obj2.Id)
                {
                    var next = list.FirstOrDefault(o => o.DeptId != obj2.DeptId && o.SortOrder >= obj2.SortOrder);    //下同节点
                    obj.PDeptId   = 0;
                    obj.SortOrder = obj2.SortOrder + 1;
                    obj.Depth     = obj2.Depth;
                    if (next != null && obj.SortOrder >= next.SortOrder)
                    {
                        next.SortOrder++;    //下节点下移
                    }
                    DepartRepository.SaveChanges();
                }
                break;
            }
        }
Exemplo n.º 12
0
        //public Dictionary<int, string> GetFullTitle(int deptid)
        //{
        //    var queryDept = DepartRepository.GetQuery();
        //    var query = from x in queryDept
        //                where x.DeptId == deptid
        //                select new
        //                {
        //                    x.DeptId,
        //                    x.Title,
        //                    PDepartMent = x.DeptId > 0 ? queryDept.Where(i => i.DeptId == queryDept.Where(o => o.DeptId == x.DeptId).Select(o => o.PDeptId).FirstOrDefault()).Select(o => o.Title).FirstOrDefault() + "/" : string.Empty,
        //                };
        //    return query.ToDictionary(o => o.DeptId, o => o.PDepartMent + o.Title);
        //}
        public Dictionary <int, string> GetFullTitle(bool all = false)
        {
            var query = DepartRepository.GetQuery();

            if (!all)
            {
                query = query.Where(o => o.Status);
            }
            var list = query.Select(o => new Entity.DepartMentExt()
            {
                DeptId    = o.DeptId,
                PDeptId   = o.PDeptId,
                Title     = o.Title,
                SortOrder = o.SortOrder
            }).ToList();

            foreach (var dept in list.Where(o => o.PDeptId <= 0))
            {
                SetChilds(dept, list);
            }
            return(list.ToDictionary(o => o.DeptId, o => o.FullTitle));
        }
Exemplo n.º 13
0
 public Entity.SysDepartments Get(int deptid)
 {
     return(DepartRepository.Find(o => o.DeptId == deptid));
 }
Exemplo n.º 14
0
        public IEnumerable <dynamic> GetPageList(System.Collections.Specialized.NameValueCollection nvl, out int count)
        {
            var treeId      = nvl["treeId"].ToType <int?>();
            var ids         = nvl["ids"].ToIntArray();
            var role        = nvl["role"];
            var status      = nvl["status"].ToIntArray();
            var searchField = nvl["searchField"];
            var searchText  = nvl["searchText"];
            int userCode    = 0;

            int.TryParse(searchText, out userCode);
            var where = DynamicallyLinqHelper.Empty <SysUser>().And(o => status.Contains(o.Status), status == null || !status.Any())
                        .And(o => o.DeptId == treeId, treeId == 0 || !treeId.HasValue)
                        .And(o => ids.Contains(o.Id), ids == null || !ids.Any())
                        .And(o => ("," + o.RoleIds + ",").Contains("," + role + ","), role.IsNullOrEmpty())
                        .And(o => o.FullName != null && o.FullName.Contains(searchText), searchField != "1" || searchText.IsNullOrEmpty())
                        .And(o => o.UserCode >= userCode, searchField != "2" || userCode <= 0)
                        .And(o => o.LoginName != null && o.LoginName.Contains(searchText), searchField != "3" || searchText.IsNullOrEmpty());

            var queryUser     = UserRepository.GetQuery(where);
            var queryPosition = PositionRepository.GetQuery();
            var queryDept     = DepartRepository.GetQuery();
            var query         = from x in queryUser
                                select new {
                x.Id,
                x.UserCode,
                x.FullName,
                x.LoginName,
                x.DeptId,
                x.PositId,
                DeptTitle     = queryDept.Where(o => o.DeptId == x.DeptId).Select(o => o.Title).FirstOrDefault(),
                PositionTitle = queryPosition.Where(o => o.PositId == x.PositId).Select(o => o.Title).FirstOrDefault(),
                x.CreateDT,
                x.LoginDT,
                x.Status,
                x.IsSuper,
                x.RoleIds
            };

            count = query.Count();
            var list    = query.ToPageList();
            var roleIds = list.Where(o => !o.RoleIds.IsNullOrEmpty()).SelectMany(o => o.RoleIds.Split(',')).Where(o => !o.IsNullOrEmpty()).Select(o => int.Parse(o)).Distinct();
            var rolels  = RoleRepository.GetQuery(o => roleIds.Contains(o.RoleId)).ToList();

            return(list.Select(x => new
            {
                x.Id,
                x.UserCode,
                FullName = x.FullName + (x.IsSuper?" (超管)":""),
                x.LoginName,
                x.DeptId,
                x.PositId,
                x.CreateDT,
                x.LoginDT,
                x.Status,
                x.IsSuper,
                x.RoleIds,
                x.DeptTitle,
                x.PositionTitle,
                RoleTitles = GetRoleTitles(x.RoleIds, rolels)
            }));
        }