Browse Source

采购方案查询

liangku_skuoptimazation
shanji 1 year ago
parent
commit
93ec372779
  1. 80
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  2. 20
      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

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

@ -857,46 +857,46 @@ namespace BBWYB.Server.Business
List<string> purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList(); List<string> purchaserIdList = purchaseSchemeProductList.Select(x => x.PurchaserId).Distinct().ToList();
var dbPurchaserList = fsql.Select<Purchaser>(purchaserIdList).ToList<PurchaserResponse>(); var dbPurchaserList = fsql.Select<Purchaser>(purchaserIdList).ToList<PurchaserResponse>();
if (request.IncludePurchaserStatisticsInfo == 1) //if (request.IncludePurchaserStatisticsInfo == 1)
{ //{
#region 查询SKU采购数 // #region 查询SKU采购数
var purchasedSkuList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>() // var purchasedSkuList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>()
.InnerJoin((spr, ps) => spr.SkuId == ps.Id) // .InnerJoin((spr, ps) => spr.SkuId == ps.Id)
.Where((spr, ps) => ps.ShopId == request.ShopId && purchaserIdList.Contains(spr.PurchaserId)) // .Where((spr, ps) => ps.ShopId == request.ShopId && purchaserIdList.Contains(spr.PurchaserId))
.GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId }) // .GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId })
.ToList(g => new // .ToList(g => new
{ // {
g.Key.PurchaserId, // g.Key.PurchaserId,
g.Key.SkuId // g.Key.SkuId
}); // });
#endregion // #endregion
#region 查询订单数 // #region 查询订单数
var poList = fsql.Select<OrderPurchaseInfo, Order>() // var poList = fsql.Select<OrderPurchaseInfo, Order>()
.InnerJoin((opi, o) => opi.OrderId == o.Id) // .InnerJoin((opi, o) => opi.OrderId == o.Id)
.Where((opi, o) => opi.ShopId == request.ShopId && // .Where((opi, o) => opi.ShopId == request.ShopId &&
opi.IsEnabled == true && // opi.IsEnabled == true &&
o.OrderState != Enums.OrderState. && // o.OrderState != Enums.OrderState.已取消 &&
purchaserIdList.Contains(opi.PurchaserId)) // purchaserIdList.Contains(opi.PurchaserId))
.GroupBy((opi, o) => opi.PurchaserId) // .GroupBy((opi, o) => opi.PurchaserId)
.ToList(g => new // .ToList(g => new
{ // {
PurchaserId = g.Key, // PurchaserId = g.Key,
Count = g.Count() // Count = g.Count()
}); // });
#endregion // #endregion
foreach (var purchaser in dbPurchaserList) // foreach (var purchaser in dbPurchaserList)
{ // {
purchaser.PurchasedSkuCount = purchasedSkuList.Where(x => x.PurchaserId == purchaser.Id) // purchaser.PurchasedSkuCount = purchasedSkuList.Where(x => x.PurchaserId == purchaser.Id)
.Select(x => x.SkuId) // .Select(x => x.SkuId)
.Distinct() // .Distinct()
.Count(); // .Count();
purchaser.PurchasedCount = poList.FirstOrDefault(x => x.PurchaserId == purchaser.Id)?.Count ?? 0; // purchaser.PurchasedCount = poList.FirstOrDefault(x => x.PurchaserId == purchaser.Id)?.Count ?? 0;
} // }
} //}
foreach (var scheme in purchaseSchemeList) foreach (var scheme in purchaseSchemeList)
{ {

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

@ -518,7 +518,7 @@ namespace BBWYB.Server.Business
t.CreateTime <= request.EndTime) t.CreateTime <= request.EndTime)
.WhereIf(request.BelongShopId != null && request.BelongShopId != 0, t => t.BelongShopId == request.BelongShopId) .WhereIf(request.BelongShopId != null && request.BelongShopId != 0, t => t.BelongShopId == request.BelongShopId)
.WhereIf(!string.IsNullOrEmpty(request.JDSku), t => fsql.Select<SkuOptimizationTask>() .WhereIf(!string.IsNullOrEmpty(request.JDSku), t => fsql.Select<SkuOptimizationTask>()
.Where(st => st.SpuOptimizationTaskId == t.Id && .Where(st => st.SpuOptimizationTaskId == t.Id &&
st.JDSkuId == request.JDSku) st.JDSkuId == request.JDSku)
.Any()) .Any())
.OrderByDescending(t => t.CreateTime) .OrderByDescending(t => t.CreateTime)
@ -540,11 +540,29 @@ namespace BBWYB.Server.Business
.ToList<TimeLimitTaskResponse>(); .ToList<TimeLimitTaskResponse>();
#endregion #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) foreach (var task in taskList)
{ {
task.BargainTeamTaskList = bargainTeamTaskList.Where(sbt => sbt.SpuOptimizationTaskId == task.Id).ToList(); task.BargainTeamTaskList = bargainTeamTaskList.Where(sbt => sbt.SpuOptimizationTaskId == task.Id).ToList();
task.TimeLimitTask = timelimitTaskList.FirstOrDefault(t => t.TaskId == task.Id); 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; task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true;
} }
return new ListResponse<SpuOptimizationTaskResponse>() return new ListResponse<SpuOptimizationTaskResponse>()

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

@ -55,7 +55,7 @@ namespace BBWYB.Server.Model.Db
/// Spu优化任务Id /// Spu优化任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [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