Browse Source

订单同步对接SPU级别优化任务

liangku_skuoptimazation
shanji 1 year ago
parent
commit
34e7817707
  1. 178
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  2. 99
      BBWYB.Server.Model/Db/BBWY/SkuRecentCost.cs
  3. 12
      BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs
  4. 8
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs
  5. 14
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs
  6. 26
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs

178
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -2,6 +2,7 @@
using BBWYB.Common.Models; using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.BBWY;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@ -19,6 +20,7 @@ namespace BBWYB.Server.Business.Sync
private TaskSchedulerManager taskSchedulerManager; private TaskSchedulerManager taskSchedulerManager;
private List<Enums.TimeLimitTaskType> timeLimitTaskTypes; private List<Enums.TimeLimitTaskType> timeLimitTaskTypes;
private TimeLimitRules timeLimitRules; private TimeLimitRules timeLimitRules;
private FreeSqlMultiDBManager fsqlManager;
public OrderSyncBusiness(IFreeSql fsql, public OrderSyncBusiness(IFreeSql fsql,
NLogManager nLogManager, NLogManager nLogManager,
@ -26,7 +28,8 @@ namespace BBWYB.Server.Business.Sync
OP_PlatformClientFactory opPlatformClientFactory, OP_PlatformClientFactory opPlatformClientFactory,
VenderBusiness venderBusiness, VenderBusiness venderBusiness,
TaskSchedulerManager taskSchedulerManager, TaskSchedulerManager taskSchedulerManager,
TimeLimitRules timeLimitRules) : base(fsql, nLogManager, idGenerator) TimeLimitRules timeLimitRules,
FreeSqlMultiDBManager fsqlManager) : base(fsql, nLogManager, idGenerator)
{ {
this.opPlatformClientFactory = opPlatformClientFactory; this.opPlatformClientFactory = opPlatformClientFactory;
this.venderBusiness = venderBusiness; this.venderBusiness = venderBusiness;
@ -37,6 +40,7 @@ namespace BBWYB.Server.Business.Sync
Enums.TimeLimitTaskType. Enums.TimeLimitTaskType.
}; };
this.timeLimitRules = timeLimitRules; this.timeLimitRules = timeLimitRules;
this.fsqlManager = fsqlManager;
} }
public void AutoOrderSync() public void AutoOrderSync()
@ -145,8 +149,8 @@ namespace BBWYB.Server.Business.Sync
List<SpuOptimizationTask> insertSpuOptimizationTaskList = new List<SpuOptimizationTask>(); List<SpuOptimizationTask> insertSpuOptimizationTaskList = new List<SpuOptimizationTask>();
List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>(); List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>();
List<SpuOptimizationBargainTeamTask> insertSkuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>(); List<SpuOptimizationBargainTeamTask> insertSpuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>();
List<SpuOptimizationCompetitiveTenderTask> insertSkuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>(); List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>();
#endregion #endregion
@ -424,7 +428,7 @@ namespace BBWYB.Server.Business.Sync
var includeSpuOrderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuGroup.Key)); var includeSpuOrderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuGroup.Key));
var sourceShopName = string.Empty; var sourceShopName = string.Empty;
//京东sku-拳探sku下单关系映射表 //拳探sku-京东sku下单关系映射表
var mappingQT_JDSKUDictionary = new Dictionary<string, string>(); var mappingQT_JDSKUDictionary = new Dictionary<string, string>();
#region 解析来源店铺数据 #region 解析来源店铺数据
@ -456,72 +460,118 @@ namespace BBWYB.Server.Business.Sync
} }
} }
#endregion #endregion
}
}
foreach (var waitCheckOrder in waitToCheckSkuSaleOrderList) #region 读取JDSKU预估金额
{ var jdskus = mappingQT_JDSKUDictionary.Values.ToList();
var jdskuRecentCostList = fsqlManager.BBWYCfsql.Select<SkuRecentCost>(jdskus).ToList();
#endregion
foreach (var waitCheckOrderSku in waitCheckOrder.OrderSkuList) #region 处理SKU分组
{ var skuGroups = spuGroup.GroupBy(osku => osku.SkuId).ToList();
if (noFisrstPurchasedSpuList.Contains(waitCheckOrderSku.ProductId) && var skuIdList = skuGroups.Select(g => g.Key).ToList();
!dbSpuOptimizationTaskList.Any(t => t.ProductId == waitCheckOrderSku.ProductId) && #endregion
!insertSpuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId))
#region 创建SPU优化任务
var spuOptimizationTask = new SpuOptimizationTask()
{
Id = idGenerator.NewLong(),
BelongShopName = sourceShopName,
CompletionTime = null,
CreateTime = DateTime.Now,
IsOptimizationCompleted = false,
LastOptimizationTime = null,
ProductId = spuGroup.Key,
ShopId = shopId,
ProductTitle = spuGroup.FirstOrDefault()?.ProductTitle,
TriggerOptimizationReason = Enums.TriggerOptimizationReason.,
PreSkuCount = skuGroups.Count(),
PreItemCount = 0,
PrePurchaseAmount = 0M
};
#endregion
#region 创建SKU优化任务
foreach (var skuGroup in skuGroups)
{ {
#region 创建待优化任务 mappingQT_JDSKUDictionary.TryGetValue(skuGroup.Key, out string jdSkuId);
var preItemCount = skuGroup.Sum(osku => osku.Quantity);
var prePurchaseAmount = 0M;
if (!string.IsNullOrEmpty(jdSkuId))
{
var jdSkuRecentCost = jdskuRecentCostList.FirstOrDefault(x => x.SkuId == jdSkuId);
if (jdSkuRecentCost != null)
{
prePurchaseAmount = (jdSkuRecentCost.SingleSkuAmount ?? 0M +
jdSkuRecentCost.SingleFirstFreight ?? 0M +
jdSkuRecentCost.SingleFreight ?? 0M +
jdSkuRecentCost.SingleDeliveryFreight ?? 0M +
jdSkuRecentCost.SingleConsumableAmount ?? 0M +
jdSkuRecentCost.SingleInStorageAmount ?? 0M +
jdSkuRecentCost.SingleOutStorageAmount ?? 0M +
jdSkuRecentCost.SinglePackagingLaborAmount ?? 0M +
jdSkuRecentCost.SingleOperationAmount ?? 0M) * preItemCount;
}
}
var skuOptimizationTask = new SkuOptimizationTask() var skuOptimizationTask = new SkuOptimizationTask()
{ {
Id = idGenerator.NewLong(), Id = idGenerator.NewLong(),
PreItemCount = 0,
PrePurchasedAmount = 0,
IsOptimizationCompleted = false,
IsPurchasementCompleted = false,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
SafeWarningRemainingDay = 0, JDSkuId = jdSkuId,
TriggerOptimizationReason = Enums.TriggerOptimizationReason., PreItemCount = preItemCount,
SkuId = waitCheckOrderSku.SkuId, SkuId = skuGroup.Key,
ShopId = shopId, SpuOptimizationTaskId = spuOptimizationTask.Id,
ProductId = waitCheckOrderSku.ProductId, PrePurchaseAmount = prePurchaseAmount
BelongShopName = sourceShopName,
CompletionTime = null,
JDSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == waitCheckOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty,
LastOptimizationRatio = 0,
LastPurchasePrice = 0,
LastOptimizationTime = null
}; };
insertSkuOptimizationTaskList.Add(skuOptimizationTask); insertSkuOptimizationTaskList.Add(skuOptimizationTask);
#endregion
#region 创建待优化子任务 //累计spu优化任务信息
spuOptimizationTask.PreItemCount += preItemCount;
spuOptimizationTask.PrePurchaseAmount += prePurchaseAmount;
}
#endregion
#region 创建SPU优化议价组任务
foreach (var department in bargainTeamList)
{
var spuOptimizationBargainTeamTask = new SpuOptimizationBargainTeamTask()
{ {
foreach (var department in bargainTeamList) Id = idGenerator.NewLong(),
{ BelongTeamId = department.Id,
var skuOptimizationChildTask = new SkuOptimizationChildTask() BelongTeamName = department.DepartmentName,
{ CompletionTime = null,
Id = idGenerator.NewLong(), IsOptimizationCompleted = false,
BelongTeamId = department.Id, SpuOptimizationTaskId = spuOptimizationTask.Id
BelongTeamName = department.DepartmentName, };
CompletionTime = null, insertSpuOptimizationBargainTeamTaskList.Add(spuOptimizationBargainTeamTask);
IsOptimizationCompleted = false,
OptimizationTaskId = skuOptimizationTask.Id
};
insertSkuOptimizationChildTaskList.Add(skuOptimizationChildTask);
#region 创建竞标任务
var schemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.SkuId == waitCheckOrderSku.SkuId &&
ps.BelongBargainTeamId == department.Id)
.ToList();
#endregion #region 创建采购方案竞标任务
} var waitJoinSchemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.BelongBargainTeamId == department.Id &&
skuIdList.Contains(ps.SkuId))
.ToList();
if (waitJoinSchemeList.Count() > 0)
{
insertSpuOptimizationCompetitiveTenderTaskList.AddRange(waitJoinSchemeList.Select(ps => new SpuOptimizationCompetitiveTenderTask()
{
Id = idGenerator.NewLong(),
BargainTeamId = ps.BelongBargainTeamId,
CreateTime = DateTime.Now,
IsUpdateQuotedPrice = false,
SchemeGroupId = ps.SchemeGroupId,
SchemeId = ps.Id,
SkuId = ps.SkuId,
SpuOptimizationBargainTeamTaskId = spuOptimizationBargainTeamTask.Id,
SpuOptimizationTaskId = spuOptimizationTask.Id
}));
} }
#endregion #endregion
}
#endregion
#region 创建待优化限时任务 #region 创建优化限时任务
{
//判断sku是否首次采购 //判断sku是否首次采购
var isFirst = !dbSkuTotalSaleInfoList.Any(s => s.SkuId == waitCheckOrderSku.SkuId); var isFirst = !dbSpuTotalSaleInfoList.Any(s => s.ProductId == spuGroup.Key);
insertTimeLimitTaskList.Add(new TimeLimitTask() insertTimeLimitTaskList.Add(new TimeLimitTask()
{ {
@ -532,13 +582,13 @@ namespace BBWYB.Server.Business.Sync
//OrderId = o.OrderId, //OrderId = o.OrderId,
//OrderSn = o.OrderSn, //OrderSn = o.OrderSn,
ShopId = shopId, ShopId = shopId,
SkuId = waitCheckOrderSku.SkuId, //SkuId = waitCheckOrderSku.SkuId,
TaskType = Enums.TimeLimitTaskType., TaskType = Enums.TimeLimitTaskType.,
TaskId = skuOptimizationTask.Id, TaskId = spuOptimizationTask.Id,
Remark = "首次采购限时任务" Remark = "首次采购限时任务"
}); });
#endregion
} }
#endregion
} }
} }
} }
@ -564,14 +614,14 @@ namespace BBWYB.Server.Business.Sync
if (insertTimeLimitTaskList.Count() > 0) if (insertTimeLimitTaskList.Count() > 0)
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows(); fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows();
//if (insertSkuOptimizationTaskList.Count() > 0) if (insertSpuOptimizationTaskList.Count() > 0)
// fsql.Insert(insertSkuOptimizationTaskList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationTaskList).ExecuteAffrows();
if (insertSkuOptimizationTaskList.Count() > 0)
//if (insertSkuOptimizationChildTaskList.Count() > 0) fsql.Insert(insertSkuOptimizationTaskList).ExecuteAffrows();
// fsql.Insert(insertSkuOptimizationChildTaskList).ExecuteAffrows(); if (insertSpuOptimizationBargainTeamTaskList.Count() > 0)
fsql.Insert(insertSpuOptimizationBargainTeamTaskList).ExecuteAffrows();
//if (insertCompetitiveTenderList.Count() > 0) if (insertSpuOptimizationCompetitiveTenderTaskList.Count() > 0)
// fsql.Insert(insertCompetitiveTenderList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationCompetitiveTenderTaskList).ExecuteAffrows();
if (updateOrderList.Count() > 0) if (updateOrderList.Count() > 0)
foreach (var update in updateOrderList) foreach (var update in updateOrderList)

