From 82a1cf87de473e970185d6a60291f8087efa5afd Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期一, 18 八月 2025 13:42:24 +0800 Subject: [PATCH] 新增确认取消判断 --- quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java | 3 +++ service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java | 27 +++++++++++++++++++++++++++ service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml | 6 +----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java index 2ad1316..a32967c 100644 --- a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java +++ b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java @@ -49,6 +49,9 @@ List<EstimatedReceivable> estimatedReceivables = new ArrayList<>(); for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { pendingSettlementBusiness.setIsCreate(0); + pendingSettlementBusiness.setEstimatedTotalCost(BigDecimal.ZERO); + + pendingSettlementBusiness.setEstimatedTotalIncome(BigDecimal.ZERO); ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType()); if (exactMatchingRule!=null) { //搴旀敹鏁版嵁 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 564fa6a..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 @@ -267,6 +267,9 @@ 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(); @@ -305,6 +308,9 @@ 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(); @@ -324,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); diff --git a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml index 4864194..5015b18 100644 --- a/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml +++ b/service/src/main/resources/mapper/cwgl/PendingSettlementBusinessMapper.xml @@ -561,11 +561,7 @@ </update> <update id="updateEstimatedReceivableBillStatus"> UPDATE pending_settlement_business - SET - is_create = 1, - bill_id = #{id}, - bill_name = #{billName}, - related_bill_status = 1, + SET related_bill_status = #{status} WHERE dispatch_no IN <foreach item="item" collection="list" open="(" separator="," close=")"> #{item} -- Gitblit v1.8.0