From 5e2ffa1a9cb4edf29f88de2b05ada32381d42fea Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 13 二月 2025 14:33:41 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/xiaochen991015/xizang

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java |  135 ++++++++++++++++++++++----------------------
 1 files changed, 68 insertions(+), 67 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index 4beb6b2..a341a2a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -103,77 +103,77 @@
         rentBill.setStartTime(contract.getStartPayTime());
         TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
 
-        if (tContractRentType!=null && contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(tContractRentType.getChangeTime())){
-            // 计算租金变动的天数
-            long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))+1L;
-            contract.setChangeTime(LocalDateTime.now());
-            // 递增递减的租金
-            BigDecimal contractRentTypeMoney = new BigDecimal("0");
-            // 不递增递减的租金
-            BigDecimal originalMoney = new BigDecimal("0");
-            // 原租金
-            switch (tContractRentType.getIncreasingDecreasingType()){
-                case 1:
-                    switch (tContractRentType.getIncreasingDecreasing()){
-                        case 1:
-                            contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN)).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)));
-                            contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN))));
-                            break;
-                        case 2:
-                            contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).subtract(tContractRentType.getNumericalValue()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN)).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)));
-                            contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).subtract(tContractRentType.getNumericalValue()).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN))));
-                            break;
-                    }
-                    break;
-                case 2:
-                    switch (tContractRentType.getIncreasingDecreasing()){
-                        case 1:
-                            contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays));
-                            contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())));
-                            break;
-                        case 2:
-                            contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays));
-                            contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())));
+            if (tContractRentType!=null && contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(tContractRentType.getChangeTime())){
+                // 计算租金变动的天数
+                long moneyDays = ChronoUnit.DAYS.between(tContractRentType.getChangeTime(), contract.getStartPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12))+1L;
+                contract.setChangeTime(LocalDateTime.now());
+                // 递增递减的租金
+                BigDecimal contractRentTypeMoney = new BigDecimal("0");
+                // 不递增递减的租金
+                BigDecimal originalMoney = new BigDecimal("0");
+                // 原租金
+                switch (tContractRentType.getIncreasingDecreasingType()){
+                    case 1:
+                        switch (tContractRentType.getIncreasingDecreasing()){
+                            case 1:
+                                contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)));
+                                contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).add(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN)));
+                                break;
+                            case 2:
+                                contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays)));
+                                contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().multiply(new BigDecimal(100).subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(100),2,BigDecimal.ROUND_DOWN)));
+                                break;
+                        }
+                        break;
+                    case 2:
+                        switch (tContractRentType.getIncreasingDecreasing()){
+                            case 1:
+                                contractRentTypeMoney =contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays));
+                                contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().add(tContractRentType.getNumericalValue())));
+                                break;
+                            case 2:
+                                contractRentTypeMoney = contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())).divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(moneyDays));
+                                contract.setChangeRent(contractRentTypeMoney.add(contract.getChangeRent().subtract(tContractRentType.getNumericalValue())));
 
-                            break;
-                    }
-                    break;
-            }
-            // 不需要涨租金的时间段
-            long originalDays = ChronoUnit.DAYS.between(contract.getFirstPayTime(), tContractRentType.getChangeTime());
-            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));
+                                break;
+                        }
+                        break;
+                }
+                // 不需要涨租金的时间段
+                long originalDays = ChronoUnit.DAYS.between(contract.getFirstPayTime(), tContractRentType.getChangeTime());
+                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{
+                    rentBill.setEndTime(contract.getEndTime());
+                }
             }else{
-                rentBill.setEndTime(contract.getEndTime());
-            }
-        }else{
-            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{
-                rentBill.setEndTime(contract.getEndTime());
-            }
-            // 不走递增递减
-            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());
+                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{
+                    rentBill.setEndTime(contract.getEndTime());
+                }
+                // 不走递增递减
+                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);
-        // 押金账单
-        TBill depositBill = new TBill();
-        depositBill.setContractId(contract.getId());
-        depositBill.setContractNumber(contract.getContractNumber());
-        depositBill.setPayableFeesMoney(contract.getDeposit());
-        depositBill.setOutstandingMoney(depositBill.getPayableFeesMoney());
+            }
+            // 租金账单
+            bills.add(rentBill);
+            // 押金账单
+            TBill depositBill = new TBill();
+            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");
+            depositBill.setPayableFeesTime(firstPayTime);
+            depositBill.setPayFeesStatus("1");
+            depositBill.setBillType("2");
         contractService.updateById(contract);
         billService.save(rentBill);
         billService.save(depositBill);
@@ -191,6 +191,7 @@
     @PostMapping(value = "/addContract")
     @PreAuthorize("@ss.hasPermi('system:contract:add')")
     public R<Boolean> addContract(@Validated @RequestBody TContractDTO dto) {
+        dto.setChangeRent(dto.getMonthRent());
         contractService.save(dto);
         if (dto.getIsIncreasing()){
             TContractRentType tContractRentType = new TContractRentType();

--
Gitblit v1.7.1