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-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java |   42 +++++++++++++++++++++++++++++++-----------
 1 files changed, 31 insertions(+), 11 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 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;
     }
 
     /**

--
Gitblit v1.7.1