From eb96b1edcb0c4105c527a21b100d466419574310 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 26 三月 2025 21:12:20 +0800 Subject: [PATCH] bug修改 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java | 34 ++++++++++++++++++++-------------- 1 files changed, 20 insertions(+), 14 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 a18f96b..e63cd52 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 @@ -91,19 +91,21 @@ private final THouseService houseService; public static void main(String[] args) { - LocalDate localDate1 = LocalDate.now().withYear(2025).withMonth(1).withDayOfMonth(31); - System.err.println(localDate1.plusMonths(1)); +// LocalDate localDate1 = LocalDate.now().withYear(2025).withMonth(2).withDayOfMonth(10).with; +// System.err.println(localDate1.plusMonths(1)); //// LocalDate localDate2 = LocalDate.now().withYear(2025).withMonth(4).withDayOfMonth(16); -// LocalDateTime localDate1 = LocalDateTime.now().withYear(2025).withMonth(4).withDayOfMonth(16); -// LocalDateTime localDate2 = LocalDateTime.now().withYear(2025).withMonth(10).withDayOfMonth(24); -// + LocalDateTime localDate1 = LocalDateTime.now().withYear(2025).withMonth(2).withDayOfMonth(10).withHour(00).withMinute(00).withSecond(00); + LocalDateTime localDate2 = LocalDateTime.now().withYear(2025).withMonth(3).withDayOfMonth(31).withHour(00).withMinute(00).withSecond(00); + LocalDateTime with = localDate1.plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()); + boolean before = with.isBefore(localDate2); + System.err.println(before); // long between = ChronoUnit.DAYS.between(localDate1, localDate2)+1; - int monthValue = LocalDateTime.now().getMonthValue(); - LocalDateTime.now(); - LocalDateTime.now(); +// int monthValue = LocalDateTime.now().getMonthValue(); +// LocalDateTime.now(); +// LocalDateTime.now(); - System.err.println(LocalDateTime.now().isBefore(LocalDateTime.now())); +// System.err.println(LocalDateTime.now().isBefore(LocalDateTime.now())); } @Override @@ -269,6 +271,7 @@ } + /** * 业务状态变更 */ @@ -426,7 +429,7 @@ if (dayOfMonth == 1) { money = money.add(contract.getMonthRent()); } else { - long allDays = ChronoUnit.DAYS.between(contract.getStartPayTime(), contract.getStartPayTime().with(TemporalAdjusters.lastDayOfMonth())) + 1; + long allDays = Math.abs(ChronoUnit.DAYS.between(rentBill.getStartTime(), rentBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth())) + 1); money =money.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays))); } // 后续 @@ -436,10 +439,13 @@ }else{ LocalDateTime localDateTime = rentBill.getStartTime().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()); while (true){ - if (localDateTime.isBefore(rentBill.getEndTime())){ + if (localDateTime.toLocalDate().isBefore(rentBill.getEndTime().toLocalDate())){ 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))); + }else if(localDateTime.toLocalDate().equals(rentBill.getEndTime().toLocalDate())){ + money = money.add(contract.getMonthRent()); + break; + }else { + money = money.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(ChronoUnit.DAYS.between(localDateTime.with(TemporalAdjusters.firstDayOfMonth()),rentBill.getEndTime())+1))); break; } localDateTime = localDateTime.plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()); @@ -977,7 +983,7 @@ } } if (originalTime.isBefore(tBill.getEndTime())){ - long tempOriginal = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime()); + long tempOriginal = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime())+1; originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(tempOriginal))); } tBill.setPayableFeesMoney(originalMoney); -- Gitblit v1.7.1