diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs index 466f15e..cf13444 100644 --- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs @@ -44,7 +44,7 @@ namespace BBWYB.Server.API.Controllers [HttpPost] public IList GetPurchaseSchemeList([FromBody] QuerySchemeRequest querySchemeRequest) { - querySchemeRequest.IncludePurchaserStatisticsInfo = 1; + //querySchemeRequest.IncludePurchaserStatisticsInfo = 1; return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest); } diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index f6aa39a..2667aa3 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -326,7 +326,7 @@ namespace BBWYB.Server.Business List insertOrderPurchaseInfos = new List(); List insertOrderPurchaseSkuInfos = new List(); List> updatePurchaseSchemeList = new List>(); - List> updatePssList = new List>(); + //List> updatePssList = new List>(); List insertOrderPurchaseRelationInfoList = new List(); List updatePurchaseTimeLimitTaskOrderSkuList = new List(); List> updatePurchaserList = new List>(); @@ -552,21 +552,21 @@ namespace BBWYB.Server.Business } #endregion - #region 更新采购配件 - { - foreach (var cargoParam in allCargoParamList) - { - var createOrderItem = createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId); - if (createOrderItem != null) - { - var update = fsql.Update() - .Set(pss => pss.LastPurchasePriceCost, createOrderItem.Price) - .Where(pss => pss.PurchaseSkuId == cargoParam.SkuId && pss.SkuPurchaseSchemeId == cargoParam.SchemeId); - updatePssList.Add(update); - } - } - } - #endregion + //#region 更新采购配件 + //{ + // foreach (var cargoParam in allCargoParamList) + // { + // var createOrderItem = createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId); + // if (createOrderItem != null) + // { + // var update = fsql.Update() + // .Set(pss => pss.LastPurchasePriceCost, createOrderItem.Price) + // .Where(pss => pss.PurchaseSkuId == cargoParam.SkuId && pss.SkuPurchaseSchemeId == cargoParam.SchemeId); + // updatePssList.Add(update); + // } + // } + //} + //#endregion } #endregion @@ -783,11 +783,11 @@ namespace BBWYB.Server.Business foreach (var update in updatePurchaseSchemeList) update.ExecuteAffrows(); } - if (updatePssList.Count() > 0) - { - foreach (var update in updatePssList) - update.ExecuteAffrows(); - } + //if (updatePssList.Count() > 0) + //{ + // foreach (var update in updatePssList) + // update.ExecuteAffrows(); + //} fsql.Update(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState) .SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark) .Set(o => o.IsPurchased, true) diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 68730b6..8b5660e 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -773,27 +773,6 @@ namespace BBWYB.Server.Business var skuIdList = purchaseSchemeList.Select(ps => ps.SkuId).Distinct().ToList(); var recentDate = DateTime.Now.Date.AddDays(-30); - //var purchaseSchemeProductList = fsql.Select() - // .InnerJoin((psp, p) => psp.PurchaserId == p.Id) - // .Where((psp, p) => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)) - // .ToList((psp, p) => new PurchaseSchemeProductResponse - // { - // CreateTime = psp.CreateTime, - // Id = psp.Id, - // ProductId = psp.ProductId, - // PurchaseProductId = psp.PurchaseProductId, - // PurchaseUrl = psp.PurchaseUrl, - // SkuId = psp.SkuId, - // SkuPurchaseSchemeId = psp.SkuPurchaseSchemeId, - // PurchaserId = p.Id, - // PurchaserId2 = p.Id2, - // PurchaserLocation = p.Location, - // PurchaserName = p.Name, - // PurchasePlatform = p.Platform, - // PurchaserMemberId = p.MemberId - // //PurchaserPurchasedCount = p.PurchasedCount, - // //PurchaserPurchasedSkuCount = p.PurchasedSkuCount, - // }); var purchaseSchemeProductList = fsql.Select() .Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)) .ToList(); @@ -856,48 +835,20 @@ namespace BBWYB.Server.Business } } + List purchaseSkuStatisticList = null; + if (request.IncludePurchaseSkuStatisticsInfo == 1) + { + var purchaseSkuIdList = purchaseSchemeList.SelectMany(ps => ps.PurchaseSchemeProductList.SelectMany(psp => psp.PurchaseSchemeProductSkuList)) + .Select(pss => pss.PurchaseSkuId) + .Distinct() + .ToList(); + purchaseSkuStatisticList = fsql.Select(purchaseSkuIdList) + .ToList(); + + } + List purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList(); var dbPurchaserList = fsql.Select(purchaserIdList).ToList(); - //if (request.IncludePurchaserStatisticsInfo == 1) - //{ - // #region 查询SKU采购数 - // var purchasedSkuList = fsql.Select() - // .InnerJoin((spr, ps) => spr.SkuId == ps.Id) - // .Where((spr, ps) => ps.ShopId == request.ShopId && purchaserIdList.Contains(spr.PurchaserId)) - // .GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId }) - // .ToList(g => new - // { - // g.Key.PurchaserId, - // g.Key.SkuId - // }); - - // #endregion - - // #region 查询订单数 - // var poList = fsql.Select() - // .InnerJoin((opi, o) => opi.OrderId == o.Id) - // .Where((opi, o) => opi.ShopId == request.ShopId && - // opi.IsEnabled == true && - // o.OrderState != Enums.OrderState.已取消 && - // purchaserIdList.Contains(opi.PurchaserId)) - // .GroupBy((opi, o) => opi.PurchaserId) - // .ToList(g => new - // { - // PurchaserId = g.Key, - // Count = g.Count() - // }); - - // #endregion - - // foreach (var purchaser in dbPurchaserList) - // { - // purchaser.PurchasedSkuCount = purchasedSkuList.Where(x => x.PurchaserId == purchaser.Id) - // .Select(x => x.SkuId) - // .Distinct() - // .Count(); - // purchaser.PurchasedCount = poList.FirstOrDefault(x => x.PurchaserId == purchaser.Id)?.Count ?? 0; - // } - //} foreach (var scheme in purchaseSchemeList) { @@ -925,6 +876,18 @@ namespace BBWYB.Server.Business schemeProduct.PurchasePlatform = purchaser.Platform; schemeProduct.PurchaserTag = purchaser.Tag; } + + if (request.IncludePurchaseSkuStatisticsInfo == 1) + { + foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList) + { + var pssStatistic = purchaseSkuStatisticList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId); + schemeProductSku.PurchasedAmount = pssStatistic?.PurchasedAmount ?? 0M; + schemeProductSku.PurchasedItemCount = pssStatistic?.PurchasedItemCount ?? 0; + schemeProductSku.LastPurchasedPrice = pssStatistic?.LastPurchasedPrice ?? 0; + schemeProductSku.LastPurchasedTime = pssStatistic?.LastPurchasedTime; + } + } } } @@ -984,6 +947,7 @@ namespace BBWYB.Server.Business } #endregion } + } return purchaseSchemeList; } diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index e4778a2..896e0bd 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -592,7 +592,8 @@ namespace BBWYB.Server.Business { SkuIdList = skuIdList, BargainTeamIdList = bargainTeamIdList, - IncludePurchaseSkuBasicInfo = 1 + IncludePurchaseSkuBasicInfo = 1, + IncludePurchaseSkuStatisticsInfo = 1 }); #endregion diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs index 7715bfd..80fbb22 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs @@ -57,9 +57,9 @@ namespace BBWYB.Server.Model.Dto public int? IncludeSkuStatisticsInfo { get; set; } /// - /// 是否包含采购商统计信息 (采购次数/采购SKU数) + /// 是否包含采购配件统计信息 /// - public int? IncludePurchaserStatisticsInfo { get; set; } + public int? IncludePurchaseSkuStatisticsInfo { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs index 3b1cc28..de1015e 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs @@ -54,9 +54,30 @@ /// public DateTime? LastBargainingTime { get; set; } + ///// + ///// 配件的最近采购价(配件单价) + ///// + //public decimal? LastPurchasePriceCost { get; set; } + + + /// + /// 最近采购单价 + /// + public decimal? LastPurchasedPrice { get; set; } = 0.00M; + + /// + /// 最近采购时间 + /// + public DateTime? LastPurchasedTime { get; set; } + + /// + /// 采购金额 + /// + public decimal? PurchasedAmount { get; set; } + /// - /// 配件的最近采购价(配件单价) + /// 采购件数 /// - public decimal? LastPurchasePriceCost { get; set; } + public int? PurchasedItemCount { get; set; } = 0; } } diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs index 95a7739..b07adc3 100644 --- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs @@ -22,5 +22,25 @@ /// 是否失效 失效=1 其余情况默认为有效 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值 /// public int? IsInvalid { get; set; } + + /// + /// 最近采购单价,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值 + /// + public decimal? LastPurchasedPrice { get; set; } = 0.00M; + + /// + /// 最近采购时间,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值 + /// + public DateTime? LastPurchasedTime { get; set; } + + /// + /// 采购金额,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值 + /// + public decimal? PurchasedAmount { get; set; } + + /// + /// 采购件数,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值 + /// + public int? PurchasedItemCount { get; set; } = 0; } }