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; }
+ }
+}