package com.ruoyi.integration.barrierGate.server;
|
|
import com.ruoyi.account.api.feignClient.AppUserCarClient;
|
import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
|
import com.ruoyi.chargingPile.api.feignClient.ParkingRecordClient;
|
import com.ruoyi.chargingPile.api.model.TParkingLot;
|
import com.ruoyi.chargingPile.api.model.TParkingRecord;
|
import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
|
import com.ruoyi.integration.barrierGate.model.CloudParkingOrder;
|
import com.ruoyi.integration.barrierGate.model.CloudParkingSpace;
|
import com.ruoyi.integration.barrierGate.model.OfflineParkingOrder;
|
import com.ruoyi.integration.barrierGate.model.OfflineParkingSpace;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.Date;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2024/9/5 16:15
|
*/
|
@Service
|
public class ParkingOrderService {
|
|
@Resource
|
private ParkingRecordClient parkingRecordClient;
|
|
@Resource
|
private AppUserCarClient appUserCarClient;
|
|
@Resource
|
private ParkingLotClient parkingLotClient;
|
|
|
|
|
|
/**
|
* 云停车入场记录
|
* @param order
|
*/
|
public void cloudParkingInOrder(CloudParkingOrder order) {
|
TParkingRecord parkingRecord = new TParkingRecord();
|
parkingRecord.setLicensePlate(order.getPlate());
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
String code = "TC" + Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date());
|
parkingRecord.setCode(code);
|
parkingRecord.setVehicleColor(order.getPlateColor());
|
TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
|
parkingRecord.setName(data.getName());
|
parkingRecord.setParkingLotId(data.getId());
|
parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
parkingRecord.setStatus(1);
|
parkingRecord.setCreateTime(LocalDateTime.now());
|
parkingRecord.setSerialnumber(order.getId());
|
parkingRecordClient.addParkingRecord(parkingRecord);
|
}
|
|
|
/**
|
* 云停车出场记录
|
* @param order
|
*/
|
public void cloudParkingOutOrder(CloudParkingOrder order) {
|
GetParkingRecord query = new GetParkingRecord();
|
query.setLicensePlate(order.getPlate());
|
query.setStatus(1);
|
TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
|
parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeaveDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
|
parkingRecord.setOrderAmount(new BigDecimal(order.getReceivable()));
|
parkingRecord.setPayment(new BigDecimal(order.getPayment()));
|
parkingRecord.setPayType(order.getPayType());
|
BigDecimal payment = new BigDecimal(order.getPayment());
|
parkingRecord.setStatus(BigDecimal.ZERO.compareTo(payment) == 0 ? 2 : 3);
|
parkingRecordClient.updateParkingRecord(parkingRecord);
|
}
|
|
|
/**
|
* 云停车实时车位
|
* @param parkingSpace
|
*/
|
public void cloudParkingSpace(CloudParkingSpace parkingSpace){
|
|
}
|
|
|
/**
|
* 线下停车场入场记录
|
* @param order
|
*/
|
public void offlineParkingInOrder(OfflineParkingOrder order) {
|
TParkingRecord parkingRecord = new TParkingRecord();
|
parkingRecord.setLicensePlate(order.getPlatenumber());
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
String code = "TC" + Double.valueOf(Math.random() * 1000).intValue() + sdf.format(new Date());
|
parkingRecord.setCode(code);
|
parkingRecord.setVehicleColor(order.getPlatecolor());
|
TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
|
parkingRecord.setName(data.getName());
|
parkingRecord.setParkingLotId(data.getId());
|
parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
parkingRecord.setStatus(1);
|
parkingRecord.setCreateTime(LocalDateTime.now());
|
parkingRecord.setSerialnumber(order.getId());
|
parkingRecordClient.addParkingRecord(parkingRecord);
|
}
|
|
|
/**
|
* 线下停车场出场记录
|
* @param order
|
*/
|
public void offlineParkingOutOrder(OfflineParkingOrder order) {
|
GetParkingRecord query = new GetParkingRecord();
|
query.setLicensePlate(order.getPlatenumber());
|
query.setStatus(1);
|
TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
|
parkingRecord.setOutParkingTime(LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
|
parkingRecord.setOrderAmount(new BigDecimal(order.getMoney()));
|
parkingRecord.setPayment(new BigDecimal(order.getMoney()));
|
parkingRecordClient.updateParkingRecord(parkingRecord);
|
}
|
|
|
/**
|
* 线下停车场实时车位
|
* @param parkingSpace
|
*/
|
public void offlineParkingSpace(OfflineParkingSpace parkingSpace){
|
|
}
|
}
|