Browse Source

增加采购方案SKU最近采购成本,增加TaskTime

master
shanji 1 year ago
parent
commit
04bf8325ef
  1. 10
      BBWYB.Server.API/Controllers/SkuOptimizationController.cs
  2. 53
      BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs
  3. 23
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  4. 1
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  5. 6
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs
  6. 5
      BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs

10
BBWYB.Server.API/Controllers/SkuOptimizationController.cs

@ -80,5 +80,15 @@ namespace BBWYB.Server.API.Controllers
{
return optimizationBusiness.GetNoCompletedSpuOptimizationTaskCount(GetUserId());
}
/// <summary>
/// 获取未完成且超时任务数量
/// </summary>
/// <returns></returns>
[HttpGet]
public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount()
{
return optimizationBusiness.GetNoCompletedAndTimeOutSpuOptimizationTaskCount();
}
}
}

53
BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs

@ -136,21 +136,46 @@ namespace BBWYB.Server.Business
#endregion
#region 采购方案
List<PurchaseScheme> dbSchemeList = fsql.Select<PurchaseScheme>(schemeIdList).ToList();
#region 最近采购成本
var recentOrderPurchaserRelationList = fsql.Select<OrderPurchaseInfo, OrderPurchaseRelationInfo>()
.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<OrderPurchaseRelationInfo>()
.InnerJoin((opri, opri2) => opri.MaxId == opri2.Id)
.ToList((opri, opri2) => opri2);
var purchaseOrderIdList = recentOrderPurchaserRelationList.Select(x => x.PurchaseOrderId).Distinct().ToList();
//List<PurchaseScheme> dbSchemeList = fsql.Select<PurchaseScheme>(schemeIdList).ToList();
//#region 最近采购成本/采购时间
//var recentPurchaseRecordList = fsql.Select<OrderPurchaseInfo, OrderPurchaseRelationInfo, OrderPurchaseSkuInfo>()
// .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 采购次数

23
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<SpuOptimizationTaskResponse>();
@ -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>(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<SpuOptimizationTask>().Where(t => t.IsOptimizationCompleted == false).Count();
}
/// <summary>
/// 获取未完成且超时的任务数量
/// </summary>
/// <returns></returns>
public long GetNoCompletedAndTimeOutSpuOptimizationTaskCount()
{
return fsql.Select<SpuOptimizationTask>().Where(t => t.ReStartTimes > 2 && t.IsOptimizationCompleted == false)
.Count();
}
}
}

1
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,

6
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs

@ -40,6 +40,12 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 任务时间(创建/重启),用于查询
/// </summary>
[Column(DbType = "datetime")]
public DateTime? TaskTime { get; set; }
/// <summary>
/// 是否优化完成
/// </summary>

5
BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs

@ -37,6 +37,11 @@ namespace BBWYB.Server.Model.Dto
/// </summary>
public decimal? LastPurchasePriceCost { get; set; } = 0.0M;
/// <summary>
/// 店铺SKU的最近采购成本(配件单价之和)
/// </summary>
public decimal? SkuLastPurchasePriceCost { get; set; }
/// <summary>
/// 采购方案成本
/// </summary>

Loading…
Cancel
Save