From 560be817c1342d4da523760ba38433c4c0f52983 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 12 五月 2026 10:56:09 +0800
Subject: [PATCH] Merge branch '1.1' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.1

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
index cad290a..612ff48 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -79,7 +79,7 @@
             taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getEndTaskId()) ? dto.getEndTaskId() : snowflake.nextId() + "");
             taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
             //构建起点坐标数据
-            pointBuilderStart.setWaypointId(dto.getOrderId() + "-001");
+            pointBuilderStart.setWaypointId(dto.getStartWaypointId() + "");
             pointBuilderStart.setPointType(PointType.START_POINT);
             pointBuilderStart.setSequence(1);
             pointBuilderStart.setActionType(ActionType.ACTION_UNSPECIFIED);
@@ -90,7 +90,7 @@
             taskBuilder.addPoints(pointBuilderStart);
 
             //构建终点数据
-            pointBuilderEnd.setWaypointId(dto.getOrderId() + "-002");
+            pointBuilderEnd.setWaypointId(dto.getEndWaypointId() + "");
             pointBuilderEnd.setPointType(PointType.CRUISE_END_POINT);
             pointBuilderEnd.setSequence(2);
             pointBuilderEnd.setActionType(ActionType.DRIVE_THROUGH);
@@ -121,7 +121,6 @@
                     taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
                     VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getVin())), VehiclePosition.class);
                     //构建车辆当前位置数据
-                    pointBuilderStart.setWaypointId(dto.getOrderId() + "-JJ-001");
                     pointBuilderStart.setPointType(PointType.START_POINT);
                     pointBuilderStart.setActionType(ActionType.ACTION_UNSPECIFIED);
                     pointBuilderStart.setSequence(1);
@@ -132,7 +131,7 @@
                     taskBuilder.addPoints(pointBuilderStart);
 
                     //构建上车点位置信息
-                    pointBuilderEnd.setWaypointId(dto.getOrderId() + "-JJ-002");
+                    pointBuilderEnd.setWaypointId(dto.getStartWaypointId() + "");
                     pointBuilderEnd.setPointType(PointType.PICK_UP_POINT);
                     pointBuilderEnd.setActionType(ActionType.PICK_UP);
                     pointBuilderEnd.setSequence(2);
@@ -159,7 +158,7 @@
                     taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getEndTaskId()) ? dto.getEndTaskId() : snowflake.nextId() + "");
                     taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
                     //构建上车点位置信息
-                    pointBuilderStart.setWaypointId(dto.getOrderId() + "-SD-001");
+                    pointBuilderStart.setWaypointId(dto.getStartWaypointId() + "");
                     pointBuilderStart.setPointType(PointType.PICK_UP_POINT);
                     pointBuilderStart.setActionType(ActionType.PICK_UP);
                     pointBuilderStart.setSequence(1);
@@ -170,7 +169,7 @@
                     taskBuilder.addPoints(pointBuilderStart);
 
                     //构建下车点位置信息
-                    pointBuilderEnd.setWaypointId(dto.getOrderId() + "-SD-002");
+                    pointBuilderEnd.setWaypointId(dto.getEndWaypointId() + "");
                     pointBuilderEnd.setPointType(PointType.END_POINT);
                     pointBuilderEnd.setActionType(ActionType.DROP_OFF);
                     pointBuilderEnd.setSequence(2);
@@ -204,7 +203,6 @@
                     taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
                     VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getVin())), VehiclePosition.class);
                     //构建车辆当前位置数据
-                    pointBuilderStart.setWaypointId(dto.getOrderId() + "-JJ-001");
                     pointBuilderStart.setPointType(PointType.START_POINT);
                     pointBuilderStart.setActionType(ActionType.ACTION_UNSPECIFIED);
                     pointBuilderStart.setSequence(1);
@@ -215,7 +213,7 @@
                     taskBuilder.addPoints(pointBuilderStart);
 
                     //构建上车点位置信息
-                    pointBuilderEnd.setWaypointId(dto.getOrderId() + "-JJ-002");
+                    pointBuilderEnd.setWaypointId(dto.getStartWaypointId() + "");
                     pointBuilderEnd.setPointType(PointType.PICK_UP_POINT);
                     pointBuilderEnd.setActionType(ActionType.PICK_UP);
                     pointBuilderEnd.setSequence(2);
@@ -243,7 +241,7 @@
                     taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getEndTaskId()) ? dto.getEndTaskId() : snowflake.nextId() + "");
                     taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
                     //构建上车点位置信息
