package com.mes.interaction.vehicle.model; import lombok.Data; import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; /** * 车辆任务信息 * * @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 Map parameters; public VehicleTask() { this.parameters = new 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); } } } }