chore: 【ops】枚举类新增
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 区域类型枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum AreaTypeEnum implements ArrayValuable<String> {
|
||||
|
||||
PARK("PARK", "园区"),
|
||||
BUILDING("BUILDING", "楼栋"),
|
||||
FLOOR("FLOOR", "楼层"),
|
||||
FUNCTION("FUNCTION", "功能区域");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(AreaTypeEnum::getType).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private final String type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 保洁员状态枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum CleanerStatusEnum implements ArrayValuable<String> {
|
||||
|
||||
/**
|
||||
* 空闲 - 可接新单
|
||||
*/
|
||||
IDLE("idle", "空闲", true),
|
||||
|
||||
/**
|
||||
* 忙碌 - 正在执行工单
|
||||
*/
|
||||
BUSY("busy", "忙碌", false),
|
||||
|
||||
/**
|
||||
* 暂停 - 临时离开(如吃饭、休息)
|
||||
*/
|
||||
PAUSED("paused", "暂停", false),
|
||||
|
||||
/**
|
||||
* 离线 - 工牌离线或无心跳
|
||||
*/
|
||||
OFFLINE("offline", "离线", false);
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(CleanerStatusEnum::getCode).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 状态代码
|
||||
*/
|
||||
private final String code;
|
||||
|
||||
/**
|
||||
* 状态描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
/**
|
||||
* 是否可接新单
|
||||
*/
|
||||
private final boolean canAcceptNewOrder;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 兼容旧版本:getStatus() 方法等同于 getCode()
|
||||
*/
|
||||
public String getStatus() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据code获取枚举
|
||||
*
|
||||
* @param code 状态代码
|
||||
* @return 枚举实例,未找到返回OFFLINE
|
||||
*/
|
||||
public static CleanerStatusEnum fromCode(String code) {
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getCode().equals(code))
|
||||
.findFirst()
|
||||
.orElse(OFFLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 派单模式枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum DispatchModeEnum implements ArrayValuable<String> {
|
||||
|
||||
NORMAL("NORMAL", "普通"),
|
||||
SILENT("SILENT", "静默"),
|
||||
URGENT("URGENT", "紧急插队");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(DispatchModeEnum::getMode).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 模式
|
||||
*/
|
||||
private final String mode;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 派单策略枚举
|
||||
* 定义工单派发给执行人员的策略
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum DispatchStrategyEnum implements ArrayValuable<String> {
|
||||
|
||||
/**
|
||||
* 自动派单 - 系统根据规则自动分配
|
||||
* 规则包括:优先级、区域匹配、技能匹配、工作量平衡等
|
||||
*/
|
||||
AUTO("auto", "自动派单"),
|
||||
|
||||
/**
|
||||
* 手动派单 - 管理员手动指定执行人员
|
||||
*/
|
||||
MANUAL("manual", "手动派单"),
|
||||
|
||||
/**
|
||||
* 抢单模式 - 执行人员从工单池中主动抢单
|
||||
*/
|
||||
GRAB("grab", "抢单模式"),
|
||||
|
||||
/**
|
||||
* 区域优先 - 优先分配给该区域的人员
|
||||
*/
|
||||
AREA_PRIORITY("area_priority", "区域优先"),
|
||||
|
||||
/**
|
||||
* 最近距离 - 分配给距离最近的人员(基于地理位置)
|
||||
*/
|
||||
NEAREST("nearest", "最近距离"),
|
||||
|
||||
/**
|
||||
* 技能匹配 - 根据技能标签匹配执行人员
|
||||
*/
|
||||
SKILL_MATCH("skill_match", "技能匹配"),
|
||||
|
||||
/**
|
||||
* 工作量平衡 - 分配给当前工作量最少的人员
|
||||
*/
|
||||
WORKLOAD_BALANCE("workload_balance", "工作量平衡"),
|
||||
|
||||
/**
|
||||
* 轮询分配 - 按顺序轮询分配给可用人员
|
||||
*/
|
||||
ROUND_ROBIN("round_robin", "轮询分配");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(DispatchStrategyEnum::getStrategy).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 策略代码
|
||||
*/
|
||||
private final String strategy;
|
||||
|
||||
/**
|
||||
* 策略描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据strategy获取枚举
|
||||
*
|
||||
* @param strategy 策略代码
|
||||
* @return 枚举实例,未找到返回AUTO
|
||||
*/
|
||||
public static DispatchStrategyEnum fromStrategy(String strategy) {
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getStrategy().equals(strategy))
|
||||
.findFirst()
|
||||
.orElse(AUTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否为自动派单策略
|
||||
*/
|
||||
public boolean isAuto() {
|
||||
return this == AUTO || this == AREA_PRIORITY || this == NEAREST
|
||||
|| this == SKILL_MATCH || this == WORKLOAD_BALANCE || this == ROUND_ROBIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否需要人工干预
|
||||
*/
|
||||
public boolean requireManualIntervention() {
|
||||
return this == MANUAL || this == GRAB;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 事件领域枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum EventDomainEnum implements ArrayValuable<String> {
|
||||
|
||||
RULE("RULE", "规则引擎"),
|
||||
DISPATCH("DISPATCH", "调度"),
|
||||
BADGE("BADGE", "工牌"),
|
||||
BEACON("BEACON", "信标"),
|
||||
SYSTEM("SYSTEM", "系统"),
|
||||
PERFORMANCE("PERFORMANCE", "绩效");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(EventDomainEnum::getDomain).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 领域
|
||||
*/
|
||||
private final String domain;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 功能类型枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum FunctionTypeEnum implements ArrayValuable<String> {
|
||||
|
||||
MALE_TOILET("MALE_TOILET", "男卫"),
|
||||
FEMALE_TOILET("FEMALE_TOILET", "女卫"),
|
||||
PUBLIC("PUBLIC", "公共区"),
|
||||
ELEVATOR("ELEVATOR", "电梯厅"),
|
||||
LOBBY("LOBBY", "大堂"),
|
||||
CORRIDOR("CORRIDOR", "走廊"),
|
||||
STAIRS("STAIRS", "楼梯间");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(FunctionTypeEnum::getType).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private final String type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 操作人类型枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum OperatorTypeEnum implements ArrayValuable<String> {
|
||||
|
||||
SYSTEM("SYSTEM", "系统"),
|
||||
CLEANER("CLEANER", "保洁员"),
|
||||
INSPECTOR("INSPECTOR", "巡检员"),
|
||||
ADMIN("ADMIN", "管理员");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(OperatorTypeEnum::getType).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private final String type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 工单队列状态枚举
|
||||
*
|
||||
* 队列状态职责:仅管理派单相关状态,不管理工单执行状态
|
||||
* - 派单流程:WAITING → DISPATCHED
|
||||
* - 异常流程:WAITING/DISPATCHED → FAILED/PAUSED/CANCELLED
|
||||
* - 完成流程:DISPATCHED → COMPLETED
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum OrderQueueStatusEnum implements ArrayValuable<String> {
|
||||
|
||||
/**
|
||||
* 等待派单 - 工单已进入队列,等待派单引擎分配
|
||||
*/
|
||||
WAITING("waiting", "等待派单"),
|
||||
|
||||
/**
|
||||
* 已派单 - 已分配给执行人员,等待接单
|
||||
*/
|
||||
DISPATCHED("dispatched", "已派单"),
|
||||
|
||||
/**
|
||||
* 暂停中 - 任务暂停(如保洁员临时离线、P0任务打断等)
|
||||
*/
|
||||
PAUSED("paused", "暂停中"),
|
||||
|
||||
/**
|
||||
* 已完成 - 任务已完成
|
||||
*/
|
||||
COMPLETED("completed", "已完成"),
|
||||
|
||||
/**
|
||||
* 已取消 - 工单已取消
|
||||
*/
|
||||
CANCELLED("cancelled", "已取消"),
|
||||
|
||||
/**
|
||||
* 派单失败 - 派单失败,可重试
|
||||
*/
|
||||
FAILED("failed", "派单失败");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(OrderQueueStatusEnum::getStatus).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 状态代码
|
||||
*/
|
||||
private final String status;
|
||||
|
||||
/**
|
||||
* 状态描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据status获取枚举
|
||||
*
|
||||
* @param status 状态代码
|
||||
* @return 枚举实例,未找到返回WAITING
|
||||
*/
|
||||
public static OrderQueueStatusEnum fromStatus(String status) {
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getStatus().equals(status))
|
||||
.findFirst()
|
||||
.orElse(WAITING);
|
||||
}
|
||||
|
||||
// ========== 业务判断方法 ==========
|
||||
|
||||
/**
|
||||
* 判断是否为终态(不可变更)
|
||||
*/
|
||||
public boolean isTerminal() {
|
||||
return this == COMPLETED || this == CANCELLED || this == FAILED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否可以取消
|
||||
*/
|
||||
public boolean canCancel() {
|
||||
return this == WAITING || this == DISPATCHED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否正在处理中(已派单或暂停)
|
||||
*/
|
||||
public boolean isProcessing() {
|
||||
return this == DISPATCHED || this == PAUSED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否可以分配执行人员(派单)
|
||||
*/
|
||||
public boolean canAssign() {
|
||||
return this == WAITING;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 工单优先级枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum PriorityEnum implements ArrayValuable<Integer> {
|
||||
|
||||
/**
|
||||
* P0 - 紧急任务,需要立即处理,可打断当前执行的任务
|
||||
* 场景:溢水、危险品泄漏、严重安全事故等
|
||||
*/
|
||||
P0(0, "P0紧急", 0, true),
|
||||
|
||||
/**
|
||||
* P1 - 高优先级任务,优先处理
|
||||
* 场景:VIP客户投诉、重要访客接待、设备故障影响运营等
|
||||
*/
|
||||
P1(1, "P1重要", 1, false),
|
||||
|
||||
/**
|
||||
* P2 - 中等优先级任务,正常处理
|
||||
* 场景:日常清洁超时、周期性保养等
|
||||
*/
|
||||
P2(2, "P2普通", 2, false),
|
||||
|
||||
/**
|
||||
* P3 - 普通任务,按正常流程处理
|
||||
* 场景:日常巡检、例行清洁等
|
||||
*/
|
||||
P3(3, "P3低优", 3, false);
|
||||
|
||||
public static final Integer[] ARRAYS = Arrays.stream(values()).map(PriorityEnum::getPriority).toArray(Integer[]::new);
|
||||
|
||||
/**
|
||||
* 优先级级别(数字越小优先级越高)
|
||||
*/
|
||||
private final Integer priority;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
/**
|
||||
* 队列排序权重(用于队列排序)
|
||||
*/
|
||||
private final Integer queueOrder;
|
||||
|
||||
/**
|
||||
* 是否可打断当前执行的任务
|
||||
*/
|
||||
private final Boolean canInterrupt;
|
||||
|
||||
@Override
|
||||
public Integer[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据优先级级别获取枚举
|
||||
*
|
||||
* @param priority 优先级级别
|
||||
* @return 枚举实例,未找到返回P3
|
||||
*/
|
||||
public static PriorityEnum fromPriority(Integer priority) {
|
||||
return Arrays.stream(values())
|
||||
.filter(e -> e.getPriority().equals(priority))
|
||||
.findFirst()
|
||||
.orElse(P3);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否为紧急任务(P0)
|
||||
*/
|
||||
public boolean isUrgent() {
|
||||
return this == P0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断优先级是否高于指定优先级
|
||||
*/
|
||||
public boolean higherThan(PriorityEnum other) {
|
||||
return this.priority < other.priority;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 工单来源类型枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum SourceTypeEnum implements ArrayValuable<String> {
|
||||
|
||||
TRAFFIC("TRAFFIC", "系统触发"),
|
||||
INSPECTION("INSPECTION", "巡检发现"),
|
||||
MANUAL("MANUAL", "手动创建"),
|
||||
SCHEDULE("SCHEDULE", "定时排班");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(SourceTypeEnum::getType).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private final String type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 工单状态枚举(FSM状态机)
|
||||
*
|
||||
* 状态流转说明:
|
||||
* - 通用流程:PENDING → ASSIGNED → ARRIVED → COMPLETED
|
||||
* - 保洁流程:PENDING → QUEUED → DISPATCHED → CONFIRMED → ARRIVED → COMPLETED
|
||||
*
|
||||
* 保洁员状态变化:
|
||||
* - IDLE: 可以接收新工单
|
||||
* - CONFIRMED开始 → BUSY: 保洁员确认后转为忙碌
|
||||
* - COMPLETED后: 检查队列 → 有任务保持BUSY,无任务转为IDLE
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum WorkOrderStatusEnum implements ArrayValuable<String> {
|
||||
|
||||
// ========== 初始状态 ==========
|
||||
PENDING("PENDING", "待分配"),
|
||||
|
||||
// ========== 保洁业务特有状态 ==========
|
||||
/** 排队中 - 已推荐保洁员,在队列中等待推送 */
|
||||
QUEUED("QUEUED", "排队中"),
|
||||
|
||||
/** 已推送 - 已推送到工牌,等待保洁员按键确认 */
|
||||
DISPATCHED("DISPATCHED", "已推送"),
|
||||
|
||||
/** 保洁员已确认(保洁员按下确认按钮,此时保洁员状态转为BUSY) */
|
||||
CONFIRMED("CONFIRMED", "已确认"),
|
||||
|
||||
// ========== 作业中 ==========
|
||||
/** 已到岗/作业中(通用状态,保洁业务中表示感知信标开始作业) */
|
||||
ARRIVED("ARRIVED", "已到岗"),
|
||||
|
||||
// ========== 暂停/完成/取消 ==========
|
||||
PAUSED("PAUSED", "已暂停"),
|
||||
COMPLETED("COMPLETED", "已完成"),
|
||||
CANCELLED("CANCELLED", "已取消");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(WorkOrderStatusEnum::getStatus).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
private final String status;
|
||||
/**
|
||||
* 状态描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
// ========== 业务判断方法 ==========
|
||||
|
||||
/**
|
||||
* 是否为终态(已完成或已取消)
|
||||
*/
|
||||
public boolean isTerminal() {
|
||||
return this == COMPLETED || this == CANCELLED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为保洁业务特有状态
|
||||
*/
|
||||
public boolean isCleaningBusinessStatus() {
|
||||
return this == QUEUED || this == DISPATCHED || this == CONFIRMED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以确认(保洁员确认操作)
|
||||
* 只有已推送状态可以确认
|
||||
*/
|
||||
public boolean canConfirm() {
|
||||
return this == DISPATCHED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以开始作业(感知信标)
|
||||
* 已确认或已推送状态都可以开始作业(兼容场景)
|
||||
*/
|
||||
public boolean canStartWorking() {
|
||||
return this == CONFIRMED || this == DISPATCHED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以完成(作业完成或丢失信号)
|
||||
* 只有已到岗状态可以完成
|
||||
*/
|
||||
public boolean canComplete() {
|
||||
return this == ARRIVED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以暂停
|
||||
*/
|
||||
public boolean canPause() {
|
||||
return this == ARRIVED || this == CONFIRMED;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以取消
|
||||
*/
|
||||
public boolean canCancel() {
|
||||
return !isTerminal();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据status获取枚举
|
||||
*
|
||||
* @param status 状态代码
|
||||
* @return 枚举实例,未找到返回PENDING
|
||||
*/
|
||||
public static WorkOrderStatusEnum fromStatus(String status) {
|
||||
if (status == null) {
|
||||
return PENDING;
|
||||
}
|
||||
for (WorkOrderStatusEnum statusEnum : values()) {
|
||||
if (statusEnum.getStatus().equals(status)) {
|
||||
return statusEnum;
|
||||
}
|
||||
}
|
||||
return PENDING;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.viewsh.module.ops.enums;
|
||||
|
||||
import com.viewsh.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 工单类型枚举
|
||||
*
|
||||
* @author lzh
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum WorkOrderTypeEnum implements ArrayValuable<String> {
|
||||
|
||||
CLEAN("CLEAN", "保洁"),
|
||||
REPAIR("REPAIR", "维修"),
|
||||
SECURITY("SECURITY", "安保"),
|
||||
SERVICE("SERVICE", "客服");
|
||||
|
||||
public static final String[] ARRAYS = Arrays.stream(values()).map(WorkOrderTypeEnum::getType).toArray(String[]::new);
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private final String type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
|
||||
@Override
|
||||
public String[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
/**
|
||||
* ops 模块 API,存放工单、基础数据的 DTO 和 Feign 接口
|
||||
*
|
||||
* 1. Controller URL:以 /ops/ 开头,避免和其它 Module 冲突
|
||||
* 2. DataObject 表名:以 ops_ 开头,方便在数据库中区分
|
||||
*/
|
||||
package com.viewsh.module.ops;
|
||||
Reference in New Issue
Block a user