Beispiel #1
0
        public JObject GetProductList(QueryProduct query, int page, int limit)
        {
            string      acc         = "AC003";
            ProductCtrl productCtrl = new ProductCtrl(acc);
            var         que         = productCtrl.GetList().AsQueryable();

            if (!string.IsNullOrWhiteSpace(query.ProID))
            {
                que = que.Where(x => x.SID.Contains(query.ProID));
            }
            if (!string.IsNullOrWhiteSpace(query.ProName))
            {
                que = que.Where(x => x.ProName.Contains(query.ProName));
            }
            if (!string.IsNullOrWhiteSpace(query.Models))
            {
                que = que.Where(x => x.Model.Contains(query.Models));
            }
            if (!string.IsNullOrWhiteSpace(query.Specs))
            {
                que = que.Where(x => x.Specs.Contains(query.Specs));
            }
            var     list = que.Skip((page - 1) * limit).Take(limit).ToList();
            JObject json = new JObject(
                new JProperty("code", 0),
                new JProperty("msg", ""),
                new JProperty("count", que.ToList().Count),
                new JProperty("data",
                              new JArray(
                                  from r in list
                                  select new JObject(
                                      new JProperty("AssistCode", r.AssistCode),
                                      new JProperty("BarCode", r.BarCode),
                                      new JProperty("CreatDate", r.CreatDate),
                                      new JProperty("Creator", r.Creator),
                                      new JProperty("FactryName", r.FactryName),
                                      new JProperty("ID", r.ID),
                                      new JProperty("Model", r.Model),
                                      new JProperty("PinyinCode", r.PinyinCode),
                                      new JProperty("OnlyUnit", r.OnlyUnit),
                                      new JProperty("ClassName", r.ClassName),
                                      new JProperty("ClassID", r.ClassID),
                                      new JProperty("MainUnitName", r.MainUnitName),
                                      new JProperty("AssistUnitName", r.AssistUnitName),
                                      new JProperty("AssistRate", r.AssistRate),
                                      new JProperty("IsFloat", r.IsFloat),
                                      new JProperty("ProName", r.ProName),
                                      new JProperty("Remark", r.Remark),
                                      new JProperty("SID", r.SID),
                                      new JProperty("Specs", r.Specs),
                                      new JProperty("Status", r.Status)))));

            return(json);
        }
Beispiel #2
0
        public async Task <IActionResult> Query([FromQuery] QueryProduct query)
        {
            var result = await this.mediator.Send(query);

            if (result.Errors?.Count > 0)
            {
                return(this.BadRequest(result));
            }

            return(this.Ok(result));
        }
Beispiel #3
0
        internal static string BuilderSql(CustomDataCommand command, QueryConditionEntity <QueryProduct> query)
        {
            CommonConst commonConst = new CommonConst();

            string sql      = command.CommandText;
            bool   hasWhere = false;

            using (DynamicQuerySqlBuilder builder = new DynamicQuerySqlBuilder(
                       sql, command, query.PagingInfo, "its.StockSysNo"))
            {
                QueryProduct condition = query.Condition;
                if (!string.IsNullOrEmpty(condition.CompanyCode))
                {
                    builder.AddCondition(QueryConditionRelationType.AND,
                                         "ppm.CompanyCode",
                                         DbType.String,
                                         "@CompanyCode",
                                         QueryConditionOperatorType.Equal,
                                         condition.CompanyCode
                                         );
                    hasWhere = true;
                }
                if (!string.IsNullOrEmpty(condition.PartnerType))
                {
                    builder.AddCondition(QueryConditionRelationType.AND,
                                         "ppm.PartnerType",
                                         DbType.String,
                                         "@PartnerType",
                                         QueryConditionOperatorType.Equal,
                                         condition.PartnerType
                                         );
                    hasWhere = true;
                }
                if (condition.ProductID != null && condition.ProductID.Length > 0)
                {
                    string productIds = Util.Contract("','", condition.ProductID);
                    productIds = "'" + productIds + "'";
                    builder.AddCondition(QueryConditionRelationType.AND,
                                         "ppm.ProductID",
                                         DbType.String,
                                         "@ProductID",
                                         QueryConditionOperatorType.In,
                                         productIds
                                         );
                    hasWhere = true;
                }
                if (condition.ProductSysNo != null && condition.ProductSysNo.Length > 0)
                {
                    string productSysNos = Util.Contract("','", condition.ProductSysNo);
                    productSysNos = "'" + productSysNos + "'";
                    builder.AddCondition(QueryConditionRelationType.AND,
                                         "ppm.ProductSysNo",
                                         DbType.String,
                                         "@ProductSysNo",
                                         QueryConditionOperatorType.In,
                                         productSysNos
                                         );
                    hasWhere = true;
                }
                if (condition.SysProductID != null && condition.SysProductID.Length > 0)
                {
                    string sysProductIds = Util.Contract("','", condition.SysProductID);
                    sysProductIds = "'" + sysProductIds + "'";
                    builder.AddCondition(QueryConditionRelationType.AND,
                                         "ppm.SysProductID",
                                         DbType.String,
                                         "@SysProductID",
                                         QueryConditionOperatorType.In,
                                         sysProductIds
                                         );
                    hasWhere = true;
                }
                if (condition.WareHourseNumber != null && condition.WareHourseNumber.Length > 0)
                {
                    string wareHourseNumbers = Util.Contract(",", condition.WareHourseNumber);

                    builder.ConditionConstructor.AddSubQueryCondition(QueryConditionRelationType.AND,
                                                                      "its.StockSysNo",
                                                                      QueryConditionOperatorType.In,
                                                                      wareHourseNumbers
                                                                      );
                    hasWhere = true;
                }

                //状态筛选
                builder.AddCondition(QueryConditionRelationType.AND,
                                     "ppm.Status",
                                     DbType.String,
                                     "@Status",
                                     QueryConditionOperatorType.Equal,
                                     'A'
                                     );
                hasWhere = true;

                sql = builder.BuildQuerySql();

                //有库存变化的才进行数据捞取
                string where = "(isnull(its.AvailableQty,0)+ isnull(its.ConsignQty,0)+isnull(its.VirtualQty,0)) <> isnull(ppsi.InventoryQty,0)";

                sql = sql.Replace("@Where@", string.Format("{0}{1}", hasWhere ? " AND " : " ", where));
            }

            return(sql);
        }
Beispiel #4
0
        private QueryProduct GetQueryProduct()
        {
            QueryProduct query = Addapter.CalculateInventoryQty.CreateQueryProduct();

            return(query);
        }