From 67e17cafb91f746eebd40df7facdd1b7adb15dbd Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 21 三月 2025 14:07:56 +0800
Subject: [PATCH] bug修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java |    7 ++++---
 1 files changed, 4 insertions(+), 3 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 96b3c3e..cacacb8 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
@@ -291,7 +291,6 @@
                     }
                     List<TContractRentType> contractRentTypes = contractRentTypeService.list();
                     TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
-
                     // 生成第一笔账单
                     // 第一次应缴费日期
                     LocalDateTime firstPayTime = contract.getStartTime().plusDays(10).withHour(0).withMinute(0).withSecond(0);
@@ -453,15 +452,17 @@
                                 rentBill.setPayableFeesMoney(money);
                                 rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());
                             }else{
-                                LocalDateTime localDateTime = rentBill.getStartTime().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
+//                                LocalDateTime localDateTime = rentBill.getStartTime().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
+                                LocalDateTime localDateTime = rentBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).plusDays(1);
+
                                 while (true){
                                     if (localDateTime.isBefore(rentBill.getEndTime())){
+                                        localDateTime = localDateTime.plusMonths(1);
                                         money = money.add(contract.getMonthRent());
                                     }else{
                                         money = money.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(ChronoUnit.DAYS.between(rentBill.getEndTime(),localDateTime.with(TemporalAdjusters.firstDayOfMonth()))+1)));
                                         break;
                                     }
-                                    localDateTime = localDateTime.plusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
                                 }
                                 rentBill.setPayableFeesMoney(money);
                                 rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());

--
Gitblit v1.7.1