From ef32f6913325bb593d537b4ff433545f73ecb79a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 11 三月 2026 10:00:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
index 8e493d9..6e12f34 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -19,9 +19,6 @@
import com.xiaopeng.api.model.order.XpOrder;import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.SystemEventType;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
-import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.RTTask;
-import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.TaskStatus;
-import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudCreateOrder.TaskType;
import com.xiaopeng.api.vo.automaticPilot.protobuf.*;
import com.xiaopeng.api.vo.operation.RouteVo;
import com.xiaopeng.api.vo.order.OrderTrajectoryVo;
@@ -66,9 +63,10 @@
@PostMapping("/inner/pushOrder")
public R<Boolean> pushOrder(@RequestBody PushOrderDto dto) {
RtTask.Builder taskBuilder = RtTask.newBuilder();
-
+ SnowFlake snowFlake = new SnowFlake(0, 0);
+ snowFlake.withStartTimestamp(1420041600000L);
taskBuilder.setOrderId(dto.getOrderId().toString());
- taskBuilder.setTaskId("MISSION_"+ IdUtil.fastUUID());
+ taskBuilder.setTaskId(snowFlake.nextId() + "");
if(dto.getOrderId().contains("XU")){
taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
@@ -102,6 +100,7 @@
pointBuilderEnd.setPoint(geoPointBuilder.build());
taskBuilder.addPoints(pointBuilderEnd);
taskBuilder.setSequence(1);
+ taskBuilder.addOrderPhase(OrderPhase.ROUTE_TO_CRUISE);
}else{
//用户订单
if(dto.getStage() == 1){
@@ -127,6 +126,7 @@
pointBuilderEnd.setPoint(geoPointBuilder.build());
taskBuilder.addPoints(pointBuilderEnd);
taskBuilder.setSequence(1);
+ taskBuilder.addOrderPhase(OrderPhase.ROUTE_TO_PICKUP);
}else{
//构建上车点位置信息
pointBuilderStart.setWaypointId(dto.getOrderId() + "-SD-001");
@@ -150,22 +150,26 @@
pointBuilderEnd.setPoint(geoPointBuilder.build());
taskBuilder.addPoints(pointBuilderEnd);
taskBuilder.setSequence(2);
+ taskBuilder.addOrderPhase(OrderPhase.ROUTE_TO_DESTINATION);
}
}
RtTaskList.Builder taskListBuilder = RtTaskList.newBuilder();
taskListBuilder.addTasks(taskBuilder.build());
- SnowFlake snowFlake = new SnowFlake(0, 0);
- snowFlake.withStartTimestamp(1420041600000L);
long sequence = snowFlake.nextId();
MqttPublishDto mqttPublishDto = xpuUtil.cloudCreateOrder(taskListBuilder.build(), dto.getVin(),sequence);
+ //先将车辆修改状态,防止在异步通知之前被其他订单选中
+ if (!dto.getOrderId().contains("XU") && mqttPublishDto.getCode()== 200) {
+ // 修改车子为接单状态
+ xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(dto.getVin(), 1));
+ }
if(null != mqttPublishDto && mqttPublishDto.getCode() == 200){
JSONObject jsonObject = new JSONObject();
jsonObject.put("event", SystemEventType.CREATE_ORDER);
jsonObject.put("orderType", dto.getOrderId().contains("XU") ? com.xiaopeng.api.vo.OrderType.CRUISE_ORDER : com.xiaopeng.api.vo.OrderType.USER_ORDER);
jsonObject.put("orderId", dto.getOrderId());
jsonObject.put("vin", dto.getVin());
- redisTemplate.opsForValue().set("CREATE_ORDER:" + dto.getOrderId().toString(), jsonObject.toJSONString(),30, TimeUnit.MINUTES);
+ redisService.setCacheObject("CREATE_ORDER:" + dto.getOrderId().toString(), jsonObject.toJSONString(),30L, TimeUnit.MINUTES);
return R.ok(true);
}
return R.ok(false);
--
Gitblit v1.7.1