package com.xiaopeng.operation.dto;
|
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
/**
|
* 优先匹配结果对象,包含匹配状态、VIN 和失败原因
|
*/
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class PriorityMatchResult {
|
|
/** 是否匹配成功 */
|
private boolean matched;
|
|
/** 匹配到的 VIN(成功时) */
|
private String vin;
|
|
/** 失败原因(日志记录用) */
|
private String failReason;
|
|
/**
|
* 失败原因枚举
|
*/
|
public enum FailReason {
|
/** 无绑定配置 */
|
NO_BINDING,
|
/** 车辆不存在 */
|
VEHICLE_NOT_FOUND,
|
/** 车辆不可用(运营状态异常、非空闲、测试车等) */
|
VEHICLE_UNAVAILABLE,
|
/** 不在同一电子围栏 */
|
WRONG_AREA,
|
/** 车辆正在执行任务 */
|
VEHICLE_BUSY
|
}
|
|
/**
|
* 创建匹配成功结果
|
*
|
* @param vin 匹配到的车辆 VIN
|
* @return 匹配成功的 PriorityMatchResult
|
*/
|
public static PriorityMatchResult success(String vin) {
|
return new PriorityMatchResult(true, vin, null);
|
}
|
|
/**
|
* 创建匹配失败结果
|
*
|
* @param failReason 失败原因枚举
|
* @return 匹配失败的 PriorityMatchResult
|
*/
|
public static PriorityMatchResult fail(FailReason failReason) {
|
return new PriorityMatchResult(false, null, failReason.name());
|
}
|
}
|