mitao
2025-04-04 32418ccf94327d5446f4e87337cb7ff7bc8c3131
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
@@ -989,7 +989,13 @@
                            BigDecimal originalMoney = new BigDecimal("0");
                            // 不需要涨租金的时间段
                            long originalDays = 0;
                            if (tBill.getStartTime().getDayOfMonth()==1&&(tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).toLocalDate().isAfter(tBill.getEndTime().toLocalDate())||tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).toLocalDate().equals(tBill.getEndTime().toLocalDate()))){
                            if (tBill.getStartTime().getDayOfMonth()==1
                                    &&
                                    (
                                            tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).toLocalDate().isBefore(tBill.getEndTime().toLocalDate())
                                            ||tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).toLocalDate().equals(tBill.getEndTime().toLocalDate())
                                    )
                            ){
                                // 计算整月
                                originalMoney = originalMoney.add(contract.getChangeRent());
                            }else{
@@ -999,8 +1005,8 @@
                                }else{
                                    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)));
                            }
                            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())){