Pu Zhibing
2024-11-05 63f7a9310dd1649b7ae2bc680a37ac73536be64c
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -1,6 +1,8 @@
package com.ruoyi.integration.barrierGate.server;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserCar;
import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
import com.ruoyi.chargingPile.api.feignClient.ParkingRecordClient;
@@ -19,6 +21,7 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
@@ -41,6 +44,9 @@
   
   @Resource
   private ChargingOrderClient chargingOrderClient;
   @Resource
   private AppUserClient appUserClient;
   
   
   
@@ -79,6 +85,7 @@
      query.setLicensePlate(order.getPlate());
      query.setStatus(1);
      TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
      TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
      LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ISO_DATE_TIME);
      parse = parse.plusHours(8);
      parkingRecord.setOutParkingTime(parse);
@@ -98,8 +105,25 @@
            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 out = parkingRecord.getOutParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
            long in = parkingRecord.getInParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
            long m = (out - in) / 60;
            parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
         }else{
            parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
            //超时占位费
            long out = parkingRecord.getOutParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
            long in = parkingRecord.getInParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
            long m = (out - in) / 60;
            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);
   }