| 
					
				 | 
			
			
				@@ -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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |