From b0b9a8f3c2840d25c4cfe336bbefaaa56e11b69f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 13 二月 2025 14:31:51 +0800
Subject: [PATCH] 小程序登录

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java |   42 ++++++++++++++++++++++++++++--------------
 1 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
index 05076e9..023d435 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -51,17 +51,16 @@
                 long hours = ChronoUnit.HOURS.between(payableFeesTime, now);
                 long l = hours / 72;
                 if (l>0){
-                    // 计算每天租金
-                    long days = ChronoUnit.DAYS.between(tBill.getStartTime(),tBill.getEndTime());
-                    BigDecimal everyDayMoney = tBill.getPayableFeesMoney().divide(new BigDecimal(days), 2, BigDecimal.ROUND_DOWN);
                     // 违约金比例
                     BigDecimal proportion = contract.getProportion();
-                    // 预期x天后的违约金
-                    BigDecimal money = everyDayMoney.multiply(proportion).multiply(new BigDecimal(l));
-                    tBill.setPayableFeesPenalty(money);
+                    // 应缴违约金
+                    BigDecimal money = tBill.getOutstandingMoney().multiply(proportion);
+                    TBill changeBill = new TBill();
+                    changeBill.setId(tBill.getId());
+                    changeBill.setPayableFeesPenalty(money);
+                    billService.lockAndUpdateInfo(changeBill,2);
                 }
             }
-            billService.updateBatchById(list);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -148,6 +147,7 @@
                     originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                             .multiply(new BigDecimal(originalDays));
                     rentBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                    rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());
                     if (contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12).isAfter(contract.getEndTime())){
                         rentBill.setEndTime(contract.getFirstPayTime().plusMonths(contract.getPayType().equals("1")? 1:contract.getPayType().equals("2")? 3:12));
                     }else{
@@ -162,6 +162,8 @@
                     // 不走递增递减
                     long allDays = ChronoUnit.DAYS.between(contract.getFirstPayTime(), rentBill.getEndTime());
                     rentBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
+                    rentBill.setOutstandingMoney(rentBill.getPayableFeesMoney());
+
                 }
                 // 租金账单
                 bills.add(rentBill);
@@ -170,6 +172,8 @@
                 depositBill.setContractId(contract.getId());
                 depositBill.setContractNumber(contract.getContractNumber());
                 depositBill.setPayableFeesMoney(contract.getDeposit());
+                depositBill.setOutstandingMoney(depositBill.getPayableFeesMoney());
+
                 depositBill.setPayableFeesTime(firstPayTime);
                 depositBill.setPayFeesStatus("1");
                 depositBill.setBillType("2");
@@ -255,6 +259,8 @@
                                 originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                         .multiply(new BigDecimal(originalDays));
                                 tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                             }else{
                                 // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌
                                 if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){
@@ -298,6 +304,8 @@
                                     originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                             .multiply(new BigDecimal(originalDays));
                                     tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                                 }else{
                                     // 不涨租金 用上次的
                                     // 租金递增递减的时长 天
@@ -334,6 +342,8 @@
                                     originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                             .multiply(new BigDecimal(originalDays));
                                     tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                                 }
                             }
 
@@ -341,6 +351,8 @@
                     }else{
                         long allDays = ChronoUnit.DAYS.between(beforeBill.getEndTime(), contract.getEndTime());
                         tBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
+                        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){
@@ -443,6 +455,8 @@
                                     originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                             .multiply(new BigDecimal(originalDays));
                                     tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                    tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                                 }else{
                                     // 之前已经涨、跌过租金了 需要判断周期是否还需要再涨、跌
                                     if ((LocalDateTime.now().getYear() - contract.getChangeTime().getYear())%tContractRentType.getCycleTime()==0){
@@ -486,6 +500,8 @@
                                         originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                                 .multiply(new BigDecimal(originalDays));
                                         tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                        tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                                     }else{
                                         // 不涨租金 用上次的
                                         // 租金递增递减的时长 天
@@ -522,6 +538,8 @@
                                         originalMoney=originalMoney.add(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN))
                                                 .multiply(new BigDecimal(originalDays));
                                         tBill.setPayableFeesMoney(contractRentTypeMoney.add(originalMoney));
+                                        tBill.setOutstandingMoney(tBill.getPayableFeesMoney());
+
                                     }
                                 }
 
@@ -531,6 +549,8 @@
                                     beforeBill.getEndTime().plusMonths(1):contract.getPayType().equals("2")?
                                     beforeBill.getEndTime().plusMonths(3):beforeBill.getEndTime().plusMonths(12)).with(TemporalAdjusters.lastDayOfMonth()));
                             tBill.setPayableFeesMoney(contract.getMonthRent().divide(new BigDecimal(30), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(allDays)));
+                            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){
@@ -546,13 +566,7 @@
                         tBill.setEndTime(contract.getEndTime());
                         bills.add(tBill);
                     }
-                    tBill.setPayableFeesMoney(contract.getMonthRent().multiply(new BigDecimal("3")));
-                    tBill.setPayableFeesTime(LocalDateTime.now().withHour(0).withMinute(0).withSecond(0));
-                    tBill.setPayFeesStatus("1");
-                    tBill.setBillType("1");
-                    tBill.setStartTime(beforeBill.getEndTime().plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()));
-                    tBill.setEndTime(beforeBill.getEndTime().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth()));
-                    bills.add(tBill);
+
                 }
             }
             billService.saveBatch(bills);

--
Gitblit v1.7.1