From b2be113822cad796a1489b7fc52de2cb4042b57c Mon Sep 17 00:00:00 2001
From: zhangmei <645025773@qq.com>
Date: 星期二, 18 二月 2025 12:54:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xizang-changyun' into xizang-changyun

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java
index 659effc..387581d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java
@@ -150,7 +150,7 @@
         TBill rentBill = new TBill();
         rentBill.setContractId(contract.getId());
         rentBill.setContractNumber(contract.getContractNumber());
-        rentBill.setPayableFeesTime(firstPayTime);
+        rentBill.setPayableFeesTime(firstPayTime.toLocalDate());
         if (firstPayTime.toLocalDate().equals(LocalDate.now())){
             rentBill.setPayFeesStatus("1");
         }else {
@@ -224,8 +224,9 @@
         depositBill.setContractNumber(contract.getContractNumber());
         depositBill.setPayableFeesMoney(contract.getDeposit());
         depositBill.setOutstandingMoney(depositBill.getPayableFeesMoney());
-
-        depositBill.setPayableFeesTime(firstPayTime);
+        depositBill.setStartTime(contract.getStartPayTime());
+        depositBill.setEndTime(contract.getEndTime());
+        depositBill.setPayableFeesTime(firstPayTime.toLocalDate());
         if (firstPayTime.toLocalDate().equals(LocalDate.now())){
             depositBill.setPayFeesStatus("1");
 
@@ -241,8 +242,10 @@
         try {
             TBill beforeBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId()).eq(TBill::getBillType, 1).orderByDesc(TBill::getCreateTime)
                     .last("limit 1").one();
+            if (!beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate())){
+
+
             while(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isBefore(contract.getEndTime())){
-                if (beforeBill.getEndTime().toLocalDate().equals(contract.getEndTime().toLocalDate()))break;
 
                     TBill tBill = new TBill();
                     tBill.setContractId(contract.getId());
@@ -407,11 +410,11 @@
                         }
                         tBill.setContractNumber(contract.getContractNumber());
                         if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){
-                            tBill.setPayableFeesTime(contract.getEndTime());
+                            tBill.setPayableFeesTime(contract.getEndTime().toLocalDate());
                         }else{
                             tBill.setPayableFeesTime((contract.getPayType().equals("1")?
-                                    beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15):contract.getPayType().equals("2")?
-                                    beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15):beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12)));
+                                    beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate():contract.getPayType().equals("2")?
+                                    beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate():beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).toLocalDate()));
                         }
                         tBill.setPayFeesStatus("2");
                         tBill.setBillType("1");
@@ -420,6 +423,8 @@
                     }
                     billMapper.insert(tBill);
                 }
+            }
+
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -592,11 +597,11 @@
             }
             tBill.setContractNumber(contract.getContractNumber());
             if (beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).getDayOfMonth()<=15){
-                tBill.setPayableFeesTime(contract.getEndTime().withHour(0).withMinute(0).withSecond(0));
+                tBill.setPayableFeesTime(contract.getEndTime().withHour(0).withMinute(0).withSecond(0).toLocalDate());
             }else{
                 tBill.setPayableFeesTime((contract.getPayType().equals("1")?
-                        beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15):contract.getPayType().equals("2")?
-                        beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15):beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).withHour(0).withMinute(0).withSecond(0)));
+                        beforeBill.getEndTime().plusMonths(1).withDayOfMonth(15).toLocalDate():contract.getPayType().equals("2")?
+                        beforeBill.getEndTime().plusMonths(3).withDayOfMonth(15).toLocalDate():beforeBill.getEndTime().withDayOfMonth(15).plusMonths(12).withHour(0).withMinute(0).withSecond(0).toLocalDate()));
             }
             tBill.setPayFeesStatus("1");
             tBill.setBillType("1");

--
Gitblit v1.7.1