From 7f72660c56e84b76db4781d02d10ae1c83c16f18 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 28 二月 2026 11:14:32 +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 6c98b1e..bbd4aee 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
@@ -1238,7 +1238,7 @@
useUserCouponDto.setUserCouponId(order.getCouponId());
xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
}
-// 计算完价格后 挑选优惠券
+ // 计算完价格后 挑选优惠券
GetUserCouponDto getUserCouponDto = new GetUserCouponDto();
getUserCouponDto.setUserId(Long.valueOf(uid));
getUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
@@ -1250,10 +1250,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());
@@ -1265,10 +1286,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