From 1db007c78d88b08af499b5470a037a1953028ee2 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 19 三月 2025 16:51:06 +0800 Subject: [PATCH] 账单 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java index b2e6c81..96b3c3e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java @@ -948,15 +948,15 @@ // 不需要涨租金的时间段 long originalDays = 0; if (tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).isBefore(tBill.getEndTime())){ - originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()))); + originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth())))+1; }else{ - originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime())); + originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime()))+1; } originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(originalDays))); LocalDateTime originalTime = tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).plusDays(1); while(true){ if (originalTime.isBefore(tBill.getEndTime())){ - if (originalTime.plusMonths(1).isBefore(tContractRentType.getChangeTime())){ + if (originalTime.plusMonths(1).isBefore(tBill.getEndTime())){ originalMoney = originalMoney.add(contract.getChangeRent()); originalTime = originalTime.plusMonths(1); }else { @@ -966,8 +966,10 @@ break; } } - long tempOriginal = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime()); - originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(tempOriginal))); + if (originalTime.isBefore(tBill.getEndTime())){ + long tempOriginal = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime()); + originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(tempOriginal))); + } tBill.setPayableFeesMoney(originalMoney); tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); } -- Gitblit v1.7.1