package com.zy.core.move; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data public class StationMoveSession { public static final String STATUS_WAITING = "WAITING"; public static final String STATUS_RUNNING = "RUNNING"; public static final String STATUS_CANCEL_PENDING = "CANCEL_PENDING"; public static final String STATUS_CANCELLED = "CANCELLED"; public static final String STATUS_BLOCKED = "BLOCKED"; public static final String STATUS_TIMEOUT = "TIMEOUT"; public static final String STATUS_FINISHED = "FINISHED"; private Integer taskNo; private Integer routeVersion; private String threadImpl; private Integer currentStationId; private StationMoveTriggerType triggerType; private StationMoveDispatchMode dispatchMode; private String status; private Integer dispatchStationId; private Integer businessTargetStationId; private Integer currentRouteTargetStationId; private Integer nextDecisionStationId; private List fullPathStationIds = new ArrayList<>(); private String pathSignature; private String cancelReason; private Long createdAt; private Long updatedAt; private Long lastIssuedAt; public boolean isActive() { return STATUS_WAITING.equals(status) || STATUS_RUNNING.equals(status) || STATUS_CANCEL_PENDING.equals(status); } public boolean containsStation(Integer stationId) { return stationId != null && fullPathStationIds != null && fullPathStationIds.contains(stationId); } }