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:
@@ -13,15 +13,16 @@ public enum LogType {
|
||||
// ========== 注解体系(@BusinessLog)使用 ==========
|
||||
|
||||
/** 派单 */
|
||||
ORDER_DISPATCHED("ORDER_DISPATCHED", "派单"),
|
||||
ORDER_DISPATCHED("ORDER_DISPATCHED", "工单派发"),
|
||||
/** 系统事件(注解默认值) */
|
||||
SYSTEM_EVENT("SYSTEM_EVENT", "系统"),
|
||||
|
||||
// ========== 工单生命周期 ==========
|
||||
|
||||
ORDER_CREATED("ORDER_CREATED", "工单创建"),
|
||||
ORDER_QUEUED("ORDER_QUEUED", "工单入队"),
|
||||
ORDER_CONFIRM("ORDER_CONFIRM", "工单确认"),
|
||||
ORDER_ARRIVED("ORDER_ARRIVED", "到岗确认"),
|
||||
ORDER_ARRIVED("ORDER_ARRIVED", "人员到达"),
|
||||
ORDER_COMPLETED("ORDER_COMPLETED", "工单完成"),
|
||||
ORDER_INTERRUPTED("ORDER_INTERRUPTED", "工单打断"),
|
||||
ORDER_CANCELLED("ORDER_CANCELLED", "工单取消"),
|
||||
|
||||
@@ -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