fix(ops): 手动完单走完整责任链,补全队列同步、设备状态、事件发布等缺失环节
原手动完单逻辑直接更新 DB 状态,绕过了 OrderLifecycleManager 责任链, 导致队列未清理、工牌设备状态未恢复 IDLE、自动派发下一任务未触发、 事件表缺少操作人信息等问题。 改动: - CleanWorkOrderServiceImpl.manualCompleteOrder 改为委托 OrderLifecycleManager - OrderLifecycleManager 新增 completeOrder(orderId, operatorId, operatorType, remark) 重载 - Controller 注入 SecurityFrameworkUtils.getLoginUserId() 填充操作人 - EventPublishHandler 修复 OrderCompletedEvent.assigneeId 兜底逻辑 - 新增已完成幂等返回和已取消拒绝校验 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.viewsh.module.ops.controller.admin.clean;
|
||||
|
||||
import com.viewsh.framework.common.pojo.CommonResult;
|
||||
import com.viewsh.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.viewsh.module.ops.api.clean.OrderTimelineRespDTO;
|
||||
import com.viewsh.module.ops.environment.dal.dataobject.ManualCompleteOrderReqDTO;
|
||||
import com.viewsh.module.ops.environment.dal.dataobject.UpgradePriorityReqDTO;
|
||||
@@ -49,6 +50,8 @@ public class CleanWorkOrderController {
|
||||
public CommonResult<Boolean> manualCompleteOrder(
|
||||
@Valid @RequestBody ManualCompleteOrderReqDTO req) {
|
||||
|
||||
// 注入当前登录用户ID作为操作人
|
||||
req.setOperatorId(SecurityFrameworkUtils.getLoginUserId());
|
||||
cleanWorkOrderService.manualCompleteOrder(req);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user