refactor(ops): extract constants and optimize status list in audit handler

This commit is contained in:
lzh
2026-01-19 14:59:33 +08:00
parent b71558ae07
commit 1197363ac6

View File

@@ -53,12 +53,24 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
*/ */
private static final String DEDUP_KEY_PATTERN = "ops:clean:dedup:audit:%s"; private static final String DEDUP_KEY_PATTERN = "ops:clean:dedup:audit:%s";
/** /**
* 幂等性控制 TTL * 幂等性控制 TTL
*/ */
private static final int DEDUP_TTL_SECONDS = 300; private static final int DEDUP_TTL_SECONDS = 300;
@Resource private static final String TRIGGER_SOURCE_QUERY = "IOT_BUTTON_QUERY";
private static final String DEFAULT_AREA_NAME = "当前区域";
private static final String TTS_TEMPLATE_QUERY = "当前位置:%s。待办工单%d个";
private static final List<String> ACTIVE_STATUS_LIST = Arrays.asList(
WorkOrderStatusEnum.QUEUED.getStatus(),
WorkOrderStatusEnum.DISPATCHED.getStatus(),
WorkOrderStatusEnum.CONFIRMED.getStatus(),
WorkOrderStatusEnum.ARRIVED.getStatus(),
WorkOrderStatusEnum.PAUSED.getStatus()
);
@Resource
private ObjectMapper objectMapper; private ObjectMapper objectMapper;
@Resource @Resource
@@ -105,7 +117,7 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
log.debug("[CleanOrderAuditEventHandler] 收到审计事件: eventId={}, auditType={}, message={}", log.debug("[CleanOrderAuditEventHandler] 收到审计事件: eventId={}, auditType={}, message={}",
event.getEventId(), event.getAuditType(), event.getMessage()); event.getEventId(), event.getAuditType(), event.getMessage());
if ("IOT_BUTTON_QUERY".equals(event.getTriggerSource())) { if (TRIGGER_SOURCE_QUERY.equals(event.getTriggerSource())) {
handleQueryEvent(event); handleQueryEvent(event);
return; return;
} }
@@ -193,7 +205,7 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
} }
// 1. 获取当前区域名称 // 1. 获取当前区域名称
String areaName = "当前区域"; String areaName = DEFAULT_AREA_NAME;
if (event.getOrderId() != null) { if (event.getOrderId() != null) {
OpsOrderDO order = opsOrderMapper.selectById(event.getOrderId()); OpsOrderDO order = opsOrderMapper.selectById(event.getOrderId());
if (order != null && order.getLocation() != null) { if (order != null && order.getLocation() != null) {
@@ -203,20 +215,12 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
// 2. 查询待办工单数量 // 2. 查询待办工单数量
// status IN (QUEUED, DISPATCHED, CONFIRMED, ARRIVED, PAUSED) // status IN (QUEUED, DISPATCHED, CONFIRMED, ARRIVED, PAUSED)
List<String> statusList = Arrays.asList(
WorkOrderStatusEnum.QUEUED.getStatus(),
WorkOrderStatusEnum.DISPATCHED.getStatus(),
WorkOrderStatusEnum.CONFIRMED.getStatus(),
WorkOrderStatusEnum.ARRIVED.getStatus(),
WorkOrderStatusEnum.PAUSED.getStatus()
);
Long count = opsOrderMapper.selectCount(new LambdaQueryWrapperX<OpsOrderDO>() Long count = opsOrderMapper.selectCount(new LambdaQueryWrapperX<OpsOrderDO>()
.eq(OpsOrderDO::getAssigneeDeviceId, deviceId) .eq(OpsOrderDO::getAssigneeDeviceId, deviceId)
.in(OpsOrderDO::getStatus, statusList)); .in(OpsOrderDO::getStatus, ACTIVE_STATUS_LIST));
// 3. 构建 TTS 文本 // 3. 构建 TTS 文本
String ttsText = String.format("当前位置:%s。待办工单%d个", areaName, count); String ttsText = String.format(TTS_TEMPLATE_QUERY, areaName, count);
// 4. 下发 TTS // 4. 下发 TTS
sendTts(deviceId, ttsText); sendTts(deviceId, ttsText);