From 593b1d8a7f59917e9ab11c31d2010761a04a3b97 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Fri, 26 May 2023 19:20:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8E=86=E5=8F=B2=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 10 ++++ .../PurchaseOrder/PurchaseOrderBusiness.cs | 50 +++++++++++++++++-- .../SetHistoryPurchaseOrderRequest.cs | 15 ++++++ 3 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs diff --git a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs index 72cf85d..56829c6 100644 --- a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs @@ -58,6 +58,16 @@ namespace BBWYB.Server.API.Controllers purchaseOrderBusiness.AssociatePurchaseOrder(request); } + /// + /// 设置历史采购单 + /// + /// + [HttpPost] + public void SetHistoryPurchaseOrder([FromBody] SetHistoryPurchaseOrderRequest request) + { + purchaseOrderBusiness.SetHistoryPurchaseOrder(request); + } + /// /// 1688回调 /// diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 7db44d9..5357d1d 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -466,7 +466,10 @@ namespace BBWYB.Server.Business if (request.AssociationPurchaseOrderList == null || request.AssociationPurchaseOrderList.Count() == 0) throw new BusinessException("缺少采购单信息"); - var dbPurchaseOrderList = fsql.Select().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList(); + + var dbPurchaseOrderList = fsql.Select().Where(opi => opi.OrderId == request.OrderId).ToList(); + var dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList(); + var dbOrderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList(); var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList(); var dbOrderCost = fsql.Select(request.OrderId).ToOne(); @@ -481,6 +484,9 @@ namespace BBWYB.Server.Business foreach (var purchaseOrder in request.AssociationPurchaseOrderList) { + if (dbInvalidPurchaseOrderIdList.Contains(purchaseOrder.PurchaserOrderId)) + continue; + var avgFreight = purchaseOrder.PurchaseFreight / purchaseOrder.AssocationOrderCostDetailList.Count(); var dbPurchaserOrder = dbPurchaseOrderList.FirstOrDefault(x => x.PurchaseOrderId == purchaseOrder.PurchaserOrderId); if (dbPurchaserOrder == null) @@ -543,8 +549,8 @@ namespace BBWYB.Server.Business } } - - var totalPurchaseAmount = request.AssociationPurchaseOrderList.Sum(p => p.PurchaseAmount + p.PurchaseFreight); + var totalPurchaseAmount = request.AssociationPurchaseOrderList.Where(x => !dbInvalidPurchaseOrderIdList.Contains(x.PurchaserOrderId)) + .Sum(p => p.PurchaseAmount + p.PurchaseFreight); var profit = dbOrder.OrderTotalPrice - totalPurchaseAmount - (dbOrderCost?.DeliveryExpressFreight ?? 0); // -orderCost.PlatformCommissionAmount if (dbOrderCost == null) @@ -594,6 +600,44 @@ namespace BBWYB.Server.Business }); } + public void SetHistoryPurchaseOrder(SetHistoryPurchaseOrderRequest request) + { + var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId) + .ToList(); + var dbOrderCost = fsql.Select(request.OrderId).ToOne(); + var dbOrder = fsql.Select(request.OrderId).ToOne(); + + var invalidCost = dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount + ocd.PurchaseFreight); + + //orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio; + try + { + dbOrderCost.PurchaseAmount = dbOrderCostDetailList.Where(ocd => ocd.PurchaseOrderId != request.PurchaseOrderId).Sum(ocd => ocd.TotalCost); + } + catch + { + dbOrderCost.PurchaseAmount = 0; + } + dbOrderCost.Profit = dbOrder.OrderTotalPrice - + dbOrderCost.PurchaseAmount - + dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount + + fsql.Transaction(() => + { + fsql.Update() + .Set(opi => opi.IsEnabled, false) + .Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId) + .ExecuteAffrows(); + + fsql.Update() + .Set(ocd => ocd.IsEnabled, false) + .Where(ocd => ocd.PurchaseOrderId == request.PurchaseOrderId) + .ExecuteAffrows(); + + fsql.Update().SetSource(dbOrderCost).ExecuteAffrows(); + }); + } + #region 1688CallBack public void CallbackFrom1688(string jsonStr) { diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs new file mode 100644 index 0000000..72a02b9 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/SetHistoryPurchaseOrderRequest.cs @@ -0,0 +1,15 @@ +namespace BBWYB.Server.Model.Dto +{ + public class SetHistoryPurchaseOrderRequest + { + /// + /// 订单Id + /// + public string OrderId { get; set; } + + /// + /// 采购单Id + /// + public string PurchaseOrderId { get; set; } + } +}