From 06e83c6b0282234dc30970499972381578738da9 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期五, 15 八月 2025 14:50:17 +0800
Subject: [PATCH] 修改

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 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 218fbc9..b0718c1 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,9 +1,20 @@
 package com.ruoyi.cwgl.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.cwgl.domain.EstimatedReceivableBillLog;
+import com.ruoyi.cwgl.domain.PendingSettlementBusiness;
+import com.ruoyi.cwgl.mapper.EstimatedReceivableMapper;
+import com.ruoyi.cwgl.mapper.PendingSettlementBusinessMapper;
+import com.ruoyi.cwgl.service.IEstimatedReceivableBillLogService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.stereotype.Service;
 import org.springframework.scheduling.annotation.Async;
@@ -33,6 +44,12 @@
     protected final Logger logger = LoggerFactory.getLogger(getClass());
     @Resource
     private EstimatedReceivableBillMapper estimatedReceivableBillMapper;
+    @Autowired
+    private IEstimatedReceivableBillLogService logService;
+    @Resource
+    private PendingSettlementBusinessMapper pendingSettlementBusinessMapper;
+    @Resource
+    private EstimatedReceivableMapper estimatedReceivableMapper;
 
 
     /**
@@ -129,6 +146,19 @@
     public int updateEstimatedReceivableBill(EstimatedReceivableBill estimatedReceivableBill)
     {
         estimatedReceivableBill.setUpdateTime(DateUtils.getNowDate());
+
+        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+    }
+
+    @Override
+    public int updateEstimatedReceivableBillName(EstimatedReceivableBill estimatedReceivableBill) {
+        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+        estimatedReceivableBillLog.setCreateTime(new Date());
+        estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
+        estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+        estimatedReceivableBillLog.setOperation("淇敼璐﹀崟鍚嶇О涓�"+estimatedReceivableBill.getBillName());
+        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+         pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
         return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
     }
 
@@ -179,4 +209,63 @@
     {
         return estimatedReceivableBillMapper.deleteEstimatedReceivableBillById(id);
     }
+
+    @Override
+    public int settlement(EstimatedReceivableBill estimatedReceivableBill) {
+        Integer id = estimatedReceivableBill.getId();
+        EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id);
+        //搴旂粨绠楅噾棰�
+        Long totalAmount = oldData.getTotalAmount()==null?0L:oldData.getTotalAmount();
+        //宸茬粨绠楅噾棰�
+        Long settledAmount = oldData.getSettledAmount()==null?0L:oldData.getSettledAmount();
+        //褰撳墠鎻愪氦閲戦
+        Long settlementAmount = estimatedReceivableBill.getSettlementAmount();
+        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+
+        estimatedReceivableBill.setSettledAmount(settlementAmount);
+        estimatedReceivableBillLog.setCreateTime(new Date());
+        estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
+        estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+        estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount);
+        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+        settledAmount = settledAmount+settlementAmount;
+        List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
+        if (settledAmount>totalAmount){
+            //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
+            estimatedReceivableBill.setStatus(2);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
+        }else {
+            //鍚﹀垯閮ㄥ垎缁撶畻
+            estimatedReceivableBill.setStatus(1);
+            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
+        }
+        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+    }
+
+    @Override
+    public int cancelRelevancy(Integer id) {
+        PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessById(id);
+        if (pendingSettlementBusiness==null){
+            throw new ServiceException("寰呭叆璐︿笟鍔′笉瀛樺湪");
+        }
+        Integer billId = pendingSettlementBusiness.getBillId();
+        EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(billId);
+        estimatedReceivableBill.setDispatchCount(estimatedReceivableBill.getDispatchCount()-1);
+        //搴旂粨绠楅噾棰濅慨鏀�
+        Long totalAmount = estimatedReceivableBill.getTotalAmount();
+        estimatedReceivableBill.setTotalAmount(totalAmount-pendingSettlementBusiness.getEstimatedTotalIncome());
+        EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+        estimatedReceivableBillLog.setCreateTime(new Date());
+        estimatedReceivableBillLog.setBillId(billId);
+        estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+        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