| | |
| | | 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(); |
| | | |
| | | System.err.println(LocalDateTime.now().isBefore(LocalDateTime.now())); |
| | | // int monthValue = LocalDateTime.now().getMonthValue(); |
| | | // LocalDateTime.now(); |
| | | // LocalDateTime.now(); |
| | | int dayOfMonth = LocalDateTime.now().getMonthValue(); |
| | | System.err.println(dayOfMonth); |
| | | // System.err.println(LocalDateTime.now().isBefore(LocalDateTime.now())); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 业务状态变更 |
| | | */ |
| | |
| | | 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))); |
| | | } |
| | | // 后续 |
| | |
| | | }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()); |
| | |
| | | } |
| | | } |
| | | 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); |
| | | tBill.setOutstandingMoney(tBill.getPayableFeesMoney()); |
| | | } |
| | | if (tBill.getEndTime().getDayOfMonth() >= 15) { |
| | | // if (tBill.getEndTime().getDayOfMonth() >= 15) { |
| | | // tBill.setPayableFeesTime(tBill.getStartTime().withDayOfMonth(15).toLocalDate()); |
| | | // } else if (tBill.getStartTime().getYear() == tBill.getEndTime().getYear() && tBill.getStartTime().getMonthValue() == tBill.getEndTime().getMonthValue()) { |
| | | // // 如果同年同月 且日小于15 缴费时间取合同 |
| | | // tBill.setPayableFeesTime(tBill.getStartTime().toLocalDate()); |
| | | // } else { |
| | | tBill.setPayableFeesTime(tBill.getStartTime().withDayOfMonth(15).toLocalDate()); |
| | | } else if (tBill.getStartTime().getYear() == tBill.getEndTime().getYear() && tBill.getStartTime().getMonthValue() == tBill.getEndTime().getMonthValue()) { |
| | | // 如果同年同月 且日小于15 缴费时间取合同 |
| | | tBill.setPayableFeesTime(tBill.getStartTime().toLocalDate()); |
| | | } else { |
| | | tBill.setPayableFeesTime(tBill.getStartTime().withDayOfMonth(15).toLocalDate()); |
| | | } |
| | | // } |
| | | billService.save(tBill); |
| | | } |
| | | } |