liujie
2026-03-06 ac0fec61b2147126dd12e672175e26b17a2a6897
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -42,9 +42,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@@ -145,9 +143,17 @@
        SnowFlake snowFlake = new SnowFlake(0, 0);
        snowFlake.withStartTimestamp(1420041600000L);
        long sequence = snowFlake.nextId();
        xpuUtil.cloudOrderOperation(operationBuilder.build(), dto.getVin(), sequence);
        redisService.setCacheObject(String.valueOf(sequence), "cancelOrder_" + dto.getOrderId() + "_" + dto.getVin(), 30l, TimeUnit.MINUTES);
        return R.ok(true);
        MqttPublishDto mqttPublishDto = xpuUtil.cloudOrderOperation(operationBuilder.build(), dto.getVin(), sequence);
        if (mqttPublishDto.getCode() == 200) {
            if(!dto.getOrderId().contains("XU")){
                // 正常订单处理
                redisService.setCacheObject(String.valueOf(sequence), "cancelOrder_" + dto.getOrderId() + "_" + dto.getVin(), 30l, TimeUnit.MINUTES);
            }
            return R.ok(true);
        }
        return R.ok(false);
    }
@@ -222,7 +228,7 @@
        dto.setRouteType(1);
        R<RouteVo> routeVoR = xpMapClient.getOrderDistanceAndDuration(dto);
        if (200 != routeVoR.getCode()) {
            throw new RuntimeException("获取订单线路和运费失败");
//            throw new RuntimeException("获取订单线路和运费失败");
        }
        RouteVo routeVo = routeVoR.getData();
        //缓存数据,用于后续推给乘客导航线路
@@ -276,8 +282,16 @@
        orderId = xpOrder.getId();
        String vin = xpVehicle.getVehicleVin();
        Long appUserId = xpOrder.getAppUserId();
        Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId());
        RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
//        Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId());
//        RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
        RouteVo routeVo =new RouteVo();
        ArrayList<LonLatDto> lonLatDtos = new ArrayList<>();
        LonLatDto lonLatDto1 = new LonLatDto();
        lonLatDto1.setLatitude(30.575685);
        lonLatDto1.setLongitude(104.001118);
        lonLatDtos.add(lonLatDto1);
        routeVo.setPolyline(lonLatDtos);
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1000));
        Long finalOrderId = orderId;
@@ -288,7 +302,6 @@
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            List<LonLatDto> polyline = routeVo.getPolyline();
            for (LonLatDto lonLatDto : polyline) {
                Double latitude = lonLatDto.getLatitude();