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