liujie
2026-04-01 9adef3dd7723930d44f72713c3cf28e50b002055
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -16,10 +16,12 @@
import com.xiaopeng.api.feignClient.operation.XpElectronicClient;
import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.feignClient.order.XpTestOrderClient;
import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
import com.xiaopeng.api.model.operation.XpElectronicFence;
import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.order.XpTestOrder;
import com.xiaopeng.api.model.vehicleConvoy.*;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo;
@@ -115,6 +117,8 @@
    private RedisTemplate redisTemplate;
    @Autowired
    private XpPushMessageClient xpPushMessageClient;
    @Resource
    private XpTestOrderClient xpTestOrderClient;
    @Override
    public List<XpVehicle> listByIds(List<Long> ids) {
@@ -125,16 +129,22 @@
    }
    @Override
    public List<XpVehicle> listAvailableVehicles(Long orderId) {
    public List<XpVehicle> listAvailableVehicles(Long orderId, Integer orderType) {
        // 1. 通过订单ID查询订单信息,获取区域ID
        R<XpOrder> orderResult = xpOrderClient.queryOrderById(orderId);
        if (orderResult == null || orderResult.getData() == null) {
            log.warn("查询订单失败,orderId: {}", orderId);
            return Collections.emptyList();
        }
        Long areaId = null;
        if(null == orderType || 1 == orderType){
            R<XpOrder> orderResult = xpOrderClient.queryOrderById(orderId);
            if (orderResult == null || orderResult.getData() == null) {
                log.warn("查询订单失败,orderId: {}", orderId);
                return Collections.emptyList();
            }
        XpOrder order = orderResult.getData();
        Long areaId = order.getXpElectronicFenceAreaId();
            XpOrder order = orderResult.getData();
            areaId = order.getXpElectronicFenceAreaId();
        }else{
            XpTestOrder testOrder = xpTestOrderClient.queryOrderById(orderId).getData();
            areaId = testOrder.getXpElectronicFenceAreaId();
        }
        if (areaId == null) {
            log.warn("订单区域ID为空,orderId: {}", orderId);