/// <summary> /// 获取数据列表 /// </summary> /// <returns></returns> public async Task <ActionResult> List(BigProdNumStateEnum?state) { GridRequest request = new GridRequest(Request); Expression <Func <Product, bool> > predicate = FilterHelper.GetExpression <Product>(request.FilterGroup); var count = 0; var data = await Task.Run(() => { var strWeb = ConfigurationHelper.GetAppSetting("WebUrl"); var config = _oppContract.GetConfig(); var current = DateTime.Now; var bigProdNumStatDic = _oppContract.GetOnlinePurchaseBigProdNumState(); // 有效期采购单下的款号 var query = _oppContract.OnlinePurchaseProducts .Where(w => w.IsEnabled && !w.IsDeleted) .Where(x => x.StartDate <= current && x.EndDate >= current) .SelectMany(x => x.OnlinePurchaseProductItems.Where(i => !i.IsDeleted && i.IsEnabled)); // 款号过滤 if (state.HasValue) { var bigNums = bigProdNumStatDic.Where(i => i.Value == state.Value).Select(i => i.Key); query = query.Where(i => bigNums.Contains(i.BigProdNum)); } var bigProdNums = query.Select(i => i.BigProdNum).ToArray(); // 根据款号查询货号信息 var list = _productContract.Products.Where(p => !p.IsDeleted && p.IsEnabled) .Where(p => bigProdNums.Contains(p.BigProdNum)) .GroupBy(p => p.BigProdNum) .Select(g => g.FirstOrDefault()) .Where <Product, int>(predicate, request.PageCondition, out count) .Select(m => new { m.Id, ProductName = m.ProductOriginNumber.ProductName, m.BigProdNum, ThumbnailPath = m.ThumbnailPath ?? m.ProductOriginNumber.ThumbnailPath }) .ToList() .Select(m => new { m.Id, ThumbnailPath = string.IsNullOrEmpty(m.ThumbnailPath) ? string.Empty : strWeb + m.ThumbnailPath, ProductName = m.ProductName, m.BigProdNum, State = bigProdNumStatDic[m.BigProdNum].ToString() }).ToList(); return(new GridData <object>(list, count, request.RequestInfo)); }); return(Json(data, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 获取采购数据列表 /// </summary> /// <returns></returns> public async Task <ActionResult> List(BigProdNumStateEnum?state) { GridRequest request = new GridRequest(Request); Expression <Func <OnlinePurchaseProduct, bool> > predicate = FilterHelper.GetExpression <OnlinePurchaseProduct>(request.FilterGroup); var data = await Task.Run(() => { int count = 0; int adminId = AuthorityHelper.OperatorId ?? 0; var query = _onlinePurchaseProductContract.OnlinePurchaseProducts; var config = _onlinePurchaseProductContract.GetConfig(); if (state.HasValue) { switch (state.Value) { case BigProdNumStateEnum.普通: query = query.Where(o => o.CreatedTime <config.NewProductTime && o.CreatedTime> config.ClassicProductTime); break; case BigProdNumStateEnum.新品: query = query.Where(o => o.CreatedTime >= config.NewProductTime); break; case BigProdNumStateEnum.经典: query = query.Where(o => o.CreatedTime <= config.ClassicProductTime); break; default: break; } } query = query.Where <OnlinePurchaseProduct, int>(predicate, request.PageCondition, out count); var list = query.Select(x => new { x.Id, x.CreatedTime, x.StartDate, x.EndDate, x.IsDeleted, x.IsEnabled, x.NoticeTitle, x.NoticeQuantity, x.UpdatedTime, x.UniqueCode, AdminName = x.Operator.Member.MemberName, Quantity = x.OnlinePurchaseProductItems.Where(w => w.IsEnabled && !w.IsDeleted).Count(), }).ToList() .Select(x => new { x.Id, x.StartDate, x.EndDate, x.IsDeleted, x.IsEnabled, x.NoticeTitle, x.NoticeQuantity, x.UpdatedTime, x.UniqueCode, x.AdminName, x.Quantity, x.CreatedTime, State = _onlinePurchaseProductContract.GetOnlinePurchaseState(x.CreatedTime, config).ToString() }).ToList(); return(new GridData <object>(list, count, request.RequestInfo)); }); return(Json(data, JsonRequestBehavior.AllowGet)); }