Example #1
0
        /// <summary>
        /// 列表分页 历史纪录
        /// </summary>
        /// <param name="pagination">分页</param>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        public List <KeyUseEntity> GetPageKeyUseList(Pagination pagination, string queryJson)
        {
            IRepository db         = new RepositoryFactory().BaseRepository();
            var         query      = db.IQueryable <KeyUseEntity>();
            var         queryParam = queryJson.ToJObject();

            if (!queryParam["Category"].IsEmpty())
            {
                var Category = queryParam["Category"].ToString();
                query = query.Where(x => x.Category == Category);
            }
            if (!queryParam["CategoryId"].IsEmpty())
            {
                var CategoryId = queryParam["CategoryId"].ToString();
                query = query.Where(x => x.CategoryId == CategoryId);
            }
            if (!queryParam["CreateDate"].IsEmpty())
            {
                var CreateDate = Convert.ToDateTime(queryParam["CreateDate"].ToString());
                var end        = CreateDate.AddDays(1).AddMilliseconds(-1);
                query = query.Where(x => x.LoanDate >= CreateDate && x.LoanDate <= end);
            }

            if (!queryParam["keyWord"].IsEmpty())
            {
                var KeyWord = queryParam["keyWord"].ToString();
                query = query.Where(x => x.KeyPlace.Contains(KeyWord));
            }
            if (!queryParam["KeyId"].IsEmpty())
            {
                var KeyId = queryParam["KeyId"].ToString();
                query = query.Where(x => x.KeyId == KeyId);
            }
            var DeptId  = queryParam["DeptId"].ToString();
            var dept    = db.FindEntity <DepartmentEntity>(DeptId);
            var DeptStr = DeptId;

            if (dept.TeamType == "01")
            {
                var orderService = new WorkOrderService();
                var workSet      = orderService.GetWorkOrderGroup(DeptId);
                if (workSet.Count() > 0)
                {
                    DeptStr = string.Join(",", workSet.Select(x => x.departmentid));
                }
                else
                {
                    DeptStr = DeptId;
                }
            }
            else
            {
                DeptStr = DeptId;
            }
            query = query.Where(x => DeptStr.Contains(x.DeptId));
            pagination.records = query.Count();
            query = query.OrderByDescending(x => x.LoanDate).Skip(pagination.rows * (pagination.page - 1)).Take(pagination.rows);
            return(query.ToList());
        }
Example #2
0
        /// <summary>
        /// 列表分页 正在借出的纪录
        /// </summary>
        /// <param name="pagination">分页</param>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        public List <KeyUseEntity> GetPageKeyUseListByState(Pagination pagination, string queryJson)
        {
            IRepository db         = new RepositoryFactory().BaseRepository();
            var         query      = db.IQueryable <KeyBoxEntity>();
            var         queryParam = queryJson.ToJObject();
            var         DeptId     = queryParam["DeptId"].ToString();
            var         dept       = db.FindEntity <DepartmentEntity>(DeptId);
            var         DeptStr    = DeptId;

            if (dept.TeamType == "01")
            {
                var orderService = new WorkOrderService();
                var workSet      = orderService.GetWorkOrderGroup(DeptId);
                if (workSet.Count() > 0)
                {
                    DeptStr = string.Join(",", workSet.Select(x => x.departmentid));
                }
                else
                {
                    DeptStr = DeptId;
                }
            }
            else
            {
                DeptStr = DeptId;
            }
            query = query.Where(x => DeptStr.Contains(x.DeptId));
            if (!queryParam["Category"].IsEmpty())
            {
                var Category = queryParam["Category"].ToString();
                query = query.Where(x => x.Category == Category);
            }

            query = query.Where(x => x.State);
            pagination.records = query.Count();
            query = query.OrderByDescending(x => x.Category).Skip(pagination.rows * (pagination.page - 1)).Take(pagination.rows);
            var data = from a in query
                       join b in (
                from c in
                db.IQueryable <KeyUseEntity>()
                group c by c.KeyId into e
                select e.OrderByDescending(x => x.LoanDate).FirstOrDefault()
                )
                       on a.ID equals b.KeyId into tb
                       from tb1 in tb.DefaultIfEmpty()
                       select tb1;

            return(data.ToList());
        }
Example #3
0
        /// <summary>
        /// 获取分类下的数量和借用数量
        /// </summary>
        /// <returns></returns>
        public object getKeyBoxCategoryData(string DeptId, List <string> category)
        {
            var db      = new RepositoryFactory().BaseRepository();
            var DeptStr = string.Empty;
            var dept    = db.FindEntity <DepartmentEntity>(DeptId);

            if (dept.TeamType == "01")
            {
                var orderService = new WorkOrderService();
                var workSet      = orderService.GetWorkOrderGroup(DeptId);
                if (workSet.Count() > 0)
                {
                    DeptStr = string.Join(",", workSet.Select(x => x.departmentid));
                }
                else
                {
                    DeptStr = DeptId;
                }
            }
            else
            {
                DeptStr = DeptId;
            }

            var data = db.IQueryable <KeyBoxEntity>(x => DeptStr.Contains(x.DeptId)).ToList();

            var query = from a in category
                        join b in (
                from c in data
                group c by c.Category into d
                select new { Category = d.Key, count = d.Count(), usecount = d.Count(x => x.State) }
                ) on a equals b.Category into e
                        from f in e.DefaultIfEmpty()
                        select new
            {
                Category = a,
                count    = f != null ? f.count : 0,
                usecount = f != null ? f.usecount : 0
            };

            return(query);
        }