From 93ec372779a88fbba88086ba36560cae732d4bff Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Sat, 9 Mar 2024 14:50:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 80 +++++++++---------- .../SkuOptimizationBusiness.cs | 20 ++++- .../Spuoptimizationcompetitivetendertask.cs | 2 +- .../MergePurchaseSchemeProductSkuResponse.cs | 13 +++ 4 files changed, 73 insertions(+), 42 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 39be653..816e116 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -857,46 +857,46 @@ namespace BBWYB.Server.Business 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; - } - } + //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) { diff --git a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs index eda74e2..d7db2ff 100644 --- a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs @@ -518,7 +518,7 @@ namespace BBWYB.Server.Business t.CreateTime <= request.EndTime) .WhereIf(request.BelongShopId != null && request.BelongShopId != 0, t => t.BelongShopId == request.BelongShopId) .WhereIf(!string.IsNullOrEmpty(request.JDSku), t => fsql.Select() - .Where(st => st.SpuOptimizationTaskId == t.Id && + .Where(st => st.SpuOptimizationTaskId == t.Id && st.JDSkuId == request.JDSku) .Any()) .OrderByDescending(t => t.CreateTime) @@ -540,11 +540,29 @@ namespace BBWYB.Server.Business .ToList(); #endregion + #region 获取竞标任务 + var competitiveTenderTaskList = fsql.Select() + .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() diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs index c6d2249..30188a5 100644 --- a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs +++ b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs @@ -55,7 +55,7 @@ namespace BBWYB.Server.Model.Db /// Spu优化任务Id /// [Column(DbType = "bigint")] - public long? SpuOptimizationTaskId { get; set; } + public long SpuOptimizationTaskId { get; set; } } diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs new file mode 100644 index 0000000..b9f8780 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs @@ -0,0 +1,13 @@ +namespace BBWYB.Server.Model.Dto +{ + /// + /// 合并配件信息 + /// + public class MergePurchaseSchemeProductSkuResponse : PurchaseSchemeProductSkuResponse + { + /// + /// 采购商Id + /// + public string PurchaserId { get; set; } + } +}