From 79805d16fdec4905deac5a8474c155234e0b3ea7 Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期二, 14 四月 2026 21:32:31 +0800
Subject: [PATCH] 1.车辆接驾中异常处理 2.行驶中,用户去掉订单异常处理 3.行驶中,车辆故障异常处理
---
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 bb01b6a..0cf6e26 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;
// 自定义线程池
@@ -1105,6 +1110,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());
@@ -1151,12 +1158,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