From 77556842bbe4f4c55513a50fb51f8a5622018f4a Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期二, 09 九月 2025 14:56:45 +0800 Subject: [PATCH] 新增接口 --- service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 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 a493210..2940f2f 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,6 @@ package com.ruoyi.cwgl.service.impl; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -11,7 +12,10 @@ 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; @@ -45,6 +49,10 @@ private EstimatedReceivableMapper estimatedReceivableMapper; @Autowired private IEstimatedReceivableLogService logService; + @Resource + private PendingSettlementBusinessMapper pendingSettlementBusinessMapper; + @Resource + private EstimatedReceivableBillMapper estimatedReceivableBillMapper; /** * 鏌ヨ棰勪及搴旀敹绠$悊 @@ -120,6 +128,15 @@ 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); } @@ -149,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(); @@ -218,6 +253,24 @@ 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); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getEstimatedTotalIncome().add(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(1); + } String username = SecurityUtils.getUsername(); logService.insertEstimatedReceivableLog("纭搴旀敹",id,username); @@ -241,10 +294,29 @@ 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); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(0); + } String username = SecurityUtils.getUsername(); logService.insertEstimatedReceivableLog("鍙栨秷搴旀敹",id,username); estimatedReceivable.setIsConfirmed(0); + return estimatedReceivableMapper.updateEstimatedReceivable(estimatedReceivable); } @@ -258,6 +330,27 @@ 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 (estimatedReceivable.getIsConfirmed().equals(1)) { + if (pendingSettlementBusiness.getBillId()!=null){ + EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId()); + BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); + estimatedReceivableBill.setTotalAmount(totalAmount.subtract(estimatedReceivable.getEstimatedAmount())); + estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill); + pendingSettlementBusiness.setEstimatedTotalIncome(pendingSettlementBusiness.getConfirmedTotalIncome().subtract(estimatedReceivable.getEstimatedAmount())); + pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); + estimatedReceivable.setRelatedBillStatus(0); + } + } String username = SecurityUtils.getUsername(); logService.insertEstimatedReceivableLog("浣滃簾搴旀敹",id,username); -- Gitblit v1.8.0