/// <summary> /// 查询单据详细数据分页 /// </summary> /// <param name="entity"></param> /// <param name="pageInfo"></param> /// <returns></returns> public override List <BadReportDetailEntity> GetDetailList(BadReportDetailEntity entity, ref Framework.DataTypes.PageInfo pageInfo) { BadReportDetailEntity detail = new BadReportDetailEntity(); detail.Where(a => a.CompanyID == this.CompanyID); detail.IncludeAll(); detail.OrderBy(a => a.ID, EOrderBy.DESC); if (entity.OrderSnNum.IsNotEmpty()) { detail.And(item => item.OrderSnNum == entity.OrderSnNum); } if (entity.ProductName.IsNotEmpty()) { detail.And("ProductName", ECondition.Like, "%" + entity.ProductName + "%"); } if (entity.BarCode.IsNotEmpty()) { detail.And("BarCode", ECondition.Like, "%" + entity.BarCode + "%"); } if (entity.StorageNum.IsNotEmpty()) { detail.And(item => item.StorageNum == entity.StorageNum); } BadReportEntity badOrder = new BadReportEntity(); badOrder.Include(item => new { Status = item.Status, BadType = item.BadType, AuditeTime = item.AuditeTime }); detail.Left <BadReportEntity>(badOrder, new Params <string, string>() { Item1 = "OrderSnNum", Item2 = "SnNum" }); badOrder.Where(item => item.IsDelete == (int)EIsDelete.NotDelete); if (entity.OrderNum.IsNotEmpty()) { badOrder.And("OrderNum", ECondition.Like, "%" + entity.OrderNum + "%"); } if (entity.Status > 0) { badOrder.And(item => item.Status == entity.Status); } if (entity.BeginTime.IsNotEmpty()) { DateTime begin = ConvertHelper.ToType <DateTime>(entity.BeginTime, DateTime.Now.AddDays(-30)).Date; badOrder.And(item => item.CreateTime >= begin); } if (entity.EndTime.IsNotEmpty()) { DateTime end = ConvertHelper.ToType <DateTime>(entity.EndTime, DateTime.Now).AddDays(1).Date; badOrder.And(item => item.CreateTime < end); } if (entity.BadType > 0) { badOrder.And(item => item.BadType == entity.BadType); } AdminEntity admin = new AdminEntity(); admin.Include(a => new { CreateUserName = a.UserName }); badOrder.Left <AdminEntity>(admin, new Params <string, string>() { Item1 = "CreateUser", Item2 = "UserNum" }); AdminEntity auditeAdmin = new AdminEntity(); auditeAdmin.Include(a => new { AuditUserName = a.UserName }); badOrder.Left <AdminEntity>(auditeAdmin, new Params <string, string>() { Item1 = "AuditUser", Item2 = "UserNum" }); int rowCount = 0; List <BadReportDetailEntity> listResult = this.BadReportDetail.GetList(detail, pageInfo.PageSize, pageInfo.PageIndex, out rowCount); pageInfo.RowCount = rowCount; if (!listResult.IsNullOrEmpty()) { List <LocationEntity> listLocation = new LocationProvider(this.CompanyID).GetList(); listLocation = listLocation == null ? new List <LocationEntity>() : listLocation; ProductProvider productProvider = new ProductProvider(this.CompanyID); foreach (BadReportDetailEntity item in listResult) { LocationEntity location = listLocation.FirstOrDefault(a => a.LocalNum == item.FromLocalNum); item.FromLocalName = location == null ? "" : location.LocalName; location = listLocation.FirstOrDefault(a => a.LocalNum == item.ToLocalNum); item.ToLocalName = location == null ? "" : location.LocalName; item.StorageName = location.StorageName; ProductEntity product = productProvider.GetProduct(item.ProductNum); item.Size = product != null ? product.Size : string.Empty; item.UnitName = product != null ? product.UnitName : string.Empty; } } return(listResult); }
public void Post(LocationBindingModel bindingModel) { LocationProvider.AddLocation(RequestContext.Principal.Identity.Name, (bindingModel.lattitude, bindingModel.longtitude)); }
public async Task <ProductsSearchDto> SearchAsync( [GraphQLType(typeof(SearchProductsInputType))][GraphQLName("input")] SearchProductsDto terms, [ScopedService] QueryDbContext context, CancellationToken token) { SetLogTransaction(terms); var query = context.ConsumerProducts.AsQueryable(); if (!string.IsNullOrWhiteSpace(terms.Text)) { query = query.Where(p => p.Name.Contains(terms.Text)); } if (terms.ProducerId.HasValue) { query = query.Where(p => p.ProducerId == terms.ProducerId.Value); } if (terms.Tags != null && terms.Tags.Any()) { foreach (var tag in terms.Tags) { query = query.Where(p => p.Tags.Contains(tag)); } } Point currentPosition = null; if (terms.Longitude.HasValue && terms.Latitude.HasValue) { currentPosition = LocationProvider.CreatePoint(terms.Latitude.Value, terms.Longitude.Value); query = query.Where(p => p.Location.Distance(currentPosition) < _searchOptions.ProductsDistance); } var count = await query.CountAsync(token); if (!string.IsNullOrWhiteSpace(terms.Sort)) { var sort = terms.Sort.ToLowerInvariant(); if (sort.Contains("producer_geolocation") && currentPosition != null) { query = query.OrderBy(p => p.Location.Distance(currentPosition)); } else if (sort.Contains("price") && sort.Contains("asc")) { query = query.OrderBy(p => p.OnSalePricePerUnit); } else if (sort.Contains("price") && sort.Contains("desc")) { query = query.OrderByDescending(p => p.OnSalePricePerUnit); } else { query = query.OrderBy(p => p.Name); } } else { query = query.OrderBy(p => p.Name); } query = query.Skip(((terms.Page ?? 1) - 1) * terms.Take ?? 20); query = query.Take(terms.Take ?? 20); var results = await query .Select(p => p.Id) .ToListAsync(token); var products = await context.Products.Where(p => results.Contains(p.Id) && p.Producer.CanDirectSell).ToListAsync(token); var orderedProducts = results.Select(result => products.SingleOrDefault(p => p.Id == result)).ToList(); return(new ProductsSearchDto { Count = count, Products = orderedProducts }); }
/// <summary> /// 3) T is an interface, class, struct, enum, or delegate type <![CDATA[S<A_1, ..., A_k>]]> constructed /// from a generic type <![CDATA[S<X_1, ..., X_k>]]> where for at least one A_i one /// of the following holds: /// a) X_i is covariant or invariant and A_i is output-unsafe [input-unsafe] /// b) X_i is contravariant or invariant and A_i is input-unsafe [output-unsafe] (note: spec has "input-safe", but it's a typo) /// </summary> /// <remarks> /// Slight rewrite to make it more idiomatic for C#: /// a) X_i is covariant and A_i is input-unsafe /// b) X_i is contravariant and A_i is output-unsafe /// c) X_i is invariant and A_i is input-unsafe or output-unsafe /// </remarks> private static bool IsVarianceUnsafe <T>( NamedTypeSymbol namedType, bool requireOutputSafety, bool requireInputSafety, Symbol context, LocationProvider <T> locationProvider, T locationArg, DiagnosticBag diagnostics) where T : Symbol { Debug.Assert(requireOutputSafety || requireInputSafety); switch (namedType.TypeKind) { case TypeKind.Class: case TypeKind.Struct: case TypeKind.Enum: // Can't be generic, but can be nested in generic. case TypeKind.Interface: case TypeKind.Delegate: case TypeKind.Error: break; default: return(false); } while ((object)namedType != null) { for (int i = 0; i < namedType.Arity; i++) { TypeParameterSymbol typeParam = namedType.TypeParameters[i]; TypeSymbol typeArg = namedType.TypeArgumentsNoUseSiteDiagnostics[i]; bool requireOut; bool requireIn; switch (typeParam.Variance) { case VarianceKind.Out: // a) X_i is covariant and A_i is output-unsafe [input-unsafe] requireOut = requireOutputSafety; requireIn = requireInputSafety; break; case VarianceKind.In: // b) X_i is contravariant and A_i is input-unsafe [output-unsafe] requireOut = requireInputSafety; requireIn = requireOutputSafety; break; case VarianceKind.None: // c) X_i is invariant and A_i is output-unsafe or input-unsafe requireIn = true; requireOut = true; break; default: Debug.Assert(false, "Unknown variance kind " + typeParam.Variance); goto case VarianceKind.None; } if (IsVarianceUnsafe(typeArg, requireOut, requireIn, context, locationProvider, locationArg, diagnostics)) { return(true); } } namedType = namedType.ContainingType; } return(false); }
/// <summary> /// 编辑库位 /// </summary> /// <returns></returns> public ActionResult Edit() { string LocalNum = WebUtil.GetFormValue <string>("LocalNum"); string LocalBarCode = WebUtil.GetFormValue <string>("LocalBarCode"); string LocalName = WebUtil.GetFormValue <string>("LocalName"); string StorageNum = WebUtil.GetFormValue <string>("StorageNum"); int StorageType = WebUtil.GetFormValue <int>("StorageType"); int LocalType = WebUtil.GetFormValue <int>("LocalType"); string Rack = WebUtil.GetFormValue <string>("Rack"); double Length = WebUtil.GetFormValue <double>("Length"); double Width = WebUtil.GetFormValue <double>("Width"); double Height = WebUtil.GetFormValue <double>("Height"); double X = WebUtil.GetFormValue <double>("X"); double Y = WebUtil.GetFormValue <double>("Y"); double Z = WebUtil.GetFormValue <double>("Z"); string UnitNum = WebUtil.GetFormValue <string>("UnitNum"); string UnitName = WebUtil.GetFormValue <string>("UnitName"); string Remark = WebUtil.GetFormValue <string>("Remark"); int IsForbid = WebUtil.GetFormValue <int>("IsForbid", (int)EBool.No); int IsDefault = WebUtil.GetFormValue <int>("IsDefault", (int)EBool.No); string CompanyID = WebUtil.GetFormValue <string>("CompanyID"); LocationEntity entity = new LocationEntity(); entity.LocalNum = LocalNum; entity.LocalBarCode = LocalBarCode; entity.LocalName = LocalName; entity.StorageNum = StorageNum; entity.StorageType = StorageType; entity.LocalType = LocalType; entity.Rack = Rack; entity.Length = Length; entity.Width = Width; entity.Height = Height; entity.X = X; entity.Y = Y; entity.Z = Z; entity.UnitNum = UnitNum; entity.UnitName = UnitName; entity.Remark = Remark; entity.IsForbid = IsForbid; entity.IsDefault = IsDefault; entity.IsDelete = (int)EIsDelete.NotDelete; entity.CreateTime = DateTime.Now; entity.CompanyID = CompanyID; LocationProvider provider = new LocationProvider(CompanyID); int line = provider.Update(entity); DataResult result = new DataResult(); if (line > 0) { result.Code = (int)EResponseCode.Success; result.Message = "库位修改成功"; } else { result.Code = (int)EResponseCode.Exception; result.Message = "库位修改失败"; } return(Content(JsonHelper.SerializeObject(result))); }