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(); } }