From 987a7c564d2f540642ed4f3e4d3476364b92c0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Wed, 5 Aug 2026 17:54:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=9131?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../billManage/BillManageApplicationService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 532c7219e..50f706d8d 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 @@ -453,6 +453,16 @@ public class BillManageApplicationService { for (BillDetailDTO billDetailDTO : billDetailDTOListNoBillingStatementId) { BillingStatementDTO billingStatementDTO = new BillingStatementDTO(); BeanUtils.copyProperties(billDetailDTO, billingStatementDTO); + + String firstSubjectCode = billDetailDTO.getFirstSubjectCode(); + Double taxRate = billDetailMapper.getTaxRate(firstSubjectCode); + BigDecimal amount = billingStatementDTO.getBillingAmount(); + BigDecimal taxAmount = amount.divide(BigDecimal.ONE.add(new BigDecimal(taxRate).divide(BigDecimal.valueOf(100))),10, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(taxRate).divide(BigDecimal.valueOf(100))).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal taxFreeFee = amount.subtract(taxAmount); + billingStatementDTO.setTaxAmount(taxAmount); + billingStatementDTO.setTaxFreeFee(taxFreeFee); + billingStatementDTO.setTaxRate(taxRate); + billingStatementDTO.setBillingAmount(amount); billingStatementDTO.setAccountExpenseType(billDetailDTO.getBillType()); billingStatementDTO.setBillManageId(billManageDO.getBillManageId()); billingStatementDTO.setBillingState(3);