-                    pointBuilderStart.setWaypointId(dto.getOrderId() + "-SD-001");
+                    pointBuilderStart.setWaypointId(dto.getStartWaypointId() + "");
                     pointBuilderStart.setPointType(PointType.PICK_UP_POINT);
                     pointBuilderStart.setActionType(ActionType.PICK_UP);
                     pointBuilderStart.setSequence(1);
@@ -254,7 +252,7 @@
                     taskBuilder.addPoints(pointBuilderStart);
 
                     //构建下车点位置信息
-                    pointBuilderEnd.setWaypointId(dto.getOrderId() + "-SD-002");
+                    pointBuilderEnd.setWaypointId(dto.getEndWaypointId() + "");
                     pointBuilderEnd.setPointType(PointType.END_POINT);
                     pointBuilderEnd.setActionType(ActionType.DROP_OFF);
                     pointBuilderEnd.setSequence(2);
@@ -284,7 +282,7 @@
             taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getEndTaskId()) ? dto.getEndTaskId() : snowflake.nextId() + "");
             taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
             //构建起点坐标数据
-            pointBuilderStart.setWaypointId(dto.getOrderId() + "-001");
+            pointBuilderStart.setWaypointId(dto.getStartWaypointId() + "");
             pointBuilderStart.setPointType(PointType.START_POINT);
             pointBuilderStart.setSequence(1);
             pointBuilderStart.setActionType(ActionType.ACTION_UNSPECIFIED);
@@ -295,7 +293,7 @@
             taskBuilder.addPoints(pointBuilderStart);
 
             //构建终点数据
-            pointBuilderEnd.setWaypointId(dto.getOrderId() + "-002");
+            pointBuilderEnd.setWaypointId(dto.getEndWaypointId() + "");
             pointBuilderEnd.setPointType(PointType.CRUISE_END_POINT);
             pointBuilderEnd.setSequence(2);
             pointBuilderEnd.setActionType(ActionType.DRIVE_THROUGH);
@@ -474,6 +472,41 @@
         if(StringUtils.isNotEmpty(code)){
             xpOrder = xpOrderClient.queryOrderByOrderNo(code).getData();
         }
+
+        //保存车辆实时信息到mongodb
+        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+        if (null == vehiclePosition) {
+            log.info("【模拟接单】MongoDB无车辆位置记录,新建,vin={}", xpVehicle.getVehicleVin());
+            vehiclePosition = new VehiclePosition();
+            vehiclePosition.setVin(xpVehicle.getVehicleVin());
+            vehiclePosition.setPoint(new GeoJsonPoint(startLon, startLat));
+            vehiclePosition.setCourse(60D);
+            vehiclePosition.setAlt(100F);
+            vehiclePosition.setSpeed(50F);
+            vehiclePosition.setCurrentElectricity(80);
+            vehiclePosition.setMileageRange(300f);
+            vehiclePosition.setHasOrder(0);
+            vehiclePosition.setOrderId(orderId);
+            vehiclePosition.setTotalOdometer(10000L);
+            vehiclePosition.setAddTime(System.currentTimeMillis());
+            mongoTemplate.save(vehiclePosition);
+        }else{
+            log.info("【模拟接单】更新MongoDB车辆位置记录,vin={}", xpVehicle.getVehicleVin());
+            vehiclePosition.setOrderId(orderId);
+            Update update = new Update()
+                    .set("point", new GeoJsonPoint(startLon, startLat))
+                    .set("course", 60D)
+                    .set("alt", 100F)
+                    .set("speed", 50F)
+                    .set("currentElectricity", 80)
+                    .set("mileageRange", 300f)
+                    .set("hasOrder", 0)
+                    .set("orderId", orderId)
+                    .set("totalOdometer", 10000L)
+                    .set("addTime", System.currentTimeMillis());
+            mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), update, VehiclePosition.class);
+        }
+
         orderId = xpOrder.getId();
         OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
         dto.setOrderId(orderId);
@@ -619,6 +652,7 @@
                     dto.setLatitude(latitude);
                     dto.setDuration(10.0);
                     dto.setDistance(2.0);
+                    dto.setSpeed(2.0f);
                     dto.setDirection(60);
                     dto.setMessageType(PushMessageTypeEnum.ORDER_ROUTE.getDesc());
                     xpPushMessageClient.pushOrderRoute(dto);
@@ -801,6 +835,7 @@
                     dto.setLatitude(latitude);
                     dto.setDuration(20.0);
                     dto.setDistance(10.0);
+                    dto.setSpeed(10.0f);
                     dto.setDirection(60);
                     dto.setMessageType(PushMessageTypeEnum.ORDER_ROUTE.getDesc());
                     R<String> stringR = xpPushMessageClient.pushOrderRoute(dto);

--
Gitblit v1.7.1