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