From 53e51ca607340232911bfa277d1ce7d641fb34bc Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期六, 28 二月 2026 11:40:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 40 +++++++++++++++++++++++++++++++++++-----
1 files changed, 35 insertions(+), 5 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 850e44b..da0f9cc 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
@@ -1403,7 +1403,7 @@
useUserCouponDto.setUserCouponId(order.getCouponId());
xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
}
-// 计算完价格后 挑选优惠券
+ // 计算完价格后 挑选优惠券
GetUserCouponDto getUserCouponDto = new GetUserCouponDto();
getUserCouponDto.setUserId(Long.valueOf(uid));
getUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
@@ -1415,10 +1415,31 @@
}
order.setAppUserId(null);
baseMapper.updateById(order);
+
+
+
+
+
// 结束后的车辆操作
if(vehicle!=null){
+ // 修改车辆状态
+ vehicle.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle);
+
+
+ // 修改mongodb车辆状态
+
+
+
+
// 生成新的巡游单子 回到最新巡游的初始起点位置
XpCruiseOrder xpCruiseOrders = xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 2).orderByDesc(BaseModel::getCreateTime).last("limit 1"));
+ int temp=0;
+ if(xpCruiseOrders==null){
+ temp=1;
+ //特殊情况 可能没有产生终止的订单 (到站点就被正常接单了)所以找正常订单
+ xpCruiseOrders=xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 3).orderByDesc(BaseModel::getCreateTime).last("limit 1"));
+ }
XpCruiseOrder xpCruiseOrder = new XpCruiseOrder();
xpCruiseOrder.setVehicleId(vehicle.getId());
xpCruiseOrder.setFleetId(vehicle.getFleetId());
@@ -1430,10 +1451,19 @@
xpCruiseOrder.setStartLon(order.getEndLon());
xpCruiseOrder.setStartLat(order.getEndLat());
- xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId());
- xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName());
- xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon());
- xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat());
+ // 完成的直接走终点 终止的走起点
+ 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());
+ }
+
xpCruiseOrder.setStatus(1);
xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId());
--
Gitblit v1.7.1