fix(ops): 入队和派单时设置assigneeDeviceId,修复查询工单功能

This commit is contained in:
lzh
2026-01-30 09:45:36 +08:00
parent fe92b4cafb
commit abd5933877

View File

@@ -137,6 +137,7 @@ public class OrderLifecycleManagerImpl implements OrderLifecycleManager {
// 先更新工单的执行人
OpsOrderDO order = getOrderByOrderId(request.getOrderId());
order.setAssigneeId(request.getAssigneeId());
order.setAssigneeDeviceId(request.getAssigneeId()); // 同时设置设备ID用于查询工单
opsOrderMapper.updateById(order);
// 执行状态转换
@@ -146,7 +147,8 @@ public class OrderLifecycleManagerImpl implements OrderLifecycleManager {
@Override
@Transactional(rollbackFor = Exception.class)
public OrderTransitionResult dispatch(OrderTransitionRequest request) {
log.info("工单派发: orderId={}, queueId={}, assigneeId={}", request.getOrderId(), request.getQueueId(), request.getAssigneeId());
log.info("工单派发: orderId={}, queueId={}, assigneeId={}", request.getOrderId(), request.getQueueId(),
request.getAssigneeId());
// 设置目标状态
request.setTargetStatus(WorkOrderStatusEnum.DISPATCHED);
@@ -156,6 +158,7 @@ public class OrderLifecycleManagerImpl implements OrderLifecycleManager {
OpsOrderDO order = opsOrderMapper.selectById(request.getOrderId());
if (order != null && order.getAssigneeId() == null) {
order.setAssigneeId(request.getAssigneeId());
order.setAssigneeDeviceId(request.getAssigneeId()); // 同时设置设备ID用于查询工单
opsOrderMapper.updateById(order);
log.debug("派发时更新工单执行人: orderId={}, assigneeId={}", request.getOrderId(), request.getAssigneeId());
}
@@ -409,13 +412,13 @@ public class OrderLifecycleManagerImpl implements OrderLifecycleManager {
/**
* 记录状态变更业务日志
*
* @param orderId 工单ID
* @param result 状态转换结果
* @param eventType 事件类型
* @param message 日志消息
* @param orderId 工单ID
* @param result 状态转换结果
* @param eventType 事件类型
* @param message 日志消息
*/
private void recordStatusChangeLog(Long orderId, OrderTransitionResult result,
String eventType, String message) {
String eventType, String message) {
try {
OpsOrderDO order = opsOrderMapper.selectById(orderId);
if (order == null) {