diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogModule.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogModule.java new file mode 100644 index 0000000..daebabf --- /dev/null +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogModule.java @@ -0,0 +1,46 @@ +package com.viewsh.module.ops.infrastructure.log.enumeration; + +/** + * 日志模块常量 + *

+ * 用于 {@link com.viewsh.module.ops.infrastructure.log.recorder.EventLogRecord} 的 module 字段, + * 避免各业务线硬编码字符串。 + * + * @author lzh + */ +public final class LogModule { + + /** 保洁 */ + public static final String CLEAN = "clean"; + + /** 安保 */ + public static final String SECURITY = "security"; + + /** 工程 @since 2026-03-11 预留 */ + public static final String FACILITIES = "facilities"; + + /** 客服 @since 2026-03-11 预留 */ + public static final String SERVICE = "service"; + + /** + * 根据工单类型(orderType)返回对应的日志模块标识。 + * 未知类型降级返回 orderType 小写。 + * + * @param orderType 工单类型,如 "CLEAN"、"SECURITY" + * @return 日志模块标识 + */ + public static String fromOrderType(String orderType) { + if (orderType == null) { + return CLEAN; + } + return switch (orderType) { + case "CLEAN" -> CLEAN; + case "SECURITY" -> SECURITY; + case "REPAIR" -> FACILITIES; + case "SERVICE" -> SERVICE; + default -> orderType.toLowerCase(); + }; + } + + private LogModule() {} +} diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogType.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogType.java index 93efae3..9fc32e9 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogType.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/infrastructure/log/enumeration/LogType.java @@ -1,5 +1,8 @@ package com.viewsh.module.ops.infrastructure.log.enumeration; +import java.util.HashMap; +import java.util.Map; + /** * 日志类型枚举 * @@ -7,45 +10,51 @@ package com.viewsh.module.ops.infrastructure.log.enumeration; */ public enum LogType { - /** - * 派单日志 - */ - DISPATCH("ORDER_DISPATCHED", "派单"), + // ========== 注解体系(@BusinessLog)使用 ========== - /** - * 状态转换日志 - */ - TRANSITION("ORDER_STATUS_CHANGED", "状态转换"), + /** 派单 */ + ORDER_DISPATCHED("ORDER_DISPATCHED", "派单"), + /** 系统事件(注解默认值) */ + SYSTEM_EVENT("SYSTEM_EVENT", "系统"), - /** - * 生命周期日志 - */ - LIFECYCLE("ORDER_LIFECYCLE", "生命周期"), + // ========== 工单生命周期 ========== - /** - * 队列日志 - */ - QUEUE("ORDER_QUEUE_CHANGED", "队列"), + ORDER_CREATED("ORDER_CREATED", "工单创建"), + ORDER_CONFIRM("ORDER_CONFIRM", "工单确认"), + ORDER_ARRIVED("ORDER_ARRIVED", "到岗确认"), + ORDER_COMPLETED("ORDER_COMPLETED", "工单完成"), + ORDER_INTERRUPTED("ORDER_INTERRUPTED", "工单打断"), + ORDER_CANCELLED("ORDER_CANCELLED", "工单取消"), + ORDER_PAUSED("ORDER_PAUSED", "工单暂停"), + ORDER_RESUMED("ORDER_RESUMED", "工单恢复"), - /** - * 保洁员日志 - */ - CLEANER("CLEANER_ACTION", "保洁员"), + // ========== 语音播报 ========== - /** - * 设备日志 - */ - DEVICE("DEVICE_ACTION", "设备"), + TTS_SENT("TTS_SENT", "语音播报"), + TTS_FAILED("TTS_FAILED", "播报失败"), - /** - * 通知日志 - */ - NOTIFICATION("NOTIFICATION_SENT", "通知"), + // ========== 优先级 & 静默 ========== - /** - * 系统日志 - */ - SYSTEM("SYSTEM_EVENT", "系统"); + PRIORITY_UPGRADE("PRIORITY_UPGRADE", "优先级升级"), + PRIORITY_CEILING("PRIORITY_CEILING", "优先级封顶"), + ARRIVED_SILENT_IGNORE("ARRIVED_SILENT_IGNORE", "静默忽略"), + + // ========== IoT 审计事件(来自 ops-order-audit MQ) ========== + + BEACON_ARRIVE_CONFIRMED("BEACON_ARRIVE_CONFIRMED", "信标到岗确认"), + BEACON_LEAVE_WARNING_SENT("BEACON_LEAVE_WARNING_SENT", "离开区域警告"), + COMPLETE_SUPPRESSED_INVALID("COMPLETE_SUPPRESSED_INVALID", "作业时长不足抑制"), + BEACON_COMPLETE_REQUESTED("BEACON_COMPLETE_REQUESTED", "信号丢失自动完成请求"), + TTS_REQUEST("TTS_REQUEST", "语音播报请求"), + ARRIVE_REJECTED("ARRIVE_REJECTED", "到岗请求被拒绝"); + + private static final Map CODE_MAP = new HashMap<>(); + + static { + for (LogType type : values()) { + CODE_MAP.put(type.code, type); + } + } private final String code; private final String description; @@ -62,4 +71,11 @@ public enum LogType { public String getDescription() { return description; } + + /** + * 根据 code 反查枚举,找不到返回 null + */ + public static LogType getByCode(String code) { + return CODE_MAP.get(code); + } }