From 52e0d9f8bb4b82a9869286a6fe2bbd9f7c5d1098 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 三月 2026 14:07:13 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 61 +++++++++++++++++++++++-------
1 files changed, 46 insertions(+), 15 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 6d44021..adfa25b 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -948,6 +948,7 @@
returnOrder.setStatus(1); // 进行中
returnOrder.setLastOrderId(lastCruise.getId());
returnOrder.setCreateTime(LocalDateTime.now());
+ returnOrder.setMissionId(lastCruise.getMissionId());
// 返程起点 = 当前订单的终点(车辆当前位置附近)
returnOrder.setStartPointId(order.getEndPointId());
@@ -1991,17 +1992,39 @@
xpCruiseOrder.setStartLat(order.getEndLat());
// 完成的直接走终点 终止的走起点
- if (temp == 0) {
- xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
- xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
- xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
- xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
- } else {
- xpCruiseOrder.setEndPointId(xpCruiseOrders.getEndPointId());
- xpCruiseOrder.setEndPointName(xpCruiseOrders.getEndPointName());
- xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon());
- xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat());
+ if(null != xpCruiseOrders){
+ if (temp == 0) {
+ //当上一笔单有起点点位,才需要将上一笔巡游单的起点作为本次的终点导航
+ //上一笔单没有起点点位,统一用后面的巡游计划的第一个点位作为本次的终点导航
+ if(null != xpCruiseOrders.getStartPointId()){
+ xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
+ xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
+ xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
+ xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
+ }
+ } else {
+ xpCruiseOrder.setEndPointId(xpCruiseOrders.getEndPointId());
+ xpCruiseOrder.setEndPointName(xpCruiseOrders.getEndPointName());
+ xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon());
+ xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat());
+ }
+ xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId());
+ xpCruiseOrder.setMissionId(xpCruiseOrders.getMissionId());
}
+ //所有没有赋值终点点位的情况,全部导航到巡游计划的第一个点位开始执行巡游任务
+ if(null == xpCruiseOrder.getEndPointId()){
+ // 先找计划
+ List<XpCruisePlanPoint> planPointList = xpCruisePlanClient.getCruisePlanPointList(vehicle.getId()).getData();
+ XpCruisePlanPoint xpCruisePlanPoint = planPointList.get(0);
+ Long endPointId = xpCruisePlanPoint.getPointId();
+ XpPoint endPoint = xpPointClient.queryById(endPointId).getData();
+ xpCruiseOrder.setEndPointId(endPointId);
+ xpCruiseOrder.setEndPointName(endPoint.getPointName());
+ xpCruiseOrder.setEndLon(endPoint.getPointLon());
+ xpCruiseOrder.setEndLat(endPoint.getPointLat());
+ xpCruiseOrder.setMissionId(xpCruisePlanPoint.getCruisePlanId());
+ }
+
xpCruiseOrder.setStatus(0);
@@ -2083,10 +2106,14 @@
// 完成的直接走终点 终止的走起点
if(null != xpCruiseOrders){
if (temp == 0) {
- xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
- xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
- xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
- xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
+ //当上一笔单有起点点位,才需要将上一笔巡游单的起点作为本次的终点导航
+ //上一笔单没有起点点位,统一用后面的巡游计划的第一个点位作为本次的终点导航
+ if(null != xpCruiseOrders.getStartPointId()){
+ xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
+ xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
+ xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
+ xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
+ }
} else {
xpCruiseOrder.setEndPointId(xpCruiseOrders.getEndPointId());
xpCruiseOrder.setEndPointName(xpCruiseOrders.getEndPointName());
@@ -2094,7 +2121,10 @@
xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat());
}
xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId());
- }else{
+ xpCruiseOrder.setMissionId(xpCruiseOrders.getMissionId());
+ }
+ //所有没有赋值终点点位的情况,全部导航到巡游计划的第一个点位开始执行巡游任务
+ if(null == xpCruiseOrder.getEndPointId()){
// 先找计划
List<XpCruisePlanPoint> planPointList = xpCruisePlanClient.getCruisePlanPointList(vehicle.getId()).getData();
XpCruisePlanPoint xpCruisePlanPoint = planPointList.get(0);
@@ -2104,6 +2134,7 @@
xpCruiseOrder.setEndPointName(endPoint.getPointName());
xpCruiseOrder.setEndLon(endPoint.getPointLon());
xpCruiseOrder.setEndLat(endPoint.getPointLat());
+ xpCruiseOrder.setMissionId(xpCruisePlanPoint.getCruisePlanId());
}
--
Gitblit v1.7.1