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.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())); 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.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())); parkingRecordClient.updateParkingRecord(parkingRecord); } /** * 线下停车场实时车位 * @param parkingSpace */ public void offlineParkingSpace(OfflineParkingSpace parkingSpace){ } }