Pu Zhibing
8 天以前 7a4f9541331bef779a506b38a27ed5c3373c0bec
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;
@@ -85,6 +86,9 @@
      query.setLicensePlate(order.getPlate());
      query.setStatus(1);
      TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
      if(null == parkingRecord){
         return;
      }
      TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
      LocalDateTime parse = LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ISO_DATE_TIME);
      parse = parse.plusHours(8);
@@ -98,30 +102,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 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);
            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);
@@ -170,9 +177,8 @@
      query.setLicensePlate(order.getPlatenumber());
      query.setStatus(1);
      TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
      LocalDateTime parse = LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ISO_DATE_TIME);
      parse = parse.plusHours(8);
      parkingRecord.setOutParkingTime(parse);
      TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
      parkingRecord.setOutParkingTime(LocalDateTime.now());
      parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
      parkingRecord.setOrderAmount(new BigDecimal(order.getMoney()));
      parkingRecord.setPayment(new BigDecimal(order.getMoney()));
@@ -181,15 +187,36 @@
      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());
            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);
   }