diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java index f833c59e8..ad261c128 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java @@ -288,6 +288,9 @@ public class BusinessDocumentApplicationService { billingStatementDTO.setBillingStatementIds(billingStatement.getBillingStatementId().toString()); billingStatementDTO.setAuditOperation(1); billingStatementDomainService.reviewBilling(billingStatementDTO); + billingStatement.setBillManageId(businessDocumentDO.getBillManageId()); + billingStatement.setBillingState(3); + billingStatementMapper.updateById(billingStatement); } BillManage billManage = billManageService.getById(businessDocumentDO.getBillManageId()); @@ -320,6 +323,15 @@ public class BusinessDocumentApplicationService { BigDecimal amount = billAmount.add(billDetail.getBillingAmount()); billManage.setBillAmount(amount); billManage.setBillTotalAmount(amount); + BigDecimal billTotalAmount = billManage.getBillTotalAmount(); + BigDecimal billAmountSettlement = billManage.getBillAmountSettlement(); + BigDecimal subtract = billTotalAmount.subtract(billAmountSettlement); + billManage.setBillAmountUnsettled(subtract); + Double taxRate = billManage.getTaxRate() != null ? billManage.getTaxRate() : 0.0; + BigDecimal taxAmount = billTotalAmount.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 = billTotalAmount.subtract(taxAmount); + billManage.setTaxAmount(taxAmount); + billManage.setTaxFreeFee(taxFreeFee); billManageService.updateById(billManage); return true; }