From 5cccc3698dede7018339799336909f444b80b2c5 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 18 八月 2025 10:56:15 +0800
Subject: [PATCH] 新增确认取消判断

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java |   76 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 1 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
index e505d7f..564fa6a 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.cwgl.service.impl;
 
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -7,9 +9,13 @@
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
 
+import com.ruoyi.common.utils.RandomUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.cwgl.domain.EstimatedReceivableBill;
+import com.ruoyi.cwgl.domain.PendingSettlementBusiness;
+import com.ruoyi.cwgl.mapper.EstimatedReceivableBillMapper;
 import com.ruoyi.cwgl.mapper.EstimatedReceivableLogMapper;
+import com.ruoyi.cwgl.mapper.PendingSettlementBusinessMapper;
 import com.ruoyi.cwgl.service.IEstimatedReceivableLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -43,6 +49,10 @@
     private EstimatedReceivableMapper estimatedReceivableMapper;
     @Autowired
     private IEstimatedReceivableLogService logService;
+    @Resource
+    private PendingSettlementBusinessMapper pendingSettlementBusinessMapper;
+    @Resource
+    private EstimatedReceivableBillMapper estimatedReceivableBillMapper;
 
     /**
      * 鏌ヨ棰勪及搴旀敹绠$悊
@@ -111,7 +121,22 @@
     @Override
     public int insertEstimatedReceivable(EstimatedReceivable estimatedReceivable)
     {
-        estimatedReceivable.setCreateTime(DateUtils.getNowDate());
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+
+        Date nowDate = DateUtils.getNowDate();
+        String datePart = dateFormat.format(nowDate);
+        estimatedReceivable.setCreateTime(nowDate);
+        estimatedReceivable.setFeeSystemNo("YF"+datePart+ RandomUtils.random(5));
+        estimatedReceivable.setFeeType(0);
+        PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
+        if (pendingSettlementBusiness == null){
+            throw new ServiceException("璋冨害鍗曚笉瀛樺湪");
+
+        }
+        Integer relatedBillStatus = pendingSettlementBusiness.getRelatedBillStatus();
+        if (relatedBillStatus.equals(2)||relatedBillStatus.equals(3)){
+            throw new ServiceException("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曟柊澧炴槑缁�");
+        }
         return estimatedReceivableMapper.insertEstimatedReceivable(estimatedReceivable);
     }
 
@@ -141,6 +166,24 @@
         EstimatedReceivable estimatedReceivable1 = estimatedReceivableMapper.selectEstimatedReceivableById(id);
         if (estimatedReceivable1.getRelatedBillStatus().equals(2)||estimatedReceivable1.getRelatedBillStatus().equals(3)){
             throw new ServiceException("缁撶畻涓垨宸茬粨绠楁棤娉曚慨鏀�");
+        }
+        //鍘熸湰閲戦
+        BigDecimal oldAmount = estimatedReceivable1.getEstimatedAmount();
+        //鏂伴噾棰�
+        BigDecimal newAmount = estimatedReceivable.getEstimatedAmount();
+        if (!oldAmount.equals(newAmount)) {
+
+              PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
+              if (pendingSettlementBusiness!=null) {
+                  BigDecimal estimatedTotalIncome = pendingSettlementBusiness.getEstimatedTotalIncome();
+                  pendingSettlementBusiness.setEstimatedTotalIncome(estimatedTotalIncome.subtract(oldAmount).add(newAmount));
+                  pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness);
+                  if (pendingSettlementBusiness.getBillId() != null) {
+                      EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+                            estimatedReceivableBill.setTotalAmount(estimatedReceivableBill.getTotalAmount().subtract( oldAmount).add( newAmount));
+                            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+                  }
+              }
         }
         estimatedReceivable.setUpdateTime(DateUtils.getNowDate());
         String username = SecurityUtils.getUsername();
@@ -210,6 +253,21 @@
             throw new ServiceException("鏃犻渶閲嶅纭");
 
         }
+        PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
+        if (pendingSettlementBusiness == null){
+            throw new ServiceException("璋冨害鍗曚笉瀛樺湪");
+
+        }
+        Integer relatedBillStatus = pendingSettlementBusiness.getRelatedBillStatus();
+        if (relatedBillStatus.equals(2)||relatedBillStatus.equals(3)){
+            throw new ServiceException("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曠‘璁�");
+        }
+        if (pendingSettlementBusiness.getBillId()!=null){
+            EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+            BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+            estimatedReceivableBill.setTotalAmount(totalAmount.add(estimatedReceivable.getEstimatedAmount()));
+            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+        }
         String username = SecurityUtils.getUsername();
 
         logService.insertEstimatedReceivableLog("纭搴旀敹",id,username);
@@ -233,10 +291,26 @@
             throw new ServiceException("鏃犻渶閲嶅鍙栨秷");
 
         }
+        PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo());
+        if (pendingSettlementBusiness == null){
+            throw new ServiceException("璋冨害鍗曚笉瀛樺湪");
+
+        }
+        Integer relatedBillStatus = pendingSettlementBusiness.getRelatedBillStatus();
+        if (relatedBillStatus.equals(2)||relatedBillStatus.equals(3)){
+            throw new ServiceException("褰撳墠璋冨害鍗曞凡缁撶畻鎴栭儴鍒嗙粨绠楁棤娉曞彇娑�");
+        }
+        if (pendingSettlementBusiness.getBillId()!=null){
+            EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId());
+            BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+            estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount()));
+            estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+        }
         String username = SecurityUtils.getUsername();
 
         logService.insertEstimatedReceivableLog("鍙栨秷搴旀敹",id,username);
         estimatedReceivable.setIsConfirmed(0);
+
         return estimatedReceivableMapper.updateEstimatedReceivable(estimatedReceivable);
     }
 

--
Gitblit v1.8.0