93 lines
2.1 KiB
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();
|
|
}
|
|
}
|