From bc02e77af3f6f003fa44c67aa03c169441f63d5f Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 三月 2026 18:29:46 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
---
xp-robotaxi-map-boot/src/main/resources/mapper/XpElectronicFenceMapper.xml | 6 ++++--
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 2 +-
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java | 42 +++++++++++++++++++++++++++++++-----------
3 files changed, 36 insertions(+), 14 deletions(-)
diff --git a/xp-robotaxi-map-boot/src/main/resources/mapper/XpElectronicFenceMapper.xml b/xp-robotaxi-map-boot/src/main/resources/mapper/XpElectronicFenceMapper.xml
index b4b3cd4..acdc4d5 100644
--- a/xp-robotaxi-map-boot/src/main/resources/mapper/XpElectronicFenceMapper.xml
+++ b/xp-robotaxi-map-boot/src/main/resources/mapper/XpElectronicFenceMapper.xml
@@ -38,8 +38,10 @@
<if test="query.electronicAreaId != null">
and efa.id = #{query.electronicAreaId}
</if>
- <if test="query.status != null">
- and ef.status = #{query.status}
+ <if test="query.statusList != null">
+ <foreach collection="query.statusList" item="status" open="and ef.status in (" separator="," close=")">
+ #{status}
+ </foreach>
</if>
<if test="query.createBy != null and query.createBy!=''">
and ef.create_by like concat('%',#{query.createBy},'%')
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 bd33ff4..573d269 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
@@ -159,35 +159,54 @@
int count = onePushTime / sleepTime;
// 第一轮推单
log.info("开始第一轮推单 {}", orderNo);
- processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, onePushDistance, distance, duration, planRule);
-
+ Boolean processed = processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, onePushDistance, distance, duration, planRule);
+ if(processed){
+ log.info("订单推送成功 {}", orderNo);
+ return;
+ }
// 第二轮推单
Integer twoPushTime = xpTradingStrategy.getTwoPushTime();
Double twoPushDistance = xpTradingStrategy.getTwoPushDistance();
count = twoPushTime / sleepTime;
log.info("开始第二轮推单 {}", orderNo);
- processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, twoPushDistance, distance, duration, planRule);
+ processed = processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, twoPushDistance, distance, duration, planRule);
+ if(processed){
+ log.info("订单推送成功 {}", orderNo);
+ return;
+ }
// 第三轮推单
Integer threePushTime = xpTradingStrategy.getThreePushTime();
Double threePushDistance = xpTradingStrategy.getThreePushDistance();
count = threePushTime / sleepTime;
log.info("开始第三轮推单 {}", orderNo);
- processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, threePushDistance, distance, duration, planRule);
+ processed = processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, threePushDistance, distance, duration, planRule);
+ if(processed){
+ log.info("订单推送成功 {}", orderNo);
+ return;
+ }
// 第四轮推单
Integer fourPushTime = xpTradingStrategy.getFourPushTime();
Double fourPushDistance = xpTradingStrategy.getFourPushDistance();
count = fourPushTime / sleepTime;
log.info("开始第四轮推单 {}", orderNo);
- processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fourPushDistance, distance, duration, planRule);
+ processed = processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fourPushDistance, distance, duration, planRule);
+ if(processed){
+ log.info("订单推送成功 {}", orderNo);
+ return;
+ }
// 第五轮推单
Integer fivePushTime = xpTradingStrategy.getFivePushTime();
Double fivePushDistance = xpTradingStrategy.getFivePushDistance();
count = fivePushTime / sleepTime;
log.info("开始第五轮推单 {}", orderNo);
- processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fivePushDistance, distance, duration, planRule);
+ processed = processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fivePushDistance, distance, duration, planRule);
+ if(processed){
+ log.info("订单推送成功 {}", orderNo);
+ return;
+ }
// 取消订单
R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.valueOf(orderId));
@@ -220,7 +239,7 @@
* @param xpTradingStrategy 规则
*/
@SneakyThrows
- private void processPushOrder(String quoteName, int count, int sleepTime, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, Double pushDistance, String distance, String duration, String planRule) {
+ private Boolean processPushOrder(String quoteName, int count, int sleepTime, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, Double pushDistance, String distance, String duration, String planRule) {
log.info("进入推单环节 单号 {}", orderNo);
if (count == 0) {
count = 1;
@@ -228,10 +247,10 @@
// 订单状态
R<XpOrder> xpOrderR = xpOrderClient.queryOrderByOrderNo(orderNo);
if (xpOrderR.getCode() != 200) {
- return;
+ return false;
}
if (xpOrderR.getData().getStatus() != 1) {
- return;
+ return true;
}
XpOrder xpOrder = xpOrderR.getData();
@@ -790,7 +809,7 @@
redisService.popFirstElement(quoteName);
log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
- return;
+ return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
@@ -848,7 +867,7 @@
xpVehicleClient.updateVehicleById(vehicle);
}
}
- return;
+ return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
@@ -858,6 +877,7 @@
}
}
}
+ return false;
}
/**
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 2df9ffa..1bb247d 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
@@ -2149,7 +2149,7 @@
order.setFleetId(vehicle.getFleetId());
addTaxiPassengerVo.setVin(vehicle.getVehicleVin());
}
- order.setStatus(2);
+ order.setStatus(3);
// Redis弹出这个队列元素
// value 订单Id_经纬度_状态_用户id_订单编号_距离_时间
--
Gitblit v1.7.1