From 446d588f6983d2f9e7bb18546a961fa4c14c99a0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 19 五月 2026 03:58:31 +0800
Subject: [PATCH] 合并代码
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java | 162 ++++++++++++++++++++++++++---------------------------
1 files changed, 80 insertions(+), 82 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
index af2bc5a..ab355d4 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -1086,9 +1086,7 @@
XpVehicle vehiclePosition = vehiclePositionR.getData();
log.info("符合条件的车辆 {} ,直接推单XPU。单号 {}", vehiclePosition.getPlateNumber(), orderNo);
log.info("当前车辆状态 {} 单号 {}", vehiclePosition.getStatus(), orderNo);
- if (vehiclePosition.getOperatingStatus() != 1 || vehiclePosition.getState() != 0 || vehiclePosition.getVehicleType() == 1) {
- continue;
- }
+
String vin = SensitiveDataCryptoUtil.decryptIfPossible(vehiclePosition.getVehicleVin());
// 再次查询一下订单 看是否取消
xpOrderR = xpOrderClient.queryOrderByOrderNo(orderNo);
@@ -1099,45 +1097,47 @@
if (xpOrder.getStatus() != 1) {
continue;
}
-
- //非合作商的车辆需要处理巡游单
- if(null != vehiclePosition.getOfficialPartnerId()){
- // 关闭巡游单子
- R<XpCruiseOrder> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vin);
- if (stringR == null || stringR.getCode() != 200) {
- log.info("关闭巡游单子失败 车牌号 {}", vehiclePosition.getPlateNumber());
- continue;
+ //所有条件满足,走正常派单,不满足走后面的连环派单
+ if (vehiclePosition.getOperatingStatus() == 1 && vehiclePosition.getState() == 0 && vehiclePosition.getVehicleType() == 2) {
+ //非合作商的车辆需要处理巡游单
+ if(null == vehiclePosition.getOfficialPartnerId()){
+ // 关闭巡游单子
+ R<XpCruiseOrder> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vin);
+ if (stringR == null || stringR.getCode() != 200) {
+ log.info("关闭巡游单子失败 车牌号 {}", vehiclePosition.getPlateNumber());
+ continue;
+ }
+ log.info("关闭巡游单成功 {} {}", vehiclePosition.getPlateNumber(), orderNo);
+ XpCruiseOrder cruiseOrder = stringR.getData();
+ // 下发命令
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(vin);
+ pushOrderDto.setOrderId(xpOrder.getId().toString());
+ pushOrderDto.setStartWaypointId(xpOrder.getStartPointId());
+ pushOrderDto.setEndWaypointId(xpOrder.getEndPointId());
+ pushOrderDto.setStartLatitude(xpOrder.getStartLat());
+ pushOrderDto.setStartLongitude(xpOrder.getStartLon());
+ pushOrderDto.setEndLatitude(xpOrder.getEndLat());
+ pushOrderDto.setEndLongitude(xpOrder.getEndLon());
+ pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
+ pushOrderDto.setOrderType(OrderType.USER_ORDER);
+ pushOrderDto.setStage(1);
+ if(null != cruiseOrder){
+ pushOrderDto.setLastOrderId("XU" + cruiseOrder.getId());
+ pushOrderDto.setLastXpuTaskId(cruiseOrder.getXpuTaskId());
+ }
+ pushOrderDto.setTaskActionType(TaskActionType.kTerminateForNewTask);
+ // 调用推送服务 orderId + carVin
+ orderMissionClient.pushOrder(pushOrderDto);
+ log.info("开始推送 {} 订单到XPU。单号 {}", xpOrder.getOrderNumber(), orderNo);
+ }else {
+ //流量接入-接单推送 合作商的车辆需要调用合作商的订单通知接口
+ officialPartnerUtil.pushNewOrder(vehiclePosition.getOfficialPartnerId(), xpOrder);
}
- log.info("关闭巡游单成功 {} {}", vehiclePosition.getPlateNumber(), orderNo);
- XpCruiseOrder cruiseOrder = stringR.getData();
- // 下发命令
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setVin(vin);
- pushOrderDto.setOrderId(xpOrder.getId().toString());
- pushOrderDto.setStartWaypointId(xpOrder.getStartPointId());
- pushOrderDto.setEndWaypointId(xpOrder.getEndPointId());
- pushOrderDto.setStartLatitude(xpOrder.getStartLat());
- pushOrderDto.setStartLongitude(xpOrder.getStartLon());
- pushOrderDto.setEndLatitude(xpOrder.getEndLat());
- pushOrderDto.setEndLongitude(xpOrder.getEndLon());
- pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
- pushOrderDto.setOrderType(OrderType.USER_ORDER);
- pushOrderDto.setStage(1);
- if(null != cruiseOrder){
- pushOrderDto.setLastOrderId("XU" + cruiseOrder.getId());
- pushOrderDto.setLastXpuTaskId(cruiseOrder.getXpuTaskId());
- }
- pushOrderDto.setTaskActionType(TaskActionType.kTerminateForNewTask);
- // 调用推送服务 orderId + carVin
- orderMissionClient.pushOrder(pushOrderDto);
- log.info("开始推送 {} 订单到XPU。单号 {}", xpOrder.getOrderNumber(), orderNo);
- }else {
- //流量接入-接单推送 合作商的车辆需要调用合作商的订单通知接口
- officialPartnerUtil.pushNewOrder(vehiclePosition.getOfficialPartnerId(), xpOrder);
+ redisService.removeByPattern(quoteName,xpOrder.getOrderNumber());
+ log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
+ return true;
}
- redisService.removeByPattern(quoteName,xpOrder.getOrderNumber());
- log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
- return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
@@ -1160,10 +1160,6 @@
XpVehicle vehicleId1 = vehicleR.getData();
log.info("附近只有一个车辆 {} ,直接推单XPU。单号 {}", vehicleId1.getPlateNumber(), orderNo);
log.info("当前车辆状态 运营状态 {} 单号 {}", vehicleId1.getState(), orderNo);
- if (vehicleId1.getOperatingStatus() != 1 || vehicleId1.getState() != 0 || vehicleId1.getVehicleType() == 1) {
- continue;
- }
-
// 再次查询一下订单 看是否取消
xpOrderR = xpOrderClient.queryOrderByOrderNo(orderNo);
@@ -1175,49 +1171,51 @@
continue;
}
- if(null == vehicleId1.getOfficialPartnerId()){
- // 关闭巡游单子
- String vin = SensitiveDataCryptoUtil.decryptIfPossible(vehicleId1.getVehicleVin());
- R<XpCruiseOrder> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vin);
- if (stringR == null || stringR.getCode() != 200) {
- log.info("关闭巡游单子失败 车牌号 {}", vehicleId1.getPlateNumber());
- continue;
+ // 所有条件满足走正常派单,不满足走循环派单
+ if (vehicleId1.getOperatingStatus() == 1 && vehicleId1.getState() == 0 && vehicleId1.getVehicleType() == 2) {
+ if(null == vehicleId1.getOfficialPartnerId()){
+ // 关闭巡游单子
+ String vin = SensitiveDataCryptoUtil.decryptIfPossible(vehicleId1.getVehicleVin());
+ R<XpCruiseOrder> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vin);
+ if (stringR == null || stringR.getCode() != 200) {
+ log.info("关闭巡游单子失败 车牌号 {}", vehicleId1.getPlateNumber());
+ continue;
+ }
+ log.info("关闭巡游单成功 {} {}", vehicleId1.getPlateNumber(), orderNo);
+ XpCruiseOrder cruiseOrder = stringR.getData();
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(vehiclePosition.getVin());
+ pushOrderDto.setOrderId(xpOrder.getId().toString());
+ pushOrderDto.setStartWaypointId(xpOrder.getStartPointId());
+ pushOrderDto.setEndWaypointId(xpOrder.getEndPointId());
+ pushOrderDto.setStartLatitude(xpOrder.getStartLat());
+ pushOrderDto.setStartLongitude(xpOrder.getStartLon());
+ pushOrderDto.setEndLatitude(xpOrder.getEndLat());
+ pushOrderDto.setEndLongitude(xpOrder.getEndLon());
+ pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
+ pushOrderDto.setOrderType(OrderType.USER_ORDER);
+ pushOrderDto.setStage(1);
+ if(null != cruiseOrder){
+ pushOrderDto.setLastOrderId("XU" + cruiseOrder.getId());
+ pushOrderDto.setLastXpuTaskId(cruiseOrder.getXpuTaskId());
+ }
+ pushOrderDto.setTaskActionType(TaskActionType.kTerminateForNewTask);
+ // 调用推送服务 orderId + carVin
+ orderMissionClient.pushOrder(pushOrderDto);
+ }else {
+ //流量接入-接单推送 合作商的车辆需要调用合作商的订单通知接口
+ officialPartnerUtil.pushNewOrder(vehicleId1.getOfficialPartnerId(), xpOrder);
}
- log.info("关闭巡游单成功 {} {}", vehicleId1.getPlateNumber(), orderNo);
- XpCruiseOrder cruiseOrder = stringR.getData();
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setVin(vehiclePosition.getVin());
- pushOrderDto.setOrderId(xpOrder.getId().toString());
- pushOrderDto.setStartWaypointId(xpOrder.getStartPointId());
- pushOrderDto.setEndWaypointId(xpOrder.getEndPointId());
- pushOrderDto.setStartLatitude(xpOrder.getStartLat());
- pushOrderDto.setStartLongitude(xpOrder.getStartLon());
- pushOrderDto.setEndLatitude(xpOrder.getEndLat());
- pushOrderDto.setEndLongitude(xpOrder.getEndLon());
- pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
- pushOrderDto.setOrderType(OrderType.USER_ORDER);
- pushOrderDto.setStage(1);
- if(null != cruiseOrder){
- pushOrderDto.setLastOrderId("XU" + cruiseOrder.getId());
- pushOrderDto.setLastXpuTaskId(cruiseOrder.getXpuTaskId());
- }
- pushOrderDto.setTaskActionType(TaskActionType.kTerminateForNewTask);
- // 调用推送服务 orderId + carVin
- orderMissionClient.pushOrder(pushOrderDto);
- }else {
- //流量接入-接单推送 合作商的车辆需要调用合作商的订单通知接口
- officialPartnerUtil.pushNewOrder(vehicleId1.getOfficialPartnerId(), xpOrder);
+ log.info("开始推送 {} 订单到XPU", xpOrder.getOrderNumber());
+ redisService.popFirstElement(quoteName);
+ log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
+ return true;
}
- log.info("开始推送 {} 订单到XPU", xpOrder.getOrderNumber());
- redisService.popFirstElement(quoteName);
- log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
- return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}
-
}
}
@@ -1230,10 +1228,10 @@
log.info("连环派单查询车辆结果 {} {}", orderNo, JSON.toJSONString(servingVehicles.getData()));
if(!isTargetedService){
servingVehicles.getData().removeAll(vehicleVinByTargetedService);
- log.info("剔除定向服务车辆后的结果 {} 单号 {}", JSON.toJSONString(servingVehicles), orderNo);
+ log.info("连环派单剔除定向服务车辆后的结果 {} 单号 {}", JSON.toJSONString(servingVehicles), orderNo);
}else{
servingVehicles.setData(vehicleVinByTargetedService);
- log.info("查找定向服务车辆后的结果 {} 单号 {}", JSON.toJSONString(servingVehicles), orderNo);
+ log.info("连环派单查找定向服务车辆后的结果 {} 单号 {}", JSON.toJSONString(servingVehicles), orderNo);
}
XpTradingStrategyDetailVO strategyDetailVO = tradingStrategyClient.queryById().getData();
--
Gitblit v1.7.1