From 3f2441ae159dc969318bf3a38260a1a8f4a5b3ef Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 9 Oct 2023 19:19:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 6 + .../DataRepair/DataRepairBusiness.cs | 162 ++++++++++++++---- 2 files changed, 133 insertions(+), 35 deletions(-) diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index 36204fd..2d16d68 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -78,5 +78,11 @@ namespace BBWYB.Server.API.Controllers { dataRepairBusiness.BatchCompleteOrder(); } + + [HttpPost] + public void RepairHistoryItemCount() + { + dataRepairBusiness.RepairHistoryItemCount(); + } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index fb2be4e..3ea8042 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -514,49 +514,141 @@ namespace BBWYB.Server.Business { List insertSpuSaleInfoList = new List(); List insertSkuSaleInfoList = new List(); - var noOrderStateList = new List() { Enums.OrderState.已取消, Enums.OrderState.待付款 }; - var spuSaleGroups = fsql.Select() - .InnerJoin((osku, o) => osku.OrderId == o.Id) - .Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) - .GroupBy((osku, o) => new { osku.ProductId, o.ShopId }) - .ToList(g => new - { - g.Key.ProductId, - g.Key.ShopId, - ItemCount = g.Sum(g.Value.Item1.ItemTotal) - }); - - var skuSaleGroups = fsql.Select() - .InnerJoin((osku, o) => osku.OrderId == o.Id) - .Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) - .GroupBy((osku, o) => new { osku.ProductId, osku.SkuId, o.ShopId }) - .ToList(g => new - { - g.Key.ProductId, - g.Key.SkuId, - g.Key.ShopId, - ItemCount = g.Sum(g.Value.Item1.ItemTotal) - }); - - foreach (var spuSale in spuSaleGroups) + + #region 补销量 { - var insertSpuSale = new SpuTotalSaleInfo() + var spuSaleGroups = fsql.Select() + .InnerJoin((osku, o) => osku.OrderId == o.Id) + .Where((osku, o) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) + .GroupBy((osku, o) => new { osku.ProductId, o.ShopId }) + .ToList(g => new + { + g.Key.ProductId, + g.Key.ShopId, + ItemCount = g.Sum(g.Value.Item1.ItemTotal) + }); + + var skuSaleGroups = fsql.Select() + .InnerJoin((osku, o) => osku.OrderId == o.Id) + .Where((osku, o) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) + .GroupBy((osku, o) => new { osku.ProductId, osku.SkuId, o.ShopId }) + .ToList(g => new + { + g.Key.ProductId, + g.Key.SkuId, + g.Key.ShopId, + ItemCount = g.Sum(g.Value.Item1.ItemTotal) + }); + + foreach (var spuSale in spuSaleGroups) { - ProductId = spuSale.ProductId, - ShopId = spuSale.ShopId, - CreateTime = DateTime.Now, - IsEnabled = true, - ItemCount = Convert.ToInt64(spuSale.ItemCount), - UpdateTime = DateTime.Now, - LastOptimizationItemCount = Convert.ToInt64(spuSale.ItemCount), - LastOptimizationTime = DateTime.Now - }; + var itemCount = Convert.ToInt64(spuSale.ItemCount); + var insertSpuSale = new SpuTotalSaleInfo() + { + ProductId = spuSale.ProductId, + ShopId = spuSale.ShopId, + CreateTime = DateTime.Now, + IsEnabled = true, + ItemCount = itemCount, + UpdateTime = DateTime.Now, + LastOptimizationItemCount = itemCount, + LastOptimizationTime = DateTime.Now, + FirstOptimizationCompletedItemCount = itemCount, + FirstPurchaseCompletedItemCount = 0, + IsFirstOptimizationCompleted = true, + IsFirstPurchaseCompleted = true + }; + insertSpuSaleInfoList.Add(insertSpuSale); + } + + foreach (var skuSale in skuSaleGroups) + { + var insertSkuSale = new SkuTotalSaleInfo() + { + ProductId = skuSale.ProductId, + SkuId = skuSale.SkuId, + ShopId = skuSale.ShopId, + CreateTime = DateTime.Now, + IsEnabled = true, + ItemCount = Convert.ToInt64(skuSale.ItemCount), + UpdateTime = DateTime.Now + }; + insertSkuSaleInfoList.Add(insertSkuSale); + } } + #endregion + + #region 采购方案累计信息 + #region 采购件数 + /* + select opi.SchemeId,sum(osku.ItemTotal) from orderpurchaserelationinfo opi + inner join `order` o on opi.OrderId=o.Id + inner join ordersku osku on osku.OrderId=opi.OrderId and osku.SkuId=opi.BelongSkuId + where o.OrderState not in (0,6) and o.ShopId!=11 + group by opi.SchemeId; + */ + + { + var psItemCountGroups = fsql.Select() + .InnerJoin((opi, o, osku) => opi.OrderId == o.Id) + .InnerJoin((opi, o, osku) => osku.OrderId == opi.OrderId && osku.SkuId == opi.BelongSkuId) + .Where((opi, o, osku) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) + .GroupBy((opi, o, osku) => opi.SchemeId) + .ToList(g => new + { + SchemeId = g.Key, + ItemTotal = g.Sum(g.Value.Item3.ItemTotal) + }); + } + #endregion + + #region 采购金额 + /* + select opi.SchemeId,sum(osc.SkuAmount) from orderpurchaserelationinfo opi + inner join `order` o on opi.OrderId=o.Id + inner join orderSkuCost osc on osc.OrderId=opi.OrderId and osc.SkuId = opi.BelongSkuId + where o.OrderState not in (0,6) and o.ShopId!=11 + group by opi.SchemeId; + */ + { + var psAmountGroups = fsql.Select() + .InnerJoin((opi, o, osc) => opi.OrderId == o.Id) + .InnerJoin((opi, o, osc) => osc.OrderId == opi.OrderId && osc.SkuId == opi.BelongSkuId) + .Where((opi, o, osc) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) + .GroupBy((opi, o, osc) => opi.SchemeId) + .ToList(g => new + { + SchemeId = g.Key, + Amount = g.Sum(g.Value.Item3.SkuAmount) + }); + } + #endregion + + + #endregion + + #region 采购商累计信息 + + #endregion + + fsql.Transaction(() => + { + fsql.Delete().Where(s => 1 == 1).ExecuteAffrows(); + fsql.Delete().Where(s => 1 == 1).ExecuteAffrows(); + fsql.Delete().Where(s => 1 == 1).ExecuteAffrows(); + fsql.Delete().Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务).ExecuteAffrows(); + fsql.Update().Set(osku => osku.IsNeedOptimization, 0) + .Set(osku => osku.IsOptimizationCompleted, 0) + .Where(osku => osku.IsNeedOptimization == 1) + .ExecuteAffrows(); + fsql.Insert(insertSpuSaleInfoList).ExecuteAffrows(); + fsql.Insert(insertSkuSaleInfoList).ExecuteAffrows(); + }); } } }