From 09e0146b9379e06351e7bd5b9bdc5b1700ab133b Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 15 四月 2026 18:30:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java | 56 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 31 insertions(+), 25 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 0cf6e26..68b9462 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,7 +2,6 @@
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;
@@ -18,6 +17,7 @@
import com.xiaopeng.api.model.operation.XpElectronicFence;
import com.xiaopeng.api.model.operation.XpTradingStrategy;
import com.xiaopeng.api.model.order.XpOrder;
+import com.xiaopeng.api.model.order.XpOrderReassign;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
@@ -28,13 +28,13 @@
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.config.UidVinBindingConfig;
+import com.xiaopeng.operation.dto.PriorityMatchResult;
import com.xiaopeng.operation.mapper.XpElectronicFenceMapper;
import com.xiaopeng.operation.service.IXpElectronicFenceAreaService;
import com.xiaopeng.operation.service.IXpTradingStrategyService;
-import com.xiaopeng.operation.service.XpPointService;
-import com.xiaopeng.operation.config.UidVinBindingConfig;
-import com.xiaopeng.operation.dto.PriorityMatchResult;
import com.xiaopeng.operation.service.UidVinPriorityMatcher;
+import com.xiaopeng.operation.service.XpPointService;
import com.xiaopeng.operation.utils.mango.VehiclePositionService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -1086,31 +1086,43 @@
return false;
}
+
+
/**
- * 订单处理
+ * 重新改派
+ * 1.优化好点 做个倒计时的异步改派多次
* @param count 轮数
- * @param uid
+ * @param uid 用户id
* @param longitude 经度
* @param latitude 纬度
* @param orderNo 订单号
*/
@SneakyThrows
- public void reassignPushOrder(int count, String uid, Double longitude, Double latitude, String orderNo) {
- System.out.println("进入推单环环节");
+ public XpOrderReassign reassignPushOrder(int count, String uid, Double longitude, Double latitude, String orderNo) {
+ log.info("进入推单环环节");
if (count == 0) {
count = 1;
}
// 订单状态
R<XpOrder> xpOrderR = xpOrderClient.queryOrderByOrderNo(orderNo);
if (xpOrderR.getCode() != 200) {
- return;
+ return null;
}
+// List<Integer> notDrive = new ArrayList<Integer>(){{ //未行驶的情况下订单故障状态点 status=2、3、4、5
+// add(OrderStatusEnum.READY_DEPART.getCode());add(OrderStatusEnum.PICK_UP.getCode());
+// add(OrderStatusEnum.PICK_UP_GUESTS.getCode());add(OrderStatusEnum.PASSENGER_BOARDED.getCode());
+// }};
+
if (xpOrderR.getData().getStatus() != 1) {
- return;
+ return null;
}
+
XpOrder data = xpOrderR.getData();
XpTradingStrategy xpTradingStrategy = xpTradingStrategyService.getOne(null);
- boolean orderCarStatus = false;//未派到车 默认
+
+ XpOrderReassign entity = new XpOrderReassign(data.getId(),data.getVehicleId(),data.getFleetId(),longitude,latitude,"接驾故障");
+ entity.setIsComplete(false);
+ entity.setAppUserId(Long.valueOf(uid));
//循环找车
for (int i = 0; i < count; i++) {
log.info("进入找车环节");
@@ -1158,29 +1170,23 @@
// 调用推送服务 orderId + carVin
orderMissionClient.pushOrder(pushOrderDto);
- //接单成功 将 修改 订单的状态=1 ( 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成)
- orderCarStatus = true;
+ entity.setNewVehicleId(vehicleId1.getId());
+ entity.setNewFleetId(vehicleId1.getFleetId());
+ entity.setIsComplete(true);
+// //接单成功 将 修改 订单的状态=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);
+ break;
} 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);
- }
- }
-
+ //保存改派记录
+ return entity;
}
--
Gitblit v1.7.1