From bfd64ba4b34c4dfef14d3235824383109f1f3030 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 7 Sep 2023 21:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91/=E6=96=B0=E5=A2=9E=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E6=96=B9=E6=A1=88=E4=BF=9D=E5=AD=98=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=EF=BC=8C=E4=BF=AE=E8=A1=A5=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E5=8E=86=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 4 ++ .../DataRepair/DataRepairBusiness.cs | 70 ++++++++++++++++++- .../PurchaseScheme/PurchaseSchemeBusiness.cs | 70 +++++++++++++++++-- .../history/HistoryPurchaseScheme.cs | 6 -- .../history/HistoryPurchaseSchemeProduct.cs | 6 -- .../HistoryPurchaseSchemeProductsku.cs | 5 -- BBWYB.Server.Model/MappingProfiles.cs | 8 ++- 7 files changed, 144 insertions(+), 25 deletions(-) diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index df6b0a4..b1b3720 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -70,5 +70,9 @@ namespace BBWYB.Server.API.Controllers [HttpPost] public void SelectBExistsAndCNotExists() { dataRepairBusiness.SelectBExistsAndCNotExists(); } + + [HttpPost] + public void SyncHistoryPurchaseScheme() + { dataRepairBusiness.SyncHistoryPurchaseScheme();} } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index 49b735d..a9ab217 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -1,4 +1,5 @@ -using BBWYB.Common.Log; +using BBWYB.Common.Extensions; +using BBWYB.Common.Log; using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; @@ -15,12 +16,14 @@ namespace BBWYB.Server.Business private PurchaseSchemeBusiness purchaseSchemeBusiness; private PurchaseOrderBusiness purchaseOrderBusiness; private FreeSqlMultiDBManager freeSqlMultiDBManager; - public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager) : base(fsql, nLogManager, idGenerator) + private VenderBusiness venderBusiness; + public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager, VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator) { this.kuaiDi100Manager = kuaiDi100Manager; this.purchaseSchemeBusiness = purchaseSchemeBusiness; this.purchaseOrderBusiness = purchaseOrderBusiness; this.freeSqlMultiDBManager = freeSqlMultiDBManager; + this.venderBusiness = venderBusiness; } @@ -393,5 +396,68 @@ namespace BBWYB.Server.Business Console.WriteLine($"B端在而C端不在的数量有 {bexceptIdList.Count()}"); Console.WriteLine($"C端在而B端不在的数量有 {cexceptIdList.Count()}"); } + + public void SyncHistoryPurchaseScheme() + { + var qtShops = venderBusiness.GetShopList(platform: Enums.Platform.拳探); + foreach (var shop in qtShops) + { + var psList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() + { + ShopId = long.Parse(shop.ShopId) + }); + + List insertHistoryPSList = new List(); + List insertHistoryPSPList = new List(); + List insertHistoryPSSList = new List(); + //List updatePurchaseSchemeIdList = new List(); + + foreach (var ps in psList) + { + //var newVersion = ps.Version + 1; + var newVersion = ps.Version; + foreach (var psp in ps.PurchaseSchemeProductList) + { + foreach (var pss in psp.PurchaseSchemeProductSkuList) + { + #region 处理历史版本 + var historyPss = psp.Map(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.Version = newVersion; + insertHistoryPSSList.Add(historyPss); + #endregion + } + #region 处理历史版本 + var historyPsp = psp.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.Version = newVersion; + insertHistoryPSPList.Add(historyPsp); + #endregion + } + + #region 处理历史版本 + var historyPs = ps.Map(); + historyPs.HistoryId = idGenerator.NewLong(); + historyPs.Version = newVersion; + insertHistoryPSList.Add(historyPs); + + //updatePurchaseSchemeIdList.Add(ps.Id); + #endregion + } + + + fsql.Transaction(() => + { + if (insertHistoryPSList.Count() > 0) + fsql.Insert(insertHistoryPSList).ExecuteAffrows(); + if (insertHistoryPSPList.Count() > 0) + fsql.Insert(insertHistoryPSPList).ExecuteAffrows(); + if (insertHistoryPSSList.Count() > 0) + fsql.Insert(insertHistoryPSSList).ExecuteAffrows(); + //if (updatePurchaseSchemeIdList.Count() > 0) + // fsql.Update(updatePurchaseSchemeIdList).Set(ps => ps.Version + 1).ExecuteAffrows(); + }); + } + } } } diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 5affc42..b9b324b 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -340,8 +340,8 @@ namespace BBWYB.Server.Business IUpdate? updatePurchaseSchemeGroupIndex = null; List insertHistoryPSList = new List(); - List insertHistoryPSPList = new List(); - List insertHistoryPSSList = new List(); + List insertHistoryPSPList = new List(); + List insertHistoryPSSList = new List(); if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0) @@ -400,7 +400,8 @@ namespace BBWYB.Server.Business ShopId = psReq.ShopId, HYBDId = psReq.HYBDId, HYSchemeId = psReq.HYSchemeId, - SchemeGroupId = psReq.SchemeGroupId ?? 0 + SchemeGroupId = psReq.SchemeGroupId ?? 0, + Version = 1 }; addPurchaseSchemeList.Add(ps); foreach (var pspReq in psReq.PurchaseSchemeProductList) @@ -419,8 +420,28 @@ namespace BBWYB.Server.Business pss.SkuPurchaseSchemeId = ps.Id; addPurchaseSchemeProductSkuList.Add(pss); ps.DefaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1); + + #region 处理历史版本 + var historyPss = psp.Map(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.Version = 1; + insertHistoryPSSList.Add(historyPss); + #endregion } + + #region 处理历史版本 + var historyPsp = psp.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.Version = 1; + insertHistoryPSPList.Add(historyPsp); + #endregion } + + #region 处理历史版本 + var historyPs = ps.Map(); + historyPs.HistoryId = idGenerator.NewLong(); + insertHistoryPSList.Add(historyPs); + #endregion } } @@ -435,6 +456,10 @@ namespace BBWYB.Server.Business foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList) { var schemeId = psReq.Id; + var dbps = dbPurchaseSchemes.FirstOrDefault(x => x.Id == schemeId); + if (dbps == null) + throw new BusinessException($"未找到编辑方案{schemeId}"); + var newVersion = dbps.Version + 1; //采购方案版本 var defaultCost = 0M; foreach (var pspReq in psReq.PurchaseSchemeProductList) { @@ -452,13 +477,43 @@ namespace BBWYB.Server.Business pss.SkuPurchaseSchemeId = schemeId; addPurchaseSchemeProductSkuList.Add(pss); defaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1); + + #region 处理历史版本 + var historyPss = pssReq.Map(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.CreateTime = DateTime.Now; + historyPss.SkuPurchaseSchemeId = schemeId; + historyPss.Version = newVersion; + insertHistoryPSSList.Add(historyPss); + #endregion } + + #region 处理历史版本 + var historyPsp = pspReq.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.CreateTime = DateTime.Now; + historyPsp.SkuPurchaseSchemeId = schemeId; + historyPsp.Version = newVersion; + insertHistoryPSPList.Add(historyPsp); + #endregion } var psupdate = fsql.Update(schemeId) .Set(ps => ps.DefaultCost, defaultCost) .Set(ps => ps.HYSchemeId, psReq.HYSchemeId) - .Set(ps => ps.HYBDId, psReq.HYBDId); + .Set(ps => ps.HYBDId, psReq.HYBDId) + .Set(ps => ps.Version, newVersion); updatePurchaseSchemeList.Add(psupdate); + + #region 处理历史版本 + var historyPs = psReq.Map(); + historyPs.LastPurchaseTime = dbps.LastPurchaseTime; + historyPs.LastPurchasePriceCost = dbps.LastPurchasePriceCost; + historyPs.DefaultCost = defaultCost; + historyPs.CreateTime = DateTime.Now; + historyPs.Version = newVersion; + historyPs.HistoryId = idGenerator.NewLong(); + insertHistoryPSList.Add(historyPs); + #endregion } } #endregion @@ -497,6 +552,13 @@ namespace BBWYB.Server.Business } insertPurchaseSchemeGroupIndex?.ExecuteAffrows(); updatePurchaseSchemeGroupIndex?.ExecuteAffrows(); + + if (insertHistoryPSList.Count() > 0) + fsql.Insert(insertHistoryPSList).ExecuteAffrows(); + if (insertHistoryPSPList.Count() > 0) + fsql.Insert(insertHistoryPSPList).ExecuteAffrows(); + if (insertHistoryPSSList.Count() > 0) + fsql.Insert(insertHistoryPSSList).ExecuteAffrows(); }); //删除信息残缺的采购方案 diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs index d9798b2..fa4f370 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs @@ -57,12 +57,6 @@ namespace BBWYB.Server.Model.Db [Column(StringLength = 50, IsNullable = false)] public string ProductId { get; set; } - /// - /// 采购商Id - /// - [Column(StringLength = 20)] - public string PurchaserId { get; set; } - /// /// 方案分组Id /// diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs index 982cc45..86cab85 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs @@ -18,12 +18,6 @@ namespace BBWYB.Server.Model.Db [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } - /// - /// 采购商品流水Id - /// - [Column(DbType = "bigint")] - public long? Id { get; set; } - [Column(StringLength = 50)] public string ProductId { get; set; } diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs index 95eba67..78c6cb2 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs @@ -24,11 +24,6 @@ namespace BBWYB.Server.Model.Db [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } - /// - /// 采购sku流水Id - /// - [Column(DbType = "bigint")] - public long? Id { get; set; } [Column(StringLength = 50, IsNullable = false)] public string ProductId { get; set; } diff --git a/BBWYB.Server.Model/MappingProfiles.cs b/BBWYB.Server.Model/MappingProfiles.cs index 65112b1..d3b3542 100644 --- a/BBWYB.Server.Model/MappingProfiles.cs +++ b/BBWYB.Server.Model/MappingProfiles.cs @@ -50,8 +50,12 @@ namespace BBWYB.Server.Model .ForPath(t => t.OrderCost.PurchaseFreight, opt => opt.MapFrom(f => f.PurchaseFreight)); CreateMap(); - //CreateMap(); - + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); } } }