fix(security): 规范安保工单事件日志,消除重复记录
修复前同一次派发产生 4 条 ORDER_DISPATCHED 日志的问题: - 新增 ORDER_QUEUED 枚举,handleQueued 改用正确的 event_type - handleArrived 改用 ORDER_ARRIVED(之前错用 ORDER_CONFIRM) - 移除 onOrderCreated 中派单成功的重复日志(由状态监听统一记录) - 移除 DispatchEngineImpl.dispatch 上的 @BusinessLog 注解(避免与 业务层 EventListener 日志重复) - ORDER_DISPATCHED 描述改为"工单派发",ORDER_ARRIVED 改为"人员到达" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -93,14 +93,9 @@ public class SecurityOrderEventListener {
|
||||
if (result.isSuccess()) {
|
||||
log.info("安保工单自动派单完成: orderId={}, assigneeId={}, path={}",
|
||||
event.getOrderId(), result.getAssigneeId(), result.getPath());
|
||||
// 记录派单成功日志
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_DISPATCHED,
|
||||
"自动派单成功,分配给: " + result.getAssigneeName(),
|
||||
event.getOrderId(), result.getAssigneeId());
|
||||
// 企微卡片通知统一在 handleDispatched 中发送(状态变为 DISPATCHED 时触发)
|
||||
// 成功日志由 handleQueued / handleDispatched 状态变更监听统一记录,此处不重复
|
||||
} else {
|
||||
log.warn("安保工单自动派单失败: orderId={}, reason={}", event.getOrderId(), result.getMessage());
|
||||
// 记录派单失败日志
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_DISPATCHED,
|
||||
"自动派单失败: " + result.getMessage(),
|
||||
event.getOrderId(), null);
|
||||
@@ -184,7 +179,7 @@ public class SecurityOrderEventListener {
|
||||
String message = assigneeName != null
|
||||
? String.format("工单已入队,分配给 %s,等待派发", assigneeName)
|
||||
: "工单已入队等待派发";
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_DISPATCHED, message, orderId, assigneeId);
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_QUEUED, message, orderId, assigneeId);
|
||||
}
|
||||
|
||||
private void handleDispatched(Long orderId, OrderStateChangedEvent event) {
|
||||
@@ -233,7 +228,7 @@ public class SecurityOrderEventListener {
|
||||
|
||||
private void handleArrived(Long orderId, OrderStateChangedEvent event) {
|
||||
Long operatorId = event.getOperatorId();
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_CONFIRM, "安保人员已到达现场", orderId, operatorId);
|
||||
recordLog(EventDomain.DISPATCH, LogType.ORDER_ARRIVED, "安保人员已到达现场", orderId, operatorId);
|
||||
}
|
||||
|
||||
private void handleCompleted(Long orderId, OrderStateChangedEvent event) {
|
||||
|
||||
Reference in New Issue
Block a user