Browse Source

查询采购方案支持配件统计

liangku_skuoptimazation
shanji 1 year ago
parent
commit
aa70da92a7
  1. 2
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  2. 42
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  3. 86
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  4. 3
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  5. 4
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
  6. 25
      BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs
  7. 20
      BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs

2
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs

@ -44,7 +44,7 @@ namespace BBWYB.Server.API.Controllers
[HttpPost]
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList([FromBody] QuerySchemeRequest querySchemeRequest)
{
querySchemeRequest.IncludePurchaserStatisticsInfo = 1;
//querySchemeRequest.IncludePurchaserStatisticsInfo = 1;
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}

42
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -326,7 +326,7 @@ namespace BBWYB.Server.Business
List<OrderPurchaseInfo> insertOrderPurchaseInfos = new List<OrderPurchaseInfo>();
List<OrderPurchaseSkuInfo> insertOrderPurchaseSkuInfos = new List<OrderPurchaseSkuInfo>();
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
List<IUpdate<PurchaseSchemeProductSku>> updatePssList = new List<IUpdate<PurchaseSchemeProductSku>>();
//List<IUpdate<PurchaseSchemeProductSku>> updatePssList = new List<IUpdate<PurchaseSchemeProductSku>>();
List<OrderPurchaseRelationInfo> insertOrderPurchaseRelationInfoList = new List<OrderPurchaseRelationInfo>();
List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>();
List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
@ -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<PurchaseSchemeProductSku>()
.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<PurchaseSchemeProductSku>()
// .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<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true)

86
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<PurchaseSchemeProduct, Purchaser>()
// .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<PurchaseSchemeProduct>()
.Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
.ToList<PurchaseSchemeProductResponse>();
@ -856,48 +835,20 @@ namespace BBWYB.Server.Business
}
}
List<PurchaseSchemeProductSkuStatistic> 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<PurchaseSchemeProductSkuStatistic>(purchaseSkuIdList)
.ToList();
}
List<string> purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList();
var dbPurchaserList = fsql.Select<Purchaser>(purchaserIdList).ToList<PurchaserResponse>();
//if (request.IncludePurchaserStatisticsInfo == 1)
//{
// #region 查询SKU采购数
// var purchasedSkuList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>()
// .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<OrderPurchaseInfo, Order>()
// .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;
}

3
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

4
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

@ -57,9 +57,9 @@ namespace BBWYB.Server.Model.Dto
public int? IncludeSkuStatisticsInfo { get; set; }
/// <summary>
/// 是否包含采购商统计信息 (采购次数/采购SKU数)
/// 是否包含采购配件统计信息
/// </summary>
public int? IncludePurchaserStatisticsInfo { get; set; }
public int? IncludePurchaseSkuStatisticsInfo { get; set; }
}
}

25
BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs

@ -54,9 +54,30 @@
/// </summary>
public DateTime? LastBargainingTime { get; set; }
///// <summary>
///// 配件的最近采购价(配件单价)
///// </summary>
//public decimal? LastPurchasePriceCost { get; set; }
/// <summary>
/// 最近采购单价
/// </summary>
public decimal? LastPurchasedPrice { get; set; } = 0.00M;
/// <summary>
/// 最近采购时间
/// </summary>
public DateTime? LastPurchasedTime { get; set; }
/// <summary>
/// 采购金额
/// </summary>
public decimal? PurchasedAmount { get; set; }
/// <summary>
/// 配件的最近采购价(配件单价)
/// 采购件数
/// </summary>
public decimal? LastPurchasePriceCost { get; set; }
public int? PurchasedItemCount { get; set; } = 0;
}
}

20
BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs

@ -22,5 +22,25 @@
/// 是否失效 失效=1 其余情况默认为有效 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public int? IsInvalid { get; set; }
/// <summary>
/// 最近采购单价,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值
/// </summary>
public decimal? LastPurchasedPrice { get; set; } = 0.00M;
/// <summary>
/// 最近采购时间,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值
/// </summary>
public DateTime? LastPurchasedTime { get; set; }
/// <summary>
/// 采购金额,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值
/// </summary>
public decimal? PurchasedAmount { get; set; }
/// <summary>
/// 采购件数,仅在查询条件IncludePurchaseSkuStatisticsInfo=1时具备该值
/// </summary>
public int? PurchasedItemCount { get; set; } = 0;
}
}

Loading…
Cancel
Save