From 7757f35fda944ae952024aead5fa8ead3b6e52ee Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 09 三月 2026 09:33:39 +0800
Subject: [PATCH] 修改推单bug

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 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 44325f8..43b2270 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
@@ -154,34 +154,39 @@
         //每次查找车辆推单后的等待秒数
         int sleepTime = 3;
         Integer onePushTime = xpTradingStrategy.getOnePushTime();
+        Double onePushDistance = xpTradingStrategy.getOnePushDistance();
         int count = onePushTime / sleepTime;
         // 第一轮推单
         log.info("开始第一轮推单 {}", orderNo);
-        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, onePushDistance, distance, duration, planRule);
 
         // 第二轮推单
         Integer twoPushTime = xpTradingStrategy.getTwoPushTime();
+        Double twoPushDistance = xpTradingStrategy.getTwoPushDistance();
         count = twoPushTime / sleepTime;
         log.info("开始第二轮推单 {}", orderNo);
-        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, twoPushDistance, distance, duration, planRule);
 
         // 第三轮推单
         Integer threePushTime = xpTradingStrategy.getThreePushTime();
+        Double threePushDistance = xpTradingStrategy.getThreePushDistance();
         count = threePushTime / sleepTime;
         log.info("开始第三轮推单 {}", orderNo);
-        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, threePushDistance, distance, duration, planRule);
 
         // 第四轮推单
         Integer fourPushTime = xpTradingStrategy.getFourPushTime();
+        Double fourPushDistance = xpTradingStrategy.getFourPushDistance();
         count = fourPushTime / sleepTime;
         log.info("开始第四轮推单 {}", orderNo);
-        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fourPushDistance, distance, duration, planRule);
 
         // 第五轮推单
         Integer fivePushTime = xpTradingStrategy.getFivePushTime();
+        Double fivePushDistance = xpTradingStrategy.getFivePushDistance();
         count = fivePushTime / sleepTime;
         log.info("开始第五轮推单 {}", orderNo);
-        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, fivePushDistance, distance, duration, planRule);
 
         // 取消订单
         R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.valueOf(orderId));
@@ -214,7 +219,7 @@
      * @param xpTradingStrategy  规则
      */
     @SneakyThrows
-    private void processPushOrder(String quoteName, int count, int sleepTime, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, String distance, String duration, String planRule) {
+    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) {
         log.info("进入推单环节 单号 {}", orderNo);
         if (count == 0) {
             count = 1;
@@ -237,13 +242,13 @@
         for (int i = 0; i < count; i++) {
             //等到sleepTime秒钟
             Thread.sleep(sleepTime * 1000);
-            log.info("进入找车环节 单号 {}", orderNo);
+            log.info("进入找车环节 单号 {} 第{}轮", orderNo, count++);
             // 根据距离找车
             // 车多则根据配置找具体车数量 根据距离最近
             // 更改 暂不限制数量
 
-            List<VehiclePosition> positionList = vehiclePositionService.findAvailableVehiclesNearby(Double.parseDouble(split[0]), Double.parseDouble(split[1]), xpTradingStrategy.getOnePushDistance(), xpTradingStrategy.getSimultaneouslyOrderCount());
-            log.info("根据距离找车 {} 距离 {}KM  经度 {} 维度 {} 查找结果 {} 单号 {}", orderNo, xpTradingStrategy.getOnePushDistance(), split[0], split[1], positionList, orderNo);
+            List<VehiclePosition> positionList = vehiclePositionService.findAvailableVehiclesNearby(Double.parseDouble(split[0]), Double.parseDouble(split[1]), pushDistance, xpTradingStrategy.getSimultaneouslyOrderCount());
+            log.info("根据距离找车 {} 距离 {}KM  经度 {} 维度 {} 查找结果 {} 单号 {}", orderNo, pushDistance, split[0], split[1], positionList, orderNo);
             // 获取车辆的区域信息
             if (positionList.isEmpty()) {
                 continue;

--
Gitblit v1.7.1