99
BBWYB.Server.Model/Db/BBWY/SkuRecentCost.cs

@ -0,0 +1,99 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db.BBWY
{
[Table(Name = "skurecentcost", DisableSyncStructure = true)]
public partial class SkuRecentCost
{
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string SkuId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 最近一笔订单来源
/// </summary>
[Column(StringLength = 50)]
public string RecentOrderId { get; set; }
[Column(DbType = "bigint")]
public long? ShopId { get; set; }
/// <summary>
/// 耗材费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 发货运费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleDeliveryFreight { get; set; } = 0.00M;
/// <summary>
/// 头程运费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleFirstFreight { get; set; }
/// <summary>
/// 采购运费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleFreight { get; set; } = 0.00M;
/// <summary>
/// 入仓操作费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleInStorageAmount { get; set; } = 0.00M;
/// <summary>
/// 操作费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleOperationAmount { get; set; } = 0.00M;
/// <summary>
/// 出仓操作费(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleOutStorageAmount { get; set; } = 0.00M;
///// <summary>
///// 退货入仓操作费(单件)
///// </summary>
//[Column(DbType = "decimal(20,2)")]
//public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M;
/// <summary>
/// SKU成本(单件)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SingleSkuAmount { get; set; }
///// <summary>
///// 仓储费(单件)
///// </summary>
//[Column(DbType = "decimal(20,2)")]
//public decimal? SingleStorageAmount { get; set; } = 0.00M;
[Column(DbType = "datetime")]
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 包装人工单价
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal? SinglePackagingLaborAmount { get; set; } = 0.00M;
}
}

