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