From 57b2a831bb61ac6008a0e350f00efb7e8b723fd5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 08 四月 2026 20:51:17 +0800
Subject: [PATCH] 修改获取轨迹的参数

---
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/HistoryPointDto.java         |   28 ++++++++++++++
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java |   24 ++++++++++-
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/OrderRouteAndFareDto.java    |    3 +
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/RouteAndFareDto.java         |    3 +
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java   |    6 ++
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTestPlanPoint.java |    2 
 6 files changed, 61 insertions(+), 5 deletions(-)

diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/HistoryPointDto.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/HistoryPointDto.java
new file mode 100644
index 0000000..bae3d8e
--- /dev/null
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/HistoryPointDto.java
@@ -0,0 +1,28 @@
+package com.xiaopeng.api.dto.map;
+
+
+import lombok.Data;
+
+@Data
+public class HistoryPointDto {
+    /**
+     * 经纬度116.473195,39.993253
+     */
+    private String location;
+    /**
+     * 定位时间戳
+     */
+    private String locateTime;
+    /**
+     * 定位精度
+     */
+    private Double accuracy;
+    /**
+     * 定位方向
+     */
+    private Double direction;
+    /**
+     * 速度
+     */
+    private Double speed;
+}
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/OrderRouteAndFareDto.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/OrderRouteAndFareDto.java
index 36c9f08..ba26864 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/OrderRouteAndFareDto.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/OrderRouteAndFareDto.java
@@ -28,4 +28,7 @@
     private Integer routeType;
     @ApiModelProperty(value = "前端不处理")
     private Integer routePlanRule;
+
+    @ApiModelProperty("车辆VIN码")
+    private String vin;
 }
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/RouteAndFareDto.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/RouteAndFareDto.java
index f77318a..c931114 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/RouteAndFareDto.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/map/RouteAndFareDto.java
@@ -30,6 +30,9 @@
     @ApiModelProperty(value = "优惠券id(是否指定使用某个优惠券)")
     private Long userCouponId;
 
+    @ApiModelProperty("车辆VIN码")
+    private String vin;
+
 
 
 
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTestPlanPoint.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTestPlanPoint.java
index 5f90909..d9fc62a 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTestPlanPoint.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpTestPlanPoint.java
@@ -29,7 +29,7 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "自增id")
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.NONE)
     private Long id;
 
     @ApiModelProperty(value = "测试计划ID")
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java
index e230a15..e6d1501 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpMapController.java
@@ -1,6 +1,8 @@
 package com.xiaopeng.map.controller;
 
 
+import com.alibaba.fastjson2.JSON;
+import com.xiaopeng.api.dto.map.HistoryPointDto;
 import com.xiaopeng.api.dto.map.OrderRouteAndFareDto;
 import com.xiaopeng.api.dto.map.RouteAndFareDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
@@ -91,7 +93,16 @@
                     }
                 }
             }
-            RouteVo routeVo = gdMapGeocodingUtil.getDistanceAndTime(dto.getOrigin(), dto.getDestination(), String.join("|", pointStrParam), fenceId,dto.getRoutePlanRule());
+
+            List<Object> cacheList = redisService.getCacheList("VEHICLE_HISTORY_POINT_LIST:" + dto.getVin());
+            List<HistoryPointDto> history = new ArrayList<>();
+            if(cacheList!=null && !cacheList.isEmpty()){
+                for (Object cache : cacheList) {
+                    HistoryPointDto historyPointDto = JSON.parseObject(cache.toString(), HistoryPointDto.class);
+                    history.add(historyPointDto);
+                }
+            }
+            RouteVo routeVo = gdMapGeocodingUtil.getDistanceAndTime(dto.getOrigin(), dto.getDestination(), String.join("|", pointStrParam), fenceId,dto.getRoutePlanRule(), history);
             if(routeVo==null){
                 return R.fail("没有找到路线");
             }
@@ -134,8 +145,15 @@
                 }
             }
         }
-
-        RouteVo routeVo = gdMapGeocodingUtil.getDistanceAndTime(dto.getOrigin(), dto.getDestination(), String.join("|", pointStrParam), fenceId,dto.getRoutePlanRule());
+        List<Object> cacheList = redisService.getCacheList("VEHICLE_HISTORY_POINT_LIST:" + dto.getVin());
+        List<HistoryPointDto> history = new ArrayList<>();
+        if(cacheList!=null && !cacheList.isEmpty()){
+            for (Object cache : cacheList) {
+                HistoryPointDto historyPointDto = JSON.parseObject(cache.toString(), HistoryPointDto.class);
+                history.add(historyPointDto);
+            }
+        }
+        RouteVo routeVo = gdMapGeocodingUtil.getDistanceAndTime(dto.getOrigin(), dto.getDestination(), String.join("|", pointStrParam), fenceId,dto.getRoutePlanRule(), history);
         if(routeVo==null){
             return R.fail("没有找到路线");
         }
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
index 41c4da5..5d2e8d8 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
+import com.xiaopeng.api.dto.map.HistoryPointDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.common.core.utils.HttpUtils;
@@ -47,7 +48,7 @@
      * @return
      * @throws Exception
      */
-    public RouteVo getDistanceAndTime(LonLatDto start, LonLatDto end,String avoidRoads,String fenceId,Integer routePlanRule)  {
+    public RouteVo getDistanceAndTime(LonLatDto start, LonLatDto end,String avoidRoads,String fenceId,Integer routePlanRule, List<HistoryPointDto> history)  {
         RouteVo routeVo = new RouteVo();
 
         String url = "https://tsapi.amap.com/v1/route/price?key=" + key + "&extensions=all&start=" + start.getLongitude() + "," + start.getLatitude();
@@ -62,6 +63,9 @@
         if(routePlanRule!=null){
             params.put("strategy", routePlanRule);
         }
+        if(null != history && !history.isEmpty()){
+            params.put("history", history);
+        }
         log.info("高德地图接口:{}", url);
         log.info("高德地图参数:{}", params);
         String post = HttpUtils.post(url, JSON.toJSONString(params));

--
Gitblit v1.7.1