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