From 66e7a83f20944f1285bd869110e123564c7f9867 Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期三, 29 四月 2026 14:12:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
index e422737..3d4d383 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -57,6 +57,7 @@
import com.xiaopeng.maintenance.utils.UUIDUtil;
import com.xiaopeng.maintenance.vo.TaskCleanDetailVO;
import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO;
+import com.xiaopeng.maintenance.vo.TaskReassignmentVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
@@ -155,6 +156,9 @@
private AliOssService aliOssService;
@Autowired
private AliOssDownloadUtil aliOssDownloadUtil;
+
+ @Resource
+ private WebSocketMessageClient xpWebSocketMessageClient;
@Override
public PageInfo<WorkBenchVO> workbench(WorkBenchQuery query) throws UnsupportedEncodingException {
@@ -437,8 +441,7 @@
}
}
- @Resource
- WebSocketMessageClient xpWebSocketMessageClient;
+
/**
* 推送阿里云通知
*
@@ -2144,4 +2147,46 @@
}
+ /**
+ * 任务改派操作
+ * @param vo
+ */
+ @Override
+ public void taskReassignment(TaskReassignmentVo vo) {
+ XpTask xpTask = this.getById(vo.getTaskId());
+ if(null == xpTask){
+ throw new ServiceException("无效的任务", I18nKeyConstant.TASK_NOT_EXIST);
+ }
+ if(2 == xpTask.getReassignmentStatus()){
+ throw new ServiceException("任务已改派,不能重复操作", I18nKeyConstant.TASK_HAS_BEEN_REASSIGNED);
+ }
+ xpTask.setReassignmentStatus(2);
+ xpTask.setHandleUserId(vo.getNewOperationsUserId() + "");
+ xpTask.setStatus(1);
+ this.updateById(xpTask);
+ //推送websocket
+ XpTaskVO xpTaskVO = new XpTaskVO();
+ BeanUtil.copyProperties(xpTask, xpTaskVO);
+ xpWebSocketMessageClient.pushTask(xpTaskVO);
+ boolean isAccidentTask = Integer.valueOf(2).equals(xpTask.getTaskCategory());
+ Long vehicleId = xpTask.getVehicleId();
+ Integer processingTimeLimit = null;
+ String plateNumber = "";
+ if (isAccidentTask) {
+ // 查询规则 任务结束时间从任务分配时开始计算
+ XpTaskRule taskRule = xpTaskRuleMapper.selectOne(null);
+ if (taskRule != null) {
+ processingTimeLimit = taskRule.getProcessingTimeLimit();
+ }
+ if (vehicleId != null) {
+ XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData();
+ if (vehicle != null && StringUtils.isNotBlank(vehicle.getPlateNumber())) {
+ plateNumber = vehicle.getPlateNumber();
+ }
+ }
+ }
+ if (isAccidentTask && processingTimeLimit != null) {
+ sendAssignedAccidentNotificationAsync(xpTask, Long.valueOf(xpTask.getHandleUserId()), plateNumber, processingTimeLimit);
+ }
+ }
}
--
Gitblit v1.7.1