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 |   35 ++++++++++++++++-------------------
 1 files changed, 16 insertions(+), 19 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 3512e5e..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
@@ -83,16 +83,12 @@
 
         List<TBill> bills = new ArrayList<>();
         List<TContractRentType> contractRentTypes = contractRentTypeService.list();
-            contract.setFirstPayTime(contract.getStartTime().plusDays(10));
-            // 第一次应缴费日期
-            LocalDateTime firstPayTime = contract.getStartTime().plusDays(10).withHour(0).withMinute(0).withSecond(0);
-            LocalDate localDate = contract.getStartTime().plusDays(10).toLocalDate();
-            LocalDate now = LocalDate.now();
-            TBill rentBill = new TBill();
-            rentBill.setContractId(contract.getId());
-            rentBill.setContractNumber(contract.getContractNumber());
-            LocalDateTime startPayTime = contract.getStartPayTime();
-            LocalDateTime endTime1 = contract.getEndTime();
+        contract.setFirstPayTime(contract.getStartTime().plusDays(10));
+        // 第一次应缴费日期
+        LocalDateTime firstPayTime = contract.getStartTime().plusDays(10).withHour(0).withMinute(0).withSecond(0);
+        TBill rentBill = new TBill();
+        rentBill.setContractId(contract.getId());
+        rentBill.setContractNumber(contract.getContractNumber());
 //                // 计算两个时间相差多少天
 //                // 如果时间小于30天 需要计算每日租金
 //                if (days<30){
@@ -101,11 +97,11 @@
 //                    rentBill.setPayableFeesMoney(contract.getPayType().equals("1")?contract.getMonthRent():
 //                            contract.getPayType().equals("2")?contract.getMonthRent().multiply(new BigDecimal("3")):contract.getMonthRent().multiply(new BigDecimal("12")).setScale(2,BigDecimal.ROUND_DOWN));
 //                }
-            rentBill.setPayableFeesTime(firstPayTime);
-            rentBill.setPayFeesStatus("1");
-            rentBill.setBillType("1");
-            rentBill.setStartTime(contract.getStartPayTime());
-            TContractRentType tContractRentType = contractRentTypes.stream().filter(e -> e.getContractId().equals(contract.getId())).findFirst().orElse(null);
+        rentBill.setPayableFeesTime(firstPayTime);
+        rentBill.setPayFeesStatus("1");
+        rentBill.setBillType("1");
+        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())){
                 // 计算租金变动的天数
@@ -120,12 +116,12 @@
                     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))));
+                                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))));
+                                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;
@@ -195,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