| | |
| | | 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); |
| | | TBill rentBill = new TBill(); |
| | | rentBill.setContractId(contract.getId()); |
| | |
| | | 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); |
| | |
| | | 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().isBefore(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))); |
| | | } |
| | | 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())){ |
| | |
| | | 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))); |
| | | } |
| | |
| | | } |
| | | case CATEGORY3: { |
| | | // 合同提前终止审批 |
| | | int submitStatus = status == 0 ? 4 : (status == 1 ? 7 : 5); |
| | | int submitStatus = status == 0 ? 4 : (status == 1 ? 7 : 4); |
| | | contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus); |
| | | // 生成验收记录 |
| | | TContract contract = contractService.getById(processParameter.getString("projectId")); |
| | | //更新合同结束时间 |
| | | 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()); |