From b23d80cdbc375643e6a94122c6507fca79e18103 Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期四, 18 九月 2025 17:28:58 +0800 Subject: [PATCH] 新增要求出发时间 --- service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java | 72 +++++++++++++++++++++++++++++++++-- 1 files changed, 67 insertions(+), 5 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 b220a9a..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,13 +1,19 @@ package com.ruoyi.cwgl.service.impl; +import java.math.BigDecimal; +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; @@ -41,6 +47,10 @@ private EstimatedReceivableBillMapper estimatedReceivableBillMapper; @Autowired private IEstimatedReceivableBillLogService logService; + @Resource + private PendingSettlementBusinessMapper pendingSettlementBusinessMapper; + @Resource + private EstimatedReceivableMapper estimatedReceivableMapper; /** @@ -137,6 +147,20 @@ 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); } @@ -193,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); @@ -205,15 +229,53 @@ estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId()); estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername()); estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount); + estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment()); logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog); - settledAmount = settledAmount+settlementAmount; - if (settledAmount>totalAmount){ + + List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId()); + // 妫�鏌ュ綋鍓嶆彁浜ら噾棰�+宸茬粨绠楅噾棰濇槸鍚﹁秴杩囧簲缁撶畻閲戦 + if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) { + // 瓒呰繃搴旂粨绠楅噾棰濓紝鎶涘嚭寮傚父鎴栧鐞嗛敊璇� + throw new RuntimeException("褰撳墠鎻愪氦閲戦鍔犱笂宸茬粨绠楅噾棰濅笉鑳借秴杩囧簲缁撶畻閲戦"); + } + if (settlementAmount.add(settledAmount).compareTo(totalAmount) == 0) { //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻 estimatedReceivableBill.setStatus(2); + estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3,null); + pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3); }else { //鍚﹀垯閮ㄥ垎缁撶畻 estimatedReceivableBill.setStatus(1); + estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2,null); + pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2); } + settledAmount = settledAmount.add(settlementAmount); + estimatedReceivableBill.setSettledAmount(settledAmount); 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); + //搴旂粨绠楅噾棰濅慨鏀� + BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); + estimatedReceivableBill.setTotalAmount(totalAmount.subtract(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); + + + return pendingSettlementBusinessMapper.cancelRelevancy(id); + + } } -- Gitblit v1.8.0