From 406ae5451ecde0b4b40a9ecfee07f2171fda80bc Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 15 四月 2026 15:04:07 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 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 3fc3e28..7531c25 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
@@ -2,11 +2,13 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson2.JSON;
+import com.xiaopeng.api.dto.account.UseUserCouponDto;
 import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
 import com.xiaopeng.api.dto.map.RouteAndFareDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.dto.operation.VehiclePositionByVinDto;
 import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
+import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
 import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
 import com.xiaopeng.api.feignClient.map.XpMapClient;
 import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient;
@@ -24,6 +26,7 @@
 import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.constant.Constants;
 import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.operation.mapper.XpElectronicFenceMapper;
 import com.xiaopeng.operation.service.IXpElectronicFenceAreaService;
@@ -97,6 +100,8 @@
 
     @Resource
     private UidVinPriorityMatcher uidVinPriorityMatcher;
+    @Resource
+    private  XpAppUserCouponClient xpAppUserCouponClient;
 
 
     // 自定义线程池
@@ -1106,6 +1111,8 @@
         }
         XpOrder data = xpOrderR.getData();
         XpTradingStrategy xpTradingStrategy = xpTradingStrategyService.getOne(null);
+        boolean orderCarStatus = false;//未派到车 默认
+        //循环找车
         for (int i = 0; i < count; i++) {
             log.info("进入找车环节");
             List<VehiclePosition> positionList = vehiclePositionService.findAvailableVehiclesNearby(longitude, latitude, xpTradingStrategy.getOnePushDistance(), xpTradingStrategy.getSimultaneouslyOrderCount());
@@ -1152,12 +1159,29 @@
                 // 调用推送服务  orderId + carVin
                 orderMissionClient.pushOrder(pushOrderDto);
 
+                //接单成功 将 修改 订单的状态=1 ( 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成)
+                orderCarStatus = true;
+                xpOrderClient.updateOrderStatus(data.getId(), OrderStatusEnum.PENDING_ORDER.getCode());
+                redisService.setCacheObject("ORDER_STATUS:" + data.getId(), OrderStatusEnum.PENDING_ORDER.getCode(), 24L, TimeUnit.HOURS);
+
             } catch (Exception e) {
                 throw new RuntimeException(e);
             } finally {
                 lock.unlock();
             }
         }
+        //未找到车 系统强制取消订单,状态流转至“系统自动取消”。 自动退回优惠卷
+        if(!orderCarStatus){
+            xpOrderClient.updateOrderStatus(data.getId(),OrderStatusEnum.CANCELED.getCode());
+            redisService.setCacheObject("ORDER_STATUS:" + data.getId(), OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
+            //有优惠卷 自动退回优惠卷
+            if(data.getCouponId() != null ){
+                UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
+                useUserCouponDto.setUserCouponId(data.getCouponId() );
+                xpAppUserCouponClient.backUserCoupon(useUserCouponDto);
+            }
+        }
+
     }
 
 

--
Gitblit v1.7.1