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);