From e9bd491c6e903715438886496071e4b317e9a50a Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 09 四月 2026 16:31:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java | 6 +-
xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages.properties | 2
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-itinerary-boot/src/main/resources/i18n/messages_zh_CN.properties | 2
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
9 files changed, 66 insertions(+), 10 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-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
index 19e3db0..9d8fc19 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -197,12 +197,12 @@
// 1. 基础数据查询
Map<String, String> geocode = gdMapGeocodingUtil.geocode(routeAndFareDto.getOrigin().getLongitude().toString(), routeAndFareDto.getOrigin().getLatitude().toString());
if(null == geocode){
- throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
+ throw new ServiceException("城市暂未开通服务", I18nKeyConstant.CITY_NOT_FOUND);
}
Long cityCode = routeAndFareDto.getOpenCityId();
XpOpenCity openCities = xpOpenCityMapper.selectById(cityCode);
if (openCities == null ) {
- throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
+ throw new ServiceException("城市暂未开通服务", I18nKeyConstant.CITY_NOT_FOUND);
}
XpOpenCity xpOpenCity = openCities;
routeAndFareDto.setOpenCityId(xpOpenCity.getId());
@@ -553,7 +553,7 @@
XpOpenCity openCities = xpOpenCityMapper.selectById(dto.getOpenCityId());
if (openCities == null) {
- throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
+ throw new ServiceException("城市暂未开通服务", I18nKeyConstant.CITY_NOT_FOUND);
}
XpOpenCity xpOpenCity = openCities;
dto.setOpenCityId(xpOpenCity.getId());
diff --git a/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages.properties b/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages.properties
index 55d0f93..f48e961 100644
--- a/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages.properties
+++ b/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages.properties
@@ -1,5 +1,5 @@
# 中文
-city.not.found=获取城市信息失败
+city.not.found=城市暂未开通服务
coupon.not.satisfy=券不满足条件
no.current.point=该站点已停止运营
no.current.region=当前区域未开通服务
diff --git a/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages_zh_CN.properties b/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages_zh_CN.properties
index 55d0f93..f48e961 100644
--- a/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages_zh_CN.properties
+++ b/xp-robotaxi-itinerary-boot/src/main/resources/i18n/messages_zh_CN.properties
@@ -1,5 +1,5 @@
# 中文
-city.not.found=获取城市信息失败
+city.not.found=城市暂未开通服务
coupon.not.satisfy=券不满足条件
no.current.point=该站点已停止运营
no.current.region=当前区域未开通服务
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