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] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=87=E8=B4=AD=E6=96=B9?=
=?UTF-8?q?=E6=A1=88SKU=E6=9C=80=E8=BF=91=E9=87=87=E8=B4=AD=E6=88=90?=
=?UTF-8?q?=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; }
+
///
/// 采购方案成本
///