package com.mes.interaction.vehicle.model;
|
|
import lombok.Data;
|
import java.time.LocalDateTime;
|
|
/**
|
* 车辆任务信息
|
*
|
* @author mes
|
* @since 2025-01-XX
|
*/
|
@Data
|
public class VehicleTask {
|
/**
|
* 任务ID
|
*/
|
private String taskId;
|
|
/**
|
* 任务名称
|
*/
|
private String taskName;
|
|
/**
|
* 操作类型(如:feedGlass, triggerRequest等)
|
*/
|
private String operation;
|
|
/**
|
* 计划路径
|
*/
|
private VehiclePath plannedPath;
|
|
/**
|
* 任务开始时间
|
*/
|
private LocalDateTime startTime;
|
|
/**
|
* 预计结束时间
|
*/
|
private LocalDateTime estimatedEndTime;
|
|
/**
|
* 车辆速度(用于计算预计结束时间)
|
*/
|
private Double speed;
|
|
/**
|
* 任务参数
|
*/
|
private java.util.Map<String, Object> parameters;
|
|
public VehicleTask() {
|
this.parameters = new java.util.HashMap<>();
|
}
|
|
/**
|
* 计算预计结束时间
|
*/
|
public void calculateEstimatedEndTime() {
|
if (plannedPath == null || speed == null || speed <= 0) {
|
return;
|
}
|
|
VehiclePosition start = plannedPath.getStartPosition();
|
VehiclePosition end = plannedPath.getEndPosition();
|
|
if (start != null && end != null) {
|
double distance = start.distanceTo(end);
|
if (distance > 0) {
|
// 时间 = 距离 / 速度(秒)
|
long seconds = (long) (distance / speed);
|
estimatedEndTime = startTime != null ?
|
startTime.plusSeconds(seconds) :
|
LocalDateTime.now().plusSeconds(seconds);
|
}
|
}
|
}
|
}
|