wlzboy
2025-10-18 b46065a201c09ce69f111806f2bda4a5f476bc4e
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTask.java
@@ -120,6 +120,12 @@
    /** 操作日志列表 */
    private List<SysTaskLog> operationLogs;
    /** 急救转运扩展信息 */
    private SysTaskEmergency emergencyInfo;
    /** 福祉车扩展信息 */
    private SysTaskWelfare welfareInfo;
    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }
@@ -328,6 +334,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 +362,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 +460,4 @@
                ", deptName='" + deptName + '\'' +
                '}';
    }
}
}