From 2923193f0e52b0607868d27fe9b9e0a9c8d11b9c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 06 三月 2025 21:00:08 +0800
Subject: [PATCH] 权限

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java |   44 ++++++++++++++++++--------------------------
 1 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
index 73a6b1f..900b49c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
@@ -290,7 +290,7 @@
                         rentBill.setEndTime(rentBill.getStartTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()));
                     }
                 } else {
-                    rentBill.setEndTime(contract.getEndTime());
+                    rentBill.setEndTime(rentBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()));
                 }
                 if (tContractRentType != null && rentBill.getEndTime().isAfter(tContractRentType.getChangeTime())) {
                     long moneyDays = 0;
@@ -365,7 +365,7 @@
                 billService.save(depositBill);
                 // 生成后续账单
                 try {
-                    TBill beforeBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId()).eq(TBill::getBillType, 1).orderByDesc(TBill::getCreateTime)
+                    TBill beforeBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId()).eq(TBill::getBillType, 1).orderByDesc(TBill::getStartTime)
                             .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())) {
@@ -489,16 +489,15 @@
                                 } else {
                                     tBill.setPayableFeesMoney(contract.getChangeRent().multiply(new BigDecimal(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12)));
                                     tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
-
                                 }
-                                tBill.setContractNumber(contract.getContractNumber());
-                                tBill.setPayFeesStatus("1");
-                                tBill.setBillType("1");
-                                tBill.setStartTime(beforeBill.getEndTime().plusDays(1));
-                                tBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()));
-                                billService.save(tBill);
-                                beforeBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()));
                             }
+                            tBill.setContractNumber(contract.getContractNumber());
+                            tBill.setPayFeesStatus("1");
+                            tBill.setBillType("1");
+                            tBill.setStartTime(beforeBill.getEndTime().plusDays(1));
+                            tBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()));
+                            billService.save(tBill);
+                            beforeBill.setEndTime(beforeBill.getEndTime().plusMonths(contract.getPayType().equals("1") ? 1 : contract.getPayType().equals("2") ? 3 : 12).with(TemporalAdjusters.lastDayOfMonth()));
                         }
                     }
                 } catch (Exception e) {
@@ -632,11 +631,14 @@
                                 tBill.setPayableFeesMoney(contract.getChangeRent().divide(new BigDecimal("30"),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(finalDays)));
                                 tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                             }
-
-
                         }
-                        }
-                    tBill.setContractNumber(contract.getContractNumber());
+                    }else{
+                        long finalDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), contract.getEndTime());
+                        tBill.setPayableFeesMoney(contract.getChangeRent().divide(new BigDecimal("30"),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(finalDays)));
+                        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) {
                         tBill.setPayableFeesTime(contract.getEndTime().withHour(0).withMinute(0).withSecond(0).toLocalDate());
                     } else {
@@ -651,16 +653,14 @@
             }
             case CATEGORY3: {
                 // 合同提前终止审批
-                int submitStatus = status == 0 ? 4 : (status == 1 ? 6 : 5);
+                int submitStatus = status == 0 ? 4 : (status == 1 ? 7 : 5);
                 contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus);
                 // 生成验收记录
                 TContract contract = contractService.getById(processParameter.getString("projectId"));
-                contract.setStatus("7");
                 TCheckAcceptRecord tCheckAcceptRecord = new TCheckAcceptRecord();
                 tCheckAcceptRecord.setContractId(contract.getId());
                 tCheckAcceptRecord.setHouseId(contract.getHouseId());
                 tCheckAcceptRecord.setLeaseReason("后台终止合同");
-                tCheckAcceptRecord.setStatus(false);
                 tCheckAcceptRecord.setAcceptanceTime(LocalDateTime.now());
                 LocalDate now = LocalDate.now();
                 String replace = (now + "").replace("-", "");
@@ -668,16 +668,8 @@
                         .likeRight(TCheckAcceptRecord::getAcceptanceTime, LocalDate.now())).size();
                 tCheckAcceptRecord.setCode(replace.substring(2) + String.format("%03d", size + 1));
 
-
                 checkAcceptRecordMapper.insert(tCheckAcceptRecord);
-                // 将所有未缴费账单设置未已失效
-                List<TBill> tBills = billService.list(new LambdaQueryWrapper<TBill>()
-                        .ne(TBill::getPayFeesStatus, 3)
-                        .eq(TBill::getContractId, contract.getId()));
-                for (TBill tBill : tBills) {
-                    tBill.setPayFeesStatus("5");
-                }
-                billService.updateBatchById(tBills);
+
                 break;
             }
             default:

--
Gitblit v1.7.1