From 0ca6cfee5251cc029a8f069dbdd6f48717ecbb17 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 21 三月 2025 09:12:53 +0800
Subject: [PATCH] 修改后端金额重置以及订单审核后修改计算方式结算面积变动问题

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 99549a2..c47bdda 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -502,9 +502,21 @@
         BigDecimal getPrice= BigDecimal.valueOf(orderDetail.getPrice());
         BigDecimal getQuantity= BigDecimal.valueOf(orderDetail.getQuantity());
         BigDecimal getComputeGrossArea= BigDecimal.valueOf(orderDetail.getComputeGrossArea());
+        BigDecimal getComputeArea= BigDecimal.valueOf(orderDetail.getComputeArea());
+        BigDecimal getWidth= BigDecimal.valueOf(orderDetail.getWidth());
+        BigDecimal getHeight= BigDecimal.valueOf(orderDetail.getHeight());
         if (calculateType == 3) {
             orderDetail.setGrossAmount(getPrice.multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue());
-        } else {
+        }else if (calculateType == 4) {
+            if(Objects.equals(orderDetail.getArea(), orderDetail.getComputeArea())&&Objects.equals(orderDetail.getGrossArea(), orderDetail.getComputeGrossArea())){
+                orderDetail.setGrossAmount(getWidth.multiply(getHeight).multiply(getQuantity).multiply(getPrice).
+                        divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP).doubleValue());
+            }else{
+                orderDetail.setGrossAmount(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            }
+        }else if (calculateType == 1){
+            orderDetail.setGrossAmount(getPrice.multiply(getComputeArea).multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue());
+        }else{
             orderDetail.setGrossAmount(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue());
         }
         return orderDetail;

--
Gitblit v1.8.0