chore: 【ops】工单队列状态调整
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user