无关风月
2025-02-13 7d570190a1746c409d6f43a61503e9fa10d39748
生成合同导出
1个文件已修改
31 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -59,6 +59,8 @@
                    // 预期x天后的违约金
                    BigDecimal money = everyDayMoney.multiply(proportion).multiply(new BigDecimal(l));
                    tBill.setPayableFeesPenalty(money);
                    tBill.setOutstandingMoney(money);
                }
            }
            billService.updateBatchById(list);
@@ -148,6 +150,7 @@
                    originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                            .multiply(new BigDecimal(originalDays));
                    rentBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                    rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());
                    if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){
                        rentBill.setEndTime(contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12));
                    }else{
@@ -162,6 +165,8 @@
                    // 不走递增递减
                    long allDays = ChronoUnit.DAYS.between(contract.getFirstPayTime(), rentBill.getEndTime());
                    rentBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
                    rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());
                }
                // 租金账单
                bills.add(rentBill);
@@ -170,6 +175,8 @@
                depositBill.setContractId(contract.getId());
                depositBill.setContractNumber(contract.getContractNumber());
                depositBill.setPayableFeesMoney(contract.getDeposit());
                depositBill.setOutstandingMoney(depositBill.getPayableFeesMoney());
                depositBill.setPayableFeesTime(firstPayTime);
                depositBill.setPayFeesStatus("1");
                depositBill.setBillType("2");
@@ -255,6 +262,8 @@
                                originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                        .multiply(new BigDecimal(originalDays));
                                tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                            }else{
                                // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌
                                if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){
@@ -298,6 +307,8 @@
                                    originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                            .multiply(new BigDecimal(originalDays));
                                    tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                                }else{
                                    // 不涨租金 用上次的
                                    // 租金递增递减的时长 天
@@ -334,6 +345,8 @@
                                    originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                            .multiply(new BigDecimal(originalDays));
                                    tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                                }
                            }
@@ -341,6 +354,8 @@
                    }else{
                        long allDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), contract.getEndTime());
                        tBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
                        tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                    }
                    tBill.setContractNumber(contract.getContractNumber());
                    if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){
@@ -443,6 +458,8 @@
                                    originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                            .multiply(new BigDecimal(originalDays));
                                    tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                                }else{
                                    // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌
                                    if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){
@@ -486,6 +503,8 @@
                                        originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                                .multiply(new BigDecimal(originalDays));
                                        tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                        tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                                    }else{
                                        // 不涨租金 用上次的
                                        // 租金递增递减的时长 天
@@ -522,6 +541,8 @@
                                        originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                                .multiply(new BigDecimal(originalDays));
                                        tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
                                        tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                                    }
                                }
@@ -531,6 +552,8 @@
                                    beforeBill.getEndTime().plusMonths(1):contract.getPayType().equals("2")?
                                    beforeBill.getEndTime().plusMonths(3):beforeBill.getEndTime().plusMonths(12)).with(TemporalAdjusters.lastDayOfMonth()));
                            tBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
                            tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                        }
                        tBill.setContractNumber(contract.getContractNumber());
                        if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){
@@ -546,13 +569,7 @@
                        tBill.setEndTime(contract.getEndTime());
                        bills.add(tBill);
                    }
                    tBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal("3")));
                    tBill.setPayableFeesTime(LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
                    tBill.setPayFeesStatus("1");
                    tBill.setBillType("1");
                    tBill.setStartTime(beforeBill.getEndTime().plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()));
                    tBill.setEndTime(beforeBill.getEndTime().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()));
                    bills.add(tBill);
                }
            }
            billService.saveBatch(bills);