diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index 3960818..ed88de9 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -5,6 +5,7 @@ using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db.HY; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Newtonsoft.Json.Linq; diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 1f08dec..1ebb773 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -5,6 +5,7 @@ using BBWYB.Common.Models; using BBWYB.Server.Business.Extensions; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.DependencyInjection; diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index d4cdf38..1e0a784 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -8,6 +8,7 @@ using BBWYB.Server.Model.Core; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db.Mds; using BBWYB.Server.Model.Db.MDS; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.DependencyInjection; @@ -580,7 +581,7 @@ namespace BBWYB.Server.Business var dbSkuAndPurchaserRelationList = fsql.Select() .Where(spr => purchaserIdList.Contains(spr.PurchaserId) && spr.ShopId == request.ShopId) .ToList(); - var dbPurchaserList = fsql.Select(purchaserIdList).ToList(); + foreach (var purchaserId in purchaserIdList) { purchaserSkuDictionary.TryGetValue(purchaserId, out var fromRequestSkuList); @@ -601,15 +602,10 @@ namespace BBWYB.Server.Business SkuId = x })); } - - #region 更新采购商归属 - var purchaser = dbPurchaserList.FirstOrDefault(p => p.Id == purchaserId); - if (purchaser != null && !string.IsNullOrEmpty(purchaser.BelongBargainTeamId) && purchaser.BelongType == Enums.PurchaserBelongType.临时) - { - var updatePurchaser = fsql.Update(purchaserId).Set(p => p.BelongType, Enums.PurchaserBelongType.永久); - updatePurchaserList.Add(updatePurchaser); - } - #endregion + //var update = fsql.Update(purchaserId) + // .Set(p => p.PurchasedCount + 1) + // .SetIf(newSkuRelationCount > 0, p => p.PurchasedSkuCount + newSkuRelationCount); + //updatePurchaserList.Add(update); } } @@ -798,11 +794,11 @@ namespace BBWYB.Server.Business if (updateSkuOptimizationPurhcasementByIdList.Count() > 0) fsql.Update(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows(); - if (updatePurchaserList.Count() > 0) - { - foreach (var update in updatePurchaserList) - update.ExecuteAffrows(); - } + //if (updatePurchaserList.Count() > 0) + //{ + // foreach (var update in updatePurchaserList) + // update.ExecuteAffrows(); + //} }); //#region 更新采购方案最新价格 diff --git a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs index ccbf601..60b0119 100644 --- a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs @@ -4,6 +4,7 @@ using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db.BBWY; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Newtonsoft.Json; diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index 0928d64..d8cb736 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -2,6 +2,7 @@ using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Newtonsoft.Json.Linq; @@ -145,6 +146,7 @@ namespace BBWYB.Server.Business.Sync List insertSkuOptimizationTaskList = new List(); List insertSkuOptimizationChildTaskList = new List(); + List insertCompetitiveTenderList = new List(); #endregion //等待检查sku销量的订单集合 @@ -403,6 +405,13 @@ namespace BBWYB.Server.Business.Sync if (noFisrstPurchasedSpuList.Count() > 0) { + var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组 + var bargainTeamIdList = bargainTeamList.Select(t => t.Id).ToList(); + var waitToCompetitiveTenderSchemeList = fsql.Select() + .Where(ps => bargainTeamIdList.Contains(ps.BelongBargainTeamId) && + skuIdList.Contains(ps.SkuId)) + .ToList(); //需要参与竞标采购方案 + foreach (var waitCheckOrder in waitToCheckSkuSaleOrderList) { foreach (var waitCheckOrderSku in waitCheckOrder.OrderSkuList) @@ -460,8 +469,7 @@ namespace BBWYB.Server.Business.Sync #region 创建待优化子任务 { - var yijiagroups = venderBusiness.GetYiJiaGroup(); - foreach (var department in yijiagroups) + foreach (var department in bargainTeamList) { var skuOptimizationChildTask = new SkuOptimizationChildTask() { @@ -473,6 +481,13 @@ namespace BBWYB.Server.Business.Sync OptimizationTaskId = skuOptimizationTask.Id }; insertSkuOptimizationChildTaskList.Add(skuOptimizationChildTask); + + #region 创建竞标任务 + var schemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.SkuId == waitCheckOrderSku.SkuId && + ps.BelongBargainTeamId == department.Id) + .ToList(); + + #endregion } } #endregion @@ -501,39 +516,6 @@ namespace BBWYB.Server.Business.Sync } } } - - //#region 更新订单sku优化标记 - //var allSkuOptimizationTaskList = dbSkuOptimizationTaskList.Union(insertSkuOptimizationTaskList); - //foreach (var waitCheckOrder in waitToCheckSkuSaleOrderList) - //{ - // foreach (var waitCheckOrderSku in waitCheckOrder.OrderSkuList) - // { - // var task = allSkuOptimizationTaskList.FirstOrDefault(t => t.SkuId == waitCheckOrderSku.SkuId); - // if (task != null) - // { - // #region 更新sku优化标记 - // var oskuId = long.Parse(waitCheckOrderSku.SkuId); - // var insertOrderSku = insertOrderSkuList.FirstOrDefault(s => s.Id == oskuId); - // if (insertOrderSku != null) - // { - // insertOrderSku.IsNeedOptimization = 1; - // insertOrderSku.TriggerOptimizationReason = task.TriggerOptimizationReason; - // } - // else - // { - // //updateOrderSkuIdList_OptimizationFlag.Add(oskuId); - // if (!updateOSkuOptimizationFlagByReasonGroups.TryGetValue(task.TriggerOptimizationReason.Value, out var updateOSkuOptimizationFlagByReasonList)) - // { - // updateOSkuOptimizationFlagByReasonList = new List(); - // updateOSkuOptimizationFlagByReasonGroups.Add(task.TriggerOptimizationReason.Value, updateOSkuOptimizationFlagByReasonList); - // } - // updateOSkuOptimizationFlagByReasonList.Add(oskuId); - // } - // #endregion - // } - // } - //} - //#endregion } } #endregion @@ -562,6 +544,9 @@ namespace BBWYB.Server.Business.Sync if (insertSkuOptimizationChildTaskList.Count() > 0) fsql.Insert(insertSkuOptimizationChildTaskList).ExecuteAffrows(); + if (insertCompetitiveTenderList.Count() > 0) + fsql.Insert(insertCompetitiveTenderList).ExecuteAffrows(); + if (updateOrderList.Count() > 0) foreach (var update in updateOrderList) update.ExecuteAffrows(); diff --git a/BBWYB.Server.Model/Db/SkuOptimization/SkuOptimizationCompetitiveTenderTask.cs b/BBWYB.Server.Model/Db/SkuOptimization/SkuOptimizationCompetitiveTenderTask.cs new file mode 100644 index 0000000..ca9b2fe --- /dev/null +++ b/BBWYB.Server.Model/Db/SkuOptimization/SkuOptimizationCompetitiveTenderTask.cs @@ -0,0 +1,66 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + /// + /// 采购方案竞标表 + /// + [Table(Name = "skuoptimizationcompetitivetendertask", DisableSyncStructure = true)] + public partial class SkuOptimizationCompetitiveTenderTask + { + [Column(DbType = "bigint", IsPrimary = true)] + public long Id { get; set; } + + [Column(DbType = "bigint")] + public long? ChildTaskId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 是否更新报价 + /// + public bool? IsUpdateQuotedPrice { get; set; } + + /// + /// 更新后的运费 + /// + public decimal? NewFreight { get; set; } + + /// + /// 更新后的报价 + /// + public decimal? NewQuotedPrice { get; set; } + + /// + /// 未更新的运费 + /// + public decimal? OldFreight { get; set; } + + /// + /// 未更新的报价 + /// + public decimal? OldQuotedPrice { get; set; } + + [Column(DbType = "bigint")] + public long? SchemeId { get; set; } + + [Column(DbType = "bigint")] + public long? TaskId { get; set; } + + [Column(StringLength = 50)] + public string SkuId { get; set; } + + [Column(DbType = "bigint")] + public long? TeamId { get; set; } + + /// + /// 更新时间 + /// + [Column(DbType = "datetime")] + public DateTime? UpdateTime { get; set; } + + } + +} diff --git a/BBWYB.Server.Model/Db/Product/Skuoptimizationchildtask.cs b/BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationchildtask.cs similarity index 100% rename from BBWYB.Server.Model/Db/Product/Skuoptimizationchildtask.cs rename to BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationchildtask.cs diff --git a/BBWYB.Server.Model/Db/Product/Skuoptimizationhistory.cs b/BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationhistory.cs similarity index 100% rename from BBWYB.Server.Model/Db/Product/Skuoptimizationhistory.cs rename to BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationhistory.cs diff --git a/BBWYB.Server.Model/Db/Product/Skuoptimizationtask.cs b/BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationtask.cs similarity index 100% rename from BBWYB.Server.Model/Db/Product/Skuoptimizationtask.cs rename to BBWYB.Server.Model/Db/SkuOptimization/Skuoptimizationtask.cs diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationChildTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationChildTaskResponse.cs index fb19868..70997a5 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationChildTaskResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationChildTaskResponse.cs @@ -1,4 +1,4 @@ -using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; namespace BBWYB.Server.Model.Dto { diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs index 830fdd9..00ee0b7 100644 --- a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs @@ -1,4 +1,5 @@ using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; namespace BBWYB.Server.Model.Dto { diff --git a/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs index b32d4bc..95a15c0 100644 --- a/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs @@ -1,4 +1,4 @@ -using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; namespace BBWYB.Server.Model.Dto { diff --git a/BBWYB.Server.Model/MappingProfiles.cs b/BBWYB.Server.Model/MappingProfiles.cs index 94fd5a2..8f323a9 100644 --- a/BBWYB.Server.Model/MappingProfiles.cs +++ b/BBWYB.Server.Model/MappingProfiles.cs @@ -1,5 +1,6 @@ using AutoMapper; using BBWYB.Server.Model.Db; +using BBWYB.Server.Model.Db.SkuOptimization; using BBWYB.Server.Model.Dto; namespace BBWYB.Server.Model