Browse Source

采购方案查询

liangku_skuoptimazation
shanji 1 year ago
parent
commit
93ec372779
  1. 74
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  2. 18
      BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs
  3. 2
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs
  4. 13
      BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs

74
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -857,46 +857,46 @@ namespace BBWYB.Server.Business
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
//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
// });
#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
// #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
// #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 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)
{

18
BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs

@ -540,11 +540,29 @@ namespace BBWYB.Server.Business
.ToList<TimeLimitTaskResponse>();
#endregion
#region 获取竞标任务
var competitiveTenderTaskList = fsql.Select<SpuOptimizationCompetitiveTenderTask>()
.Where(ct => spuTaskIdList.Contains(ct.SpuOptimizationTaskId))
.ToList();
#endregion
#region 获取采购方案
var competitiveTenderTaskSchemeIdList = competitiveTenderTaskList.Select(ct => ct.SchemeId.Value).ToList();
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
SchemeIdList = competitiveTenderTaskSchemeIdList,
IncludePurchaseSkuBasicInfo = 1
});
#endregion
foreach (var task in taskList)
{
task.BargainTeamTaskList = bargainTeamTaskList.Where(sbt => sbt.SpuOptimizationTaskId == task.Id).ToList();
task.TimeLimitTask = timelimitTaskList.FirstOrDefault(t => t.TaskId == task.Id);
if (task.TimeLimitTask != null)
timeLimitRules.CalculateLessTimeForWorkHour(task.TimeLimitTask.ExpirationTime.Value);
task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true;
}
return new ListResponse<SpuOptimizationTaskResponse>()

2
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs

@ -55,7 +55,7 @@ namespace BBWYB.Server.Model.Db
/// Spu优化任务Id
/// </summary>
[Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; }
public long SpuOptimizationTaskId { get; set; }
}

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

@ -0,0 +1,13 @@
namespace BBWYB.Server.Model.Dto
{
/// <summary>
/// 合并配件信息
/// </summary>
public class MergePurchaseSchemeProductSkuResponse : PurchaseSchemeProductSkuResponse
{
/// <summary>
/// 采购商Id
/// </summary>
public string PurchaserId { get; set; }
}
}
Loading…
Cancel
Save