VehicleSimulation/src/main/java/com/muyu/web/domain/VehicleInfo.java

93 lines
2.1 KiB
Java

package com.muyu.web.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.web.utils.VehicleUtils;
import com.muyu.vehicle.VehicleInstance;
import com.muyu.vehicle.model.VehicleData;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author DongZeLiang
* @version 1.0
* @description 车辆信息
* @date 2023/11/9
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("vehicle_info")
public class VehicleInfo {
/**
* VIN
*/
@TableId(value = "vin")
private String vin;
/**
* 电池剩余电量
*/
@TableField("remaining_battery")
private BigDecimal remainingBattery;
/**
* 电池电量
*/
@TableField("battery_level")
private BigDecimal batteryLevel;
/**
* 总里程
*/
@TableField("total_mileage")
private BigDecimal totalMileage;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 生成车辆数据
* @return 车辆数据
*/
public static VehicleInfo gen() {
return VehicleInfo.create(VehicleUtils.genVin());
}
/**
* 生成车辆数据
* @return 车辆数据
*/
public static VehicleInfo create(String vin) {
BigDecimal battery = VehicleUtils.genBattery();
return VehicleInfo.builder()
.vin(vin)
.createTime(new Date())
.batteryLevel(battery)
.remainingBattery(battery)
.totalMileage(BigDecimal.ZERO)
.build();
}
public static VehicleInfo instanceBuild (VehicleInstance vehicleInstance) {
VehicleData vehicle = vehicleInstance.getVehicleData();
return VehicleInfo.builder()
.vin(vehicleInstance.getVin())
.remainingBattery(vehicle.getRemainingBattery())
.totalMileage(vehicle.getMileage())
.build();
}
}