puzhibing
2026-02-12 9aafc10be83aaec35e809a10d99b7b90b09c243f
处理启动失败问题
10个文件已修改
128 ■■■■■ 已修改文件
.gitignore 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpOrderClientFallbackFactory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/vehicleConvoy/VehicleControlClientFallbackFactory.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/vehicleConvoy/VehicleControlClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/IXpVehicleService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/util/VehicleControlUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -15,7 +15,7 @@
target
#*.yaml
#*.yml
*.yaml
*.yml
*.log.DS_Store
**/.DS_Store
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpOrderClientFallbackFactory.java
@@ -1,5 +1,6 @@
package com.xiaopeng.api.factory.order;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
@@ -69,7 +70,7 @@
            }
            @Override
            public R<Integer> getOrderNum(String timeStr) {
            public R<Integer> getOrderNum(GetOrderNumDto dto) {
                log.error("获取订单数量失败,原因: {}", cause.getMessage());
                return R.fail();
            }
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/vehicleConvoy/VehicleControlClientFallbackFactory.java
@@ -13,7 +13,7 @@
    public VehicleControlClient create(Throwable cause) {
        return new VehicleControlClient() {
            @Override
            public BaseImOpenDto queryVehicleTemperature(VehicleTemperatureVo vo, Long uid) {
            public BaseImOpenDto queryVehicleTemperature(VehicleTemperatureVo vo, String uid) {
                log.error("查询车辆内温度失败:{}", cause.getMessage());
                return null;
            }
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/vehicleConvoy/VehicleControlClient.java
@@ -24,7 +24,7 @@
     * @return
     */
    @GetMapping("/logan/api/v1/vehicles/state")
    BaseImOpenDto queryVehicleTemperature(VehicleTemperatureVo vo, @RequestHeader("uid") Long uid);
    BaseImOpenDto queryVehicleTemperature(VehicleTemperatureVo vo, @RequestHeader("uid") String uid);
    /**
xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -12,110 +12,35 @@
public class KafkaConsumerService {
    /**
     * 消费消息 - 自动驾驶主题
     * 消费消息 - XPU上报Robotaxi云端的消息topic(高优先级)
     *
     * @param message 消息内容
     */
    @KafkaListener(topics = "automatic-pilot-topic", groupId = "xp-automaticPilot-group")
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-high", groupId = "group-robotaxi-xpu")
    public void consumeAutomaticPilotMessage(String message) {
        try {
            log.info("收到自动驾驶主题消息: {}", message);
            // 处理消息逻辑
            processMessage(message);
            log.info("收到XPU上报高优先级主题消息: {}", message);
        } catch (Exception e) {
            log.error("处理消息失败: {}", message, e);
            log.error("处理XPU上报高优先级主题消息失败: {}", message, e);
            throw e;
        }
    }
    /**
     * 消费消息 - 车辆状态主题
     * 消费消息 - XPU上报Robotaxi云端的消息topic(低优先级)
     *
     * @param message 消息内容
     */
    @KafkaListener(topics = "vehicle-status-topic", groupId = "xp-automaticPilot-group")
    @KafkaListener(topics = "topic-prod-robotaxi-xpu-normal", groupId = "group-robotaxi-xpu")
    public void consumeVehicleStatusMessage(String message) {
        try {
            log.info("收到车辆状态主题消息: {}", message);
            // 处理车辆状态消息逻辑
            processVehicleStatus(message);
            log.info("收到XPU上报低优先级主题消息: {}", message);
        } catch (Exception e) {
            log.error("处理车辆状态消息失败: {}", message, e);
            log.error("处理XPU上报低优先级主题消息失败: {}", message, e);
            throw e;
        }
    }
    /**
     * 消费消息 - 导航主题
     *
     * @param message 消息内容
     */
    @KafkaListener(topics = "navigation-topic", groupId = "xp-automaticPilot-group")
    public void consumeNavigationMessage(String message) {
        try {
            log.info("收到导航主题消息: {}", message);
            // 处理导航消息逻辑
            processNavigation(message);
        } catch (Exception e) {
            log.error("处理导航消息失败: {}", message, e);
            throw e;
        }
    }
    /**
     * 消费消息 - 订单主题
     *
     * @param message 消息内容
     */
    @KafkaListener(topics = "order-topic", groupId = "xp-automaticPilot-group")
    public void consumeOrderMessage(String message) {
        try {
            log.info("收到订单主题消息: {}", message);
            // 处理订单消息逻辑
            processOrder(message);
        } catch (Exception e) {
            log.error("处理订单消息失败: {}", message, e);
            throw e;
        }
    }
    /**
     * 处理消息逻辑(示例)
     *
     * @param message 消息内容
     */
    private void processMessage(String message) {
        // TODO: 实现具体的消息处理逻辑
        log.info("处理自动驾驶消息: {}", message);
    }
    /**
     * 处理车辆状态消息(示例)
     *
     * @param message 消息内容
     */
    private void processVehicleStatus(String message) {
        // TODO: 实现具体的车辆状态处理逻辑
        log.info("处理车辆状态消息: {}", message);
    }
    /**
     * 处理导航消息(示例)
     *
     * @param message 消息内容
     */
    private void processNavigation(String message) {
        // TODO: 实现具体的导航处理逻辑
        log.info("处理导航消息: {}", message);
    }
    /**
     * 处理订单消息(示例)
     *
     * @param message 消息内容
     */
    private void processOrder(String message) {
        // TODO: 实现具体的订单处理逻辑
        log.info("处理订单消息: {}", message);
    }
}
xp-robotaxi-automaticPilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java
@@ -108,4 +108,7 @@
    }
}
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
@@ -7,6 +7,7 @@
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.xiaopeng.api.dto.vehicleConvoy.VehicleTemperatureDto;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.feignClient.maintenance.XpVehiclePreparationClient;
@@ -477,9 +478,9 @@
     */
    @ApiOperation(value = "通过订单id查询当前车辆温度", tags = {"小程序-业务流程"})
    @GetMapping("/api/v1/order/queryTemperatureByOrderId")
    public R<VehicleTemperatureVo> queryTemperatureByOrderId(@RequestParam Long orderId, HttpServletRequest request) {
    public R<VehicleTemperatureDto> queryTemperatureByOrderId(@RequestParam Long orderId, HttpServletRequest request) {
        String uid = request.getHeader("XP-Uid");
        VehicleTemperatureVo vehicleTemperatureVo = xpVehicleService.queryTemperatureByOrderId(orderId,uid);
        VehicleTemperatureDto vehicleTemperatureVo = xpVehicleService.queryTemperatureByOrderId(orderId,uid);
        return R.ok(vehicleTemperatureVo);
    }
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/IXpVehicleService.java
@@ -1,6 +1,7 @@
package com.xiaopeng.vehicleConvoy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.dto.vehicleConvoy.VehicleTemperatureDto;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.vehicleConvoy.VehicleTemperatureVo;
import com.xiaopeng.common.core.web.page.PageInfo;
@@ -164,5 +165,5 @@
     * @param orderId 订单ID
     * @return 车辆温度
     */
    VehicleTemperatureVo queryTemperatureByOrderId(Long orderId,String uid);
    VehicleTemperatureDto queryTemperatureByOrderId(Long orderId, String uid);
}
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.dto.vehicleConvoy.VehicleTemperatureDto;
import com.xiaopeng.api.feignClient.operation.XpElectronicClient;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.model.operation.XpElectronicFence;
@@ -590,7 +591,7 @@
    }
    @Override
    public VehicleTemperatureVo queryTemperatureByOrderId(Long orderId,String uid) {
    public VehicleTemperatureDto queryTemperatureByOrderId(Long orderId,String uid) {
        XpOrder xpOrder = xpOrderClient.queryOrderById(orderId).getData();
        if(Objects.isNull(xpOrder)){
            throw new ServiceException("未查询到有效订单信息", I18nKeyConstant.ORDER_NOT_EXISTS);
@@ -600,12 +601,12 @@
            throw new ServiceException("未查询到有效车辆信息", I18nKeyConstant.VEHICLE_NOT_EXISTS);
        }
        try{
            VehicleTemperatureVo vehicleTemperatureVo = vehicleControlUtil.queryVehicleTemperature(uid, xpVehicle.getVehicleVin());
            log.info("查询车辆温度成功:{}",vehicleTemperatureVo);
            return vehicleTemperatureVo;
            VehicleTemperatureDto vehicleTemperatureDto = vehicleControlUtil.queryVehicleTemperature(uid, xpVehicle.getVehicleVin());
            log.info("查询车辆温度成功:{}",vehicleTemperatureDto);
            return vehicleTemperatureDto;
        }catch (Exception e){
            log.error("查询车辆温度失败",e);
            return new VehicleTemperatureVo();
            return new VehicleTemperatureDto();
        }
    }
}
xp-robotaxi-vehicleConvoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/util/VehicleControlUtil.java
@@ -46,7 +46,7 @@
     * 测试车辆:L1NNSGHA5PB000204
     * @return
     */
    public VehicleTemperatureDto queryVehicleTemperature(Long uid, String vin) {
    public VehicleTemperatureDto queryVehicleTemperature(String uid, String vin) {
        String nonce = System.currentTimeMillis() + "";
        VehicleTemperatureVo vo = new VehicleTemperatureVo();
        vo.setVin(vin);