12
BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs

@ -20,28 +20,22 @@ namespace BBWYB.Server.Model.Db
public string JDSkuId { get; set; } public string JDSkuId { get; set; }
/// <summary> /// <summary>
/// 预估件数;预估件数 /// 预估件数
/// </summary> /// </summary>
[Column(DbType = "int")] [Column(DbType = "int")]
public int? PreItemCount { get; set; } public int? PreItemCount { get; set; }
/// <summary> /// <summary>
/// 预估采购金额;预估采购金额 /// 预估采购金额
/// </summary> /// </summary>
[Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? PrePurchaseAmount { get; set; } public decimal? PrePurchaseAmount { get; set; }
/// <summary>
/// 预估Sku数;预估Sku数
/// </summary>
[Column(DbType = "int")]
public int? PreSkuCount { get; set; }
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string SkuId { get; set; } public string SkuId { get; set; }
/// <summary> /// <summary>
/// Spu优化任务Id;Spu优化任务Id /// Spu优化任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; } public long? SpuOptimizationTaskId { get; set; }

8
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs

@ -14,25 +14,25 @@ namespace BBWYB.Server.Model.Db
public long Id { get; set; } public long Id { get; set; }
/// <summary> /// <summary>
/// 团队Id (议价组Id);团队Id (议价组Id) /// 团队Id (议价组Id)
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string BelongTeamId { get; set; } public string BelongTeamId { get; set; }
/// <summary> /// <summary>
/// 议价组名称;议价组名称 /// 议价组名称
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string BelongTeamName { get; set; } public string BelongTeamName { get; set; }
/// <summary> /// <summary>
/// 完成时间;完成时间 /// 完成时间
/// </summary> /// </summary>
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? CompletionTime { get; set; } public DateTime? CompletionTime { get; set; }
/// <summary> /// <summary>
/// 是否优化完成;是否优化完成 /// 是否优化完成
/// </summary> /// </summary>
public bool? IsOptimizationCompleted { get; set; } public bool? IsOptimizationCompleted { get; set; }

14
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationcompetitivetendertask.cs

@ -11,10 +11,10 @@ namespace BBWYB.Server.Model.Db
{ {
[Column(IsPrimary = true, IsNullable = false)] [Column(IsPrimary = true, IsNullable = false)]
public string Id { get; set; } public long Id { get; set; }
/// <summary> /// <summary>
/// 议价组Id;议价组Id /// 议价组Id
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string BargainTeamId { get; set; } public string BargainTeamId { get; set; }
@ -23,18 +23,18 @@ namespace BBWYB.Server.Model.Db
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 是否更新报价;是否更新报价 /// 是否更新报价
/// </summary> /// </summary>
public bool? IsUpdateQuotedPrice { get; set; } = false; public bool? IsUpdateQuotedPrice { get; set; } = false;
/// <summary> /// <summary>
/// 采购方案分组Id;采购方案分组Id /// 采购方案分组Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SchemeGroupId { get; set; } public long? SchemeGroupId { get; set; }
/// <summary> /// <summary>
/// 采购方案Id;采购方案Id /// 采购方案Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SchemeId { get; set; } public long? SchemeId { get; set; }
@ -43,13 +43,13 @@ namespace BBWYB.Server.Model.Db
public string SkuId { get; set; } public string SkuId { get; set; }
/// <summary> /// <summary>
/// Spu优化议价组任务Id;Spu优化议价组任务Id /// Spu优化议价组任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SpuOptimizationBargainTeamTaskId { get; set; } public long? SpuOptimizationBargainTeamTaskId { get; set; }
/// <summary> /// <summary>
/// Spu优化任务Id;Spu优化任务Id /// Spu优化任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; } public long? SpuOptimizationTaskId { get; set; }

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

@ -11,37 +11,37 @@ namespace BBWYB.Server.Model.Db
{ {
/// <summary> /// <summary>
/// 待优化任务Id;待优化任务Id /// 待优化任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint", IsPrimary = true)] [Column(DbType = "bigint", IsPrimary = true)]
public long Id { get; set; } public long Id { get; set; }
/// <summary> /// <summary>
/// 需求方店铺Id;需求方店铺Id /// 需求方店铺Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? BelongShopId { get; set; } public long? BelongShopId { get; set; }
/// <summary> /// <summary>
/// 需求方店铺名称;需求方店铺名称 /// 需求方店铺名称
/// </summary> /// </summary>
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string BelongShopName { get; set; } public string BelongShopName { get; set; }
/// <summary> /// <summary>
/// 完成优化时间;完成优化时间 /// 完成优化时间
/// </summary> /// </summary>
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? CompletionTime { get; set; } public DateTime? CompletionTime { get; set; }
/// <summary> /// <summary>
/// 创建时间;创建时间 /// 创建时间
/// </summary> /// </summary>
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 是否优化完成;是否优化完成 /// 是否优化完成
/// </summary> /// </summary>
public bool? IsOptimizationCompleted { get; set; } public bool? IsOptimizationCompleted { get; set; }
@ -52,31 +52,31 @@ namespace BBWYB.Server.Model.Db
public string ProductTitle { get; set; } public string ProductTitle { get; set; }
/// <summary> /// <summary>
/// 上次优化时间;上次优化时间 /// 上次优化时间
/// </summary> /// </summary>
[Column(DbType = "datetime")] [Column(DbType = "datetime")]
public DateTime? LastOptimizationTime { get; set; } public DateTime? LastOptimizationTime { get; set; }
/// <summary> /// <summary>
/// 预估件数;预估件数 /// 预估件数
/// </summary> /// </summary>
[Column(DbType = "int")] [Column(DbType = "int")]
public int? PreItemCount { get; set; } public int? PreItemCount { get; set; }
/// <summary> /// <summary>
/// 预估采购金额;预估采购金额 /// 预估采购金额
/// </summary> /// </summary>
[Column(DbType = "decimal(18,2)")] [Column(DbType = "decimal(18,2)")]
public decimal? PrePurchaseAmount { get; set; } public decimal? PrePurchaseAmount { get; set; }
/// <summary> /// <summary>
/// 预估Sku数;预估Sku数 /// 预估Sku数
/// </summary> /// </summary>
[Column(DbType = "int")] [Column(DbType = "int")]
public int? PreSkuCount { get; set; } public int? PreSkuCount { get; set; }
/// <summary> /// <summary>
/// 店铺Id;店铺Id /// 店铺Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? ShopId { get; set; } public long? ShopId { get; set; }
@ -84,8 +84,8 @@ namespace BBWYB.Server.Model.Db
/// <summary> /// <summary>
/// 触发优化原因 首次采购 = 0, 首次优化 = 1, 再次优化 = 2;触发优化原因 首次采购 = 0, 首次优化 = 1, 再次优化 = 2 /// 触发优化原因 首次采购 = 0, 首次优化 = 1, 再次优化 = 2;触发优化原因 首次采购 = 0, 首次优化 = 1, 再次优化 = 2
/// </summary> /// </summary>
[Column(DbType = "int")] [Column(DbType = "int", MapType = typeof(int?))]
public int? TriggerOptimizationReason { get; set; } public Enums.TriggerOptimizationReason? TriggerOptimizationReason { get; set; }
} }

Loading…
Cancel
Save