From 77341e66cc97bb5ed30ea581d07d7fa22593f2c5 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 03 四月 2025 22:52:59 +0800 Subject: [PATCH] bug修改 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java | 34 +++++++++++++++++++++++++++------- 1 files changed, 27 insertions(+), 7 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 2824697..7172f7b 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 @@ -525,6 +525,8 @@ depositBill.setBillType("2"); contractService.updateById(contract); + rentBill.setBusinessDeptId(contract.getBusinessDeptId()); + depositBill.setBusinessDeptId(contract.getBusinessDeptId()); billService.save(rentBill); billService.save(depositBill); // 生成后续账单 @@ -744,6 +746,7 @@ tBill.setContractNumber(contract.getContractNumber()); tBill.setPayFeesStatus("1"); tBill.setBillType("1"); + tBill.setBusinessDeptId(contract.getBusinessDeptId()); billService.save(tBill); beforeBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth())); @@ -952,10 +955,16 @@ BigDecimal originalMoney = new BigDecimal("0"); // 不需要涨租金的时间段 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()))); + 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()))){ + // 计算整月 + originalMoney = originalMoney.add(contract.getChangeRent()); }else{ - originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime())); + // 计算天 + if (tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).isBefore(tBill.getEndTime())){ + 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()))+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); @@ -980,10 +989,16 @@ BigDecimal originalMoney = new BigDecimal("0"); // 不需要涨租金的时间段 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())))+1; + 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()))){ + // 计算整月 + originalMoney = originalMoney.add(contract.getChangeRent()); }else{ - originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime()))+1; + // 计算天 + if (tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).isBefore(tBill.getEndTime())){ + 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()))+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); @@ -999,7 +1014,7 @@ break; } } - if (originalTime.isBefore(tBill.getEndTime())){ + if (originalTime.isBefore(tBill.getEndTime())||originalTime.toLocalDate().equals(tBill.getEndTime().toLocalDate())){ 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))); } @@ -1014,6 +1029,7 @@ // } else { tBill.setPayableFeesTime(tBill.getStartTime().withDayOfMonth(15).toLocalDate()); // } + tBill.setBusinessDeptId(contract.getBusinessDeptId()); billService.save(tBill); } } @@ -1028,6 +1044,10 @@ //更新合同结束时间 contract.setEndTime(contract.getTerminateTime()); contractService.updateById(contract); + // 修改房屋状态 + THouse house = houseService.getById(contract.getHouseId()); + house.setLeaseStatus("1"); + houseService.updateById(house); TCheckAcceptRecord tCheckAcceptRecord = new TCheckAcceptRecord(); tCheckAcceptRecord.setContractId(contract.getId()); -- Gitblit v1.7.1