From ff79113ad56c647ec58654a0812c3e4019a81b4c Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 24 三月 2025 16:02:30 +0800
Subject: [PATCH] 营业部基础代码

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java |   36 ++++++++++++++++++++++++++----------
 1 files changed, 26 insertions(+), 10 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 b2e6c81..94a394a 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
@@ -28,17 +28,23 @@
 import com.google.common.collect.ImmutableMap;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.enums.ProcessCategoryEnum;
-import com.ruoyi.common.enums.SubmitStatusEnum;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.system.mapper.TCheckAcceptRecordMapper;
-import com.ruoyi.system.model.*;
-import com.ruoyi.system.service.*;
+import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.model.TCheckAcceptRecord;
+import com.ruoyi.system.model.TContract;
+import com.ruoyi.system.model.TContractRentType;
+import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.TBillService;
+import com.ruoyi.system.service.TContractRentTypeService;
+import com.ruoyi.system.service.TContractService;
+import com.ruoyi.system.service.THouseService;
 import com.ruoyi.system.task.base.QuartzManager;
 import com.ruoyi.system.task.base.TimeJobType;
 import com.ruoyi.system.task.jobs.StateProcessJob;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
@@ -46,7 +52,11 @@
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAdjusters;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
@@ -948,15 +958,15 @@
                             // 不需要涨租金的时间段
                             long originalDays = 0;
                             if (tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).isBefore(tBill.getEndTime())){
-                                originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth())));
+                                originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth())))+1;
                             }else{
-                                originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime()));
+                                originalDays = Math.abs(ChronoUnit.DAYS.between(tBill.getStartTime(), tBill.getEndTime()))+1;
                             }
                             originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(originalDays)));
                             LocalDateTime originalTime = tBill.getStartTime().with(TemporalAdjusters.lastDayOfMonth()).plusDays(1);
                             while(true){
                                 if (originalTime.isBefore(tBill.getEndTime())){
-                                    if (originalTime.plusMonths(1).isBefore(tContractRentType.getChangeTime())){
+                                    if (originalTime.plusMonths(1).isBefore(tBill.getEndTime())){
                                         originalMoney = originalMoney.add(contract.getChangeRent());
                                         originalTime = originalTime.plusMonths(1);
                                     }else {
@@ -966,8 +976,10 @@
                                     break;
                                 }
                             }
-                            long tempOriginal  = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime());
-                            originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(tempOriginal)));
+                            if (originalTime.isBefore(tBill.getEndTime())){
+                                long tempOriginal  = ChronoUnit.DAYS.between(originalTime,tBill.getEndTime());
+                                originalMoney = originalMoney.add(contract.getChangeRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(tempOriginal)));
+                            }
                             tBill.setPayableFeesMoney(originalMoney);
                             tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
                         }
@@ -990,6 +1002,10 @@
                 contractService.updateContractAuditStatus(processParameter.getString("projectId"), submitStatus);
                 // 生成验收记录
                 TContract contract = contractService.getById(processParameter.getString("projectId"));
+                //更新合同结束时间
+                contract.setEndTime(contract.getTerminateTime());
+                contractService.updateById(contract);
+
                 TCheckAcceptRecord tCheckAcceptRecord = new TCheckAcceptRecord();
                 tCheckAcceptRecord.setContractId(contract.getId());
                 tCheckAcceptRecord.setHouseId(contract.getHouseId());

--
Gitblit v1.7.1