From 4c62b64cc158ed07f18ae7060dae71f9d1e3d9fd Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 10 二月 2025 13:57:37 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java |   76 ++++++++++++++++++++++++--------------
 1 files changed, 48 insertions(+), 28 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index 75440f0..f5278a4 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -9,6 +9,7 @@
 import com.ruoyi.chargingPile.api.model.TParkingLot;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
 import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.integration.barrierGate.model.CloudParkingOrder;
 import com.ruoyi.integration.barrierGate.model.CloudParkingSpace;
 import com.ruoyi.integration.barrierGate.model.OfflineParkingOrder;
@@ -98,24 +99,33 @@
 		parkingRecord.setOutParkingType(BigDecimal.ZERO.compareTo(payment) == 0 ? 2 : 1);
 		parkingRecord.setTitle("【停车缴费】" + payment + "元");
 		TAppUserCar appUserCar = appUserCarClient.getAppUserCarByLicensePlate(parkingRecord.getLicensePlate()).getData();
+		TChargingOrder chargingOrder = null;
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 		if(null != appUserCar){
-			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 			List<TChargingOrder> data = chargingOrderClient.getCarChargingOrder(appUserCar.getId(), parkingRecord.getInParkingTime().format(formatter), LocalDateTime.now().format(formatter)).getData();
 			if(null != data && data.size() > 0){
-				TChargingOrder chargingOrder = data.get(0);
-				parkingRecord.setAppUserId(chargingOrder.getAppUserId());
-				parkingRecord.setChargingOrderId(chargingOrder.getId());
-				TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
-				parkingRecord.setPhone(appUser.getPhone());
-				parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
-				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
-				parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
-				
-			}else{
-				parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
-				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
-				parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+				chargingOrder = data.get(0);
 			}
+		}else if(StringUtils.isNotEmpty(parkingRecord.getLicensePlate())){
+			List<TChargingOrder> data = chargingOrderClient.getCarChargingOrderByPlateNum(parkingRecord.getLicensePlate(), parkingRecord.getInParkingTime().format(formatter), LocalDateTime.now().format(formatter)).getData();
+			if(null != data && data.size() > 0){
+				chargingOrder = data.get(0);
+			}
+		}
+		
+		
+		if(null != chargingOrder){
+			parkingRecord.setAppUserId(chargingOrder.getAppUserId());
+			parkingRecord.setChargingOrderId(chargingOrder.getId());
+			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+			parkingRecord.setPhone(appUser.getPhone());
+			parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
+			long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+			parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+		}else{
+			parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
+			long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+			parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
 		}
 		parkingRecord.setFreeAmount(parkingRecord.getOrderAmount().subtract(parkingRecord.getPayment()));
 		parkingRecordClient.updateParkingRecord(parkingRecord);
@@ -174,25 +184,35 @@
 		parkingRecord.setOutParkingType(BigDecimal.ZERO.compareTo(payment) == 0 ? 2 : 1);
 		parkingRecord.setTitle("【停车缴费】" + payment + "元");
 		TAppUserCar appUserCar = appUserCarClient.getAppUserCarByLicensePlate(parkingRecord.getLicensePlate()).getData();
+		TChargingOrder chargingOrder = null;
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 		if(null != appUserCar){
-			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 			List<TChargingOrder> data = chargingOrderClient.getCarChargingOrder(appUserCar.getId(), parkingRecord.getInParkingTime().format(formatter), LocalDateTime.now().format(formatter)).getData();
 			if(null != data && data.size() > 0){
-				TChargingOrder chargingOrder = data.get(0);
-				parkingRecord.setAppUserId(chargingOrder.getAppUserId());
-				parkingRecord.setChargingOrderId(chargingOrder.getId());
-				TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
-				parkingRecord.setPhone(appUser.getPhone());
-				parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
-				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
-				parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
-				
-			}else{
-				parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
-				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
-				parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+				chargingOrder = data.get(0);
+			}
+		}else if(StringUtils.isNotEmpty(parkingRecord.getLicensePlate())){
+			List<TChargingOrder> data = chargingOrderClient.getCarChargingOrderByPlateNum(parkingRecord.getLicensePlate(), parkingRecord.getInParkingTime().format(formatter), LocalDateTime.now().format(formatter)).getData();
+			if(null != data && data.size() > 0){
+				chargingOrder = data.get(0);
 			}
 		}
+		
+		if(null != chargingOrder){
+			parkingRecord.setAppUserId(chargingOrder.getAppUserId());
+			parkingRecord.setChargingOrderId(chargingOrder.getId());
+			TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+			parkingRecord.setPhone(appUser.getPhone());
+			parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
+			long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+			parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+			
+		}else{
+			parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
+			long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+			parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+		}
+		
 		parkingRecord.setFreeAmount(parkingRecord.getOrderAmount().subtract(parkingRecord.getPayment()));
 		parkingRecordClient.updateParkingRecord(parkingRecord);
 	}

--
Gitblit v1.7.1