From 74432331d7130a2d2798d0217ee9b688de55d811 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 27 八月 2025 17:55:30 +0800
Subject: [PATCH] 新增前后端

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
index b0718c1..82746c1 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.cwgl.service.impl;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -159,6 +160,7 @@
         estimatedReceivableBillLog.setOperation("淇敼璐﹀崟鍚嶇О涓�"+estimatedReceivableBill.getBillName());
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
          pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
+
         return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
     }
 
@@ -215,11 +217,11 @@
         Integer id = estimatedReceivableBill.getId();
         EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id);
         //搴旂粨绠楅噾棰�
-        Long totalAmount = oldData.getTotalAmount()==null?0L:oldData.getTotalAmount();
+        BigDecimal totalAmount = oldData.getTotalAmount()==null?BigDecimal.ZERO:oldData.getTotalAmount();
         //宸茬粨绠楅噾棰�
-        Long settledAmount = oldData.getSettledAmount()==null?0L:oldData.getSettledAmount();
+        BigDecimal settledAmount = oldData.getSettledAmount()==null?BigDecimal.ZERO:oldData.getSettledAmount();
         //褰撳墠鎻愪氦閲戦
-        Long settlementAmount = estimatedReceivableBill.getSettlementAmount();
+        BigDecimal settlementAmount = estimatedReceivableBill.getSettlementAmount();
         EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
 
         estimatedReceivableBill.setSettledAmount(settlementAmount);
@@ -227,18 +229,28 @@
         estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
         estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
         estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount);
+        estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
-        settledAmount = settledAmount+settlementAmount;
+
         List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
-        if (settledAmount>totalAmount){
+        // 妫�鏌ュ綋鍓嶆彁浜ら噾棰�+宸茬粨绠楅噾棰濇槸鍚﹁秴杩囧簲缁撶畻閲戦
+        if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) {
+            // 瓒呰繃搴旂粨绠楅噾棰濓紝鎶涘嚭寮傚父鎴栧鐞嗛敊璇�
+            throw new RuntimeException("褰撳墠鎻愪氦閲戦鍔犱笂宸茬粨绠楅噾棰濅笉鑳借秴杩囧簲缁撶畻閲戦");
+        }
+       if (settlementAmount.add(settledAmount).compareTo(totalAmount) == 0) {
             //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
             estimatedReceivableBill.setStatus(2);
-            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3,null);
+            pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
         }else {
             //鍚﹀垯閮ㄥ垎缁撶畻
             estimatedReceivableBill.setStatus(1);
-            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2,null);
+           pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
         }
+        settledAmount = settledAmount.add(settlementAmount);
+        estimatedReceivableBill.setSettledAmount(settledAmount);
         return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
     }
 
@@ -252,8 +264,8 @@
         EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(billId);
         estimatedReceivableBill.setDispatchCount(estimatedReceivableBill.getDispatchCount()-1);
         //搴旂粨绠楅噾棰濅慨鏀�
-        Long totalAmount = estimatedReceivableBill.getTotalAmount();
-        estimatedReceivableBill.setTotalAmount(totalAmount-pendingSettlementBusiness.getEstimatedTotalIncome());
+        BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+        estimatedReceivableBill.setTotalAmount(totalAmount.subtract(pendingSettlementBusiness.getEstimatedTotalIncome()));
         EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
         estimatedReceivableBillLog.setCreateTime(new Date());
         estimatedReceivableBillLog.setBillId(billId);
@@ -261,9 +273,7 @@
         String dispatchNo = pendingSettlementBusiness.getDispatchNo();
         estimatedReceivableBillLog.setOperation("鍙栨秷璋冨害鍗�"+ dispatchNo +"鍏宠仈");
         logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
-        List<String> dispatchNos = new ArrayList<>();
-        dispatchNos.add(dispatchNo);
-        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,0);
+
 
         return  pendingSettlementBusinessMapper.cancelRelevancy(id);
 

--
Gitblit v1.8.0