From 65f4b2080ee1d8b4c5a35bacbe6ef244b3a3f484 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 3 Apr 2024 08:51:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E4=BB=B6=E7=BA=A7?= =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 26 ++++++++++------- .../SkuOptimization/OptimizationBusiness.cs | 20 ++++++++++++- ...zationproductskuupdatequotedpricerecord.cs | 29 +++++++++++++++++++ 3 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index ab8d029..76daa53 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -1080,14 +1080,20 @@ namespace BBWYB.Server.Business IncludePurchaseSkuBasicInfo = 1 }); - List competitiveTenderTaskList = null; + //List competitiveTenderTaskList = null; + List updatePriceList = null; if (user.isBargainTeam && request.SpuOptimizationTaskId != null && request.SpuOptimizationTaskId != 0) { - competitiveTenderTaskList = fsql.Select() - .Where(ct => ct.SpuOptimizationTaskId == request.SpuOptimizationTaskId && - ct.BargainTeamId == user.bargainTeam.Id) - .ToList(); + //competitiveTenderTaskList = fsql.Select() + // .Where(ct => ct.SpuOptimizationTaskId == request.SpuOptimizationTaskId && + // ct.BargainTeamId == user.bargainTeam.Id) + // .ToList(); + + updatePriceList = fsql.Select() + .Where(x => x.SpuOptimizationTaskId == request.SpuOptimizationTaskId && + x.BargainTeamId == user.bargainTeam.Id) + .ToList(); } var mergePssList = new List(); @@ -1105,12 +1111,10 @@ namespace BBWYB.Server.Business mergePss = pss.Map(); mergePssList.Add(mergePss); } - if (competitiveTenderTaskList != null) - { - var belongCompetitiveTenderTask = competitiveTenderTaskList.FirstOrDefault(ct => ct.SchemeId == scheme.Id); - if (belongCompetitiveTenderTask != null && belongCompetitiveTenderTask.IsUpdateQuotedPrice == true) - mergePss.IsUpdateQuotedPrice = true; - } + + if (updatePriceList != null && updatePriceList.Any(x => x.PurchaseSkuId == mergePss.PurchaseSkuId)) + mergePss.IsUpdateQuotedPrice = true; + mergePss.BelongSkuIdList.Add(pss.SkuId); } } diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index 3d59249..52e80a4 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -366,6 +366,7 @@ namespace BBWYB.Server.Business #region DBOperation List insertSpuOptimizationCompetitiveTenderTaskList = new List(); List updateCompetitiveTenderTaskIdList = new List(); + List insertUpdatePriceList = new List(); #endregion //var skuList = request.ItemList.Select(x => x.SkuId).Distinct().ToList(); @@ -393,6 +394,11 @@ namespace BBWYB.Server.Business IncludePurchaseSkuBasicInfo = 0 }); + //查询配件级报价任务 + var updatePriceRecordList = fsql.Select() + .Where(x => x.SpuOptimizationTaskId == request.SpuOptimizationTaskId && + x.BargainTeamId == uInfo.bargainTeam.Id) + .ToList(); //筛选出不在竞标任务中的采购方案 var noJoinCompetitiveTenderPurchaseSchemeList = relationPurchaseSchemeList.Where(ps => !competitiveTenderTaskList.Any(ct => ct.SchemeId == ps.Id)).ToList(); @@ -404,6 +410,15 @@ namespace BBWYB.Server.Business purchaseSchemeBusiness.BatchEditPurchaseSkuActualPrice(batchEditPurchaseSkuActualPriceRequest, uInfo); } + insertUpdatePriceList.AddRange(request.ItemList.Where(x => !updatePriceRecordList.Any(r => r.PurchaseSkuId == x.PurchaseSkuId)).Select(x => new SpuOptimizationProductSkuUpdateQuotedPriceRecord() + { + Id = idGenerator.NewLong(), + BargainTeamId = uInfo.bargainTeam.Id, + CreateTime = DateTime.Now, + PurchaseSkuId = x.PurchaseSkuId, + SpuOptimizationTaskId = request.SpuOptimizationTaskId, + UserId = uInfo.user.Id + })); if (noJoinCompetitiveTenderPurchaseSchemeList.Count() > 0) { @@ -421,6 +436,7 @@ namespace BBWYB.Server.Business UpdateTime = DateTime.Now })); } + if (competitiveTenderTaskList.Count() > 0) { //updateCompetitiveTenderTaskIdList.AddRange(competitiveTenderTaskList.Select(ct => ct.Id).ToList()); @@ -450,6 +466,8 @@ namespace BBWYB.Server.Business .Set(ct => ct.IsUpdateQuotedPrice, true) .Set(ct => ct.UpdateTime, DateTime.Now) .ExecuteAffrows(); + if (insertUpdatePriceList.Count() > 0) + fsql.Insert(insertUpdatePriceList).ExecuteAffrows(); }); } @@ -790,7 +808,7 @@ namespace BBWYB.Server.Business var winGroupKey = psGroups.Select(g => new { SchemeGroupId = g.Key, Cost = g.Sum(ps => ps.BargainingCost ?? ps.DefaultCost) }) .OrderByDescending(x => x.Cost) .FirstOrDefault(); - victoryList.AddRange(competitiveTenderTaskList.Where(ct=>ct.SchemeGroupId == winGroupKey.SchemeGroupId)); + victoryList.AddRange(competitiveTenderTaskList.Where(ct => ct.SchemeGroupId == winGroupKey.SchemeGroupId)); //foreach (var psGroup in psGroups) //{ diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs new file mode 100644 index 0000000..d1208d3 --- /dev/null +++ b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs @@ -0,0 +1,29 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + [Table(Name = "spuoptimizationproductskuupdatequotedpricerecord", DisableSyncStructure = true)] + public partial class SpuOptimizationProductSkuUpdateQuotedPriceRecord + { + + [Column(DbType = "bigint", IsPrimary = true)] + public long Id { get; set; } + + [Column(StringLength = 50)] + public string BargainTeamId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + [Column(StringLength = 50)] + public string PurchaseSkuId { get; set; } + + [Column(DbType = "bigint")] + public long? SpuOptimizationTaskId { get; set; } + + [Column(StringLength = 50)] + public string UserId { get; set; } + + } + +}