From 6fb097b1ccecb1cd6526177c50f2ada98baed412 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 7 Apr 2024 17:40:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=88=86=E8=A7=86=E8=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 62 +++++++------------ .../SkuOptimization/OptimizationBusiness.cs | 58 +++++++++++++++-- ...ueryNoCompletionOptimizationTaskRequest.cs | 14 ++++- .../SpuOptimizationBargainTeamTaskResponse.cs | 1 + 4 files changed, 90 insertions(+), 45 deletions(-) diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index c0ea9bb..9718937 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -521,49 +521,33 @@ namespace BBWYB.Server.Business var allCargoParamList = new List(); request.CargoParamGroupList.ForEach(x => allCargoParamList.AddRange(x.CargoParamList)); - #region 更新采购方案 - { - var cargoParamGroupsBySchemeList = allCargoParamList.GroupBy(c => c.SchemeId); - foreach (var cargoParamGroupsByScheme in cargoParamGroupsBySchemeList) - { - var schemeId = cargoParamGroupsByScheme.Key; - var skuId = cargoParamGroupsByScheme.FirstOrDefault().BelongSkuId; - var skuItemCount = orderSkus.FirstOrDefault(osku => osku.SkuId == skuId)?.ItemTotal ?? 0; - - //var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => createdPurchaseOrderItemList.Where(x => x.SkuId == cargoParam.SkuId) - // .Select(x => x.Price * (cargoParam.PurchaseRatio ?? 1)) - // .DefaultIfEmpty(0M) - // .First()); + //#region 更新采购方案 + //{ + // var cargoParamGroupsBySchemeList = allCargoParamList.GroupBy(c => c.SchemeId); + // foreach (var cargoParamGroupsByScheme in cargoParamGroupsBySchemeList) + // { + // var schemeId = cargoParamGroupsByScheme.Key; + // var skuId = cargoParamGroupsByScheme.FirstOrDefault().BelongSkuId; + // var skuItemCount = orderSkus.FirstOrDefault(osku => osku.SkuId == skuId)?.ItemTotal ?? 0; - var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => - { - return (createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId)?.Price ?? 0) * (cargoParam.PurchaseRatio ?? 1); - }); + // //var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => createdPurchaseOrderItemList.Where(x => x.SkuId == cargoParam.SkuId) + // // .Select(x => x.Price * (cargoParam.PurchaseRatio ?? 1)) + // // .DefaultIfEmpty(0M) + // // .First()); + // var lastPurchasePriceCost = cargoParamGroupsByScheme.Sum(cargoParam => + // { + // return (createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId)?.Price ?? 0) * (cargoParam.PurchaseRatio ?? 1); + // }); - var purchasedAmount = insertOrderCostDetails.Where(ocd => ocd.SkuId == skuId).Sum(ocd => ocd.SkuAmount); - var update = fsql.Update(schemeId).Set(ps => ps.LastPurchaseTime, DateTime.Now) - .Set(ps => ps.LastPurchasePriceCost, lastPurchasePriceCost) - .Set(ps => ps.PurchasedCount + 1) - .Set(ps => ps.PurchasedItemCount + skuItemCount) - .Set(ps => ps.PurchasedAmount + purchasedAmount); - updatePurchaseSchemeList.Add(update); - } - } - #endregion - //#region 更新采购配件 - //{ - // foreach (var cargoParam in allCargoParamList) - // { - // var createOrderItem = createdPurchaseOrderItemList.FirstOrDefault(x => x.SkuId == cargoParam.SkuId); - // if (createOrderItem != null) - // { - // var update = fsql.Update() - // .Set(pss => pss.LastPurchasePriceCost, createOrderItem.Price) - // .Where(pss => pss.PurchaseSkuId == cargoParam.SkuId && pss.SkuPurchaseSchemeId == cargoParam.SchemeId); - // updatePssList.Add(update); - // } + // var purchasedAmount = insertOrderCostDetails.Where(ocd => ocd.SkuId == skuId).Sum(ocd => ocd.SkuAmount); + // var update = fsql.Update(schemeId).Set(ps => ps.LastPurchaseTime, DateTime.Now) + // .Set(ps => ps.LastPurchasePriceCost, lastPurchasePriceCost) + // .Set(ps => ps.PurchasedCount + 1) + // .Set(ps => ps.PurchasedItemCount + skuItemCount) + // .Set(ps => ps.PurchasedAmount + purchasedAmount); + // updatePurchaseSchemeList.Add(update); // } //} //#endregion diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index 062a0b8..7961476 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -8,6 +8,7 @@ using BBWYB.Server.Model.Db.SpuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Newtonsoft.Json; +using Org.BouncyCastle.Asn1; using System.Numerics; using System.Text.RegularExpressions; using Yitter.IdGenerator; @@ -617,7 +618,8 @@ namespace BBWYB.Server.Business public ListResponse GetNoCompletionSkuOptimizationTask(QueryNoCompletionOptimizationTaskRequest request, string userId) { request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1); - var uInfo = userBusiness.GetisBargainTeamByUserId(userId); + var uInfo = userBusiness.GetisBargainTeamByUserId(userId) + ISelect select = null; if (request.SpuOptimizationTaskId != null && request.SpuOptimizationTaskId != 0) @@ -648,8 +650,10 @@ namespace BBWYB.Server.Business .WhereIf(!string.IsNullOrEmpty(skuKeyWords), st => st.SkuId == skuKeyWords) .Any()) .WhereIf(!string.IsNullOrEmpty(request.TitleKeywords), t => t.ProductTitle.Contains(request.TitleKeywords)) - .WhereIf(!string.IsNullOrEmpty(spuKeyWords), t => t.ProductId == spuKeyWords) - .WhereIf(request.IsCompleted, t => t.IsOptimizationCompleted == true || + .WhereIf(!string.IsNullOrEmpty(spuKeyWords), t => t.ProductId == spuKeyWords); + + /* + .WhereIf(request.IsCompleted, t => t.IsOptimizationCompleted == true || fsql.Select() .Where(sbt => sbt.IsOptimizationCompleted == true && sbt.SpuOptimizationTaskId == t.Id && @@ -661,7 +665,53 @@ namespace BBWYB.Server.Business sbt.SpuOptimizationTaskId == t.Id && sbt.BelongTeamId == barginTeamId) .Any()) - .WhereIf(!request.IsCompleted && string.IsNullOrEmpty(barginTeamId), t => t.IsOptimizationCompleted == false); + .WhereIf(!request.IsCompleted && string.IsNullOrEmpty(barginTeamId), t => t.IsOptimizationCompleted == false) + */ + if (request.State == 0) + { + if (string.IsNullOrEmpty(barginTeamId)) + { + //非议价组查询未完成 + select = select.Where(t => t.IsOptimizationCompleted == false); + } + else + { + //议价组查询未完成 + select = select.Where(t => t.IsOptimizationCompleted == false && + fsql.Select() + .Where(sbt => sbt.IsOptimizationCompleted == false && + sbt.SpuOptimizationTaskId == t.Id && + sbt.BelongTeamId == barginTeamId) + .Any()); + } + } + else if (request.State == 1) + { + if (string.IsNullOrEmpty(barginTeamId)) + { + //非议价组查询已完成 + select = select.Where(t => t.IsOptimizationCompleted == true); + } + else + { + //议价组查询已完成 + select = select.Where(t => fsql.Select() + .Where(sbt => sbt.IsOptimizationCompleted == true && + sbt.SpuOptimizationTaskId == t.Id && + sbt.BelongTeamId == barginTeamId) + .Any()); + } + } + else if (request.State == 2) + { + //已超时 + select = select.Where(t => t.IsOptimizationCompleted == true) + .Where(t=> fsql.Select() + .Where(sbt => sbt.IsOptimizationCompleted == false && + sbt.SpuOptimizationTaskId == t.Id ) + .WhereIf(!string.IsNullOrEmpty(barginTeamId),sbt=>sbt.BelongTeamId == barginTeamId) + .Any()); + } } var sql = select.ToSql(); diff --git a/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs b/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs index c228773..9e8e835 100644 --- a/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs @@ -41,9 +41,19 @@ namespace BBWYB.Server.Model.Dto /// public string TitleKeywords { get; set; } + ///// + ///// 是否完成 (议价组完成视为完成) + ///// + //public bool IsCompleted { get; set; } + + ///// + ///// 是否关闭 + ///// + //public bool IsClosed { get; set; } + /// - /// 是否完成 (议价组完成视为完成) + /// 任务相对状态 0=待优化 1=已完成 2=已关闭 /// - public bool IsCompleted { get; set; } + public int State { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs index 5ec20a4..5167561 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs @@ -4,5 +4,6 @@ namespace BBWYB.Server.Model.Dto { public class SpuOptimizationBargainTeamTaskResponse : SpuOptimizationBargainTeamTask { + } }