From 4f6fcdf60a829e5d4b57e9a811d0d568b6ed7622 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 07 三月 2026 21:01:57 +0800
Subject: [PATCH] 添加日志

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java |   84 ++++++++++++-----------------------------
 1 files changed, 25 insertions(+), 59 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 f5ee65f..9be555a 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
@@ -86,7 +86,7 @@
     private static final ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
 
     static {
-        threadPoolTaskExecutor.setCorePoolSize(50);
+        threadPoolTaskExecutor.setCorePoolSize(20);
         threadPoolTaskExecutor.setMaxPoolSize(100);
         threadPoolTaskExecutor.setQueueCapacity(20);
         threadPoolTaskExecutor.setKeepAliveSeconds(60);
@@ -138,81 +138,50 @@
         // 后台配置的规则
         String planRule = firstElement.split("_")[7];
 
-
         // 经纬度
         String[] split = lonLat.split(",");
 
         // 5轮找车辆
+        //每次查找车辆推单后的等待秒数
+        int sleepTime = 3;
         Integer onePushTime = xpTradingStrategy.getOnePushTime();
-        int count = onePushTime / 3;
+        int count = onePushTime / sleepTime;
         // 第一轮推单
-        processPushOrder(quoteName, count, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
-
-//
-//        for (int i = 0; i < count; i++) {
-//            // 根据距离找车
-//            // 车多则根据配置找具体车数量 根据距离最近
-//            List<VehiclePosition> availableVehiclesNearby = vehiclePositionService.findAvailableVehiclesNearby(Double.parseDouble(split[0]), Double.parseDouble(split[1]), one.getOnePushDistance(), one.getSimultaneouslyOrderCount());
-//            if (!availableVehiclesNearby.isEmpty()) {
-//                if (availableVehiclesNearby.size() > 1) {
-//                    // 走权重
-//                } else {
-//                    // 直接派单  定义一个锁来锁定车辆
-//                    VehiclePosition vehiclePosition = availableVehiclesNearby.get(0);
-//                    Long vehicleId = vehiclePosition.getVehicle_id();
-//                    // 查询车辆状态
-//                    VehiclePosition vehicleId1 = vehiclePositionService.findByVehicleId(vehicleId);
-//                    if (vehicleId1.getStatus() != 1 || vehicleId1.getState() != 0) {
-//                        continue;
-//                    }
-//                    if (vehiclePosition.getHasOrder() == 1) {
-//                        //  关闭巡游单子 TODO
-//                    }
-//
-//                    AddTaxiPassengerVo addTaxiPassengerVo = new AddTaxiPassengerVo();
-//                    addTaxiPassengerVo.setVin(vehiclePosition.getVin());
-//                    addTaxiPassengerVo.setUid(uid);
-//                    addTaxiPassengerVo.setOrderNo(orderNo);
-//                    // TODO
-//                    addTaxiPassengerVo.setAppId("");
-//                    BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.addTaxiPassenger(addTaxiPassengerVo);
-//                    if (baseVehicleUserDto.getCode() == 200) {
-//                        redisService.popFirstElement(quoteName);
-//
-//                    }
-//                }
-//
-//            }
-//        }
+        log.info("开始第一轮推单 {}", orderNo);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
 
         // 第二轮推单
         Integer twoPushTime = xpTradingStrategy.getTwoPushTime();
-        count = twoPushTime / 3;
-        processPushOrder(quoteName, count, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        count = twoPushTime / sleepTime;
+        log.info("开始第二轮推单 {}", orderNo);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
 
         // 第三轮推单
         Integer threePushTime = xpTradingStrategy.getThreePushTime();
-        count = threePushTime / 3;
-        processPushOrder(quoteName, count, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        count = threePushTime / sleepTime;
+        log.info("开始第三轮推单 {}", orderNo);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
 
         // 第四轮推单
         Integer fourPushTime = xpTradingStrategy.getFourPushTime();
-        count = fourPushTime / 3;
-        processPushOrder(quoteName, count, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
+        count = fourPushTime / sleepTime;
+        log.info("开始第四轮推单 {}", orderNo);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
 
         // 第五轮推单
         Integer fivePushTime = xpTradingStrategy.getFivePushTime();
-        count = fivePushTime / 3;
-        processPushOrder(quoteName, count, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
-
+        count = fivePushTime / sleepTime;
+        log.info("开始第五轮推单 {}", orderNo);
+        processPushOrder(quoteName, count, sleepTime, uid, split, orderNo, xpTradingStrategy, distance, duration, planRule);
 
         // 取消订单
         R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.valueOf(orderId));
         if (xpOrderR.getCode() == 200) {
             if (xpOrderR.getData().getStatus() == 1) {
+                log.info("五轮推单结束,无车辆接单,执行取消订单 {}", orderNo);
                 xpOrderClient.cancelOrder(orderId);
-
-                // 最终没找到车
+                //将订单从队列中移除
+                log.info("五轮推单结束,无车辆接单,执行队列移除订单 {}", orderNo);
                 redisService.popFirstElement(quoteName);
             }
         }
@@ -230,10 +199,8 @@
      * @param xpTradingStrategy  规则
      */
     @SneakyThrows
-    private void processPushOrder(String quoteName, int count, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, String distance, String duration, String planRule) {
-        // 卡住3秒
-        Thread.sleep(3000);
-        System.out.println("进入推单环环节");
+    private void processPushOrder(String quoteName, int count, int sleepTime, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, String distance, String duration, String planRule) {
+        System.out.println("进入推单环节");
         if (count == 0) {
             count = 1;
         }
@@ -253,6 +220,8 @@
         XpElectronicFence xpElectronicFence = xpElectronicFenceMapper.selectById(electronicId);
 
         for (int i = 0; i < count; i++) {
+            //等到sleepTime秒钟
+            Thread.sleep(sleepTime);
             System.out.println("进入找车环节");
             // 根据距离找车
             // 车多则根据配置找具体车数量 根据距离最近
@@ -825,7 +794,6 @@
                         log.info("附近只有一个车辆 {} ,直接推单XPU", vehicleId1.getPlateNumber());
                         log.info("当前车辆状态 {} 运营状态 {}", vehicleId1.getOperatingStatus(), vehicleId1.getState());
                         if (vehicleId1.getOperatingStatus() != 1 || vehicleId1.getState() != 0 || vehicleId1.getVehicleType()==1) {
-                            lock.unlock();
                             continue;
                         }
                         //  关闭巡游单子
@@ -834,7 +802,6 @@
                             log.info("关闭巡游单子失败");
                             continue;
                         }
-
 
                         PushOrderDto pushOrderDto = new PushOrderDto();
                         pushOrderDto.setVin(vehiclePosition.getVin());
@@ -851,7 +818,6 @@
                         redisService.popFirstElement(quoteName);
                         log.info("将订单 {} 从队列 {} 弹出去", xpOrder.getOrderNumber(), quoteName);
                         return;
-
                     } catch (Exception e) {
                         e.printStackTrace();
                     } finally {

--
Gitblit v1.7.1