From a13e95b7803693cf39fdcf1a5c21b961a6d66485 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 27 三月 2026 18:37:17 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
index 28daa9f..1142952 100644
--- a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
+++ b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
@@ -71,7 +71,7 @@
                 Integer distance = dto.getDistance();
                 Integer duration = dto.getDuration();
                 // 计算实时点位到线段的最优截取
-                List<LonLatDto> lonLatDtos = MapMatchingUtil.getRemainingNavigation(routeVo.getPolyline(), dto.getLongitude(), dto.getLatitude());
+                Map<String, List<LonLatDto>> remainingNavigation = MapMatchingUtil.getRemainingNavigation(routeVo.getPolyline(), dto.getLongitude(), dto.getLatitude());
                 //当订单状态为5的时候(乘客已上车)需要推送导航的距离和剩余时间
                 //因为这个状态,车端推的依然是接驾的剩余里程和时间,就会导致数据和小程序的页面跳转匹配不上
                 //小程序是只要乘客上车后就跳转到行程开始页面
@@ -82,7 +82,10 @@
                     distance = routeVo.getDistance();
                     duration = routeVo.getDuration();
                 }
+                List<LonLatDto> lonLatDtos = remainingNavigation.get("unserved");
+                List<LonLatDto> lonLatDtos1 = remainingNavigation.get("served");
                 routeVo.setPolyline(lonLatDtos);
+                routeVo.setServed(lonLatDtos1);
 
                 // 存储最新路线偏离缓存,后续进行轨迹截取
                 redisService.setCacheObject(key, JSON.toJSONString(routeVo), 24L, TimeUnit.HOURS);
@@ -95,11 +98,19 @@
                     polylineMap.put("latitude",lonLatDto.getLatitude());
                     polyline.add(polylineMap);
                 }
+                List<Map<String, Object>> served = new ArrayList<>();
+                for (LonLatDto lonLatDto : lonLatDtos1) {
+                    Map<String, Object> polylineMap = new HashMap<>();
+                    polylineMap.put("longitude",lonLatDto.getLongitude());
+                    polylineMap.put("latitude",lonLatDto.getLatitude());
+                    served.add(polylineMap);
+                }
                 // 封装路由详情
                 Map<String, Object> route = new HashMap<>();
                 route.put("distance",distance);
                 route.put("duration",duration);
                 route.put("polyline",JSONObject.toJSONString(polyline));
+                route.put("served",JSONObject.toJSONString(served));
 
                 Map<String, Object> content = new HashMap<>();
                 content.put("orderId",dto.getOrderId().toString());

--
Gitblit v1.7.1