From c86e794fbd49c90a3abd953be65f100de26e24d6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 18 四月 2026 17:39:03 +0800
Subject: [PATCH] [feat] 接收任务,socket推送任务
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 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 1a5cd3e..b2650fd 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
@@ -1,5 +1,6 @@
package com.xiaopeng.maintenance.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
@@ -13,6 +14,7 @@
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient;
import com.xiaopeng.api.feignClient.operation.SmsClient;
+import com.xiaopeng.api.feignClient.pushMessage.WebSocketMessageClient;
import com.xiaopeng.api.feignClient.pushMessage.XpAliPushMessageClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
@@ -23,6 +25,7 @@
import com.xiaopeng.api.model.account.XpOperationsUserNotification;
import com.xiaopeng.api.model.maintenance.*;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.TaskVO;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.maintenance.TaskScheduleConstants;
import com.xiaopeng.api.vo.operation.SmsVo;
@@ -75,6 +78,7 @@
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.time.Duration;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
@@ -420,6 +424,10 @@
log.info("事故通知记录保存成功,共 {} 条", notifications.size());
}
+ TaskVO taskVO = new TaskVO();
+ BeanUtil.copyProperties(xpTask, taskVO);
+ xpWebSocketMessageClient.pushTask(taskVO);
+
Map<Integer, List<XpOperationsUser>> operationUserMap = data.stream()
.filter(u -> u.getDeviceType() != null && StringUtils.isNotBlank(u.getPhoneNumber()))
.collect(Collectors.groupingBy(XpOperationsUser::getDeviceType));
@@ -428,6 +436,7 @@
}
}
+ WebSocketMessageClient xpWebSocketMessageClient;
/**
* 推送阿里云通知
*
@@ -1398,7 +1407,7 @@
task.setHandleUserId(handlerUser);
if(handlerUser == null) {
task.setStatus(4);
- noticeAdministrator(task);
+ noticeAdministrator(task);//TODO 需要通知管理员手动处理,考虑再AliPushUtil 中给管理员发送消息
}
updateById(task);
// 存储事故处理日志
@@ -1462,6 +1471,14 @@
sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
}
+ @Override
+ @Transactional
+ public void accept(TaskVO taskVO) {
+
+ updateTaskStatus(taskVO.getId(), TaskScheduleConstants.TASK_STATUS_PENDING_ARRIVE, Long.valueOf(taskVO.getHandleUserId()));
+ sendAccidentNotificationAsync(getById(taskVO.getId()), taskVO.getPlateNumber(), (int) Duration.between(LocalDateTime.now(),taskVO.getEndTime()).toMinutes());
+ }
+
@Value("${robotaxi.sms.app-id:1476153389173952512}")
private String smsAppId;
@Value("${robotaxi.sms.app-push-config-code:ROBOTAXI_VERIFY_CODE_SMS}")
--
Gitblit v1.7.1