From 22590abbb85e48b841f7247acbc92c56be3cb478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Mon, 20 Jul 2026 14:40:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=B4=A6=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/billManage/BillManageApplicationService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java index 85a86ef91..2d417baae 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billManage/BillManageApplicationService.java @@ -333,7 +333,10 @@ public class BillManageApplicationService { BigDecimal billingDiscountAmount = billDetailDTOList.stream().map(BillDetailDTO::getBillingDiscountAmount).reduce(BigDecimal.ZERO, BigDecimal::add); //比较传来的账单总额、账单金额、账单优惠金额与计算的是否一致,不一致则报错 if(billingTotalAmount.compareTo(billManageDTO.getBillTotalAmount())!=0 || billingAmount.compareTo(billManageDTO.getBillAmount())!=0 || billingDiscountAmount.compareTo(billManageDTO.getBillDiscountAmount())!=0){ - throw new ServiceException("账单金额不一致,调整失败,请重试"); + // 金额不一致时,用明细累加值覆盖前端传值,不再抛异常 + billManageDTO.setBillTotalAmount(billingTotalAmount); + billManageDTO.setBillAmount(billingAmount); + billManageDTO.setBillDiscountAmount(billingDiscountAmount); } //将集合中没有计费流水id的过滤到另一个集合,将添加费用的集合保存到计费流水并返回计费流水id List billDetailDTOListNoBillingStatementId = billDetailDTOList.stream().filter(billDetailDTO -> billDetailDTO.getBillingStatementId()==null).collect(Collectors.toList());