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] [HttpPost]
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList([FromBody] QuerySchemeRequest querySchemeRequest) public IList<PurchaseSchemeResponse> GetPurchaseSchemeList([FromBody] QuerySchemeRequest querySchemeRequest)
{ {
querySchemeRequest.IncludePurchaserStatisticsInfo = 1; //querySchemeRequest.IncludePurchaserStatisticsInfo = 1;
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest); 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<OrderPurchaseInfo> insertOrderPurchaseInfos = new List<OrderPurchaseInfo>();
List<OrderPurchaseSkuInfo> insertOrderPurchaseSkuInfos = new List<OrderPurchaseSkuInfo>(); List<OrderPurchaseSkuInfo> insertOrderPurchaseSkuInfos = new List<OrderPurchaseSkuInfo>();
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>(); 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<OrderPurchaseRelationInfo> insertOrderPurchaseRelationInfoList = new List<OrderPurchaseRelationInfo>();
List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>(); List<string> updatePurchaseTimeLimitTaskOrderSkuList = new List<string>();
List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>(); List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
@ -552,21 +552,21 @@ namespace BBWYB.Server.Business
} }
#endregion #endregion
#region 更新采购配件 //#region 更新采购配件
{ //{
foreach (var cargoParam in allCargoParamList) // foreach (var cargoParam in allCargoParamList)
{ // {
var createOrderItem = createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId); // var createOrderItem = createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId);
if (createOrderItem != null) // if (createOrderItem != null)
{ // {
var update = fsql.Update<PurchaseSchemeProductSku>() // var update = fsql.Update<PurchaseSchemeProductSku>()
.Set(pss => pss.LastPurchasePriceCost, createOrderItem.Price) // .Set(pss => pss.LastPurchasePriceCost, createOrderItem.Price)
.Where(pss => pss.PurchaseSkuId == cargoParam.SkuId && pss.SkuPurchaseSchemeId == cargoParam.SchemeId); // .Where(pss => pss.PurchaseSkuId == cargoParam.SkuId && pss.SkuPurchaseSchemeId == cargoParam.SchemeId);
updatePssList.Add(update); // updatePssList.Add(update);
} // }
} // }
} //}
#endregion //#endregion
} }
#endregion #endregion
@ -783,11 +783,11 @@ namespace BBWYB.Server.Business
foreach (var update in updatePurchaseSchemeList) foreach (var update in updatePurchaseSchemeList)
update.ExecuteAffrows(); update.ExecuteAffrows();
} }
if (updatePssList.Count() > 0) //if (updatePssList.Count() > 0)
{ //{
foreach (var update in updatePssList) // foreach (var update in updatePssList)
update.ExecuteAffrows(); // update.ExecuteAffrows();
} //}
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState) fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark) .SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true) .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 skuIdList = purchaseSchemeList.Select(ps => ps.SkuId).Distinct().ToList();
var recentDate = DateTime.Now.Date.AddDays(-30); 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>() var purchaseSchemeProductList = fsql.Select<PurchaseSchemeProduct>()
.Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)) .Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
.ToList<PurchaseSchemeProductResponse>(); .ToList<PurchaseSchemeProductResponse>();
@ -856,48 +835,20 @@ namespace BBWYB.Server.Business
} }
} }
List<string> purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList(); List<PurchaseSchemeProductSkuStatistic> purchaseSkuStatisticList = null;
var dbPurchaserList = fsql.Select<Purchaser>(purchaserIdList).ToList<PurchaserResponse>(); if (request.IncludePurchaseSkuStatisticsInfo == 1)
//if (request.IncludePurchaserStatisticsInfo == 1) {
//{ var purchaseSkuIdList = purchaseSchemeList.SelectMany(ps => ps.PurchaseSchemeProductList.SelectMany(psp => psp.PurchaseSchemeProductSkuList))
// #region 查询SKU采购数 .Select(pss => pss.PurchaseSkuId)
// var purchasedSkuList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>() .Distinct()
// .InnerJoin((spr, ps) => spr.SkuId == ps.Id) .ToList();
// .Where((spr, ps) => ps.ShopId == request.ShopId && purchaserIdList.Contains(spr.PurchaserId)) purchaseSkuStatisticList = fsql.Select<PurchaseSchemeProductSkuStatistic>(purchaseSkuIdList)
// .GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId }) .ToList();
// .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) List<string> purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList();
// { var dbPurchaserList = fsql.Select<Purchaser>(purchaserIdList).ToList<PurchaserResponse>();
// 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) foreach (var scheme in purchaseSchemeList)
{ {
@ -925,6 +876,18 @@ namespace BBWYB.Server.Business
schemeProduct.PurchasePlatform = purchaser.Platform; schemeProduct.PurchasePlatform = purchaser.Platform;
schemeProduct.PurchaserTag = purchaser.Tag; 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 #endregion
} }
} }
return purchaseSchemeList; return purchaseSchemeList;
} }

3
BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs

@ -592,7 +592,8 @@ namespace BBWYB.Server.Business
{ {
SkuIdList = skuIdList, SkuIdList = skuIdList,
BargainTeamIdList = bargainTeamIdList, BargainTeamIdList = bargainTeamIdList,
IncludePurchaseSkuBasicInfo = 1 IncludePurchaseSkuBasicInfo = 1,
IncludePurchaseSkuStatisticsInfo = 1
}); });
#endregion #endregion

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

@ -57,9 +57,9 @@ namespace BBWYB.Server.Model.Dto
public int? IncludeSkuStatisticsInfo { get; set; } public int? IncludeSkuStatisticsInfo { get; set; }
/// <summary> /// <summary>
/// 是否包含采购商统计信息 (采购次数/采购SKU数) /// 是否包含采购配件统计信息
/// </summary> /// </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> /// </summary>
public DateTime? LastBargainingTime { get; set; } 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>
/// 配件的最近采购价(配件单价) /// 采购件数
/// </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时具备该值 /// 是否失效 失效=1 其余情况默认为有效 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary> /// </summary>
public int? IsInvalid { get; set; } 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