无关风月
2025-03-06 835e495a985e7ab0f9f3a1a3882255280f1b8f04
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())) {
@@ -491,14 +491,15 @@
                                    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) {
@@ -651,16 +652,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 +667,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: