wlzboy
2025-11-01 82d6b98f5b6b88e223259547208ab59829ad723e
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTask.java
@@ -111,6 +111,9 @@
    /** 删除标志(0代表存在 2代表删除) */
    private String delFlag;
    /** 旧系统同步标记:0-未同步,1-已同步 */
    private Integer legacySynced;
    /** 关联车辆列表 */
    private List<SysTaskVehicle> assignedVehicles;
@@ -119,6 +122,12 @@
    /** 操作日志列表 */
    private List<SysTaskLog> operationLogs;
    /** 急救转运扩展信息 */
    private SysTaskEmergency emergencyInfo;
    /** 福祉车扩展信息 */
    private SysTaskWelfare welfareInfo;
    public void setTaskId(Long taskId) {
        this.taskId = taskId;
@@ -304,6 +313,14 @@
        return delFlag;
    }
    public void setLegacySynced(Integer legacySynced) {
        this.legacySynced = legacySynced;
    }
    public Integer getLegacySynced() {
        return legacySynced;
    }
    public void setAssignedVehicles(List<SysTaskVehicle> assignedVehicles) {
        this.assignedVehicles = assignedVehicles;
    }
@@ -328,6 +345,22 @@
        return operationLogs;
    }
    public void setEmergencyInfo(SysTaskEmergency emergencyInfo) {
        this.emergencyInfo = emergencyInfo;
    }
    public SysTaskEmergency getEmergencyInfo() {
        return emergencyInfo;
    }
    public void setWelfareInfo(SysTaskWelfare welfareInfo) {
        this.welfareInfo = welfareInfo;
    }
    public SysTaskWelfare getWelfareInfo() {
        return welfareInfo;
    }
    /**
     * 判断是否可以变更状态
     */
@@ -340,11 +373,23 @@
        // 状态流转规则
        switch (currentStatus) {
            case PENDING:
                return newStatus == TaskStatus.IN_PROGRESS || newStatus == TaskStatus.CANCELLED;
                // 待处理 -> 出发中、已取消
                return newStatus == TaskStatus.DEPARTING || newStatus == TaskStatus.CANCELLED;
            case DEPARTING:
                // 出发中 -> 已到达、已取消
                return newStatus == TaskStatus.ARRIVED || newStatus == TaskStatus.CANCELLED;
            case ARRIVED:
                // 已到达 -> 返程中
                return newStatus == TaskStatus.RETURNING;
            case RETURNING:
                // 返程中 -> 已完成
                return newStatus == TaskStatus.COMPLETED;
            case IN_PROGRESS:
                // 兼容旧数据:任务中 -> 已完成、已取消、待处理
                return newStatus == TaskStatus.COMPLETED || newStatus == TaskStatus.CANCELLED || newStatus == TaskStatus.PENDING;
            case COMPLETED:
            case CANCELLED:
                // 已完成、已取消 -> 不允许任何状态变更
                return false;
            default:
                return false;
@@ -426,4 +471,4 @@
                ", deptName='" + deptName + '\'' +
                '}';
    }
}
}