diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 816e116..68730b6 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -751,7 +751,8 @@ namespace BBWYB.Server.Business .WhereIf(request.SchemeIdList != null && request.SchemeIdList.Count() > 0, ps => request.SchemeIdList.Contains(ps.Id)) .WhereIf(request.SchemeGroupIdList != null && request.SchemeGroupIdList.Count() > 0, ps => request.SchemeGroupIdList.Contains(ps.SchemeGroupId)) .WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId)) - .WhereIf(request.ProductIdList != null && request.ProductIdList.Count() > 0, ps => request.ProductIdList.Contains(ps.ProductId)); + .WhereIf(request.ProductIdList != null && request.ProductIdList.Count() > 0, ps => request.ProductIdList.Contains(ps.ProductId)) + .WhereIf(request.BargainTeamIdList != null && request.BargainTeamIdList.Count() > 0, ps => request.BargainTeamIdList.Contains(ps.BelongBargainTeamId)); if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId)) { diff --git a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs index d7db2ff..d0259a5 100644 --- a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs @@ -532,6 +532,25 @@ namespace BBWYB.Server.Business var bargainTeamTaskList = fsql.Select() .Where(sbt => spuTaskIdList.Contains(sbt.SpuOptimizationTaskId)) .ToList(); + var bargainTeamIdList = bargainTeamTaskList.Select(x => x.BelongTeamId).Distinct().ToList(); + #endregion + + #region 获取SKU优化任务 + var skuTaskList = fsql.Select() + .LeftJoin((st, ps) => st.SkuId == ps.Id) + .Where((st, ps) => spuTaskIdList.Contains(st.SpuOptimizationTaskId)) + .ToList((st, ps) => new SkuOptimizationTaskResponse + { + CreateTime = st.CreateTime, + Id = st.Id, + JDSkuId = st.JDSkuId, + Logo = ps.Logo, + PreItemCount = st.PreItemCount, + PrePurchaseAmount = st.PrePurchaseAmount, + SkuId = st.SkuId, + SpuOptimizationTaskId = st.SpuOptimizationTaskId + }); + var skuIdList = skuTaskList.Select(st => st.SkuId).ToList(); #endregion #region 限时任务 @@ -540,17 +559,11 @@ 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, + SkuIdList = skuIdList, + BargainTeamIdList = bargainTeamIdList, IncludePurchaseSkuBasicInfo = 1 }); #endregion @@ -562,7 +575,12 @@ namespace BBWYB.Server.Business if (task.TimeLimitTask != null) timeLimitRules.CalculateLessTimeForWorkHour(task.TimeLimitTask.ExpirationTime.Value); task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true; + task.SkuOptimizationTaskList = skuTaskList.Where(st => st.SpuOptimizationTaskId == task.Id).ToList(); + #region 合并分组/采购商/配件 + var currentTaskSkuIdList = task.SkuOptimizationTaskList.Select(st => st.SkuId).ToList(); + var currentPurchaseSchemeList = purchaseSchemeList.Where(p => currentTaskSkuIdList.Contains(p.SkuId)).ToList(); + #endregion } return new ListResponse() diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs b/BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs index 2c5c53e..b1c10ab 100644 --- a/BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs +++ b/BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs @@ -38,7 +38,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/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs index 31482a4..7715bfd 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs @@ -31,6 +31,10 @@ namespace BBWYB.Server.Model.Dto public long? ShopId { get; set; } + /// + /// 议价组Id集合 + /// + public List BargainTeamIdList { get; set; } /// /// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询 diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs index 0d7b295..0b53696 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/MergePurchaseSchemeProductSkuResponse.cs @@ -39,11 +39,6 @@ /// public string PurchaseSkuSpecId { get; set; } - /// - /// Sku采购方案Id - /// - public long SkuPurchaseSchemeId { get; set; } - /// /// 采购比例 /// diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs new file mode 100644 index 0000000..c836741 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs @@ -0,0 +1,12 @@ +using BBWYB.Server.Model.Db; + +namespace BBWYB.Server.Model.Dto +{ + public class SkuOptimizationTaskResponse : SkuOptimizationTask + { + public string SkuId { get; set; } + + + public string Logo { get; set; } + } +} diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs index a0aacc0..d6aa4e3 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs @@ -19,6 +19,14 @@ namespace BBWYB.Server.Model.Dto /// public List BargainTeamTaskList { get; set; } + /// + /// SKU优化任务列表 + /// + public List SkuOptimizationTaskList { get; set; } + /// + /// 合并后的采购分组列表 + /// + public List MergePurchaseScemeGroupList { get; set; } } }