Browse Source

包租协议计费

loemkie 3 days ago
parent
commit
e5d03c76a1
1 changed files with 37 additions and 1 deletions
  1. 37 1
      src/main/java/com/qmrb/parking/fee/ParkingFeeCalculator.java

+ 37 - 1
src/main/java/com/qmrb/parking/fee/ParkingFeeCalculator.java

@@ -1,5 +1,6 @@
 package com.qmrb.parking.fee;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmrb.system.pojo.entity.ContractPlaceNumberRel;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -218,6 +219,40 @@ public class ParkingFeeCalculator {
     }
 
     /**
+     * 包租协议测试
+     */
+    public static void e3(){
+        // 示例计费规则
+        FeeRule feeRule = new FeeRule();
+        feeRule.freeDurationMinutes = 0;//免费时长
+        feeRule.firstCycleFee = 20.0;//首周期计费金额
+        feeRule.firstCycleDurationMinutes = 60;//首周期计费时长
+        feeRule.cycleDurationMinutes = 30;//计费周期
+        feeRule.cycleFee = 2;//每周期计费金额
+        feeRule.dailyCapFee = 30;//24小时封顶费用
+        feeRule.gracePeriodMinutes = 15;// 离场时长宽容度(分钟)
+
+        // 示例停车记录
+        ParkingRecord parkingRecord = new ParkingRecord();
+        parkingRecord.entryTime = LocalDateTime.of(2025, 3, 28, 14, 0);
+        parkingRecord.exitTime = LocalDateTime.of(2025, 3, 29, 15, 50);
+        parkingRecord.monthlyCardExpiryTime = null;
+        /*parkingRecord.paidAmount = 0.01;//已支付金额
+        parkingRecord.paymentRecords=new ArrayList<>();*/
+        /*PaymentRecord paymentRecord = new PaymentRecord();
+        paymentRecord.paymentTime = LocalDateTime.of(2025, 3, 14, 10, 0);
+        parkingRecord.paymentRecords.add(paymentRecord);*/
+        List<ContractPlaceNumberRel> registrations = new ArrayList<>();
+        ContractPlaceNumberRel placeNumberRel = new ContractPlaceNumberRel();
+        placeNumberRel.setStartTime(DateUtil.parse("2025-03-28 12:00:00"));
+        placeNumberRel.setEndTime(DateUtil.parse(" 2025-03-29 14:00:00"));
+        registrations.add(placeNumberRel);
+        // 计算费用
+        Map<String, Object> result = calculateParkingFee(parkingRecord, feeRule, registrations);
+        System.out.println("停车费用: " + result.toString());
+    }
+
+    /**
      * 设【免费时长】=0;【24小时收费金额】=30元;【首周期计费时长】=60分钟;【首周期计费金额】=20元;【计费周期】=30分钟;【每周期计费金额】=2元
      */
     public static void e1(){
@@ -319,6 +354,7 @@ public class ParkingFeeCalculator {
      */
     public static void main(String[] args) {
 //        e1();
-        e2();
+//        e2();
+        e3();
     }
 }