From 234786094e70146c89be8e28cc62c44525f8141d Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Fri, 25 Aug 2023 17:13:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E4=BD=8D=E8=A1=A5=E9=BD=90=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 12 ++- .../DataRepair/DataRepairBusiness.cs | 75 ++++++++++++++++--- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 2 +- .../Db/PurchaseScheme/PurchaseScheme.cs | 21 +++++- .../Db/PurchaseScheme/PurchaseSchemeGroup.cs | 45 +++++++++++ 5 files changed, 137 insertions(+), 18 deletions(-) create mode 100644 BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index 7588b57..fa223f4 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -34,16 +34,20 @@ namespace BBWYB.Server.API.Controllers dataRepairBusiness.SupplementOrderSkuCost(); } + [HttpPost] - public void PingJia() + public void SupplementPurchaserInfo() { - dataRepairBusiness.PingJia(); + dataRepairBusiness.SupplementPurchaserInfo(); } + /// + /// 补采购方案分组 + /// [HttpPost] - public void SupplementPurchaserInfo() + public void SupplementPurchaseSchemeGroup() { - dataRepairBusiness.SupplementPurchaserInfo(); + dataRepairBusiness.SupplementPurchaseSchemeGroup(); } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index ec73edd..e744102 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -27,17 +27,6 @@ namespace BBWYB.Server.Business kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); } - public void PingJia() - { - - var list = new List() - { - - }; - foreach (var pid in list) - purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false); - } - public void SupplementOrderSkuCost() { @@ -148,5 +137,69 @@ namespace BBWYB.Server.Business }); } } + + public void SupplementPurchaseSchemeGroup() + { + List insertSchemeGroups = new List(); + IList> updatePurchaseSchemeList = new List>(); + + var purchaseSchemeList = fsql.Select().ToList().OrderByDescending(ps => ps.CreateTime); + var purchaseSchemeSpuGroups = purchaseSchemeList.GroupBy(ps => ps.ProductId); + foreach (var purchaseSchemeSpuGroup in purchaseSchemeSpuGroups) + { + var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId); + var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count()); //该spu最大的采购分组数 + + for (var i = 0; i < maxPsGroupCount; i++) + { + IList currentIndexSchemeList = new List(); + //取每个sku的第i个方案 + foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups) + { + var currentSkuPurchaseSchemeList = purchaseSchemeSkuGroup.ToList(); + + if (currentSkuPurchaseSchemeList.Count() >= (i + 1)) + { + var scheme = currentSkuPurchaseSchemeList[i]; + currentIndexSchemeList.Add(scheme); + } + } + var schemeGroupId = currentIndexSchemeList.FirstOrDefault(ps => ps.SchemeGroupId != null)?.SchemeGroupId; + if (schemeGroupId == null) + { + schemeGroupId = idGenerator.NewLong(); + //同位中没有分组 + var insertSchemeGroup = new PurchaseSchemeGroup() + { + Id = schemeGroupId.Value, + GroupName = schemeGroupId.Value.ToString(), + CreateTime = DateTime.Now, + ProductId = currentIndexSchemeList.First().ProductId, + ShopId = currentIndexSchemeList.First().ShopId + }; + insertSchemeGroups.Add(insertSchemeGroup); + } + foreach (var purchaseScheme in currentIndexSchemeList) + { + if (purchaseScheme.SchemeGroupId != schemeGroupId) + { + var update = fsql.Update(purchaseScheme.Id).Set(ps => ps.SchemeGroupId, schemeGroupId); + updatePurchaseSchemeList.Add(update); + } + } + } + } + + fsql.Transaction(() => + { + if (insertSchemeGroups.Count() > 0) + fsql.Insert(insertSchemeGroups).ExecuteAffrows(); + if (updatePurchaseSchemeList.Count() > 0) + { + foreach (var update in updatePurchaseSchemeList) + update.ExecuteAffrows(); + } + }); + } } } diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 7acb9a7..92d592f 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -219,7 +219,7 @@ namespace BBWYB.Server.Business } } var sql = select.ToSql(); - var purchaseSchemeList = select.ToList(); + var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList(); if (purchaseSchemeList.Count > 0) diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs index 7fd4b57..2da1ef0 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs @@ -1,6 +1,8 @@ using BBWYB.Server.Model.Db; using FreeSql.DataAnnotations; +using Newtonsoft.Json; + namespace BBWYB.Server.Model { @@ -50,8 +52,23 @@ namespace BBWYB.Server.Model /// public DateTime? LastPurchaseTime { get; set; } - //[Column(MapType = typeof(int), DbType = "int(1)")] - //public Enums.Platform PurchasePlatform { get; set; } + /// + /// 慧眼标的Id + /// + [Column(StringLength = 50)] + public string HYBDId { get; set; } + + /// + /// 慧眼方案Id + /// + [Column(StringLength = 50)] + public string HYSchemeId { get; set; } + + /// + /// 分组Id + /// + [Column(DbType = "bigint", IsNullable = true)] + public long? SchemeGroupId { get; set; } [Column(IsIgnore = true)] public List PurchaseSchemeProductList { get; set; } diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs new file mode 100644 index 0000000..035efd9 --- /dev/null +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs @@ -0,0 +1,45 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + /// + /// 采购方案分组表 + /// + [Table(Name = "purchaseschemegroup", DisableSyncStructure = true)] + public partial class PurchaseSchemeGroup + { + + /// + /// 分组Id + /// + [Column(DbType = "bigint", IsPrimary = true)] + public long Id { get; set; } + + /// + /// 创建时间 + /// + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 组名 + /// + [Column(StringLength = 100)] + public string GroupName { get; set; } + + /// + /// 店铺spu,店铺商品Id + /// + [Column(StringLength = 50)] + public string ProductId { get; set; } + + /// + /// 店铺Id + /// + [Column(DbType = "bigint")] + public long? ShopId { get; set; } + + } + +}