fix(iot,ops): 确保信标相关审计事件包含orderId以支持工单关联查询
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

修改内容:
1. BeaconDetectionRuleProcessor.publishAuditEvent 添加 orderId 参数
   - BEACON_ARRIVE_CONFIRMED 事件包含当前工单ID
   - BEACON_LEAVE_WARNING_SENT 事件从设备状态获取工单ID
   - TTS_REQUEST 事件不包含工单ID(非工单特定)

2. SignalLossRuleProcessor.publishAuditEvent 添加 orderId 参数
   - BEACON_COMPLETE_REQUESTED 事件包含当前工单ID
   - COMPLETE_SUPPRESSED_INVALID 事件从设备状态获取工单ID

3. CleanOrderAuditEventHandler 使用 EventLogRecord.builder()
   - 显式设置 targetId 和 targetType 字段
   - 确保 targetType="order" 当 orderId 存在时

影响范围:
- ops_business_event_log 表新增记录将正确包含 targetId 和 targetType
- 支持按工单ID查询所有相关审计日志
- 解决信标到岗/离岗/完成事件缺失工单关联的问题

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-02-01 10:26:06 +08:00
parent fc1bc609e6
commit 46096a6e6b
4 changed files with 42 additions and 32 deletions

View File

@@ -335,18 +335,10 @@ public class CleanOrderEndToEndTest {
// Verify
// 1. Log recorded
verify(eventLogRecorder).info(
eq("clean"),
any(),
eq("TTS_REQUEST"),
contains("TTS Message"),
any(),
eq(5001L),
any()
);
verify(eventLogRecorder).record(any());
// 2. TTS sent
verify(voiceBroadcastService).broadcast(eq(5001L), contains("请回到作业区域"), any(Long.class));
// 2. TTS sent (orderId can be null for TTS_REQUEST events)
verify(voiceBroadcastService).broadcast(eq(5001L), contains("请回到作业区域"), isNull());
}
// ==========================================