From 9cc3a1b20c897fba88d36356200a77e87e0ee943 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 12 三月 2026 18:39:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 89 ++++++++------------------------------------
1 files changed, 16 insertions(+), 73 deletions(-)
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
index 862efe2..23d6d71 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -14,10 +14,7 @@
import com.xiaopeng.api.dto.order.PopOrderDto;
import com.xiaopeng.api.dto.pushMessage.PushOrderRouteDTO;
import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
-import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
-import com.xiaopeng.api.feignClient.account.XpOperationUserNotificationClient;
import com.xiaopeng.api.feignClient.maintenance.XpTaskClient;
-import com.xiaopeng.api.feignClient.maintenance.XpTaskRuleClient;
import com.xiaopeng.api.feignClient.map.XpMapClient;
import com.xiaopeng.api.feignClient.operation.ReassignOrderClient;
import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient;
@@ -25,8 +22,6 @@
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.UserVehicleClient;
-import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
-import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.order.XpCruiseOrder;
import com.xiaopeng.api.model.order.XpOrder;
@@ -45,7 +40,6 @@
import com.xiaopeng.common.core.utils.uuid.UUID;
import com.xiaopeng.common.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -60,7 +54,6 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
-;
/**
* Kafka 消费者服务
@@ -105,7 +98,7 @@
@Resource
private XpCruisePlanClient xpCruisePlanClient;
- @Resource(name = "hutoolSnowflake")
+ @Resource
private Snowflake snowflake;
@Value("${robotaxi.appId:xp_robotaxi_api}")
@@ -114,7 +107,7 @@
@Resource
private XpTaskClient xpTaskClient;
- private static final com.google.protobuf.util.JsonFormat.Printer jsonPrinter = com.google.protobuf.util.JsonFormat.printer()
+ private static final JsonFormat.Printer jsonPrinter = JsonFormat.printer()
.printingEnumsAsInts()
.preservingProtoFieldNames();
@@ -268,7 +261,7 @@
String vin = jsonObject.getString("vin");
String orderType = jsonObject.getString("orderType");
PopOrderDto dto = new PopOrderDto();
- dto.setOrderId(Long.valueOf(orderId));
+ dto.setOrderId(Long.valueOf(orderId.contains("XU") ? orderId.substring(2) : orderId));
dto.setXpVehicleVin(vin);
dto.setOrderType(orderType);
xpOrderClient.popOrder(dto);
@@ -368,12 +361,13 @@
//TODO 这两个字段现在拿不到
// dto.setDuration(rtTripInfo.getRemaining_time());
// dto.setDistance(rtTripInfo.getRemaining_distance().intValue());
+// dto.setDirection();
xpPushMessageClient.pushOrderRoute(dto);
}
}
-
-
}
+
+
/**
@@ -510,7 +504,7 @@
destination.setLatitude(xpCruiseOrder.getEndLat());
OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
- dto.setOrderId(Long.parseLong(orderId));
+ dto.setOrderId(Long.parseLong(orderId.substring(2)));
dto.setOrigin(origin);
dto.setDestination(destination);
dto.setRouteType(3);
@@ -618,7 +612,7 @@
destination.setLatitude(xpCruiseOrder.getEndLat());
OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
- dto.setOrderId(Long.parseLong(orderId));
+ dto.setOrderId(Long.parseLong(orderId.substring(2)));
dto.setOrigin(origin);
dto.setDestination(destination);
dto.setRouteType(3);
@@ -800,7 +794,7 @@
case ORDER_RECEIVED:
//收到订单
buildPushOrderStatus(orderId, OrderStatusEnum.READY_DEPART, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.READY_DEPART.getCode());
break;
case ORDER_STARTED:
//开始执行订单
@@ -809,7 +803,7 @@
case ORDER_EN_ROUTE_TO_PICKUP:
//前往上车点
buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP.getCode());
break;
case ORDER_ARRIVED_AT_PICKUP:
//到达上车点
@@ -818,17 +812,17 @@
case ORDER_WAITING_FOR_PICKUP:
//等待乘客上车
buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
break;
case ORDER_PASSENGER_ONBOARD:
//乘客已上车
buildPushOrderStatus(orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
break;
case ORDER_EN_ROUTE_TO_DESTINATION:
//前往目的地
buildPushOrderStatus(orderId, OrderStatusEnum.IN_SERVICE, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.IN_SERVICE.getCode());
break;
case ORDER_ARRIVED_AT_DESTINATION:
//到达目的地
@@ -837,13 +831,12 @@
case ORDER_WAITING_FOR_DROPOFF:
//等待乘客下车
buildPushOrderStatus(orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
break;
case ORDER_DROPOFF_COMPLETED:
//下车完成
buildPushOrderStatus(orderId, OrderStatusEnum.APPROVAL_REJECTION, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode());
-
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode());
// 下发巡游任务
R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.parseLong(orderId));
@@ -860,9 +853,6 @@
xpCruiseOrderClient.addCruiseMission(addCruiseMissionDto);
}
}
-
-
-
break;
case ORDER_COMPLETED:
//已完成
@@ -871,7 +861,7 @@
case ORDER_CANCELLED:
//已取消
buildPushOrderStatus(orderId, OrderStatusEnum.CANCELED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode());
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.CANCELED.getCode());
break;
case ORDER_ARRIVED_AT_CRUISE_DESTINATION:
//到达巡游终点
@@ -923,33 +913,10 @@
if(xpCruiseOrder.getOrderType()==2){
R<XpCruiseOrder> lastOrder = xpCruiseOrderClient.getCruiseOrder(xpCruiseOrder.getLastOrderId());
XpCruiseOrder lastXpCruiseOrder = lastOrder.getData();
-
// 修改一下id 加一个一样的巡游单子
lastXpCruiseOrder.setId(null);
lastXpCruiseOrder.setStatus(1);
xpCruiseOrderClient.addCruiseOrder(lastXpCruiseOrder);
- //构建下发XPU订单报文数据
- RtTask.Builder taskBuilder = RtTask.newBuilder();
- taskBuilder.setOrderId("XU" + lastXpCruiseOrder.getId());
- taskBuilder.setTaskId(snowflake.nextId() + "");
- taskBuilder.setTaskType(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderType.ORDER_TYPE_CRUISE);
- //构建点位信息
- Waypoint.Builder pointBuilder = Waypoint.newBuilder();
- pointBuilder.setPointType(PointType.CRUISE_END_POINT);
- pointBuilder.setSequence(1);
- //构建终点坐标
- GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder();
- geoPointBuilder.setLatitude(lastXpCruiseOrder.getEndLat());
- geoPointBuilder.setLongitude(lastXpCruiseOrder.getEndLat());
- // geoPointBuilder.setPoiName("Start Point"); // GeoPoint might not have poi_name
- pointBuilder.setPoint(geoPointBuilder.build());
- taskBuilder.addPoints(pointBuilder);
-
- RtTask task = taskBuilder.build();
- RtTaskList taskList = RtTaskList.newBuilder().addTasks(task).build();
-
- long sequence1 = snowflake.nextId();
- xpuUtil.cloudCreateOrder(taskList, xpVehicle.getVehicleVin(),sequence1);
}else if(xpCruiseOrder.getOrderType()==1){
// 正常巡游 找到下一个点位 若到达最后点位 则反向找点位
// 起点
@@ -967,7 +934,6 @@
newXpCruiseOrder.setStatus(1);
newXpCruiseOrder.setLastOrderId(xpCruiseOrder.getId());
-
// 通过车找终点id
CruisePointDto cruisePointDto = new CruisePointDto();
cruisePointDto.setNewXpCruiseOrder(newXpCruiseOrder);
@@ -977,29 +943,6 @@
R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto);
if(cruisePoint!=null){
xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData());
- RtTask.Builder taskBuilder = RtTask.newBuilder();
-
- taskBuilder.setOrderId("XU" + newXpCruiseOrder.getId());
- taskBuilder.setTaskId(snowflake.nextId() + "");
- taskBuilder.setTaskType(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderType.ORDER_TYPE_CRUISE);
-
- //构建点位信息
- Waypoint.Builder pointBuilder = Waypoint.newBuilder();
- pointBuilder.setPointType(PointType.CRUISE_END_POINT);
- pointBuilder.setSequence(1);
- //构建终点坐标
- GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder();
- geoPointBuilder.setLatitude(cruisePoint.getData().getEndLat());
- geoPointBuilder.setLongitude(cruisePoint.getData().getEndLat());
- // geoPointBuilder.setPoiName("Start Point"); // GeoPoint might not have poi_name
- pointBuilder.setPoint(geoPointBuilder.build());
- taskBuilder.addPoints(pointBuilder);
-
- RtTaskList.Builder taskListBuilder = RtTaskList.newBuilder();
- taskListBuilder.addTasks(taskBuilder.build());
-
- long sequence1 = snowflake.nextId();
- xpuUtil.cloudCreateOrder(taskListBuilder.build(), xpVehicle.getVehicleVin(),sequence1);
}
}
}
--
Gitblit v1.7.1