chore: 【ops】工单队列状态调整

This commit is contained in:
lzh
2026-01-08 15:12:59 +08:00
parent e4fa971fea
commit 97f30356d8

View File

@@ -9,46 +9,45 @@ import java.util.Arrays;
/**
* 工单队列状态枚举
*
* 队列状态职责:仅管理派单相关状态,不管理工单执行状态
* - 派单流程WAITING → DISPATCHED
* - 异常流程:WAITING/DISPATCHED → FAILED/PAUSED/CANCELLED
* - 完成流程DISPATCHED → COMPLETED
* 队列状态职责:管理工单在队列中的生命周期
* - 正常流程WAITING → PROCESSING → REMOVED
* - 中断流程:PROCESSING → PAUSED → PROCESSING → REMOVED
*
* 状态映射关系:
* - WAITING: 工单状态 QUEUED等待派单
* - PROCESSING: 工单状态 DISPATCHED/CONFIRMED/ARRIVED处理中
* - PAUSED: 工单状态 PAUSED已暂停
* - REMOVED: 工单状态 COMPLETED/CANCELLED已移除
*
* @author lzh
*/
@AllArgsConstructor
@Getter
public enum OrderQueueStatusEnum implements ArrayValuable<String> {
/**
* 等待派单 - 工单已进入队列,等待派单引擎分配
* 对应工单状态: QUEUED
*/
WAITING("waiting", "等待派单"),
WAITING("waiting", "等待"),
/**
* 已派单 - 已分配给执行人员,等待接单
* 处理中 - 任务已下发,正在处理(包括:已下发、已确认、已到岗)
* 对应工单状态: DISPATCHED / CONFIRMED / ARRIVED
*/
DISPATCHED("dispatched", "已派单"),
PROCESSING("processing", "处理中"),
/**
* 暂停中 - 任务暂停(如保洁员临时离线、P0任务打断等)
* 暂停中 - 任务暂停(如P0任务打断、保洁员临时离线等)
* 对应工单状态: PAUSED
*/
PAUSED("paused", "暂停中"),
/**
* 已完成 - 任务已完成
* 已移除 - 任务已完成或已取消
* 对应工单状态: COMPLETED / CANCELLED
*/
COMPLETED("completed", "完成"),
/**
* 已取消 - 工单已取消
*/
CANCELLED("cancelled", "已取消"),
/**
* 派单失败 - 派单失败,可重试
*/
FAILED("failed", "派单失败");
REMOVED("removed", "移除");
public static final String[] ARRAYS = Arrays.stream(values()).map(OrderQueueStatusEnum::getStatus).toArray(String[]::new);
@@ -74,6 +73,20 @@ public enum OrderQueueStatusEnum implements ArrayValuable<String> {
* @return 枚举实例未找到返回WAITING
*/
public static OrderQueueStatusEnum fromStatus(String status) {
if (status == null) {
return WAITING;
}
// 兼容旧状态值
switch (status) {
case "dispatched":
return PROCESSING;
case "completed":
return REMOVED;
default:
break;
}
return Arrays.stream(values())
.filter(e -> e.getStatus().equals(status))
.findFirst()
@@ -86,21 +99,21 @@ public enum OrderQueueStatusEnum implements ArrayValuable<String> {
* 判断是否为终态(不可变更)
*/
public boolean isTerminal() {
return this == COMPLETED || this == CANCELLED || this == FAILED;
return this == REMOVED;
}
/**
* 判断是否可以取消
*/
public boolean canCancel() {
return this == WAITING || this == DISPATCHED;
return this == WAITING || this == PROCESSING;
}
/**
* 判断是否正在处理中(已派单或暂停)
* 判断是否正在处理中
*/
public boolean isProcessing() {
return this == DISPATCHED || this == PAUSED;
return this == PROCESSING;
}
/**
@@ -109,4 +122,18 @@ public enum OrderQueueStatusEnum implements ArrayValuable<String> {
public boolean canAssign() {
return this == WAITING;
}
/**
* 判断是否可以恢复(从暂停状态恢复)
*/
public boolean canResume() {
return this == PAUSED;
}
/**
* 判断是否为暂停状态
*/
public boolean isPaused() {
return this == PAUSED;
}
}