| | |
| | | long hours = ChronoUnit.HOURS.between(payableFeesTime, now); |
| | | long l = hours / 72; |
| | | if (l>0){ |
| | | // 计算每天租金 |
| | | long days = ChronoUnit.DAYS.between(tBill.getStartTime(),tBill.getEndTime()); |
| | | BigDecimal everyDayMoney = tBill.getPayableFeesMoney().divide(new BigDecimal(days), 2, BigDecimal.ROUND_DOWN); |
| | | // 违约金比例 |
| | | BigDecimal proportion = contract.getProportion(); |
| | | // 预期x天后的违约金 |
| | | BigDecimal money = everyDayMoney.multiply(proportion).multiply(new BigDecimal(l)); |
| | | tBill.setPayableFeesPenalty(money); |
| | | tBill.setOutstandingMoney(money); |
| | | |
| | | // 应缴违约金 |
| | | BigDecimal money = tBill.getOutstandingMoney().multiply(proportion); |
| | | TBill changeBill = new TBill(); |
| | | changeBill.setId(tBill.getId()); |
| | | changeBill.setPayableFeesPenalty(money); |
| | | billService.lockAndUpdateInfo(changeBill,2); |
| | | } |
| | | } |
| | | billService.updateBatchById(list); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |