コード例 #1
0
        /// <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);
        }
コード例 #2
0
 public void Post(LocationBindingModel bindingModel)
 {
     LocationProvider.AddLocation(RequestContext.Principal.Identity.Name, (bindingModel.lattitude, bindingModel.longtitude));
 }
コード例 #3
0
ファイル: ProductQueries.cs プロジェクト: sheaft-app/api
        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
            });
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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)));
        }