From 2d257fa1c8d7667472b450645b5f17581b776bed Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 10 Apr 2024 11:04:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=B8=A6=E8=AE=AE=E4=BB=B7=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=94=B916h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs | 2 +- BBWYB.Server.Business/Sync/OrderSyncBusiness.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index bc06aef..123e358 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -311,7 +311,7 @@ namespace BBWYB.Server.Business Id = idGenerator.NewLong(), CreateTme = DateTime.Now, //ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1), - ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now), + ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(1)), //OrderId = o.OrderId, //OrderSn = o.OrderSn, ShopId = shopId, diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index 3ba7300..a8dbeb6 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -618,7 +618,7 @@ namespace BBWYB.Server.Business.Sync Id = idGenerator.NewLong(), CreateTme = DateTime.Now, //ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1), - ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now), + ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(1)), //OrderId = o.OrderId, //OrderSn = o.OrderSn, ShopId = shopId, From 04bf8325efab6f5a266188630e014451e427ce99 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 10 Apr 2024 18:59:21 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=96=B9=E6=A1=88SKU=E6=9C=80=E8=BF=91=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=88=90=E6=9C=AC=EF=BC=8C=E5=A2=9E=E5=8A=A0TaskTime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SkuOptimizationController.cs | 10 ++++ .../AggregionPurchaseSchemeBusiness.cs | 53 ++++++++++++++----- .../SkuOptimization/OptimizationBusiness.cs | 23 ++++++-- .../Sync/OrderSyncBusiness.cs | 1 + .../Db/SpuOptimization/Spuoptimizationtask.cs | 6 +++ .../SkuOptimizationTaskResponse.cs | 5 ++ 6 files changed, 80 insertions(+), 18 deletions(-) diff --git a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs index f99350f..d890db3 100644 --- a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs +++ b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs @@ -80,5 +80,15 @@ namespace BBWYB.Server.API.Controllers { return optimizationBusiness.GetNoCompletedSpuOptimizationTaskCount(GetUserId()); } + + /// + /// 获取未完成且超时任务数量 + /// + /// + [HttpGet] + public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() + { + return optimizationBusiness.GetNoCompletedAndTimeOutSpuOptimizationTaskCount(); + } } } diff --git a/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs b/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs index 9ac86c6..30f939b 100644 --- a/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs @@ -136,21 +136,46 @@ namespace BBWYB.Server.Business #endregion #region 采购方案 - List dbSchemeList = fsql.Select(schemeIdList).ToList(); - - #region 最近采购成本 - var recentOrderPurchaserRelationList = fsql.Select() - .InnerJoin((opi, opri) => opi.OrderId == opri.OrderId && - opi.PurchaseOrderId == opri.PurchaseOrderId) - .Where((opi, opri) => opi.IsEnabled == true && schemeIdList.Contains(opri.SchemeId.Value)) - .GroupBy((opi, opri) => opri.SchemeId.Value) - .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item2.Id) }) - .From() - .InnerJoin((opri, opri2) => opri.MaxId == opri2.Id) - .ToList((opri, opri2) => opri2); - var purchaseOrderIdList = recentOrderPurchaserRelationList.Select(x => x.PurchaseOrderId).Distinct().ToList(); + //List dbSchemeList = fsql.Select(schemeIdList).ToList(); + + //#region 最近采购成本/采购时间 + + + //var recentPurchaseRecordList = fsql.Select() + // .InnerJoin((opi, opri, opsi) => opi.OrderId == opri.OrderId && + // opi.PurchaseOrderId == opri.PurchaseOrderId) + // .InnerJoin((opi, opri, opsi) => opri.PurchaseOrderId == opsi.PurchaseOrderId && + // opri.PurchaseSkuId == opsi.PurchaseSkuId) + // .Where((opi, opri, opsi) => opi.IsEnabled == true && + // schemeIdList.Contains(opri.SchemeId.Value)) + // .OrderByDescending((opi, opri, opsi) => opri.CreateTime) + // .Page(1, 1000) + // .ToList((opi, opri, opsi) => new + // { + // opi.OrderId, + // opi.PurchaseOrderId, + // opri.SchemeId, + // opsi.PurchasedPrice, + // opsi.CreateTime + // }); + + //var recentPurchaseRecordGroups = recentPurchaseRecordList.GroupBy(x => x.SchemeId); + //foreach (var relationGroup in recentPurchaseRecordGroups) + //{ + // var scheme = dbSchemeList.FirstOrDefault(s => s.Id == relationGroup.Key.Value); + // if (scheme == null) + // continue; + + // //取最近一笔订单,最大的订单号 + // var recentOrderId = relationGroup.Max(x => x.OrderId); + // var recentOrderRelationRecordList = relationGroup.Where(x => x.OrderId == recentOrderId); + // scheme.LastPurchasePriceCost = recentOrderRelationRecordList.Sum(x=>x.PurchasedPrice); + // scheme.LastBargainingTime = recentOrderRelationRecordList.FirstOrDefault()?.CreateTime; + //} + + + //#endregion - #endregion #region 采购次数 diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index 123e358..d62d8b2 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -184,6 +184,7 @@ namespace BBWYB.Server.Business BelongShopName = belongShop.ShopName, CompletionTime = null, CreateTime = DateTime.Now, + TaskTime = DateTime.Now, IsOptimizationCompleted = false, LastOptimizationTime = null, ProductId = productId, @@ -716,7 +717,7 @@ namespace BBWYB.Server.Business var sql = select.ToSql(); - var taskList = select.OrderBy(t => t.CreateTime) + var taskList = select.OrderBy(t => t.TaskTime) .Count(out var total) .Page(request.PageIndex, request.PageSize) .ToList(); @@ -770,7 +771,8 @@ namespace BBWYB.Server.Business SkuIdList = skuIdList, BargainTeamIdList = bargainTeamIdList, IncludePurchaseSkuBasicInfo = 1, - IncludePurchaseSkuStatisticsInfo = 1 + IncludePurchaseSkuStatisticsInfo = 1, + IncludeSkuStatisticsInfo = 1 }); #endregion @@ -798,7 +800,8 @@ namespace BBWYB.Server.Business SchemeGroupId = ps.SchemeGroupId, IsFreeFreight = ps.IsFreeFreight, LastPurchasePriceCost = ps.LastPurchasePriceCost, - PurchaseSchemeCost = ps.BargainingCost ?? ps.DefaultCost + PurchaseSchemeCost = ps.BargainingCost ?? ps.DefaultCost, + SkuLastPurchasePriceCost = ps.SkuLastPurchasePriceCost }).ToList(); } #endregion @@ -978,7 +981,8 @@ namespace BBWYB.Server.Business } spuOptimizationTask.ReStartTimes++; updateSpuTask = fsql.Update(spuOptimizationTask.Id) - .Set(t => t.ReStartTimes, spuOptimizationTask.ReStartTimes); + .Set(t => t.ReStartTimes, spuOptimizationTask.ReStartTimes) + .Set(t => t.TaskTime, DateTime.Now); } } @@ -1050,5 +1054,16 @@ namespace BBWYB.Server.Business return fsql.Select().Where(t => t.IsOptimizationCompleted == false).Count(); } + + /// + /// 获取未完成且超时的任务数量 + /// + /// + public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() + { + return fsql.Select().Where(t => t.ReStartTimes > 2 && t.IsOptimizationCompleted == false) + .Count(); + } + } } diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index a8dbeb6..b56716d 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -495,6 +495,7 @@ namespace BBWYB.Server.Business.Sync BelongShopName = sourceShopName, CompletionTime = null, CreateTime = DateTime.Now, + TaskTime = DateTime.Now, IsOptimizationCompleted = false, LastOptimizationTime = null, ProductId = spuGroup.Key, diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs index 1c5c598..e496741 100644 --- a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs +++ b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs @@ -40,6 +40,12 @@ namespace BBWYB.Server.Model.Db [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + /// + /// 任务时间(创建/重启),用于查询 + /// + [Column(DbType = "datetime")] + public DateTime? TaskTime { get; set; } + /// /// 是否优化完成 /// diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs index 0b5c60a..b90105b 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs @@ -37,6 +37,11 @@ namespace BBWYB.Server.Model.Dto /// public decimal? LastPurchasePriceCost { get; set; } = 0.0M; + /// + /// 店铺SKU的最近采购成本(配件单价之和) + /// + public decimal? SkuLastPurchasePriceCost { get; set; } + /// /// 采购方案成本 /// From 223f59ebcee5e8130cf96012161f18458bc52e66 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 10 Apr 2024 19:04:33 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=AA=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E4=B8=94=E8=B6=85=E6=97=B6=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SkuOptimization/OptimizationBusiness.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index d62d8b2..884dfe2 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -1061,8 +1061,12 @@ namespace BBWYB.Server.Business /// public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() { - return fsql.Select().Where(t => t.ReStartTimes > 2 && t.IsOptimizationCompleted == false) - .Count(); + return fsql.Select() + .InnerJoin((st, t) => st.Id == t.TaskId) + .Where((st, t) => st.ReStartTimes > 0 || + (t.CompletionTime == null && + t.ExpirationTime < DateTime.Now)) + .Count(); } } From cbd28fc8d916493753f7cf24ed6b6e611ccc7d6b Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 10 Apr 2024 19:16:19 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SkuOptimization/OptimizationBusiness.cs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index 884dfe2..393a337 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -1056,16 +1056,13 @@ namespace BBWYB.Server.Business } /// - /// 获取未完成且超时的任务数量 + /// 获取超时的任务数量 /// /// public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() { - return fsql.Select() - .InnerJoin((st, t) => st.Id == t.TaskId) - .Where((st, t) => st.ReStartTimes > 0 || - (t.CompletionTime == null && - t.ExpirationTime < DateTime.Now)) + return fsql.Select() + .Where(t => t.ReStartTimes > 0) .Count(); } From eb34c5c4e6ea57448e9a5eb463cc2a1889d1d218 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 10 Apr 2024 19:21:53 +0800 Subject: [PATCH 5/5] 1 --- BBWYB.Server.API/Controllers/SkuOptimizationController.cs | 6 +++--- .../SkuOptimization/OptimizationBusiness.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs index d890db3..1830bcc 100644 --- a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs +++ b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs @@ -82,13 +82,13 @@ namespace BBWYB.Server.API.Controllers } /// - /// 获取未完成且超时任务数量 + /// 获取超时任务数量 /// /// [HttpGet] - public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() + public long GetTimeOutSpuOptimizationTaskCount() { - return optimizationBusiness.GetNoCompletedAndTimeOutSpuOptimizationTaskCount(); + return optimizationBusiness.GetTimeOutSpuOptimizationTaskCount(); } } } diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index 393a337..c31b40f 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -1059,7 +1059,7 @@ namespace BBWYB.Server.Business /// 获取超时的任务数量 /// /// - public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount() + public long GetTimeOutSpuOptimizationTaskCount() { return fsql.Select() .Where(t => t.ReStartTimes > 0)