From f161eb229c5fb0f82c2dfd26c6440dbf84cba1ca Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 24 四月 2026 17:05:52 +0800
Subject: [PATCH] [feat] 杂项优化,可改派人员排序,车队信息模糊查询等,活动通知方式

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 9 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 7053aa0..d4084d7 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
@@ -13,7 +13,6 @@
 import com.xiaopeng.api.feignClient.account.SysUserClient;
 import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
 import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient;
-import com.xiaopeng.api.feignClient.account.XpOperationsRoleClient;
 import com.xiaopeng.api.feignClient.operation.SmsClient;
 import com.xiaopeng.api.feignClient.pushMessage.WebSocketMessageClient;
 import com.xiaopeng.api.feignClient.pushMessage.XpAliPushMessageClient;
@@ -25,10 +24,8 @@
 import com.xiaopeng.api.model.account.XpOperationsUser;
 import com.xiaopeng.api.model.account.XpOperationsUserNotification;
 import com.xiaopeng.api.model.maintenance.*;
-import com.xiaopeng.api.model.operation.XpPasswordFreePolicy;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
-import com.xiaopeng.api.vo.TaskVO;
-import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
+import com.xiaopeng.api.vo.XpTaskVO;
 import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.api.vo.maintenance.TaskScheduleConstants;
 import com.xiaopeng.api.vo.operation.SmsVo;
@@ -428,9 +425,9 @@
             log.info("事故通知记录保存成功,共 {} 条", notifications.size());
         }
 
-        TaskVO taskVO = new TaskVO();
-        BeanUtil.copyProperties(xpTask, taskVO);
-        xpWebSocketMessageClient.pushTask(taskVO);
+        XpTaskVO xpTaskVO = new XpTaskVO();
+        BeanUtil.copyProperties(xpTask, xpTaskVO);
+        xpWebSocketMessageClient.pushTask(xpTaskVO);
 
         Map<Integer, List<XpOperationsUser>> operationUserMap = data.stream()
                 .filter(u -> u.getDeviceType() != null && StringUtils.isNotBlank(u.getPhoneNumber()))
@@ -1407,6 +1404,7 @@
         XpTask.Reject reject = task.reject(msg);
         rejects.add(reject);
         task.setExcluded(rejects);
+        task.setReassignmentStatus(2);
         Set<String> excludedUserIds = rejects.stream().map(XpTask.Reject::getRejectUserId).collect(Collectors.toSet());
 
         Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
@@ -1501,10 +1499,45 @@
     }
 
     @Override
-    public PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query) {
-        // 创建分页对象
+    public PageInfo<XpTaskVO> reassignTaskPageList(TaskPageListQuery query) {
+
         PageInfo<TaskPageListQuery> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+
         return baseMapper.reassignTaskPageList(pageInfo,query);
+    }
+
+    @Override
+    public XpTaskVO detail(Long taskId) {
+        XpTask task = getById(taskId);
+        if (task == null) {
+            return null;
+        }
+        XpTaskVO xpTaskVO = new XpTaskVO();
+        BeanUtil.copyProperties(task, xpTaskVO);
+
+        String taskImage = xpTaskVO.getTaskImage();
+        if (StringUtils.isNotBlank(taskImage)) {
+            try {
+                xpTaskVO.setTaskImage(aliOssDownloadUtil.getPictureJsonArray(taskImage));
+            } catch (Exception e) {
+                log.error("获取任务图片下载地址失败,taskId={}", taskId, e);
+            }
+        }
+
+        // 2. 如果有车辆信息,可以补充车辆相关详情(如果需要)
+        if (task.getVehicleId() != null) {
+            R<XpVehicle> vehicleResult = xpVehicleClient.queryById(task.getVehicleId());
+            if (vehicleResult != null && vehicleResult.getData() != null) {
+                XpVehicle vehicle = vehicleResult.getData();
+                xpTaskVO.setPlateNumber(vehicle.getPlateNumber());
+//                xpTaskVO.setVehicleColor(vehicle.getVehicleColor());
+//                xpTaskVO.setVehicleCode(vehicle.getVehicleCode());
+//                xpTaskVO.setVehicleVin(vehicle.getVehicleVin());
+
+            }
+        }
+
+        return xpTaskVO;
     }
 
     @Value("${robotaxi.sms.app-id:1476153389173952512}")
@@ -1582,6 +1615,7 @@
         } else {
             task.setEndTime(LocalDateTime.now().plusDays(3));
         }
+        task.setReassignmentStatus(2);
         task.setAssigneeTime(LocalDateTime.now());
         task.setHandleUserId(handlerUserId.toString());
         task.setVehicleId(null);

--
Gitblit v1.7.1