From 623cd3f63889f3263ac13391c1885b669fec3d66 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 23 三月 2026 19:16:15 +0800
Subject: [PATCH] 修改车辆状态和新增加测试demo功能接口
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 72 +++++++++++++++++++++++-------------
1 files changed, 46 insertions(+), 26 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 421abeb..1d792a8 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
@@ -622,8 +622,10 @@
String vin = jsonObject.getString("vin");
XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData();
if (null != vehicle && 0 != vehicle.getState()) {
- vehicle.setState(0);
- xpVehicleClient.updateVehicleById(vehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle1);
}
}
}
@@ -731,8 +733,10 @@
//还原车辆状态
if(1 == xpVehicle.getState()){
- xpVehicle.setState(0);
- xpVehicleClient.updateVehicleById(xpVehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(xpVehicle.getId());
+ vehicle1.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle1);
}
// 下发命令
@@ -743,7 +747,7 @@
orderMissionClient.cancelOrder(pushOrderDto);
log.info("运营人员取消订单成功,开始执行巡游订单 {}", order.getId());
//车辆继续巡游
- addCruiseMission(xpVehicle);
+ addCruiseMission(xpVehicle.getId());
} else {
log.info("查询车辆信息失败,订单ID: {}, 下发取消订单命令失败", order.getId());
@@ -984,12 +988,15 @@
}
// 6.1.3 修改原车辆状态为空闲
- oldVehicle.setState(0);
- xpVehicleClient.updateVehicleById(oldVehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(oldVehicle.getId());
+ vehicle1.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle1);
log.info("已将原车辆状态设为空闲,车辆ID: {}", oldVehicleId);
// 6.1.4 为原车辆创建返程巡游订单
- createReturnCruiseOrder(oldVehicle, order);
+ --------------
+ createReturnCruiseOrder(oldVehicle.getId(), order);
} else {
log.warn("查询原车辆信息失败,车辆ID: {}", oldVehicleId);
}
@@ -1082,8 +1089,10 @@
log.info("已下发订单到新车辆,订单ID: {}, VIN: {}", orderId, newVehicle.getVehicleVin());
// 11.3 更新新车辆状态为已接单
- newVehicle.setState(1);
- xpVehicleClient.updateVehicleById(newVehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(newVehicle.getId());
+ vehicle1.setState(1);
+ xpVehicleClient.updateVehicleById(vehicle1);
log.info("已将新车辆状态设为已接单,车辆ID: {}", newVehicleId);
} catch (Exception e) {
@@ -1101,10 +1110,10 @@
* - 其他状态,默认返回原出发点
* </p>
*
- * @param oldVehicle 原车辆信息
* @param order 当前订单信息
*/
- private void createReturnCruiseOrder(XpVehicle oldVehicle, XpOrder order) {
+ private void createReturnCruiseOrder(Long vehicleId, XpOrder order) {
+ XpVehicle oldVehicle = xpVehicleClient.queryById(vehicleId).getData();
try {
// 查询该车辆最新的一条巡游订单
XpCruiseOrder lastCruise = xpCruiseOrderMapper.selectOne(
@@ -1374,8 +1383,10 @@
String vin = jsonObject.getString("vin");
XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData();
if (null != vehicle && 0 != vehicle.getState()) {
- vehicle.setState(0);
- xpVehicleClient.updateVehicleById(vehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle1);
}
}
}
@@ -1433,8 +1444,10 @@
//还原车辆状态
if (1 == xpVehicle.getState()) {
- xpVehicle.setState(0);
- xpVehicleClient.updateVehicleById(xpVehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(xpVehicle.getId());
+ vehicle1.setState(0);
+ xpVehicleClient.updateVehicleById(vehicle1);
}
//下发XPU报文
@@ -1445,7 +1458,7 @@
orderMissionClient.cancelOrder(pushOrderDto);
log.info("用户取消订单成功,开始执行巡游订单 {}", order.getId());
//车辆继续巡游
- addCruiseMission(xpVehicle);
+ addCruiseMission(xpVehicle.getId());
}
}
@@ -2097,11 +2110,11 @@
/**
* 添加巡游任务下发命令
*
- * @param vehicle
* @param order
*/
- public void addCruiseMission(XpVehicle vehicle, XpOrder order) {
+ public void addCruiseMission(Long vehicleId, XpOrder order) {
+ XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData();
log.info("添加巡游订单 {}", vehicle.getPlateNumber());
if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) {
log.info("添加巡游单失败,车辆状态限制 {}", vehicle.getState());
@@ -2178,14 +2191,16 @@
if(null != xpTaskRule){
LocalTime vehicleCollectionTime = xpTaskRule.getVehicleCollectionTime();
if (vehicleCollectionTime.isBefore(LocalTime.now())) {
- vehicle.setOperatingStatus(3);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setOperatingStatus(3);
+ xpVehicleClient.updateVehicleById(vehicle1);
//找到车辆的收车点位 更新终点点位
R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
xpCruiseOrder = returnCruisePoint.getData();
xpCruiseOrder.setOrderType(2);
xpCruiseOrder.setOrderReverse(1);
}
- xpVehicleClient.updateVehicleById(vehicle);
}
xpCruiseOrderMapper.insert(xpCruiseOrder);
log.info("添加巡游单成功 {}", xpCruiseOrder.getId());
@@ -2208,7 +2223,8 @@
* 取消订单后的继续巡游任务
* @param vehicle
*/
- public void addCruiseMission(XpVehicle vehicle) {
+ public void addCruiseMission(Long vehicleId) {
+ XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData();
if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) {
return;
}
@@ -2287,14 +2303,16 @@
if(null != xpTaskRule){
LocalTime vehicleCollectionTime = xpTaskRule.getVehicleCollectionTime();
if (vehicleCollectionTime.isBefore(LocalTime.now())) {
- vehicle.setOperatingStatus(3);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setOperatingStatus(3);
+ xpVehicleClient.updateVehicleById(vehicle1);
//找到车辆的收车点位 更新终点点位
R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
xpCruiseOrder = returnCruisePoint.getData();
xpCruiseOrder.setOrderType(2);
xpCruiseOrder.setOrderReverse(1);
}
- xpVehicleClient.updateVehicleById(vehicle);
}
xpCruiseOrderMapper.insert(xpCruiseOrder);
@@ -2852,8 +2870,10 @@
// 存mongo数据
xpPricingClient.updateXpGeoQueryEntity(order.getId().toString());
// 修改车辆信息
- vehicle.setState(1);
- xpVehicleClient.updateVehicleById(vehicle);
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setState(1);
+ xpVehicleClient.updateVehicleById(vehicle1);
//绑定用户和车辆关系
addTaxiPassengerVo.setUid(appUserId.toString());
--
Gitblit v1.7.1