From 45f48096a6e1adeec51ed0ef001220991dfcafc4 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 20 四月 2026 22:00:13 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 47 insertions(+), 5 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 1e85c55..788bdbf 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
@@ -80,7 +80,7 @@
if(dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.CRUISE_ORDER)){
RtTask.Builder taskBuilder = RtTask.newBuilder();
taskBuilder.setOrderId(dto.getOrderId().toString());
- taskBuilder.setTaskId(snowflake.nextId() + "");
+ taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "");
taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
//构建起点坐标数据
pointBuilderStart.setWaypointId(dto.getOrderId() + "-001");
@@ -111,7 +111,7 @@
for (int i = 1; i < 3; i++) {
RtTask.Builder taskBuilder = RtTask.newBuilder();
taskBuilder.setOrderId(dto.getOrderId().toString());
- taskBuilder.setTaskId(snowflake.nextId() + "");
+ taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "");
taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
if(i == 1){
VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getVin())), VehiclePosition.class);
@@ -171,7 +171,7 @@
for (int i = 1; i < 3; i++) {
RtTask.Builder taskBuilder = RtTask.newBuilder();
taskBuilder.setOrderId(dto.getOrderId().toString());
- taskBuilder.setTaskId(snowflake.nextId() + "");
+ taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "");
taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
if(i == 1){
VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getVin())), VehiclePosition.class);
@@ -230,7 +230,7 @@
//测试单巡游单
RtTask.Builder taskBuilder = RtTask.newBuilder();
taskBuilder.setOrderId(dto.getOrderId().toString());
- taskBuilder.setTaskId(snowflake.nextId() + "");
+ taskBuilder.setTaskId(StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "");
taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
//构建起点坐标数据
pointBuilderStart.setWaypointId(dto.getOrderId() + "-001");
@@ -281,7 +281,7 @@
}
@PostMapping("/logan/inner/cancelOrder")
- R<Boolean> cancelOrder(@RequestBody PushOrderDto dto) {
+ public R<Boolean> cancelOrder(@RequestBody PushOrderDto dto) {
log.info("取消订单,推送XPU报文:{}", JSON.toJSONString(dto));
String taskId = StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "";
OrderOperation.Builder operationBuilder = OrderOperation.newBuilder();
@@ -317,6 +317,48 @@
+ @PostMapping("/logan/inner/updateEndAddress")
+ public R<Boolean> updateEndAddress(@RequestBody PushOrderDto dto){
+ log.info("修改目的地,推送XPU报文:{}", JSON.toJSONString(dto));
+ String taskId = StringUtils.isNotEmpty(dto.getTaskId()) ? dto.getTaskId() : snowflake.nextId() + "";
+ OrderOperation.Builder operationBuilder = OrderOperation.newBuilder();
+ operationBuilder.setOrderId(dto.getOrderId().toString());
+ operationBuilder.setTaskId(taskId);
+ if (dto.getOperation_type() != null) {
+ operationBuilder.setOperationType(OrderOperationType.forNumber(dto.getOperation_type().getNumber()));
+ }
+ Waypoint.Builder waypointBuilder = Waypoint.newBuilder();
+ waypointBuilder.setWaypointId(dto.getOrderId() + "-002");
+ waypointBuilder.setPointType(PointType.END_POINT);
+ waypointBuilder.setActionType(ActionType.DROP_OFF);
+ waypointBuilder.setSequence(2);
+ GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder();
+ geoPointBuilder.setLatitude(dto.getStartLatitude());
+ geoPointBuilder.setLongitude(dto.getStartLongitude());
+ waypointBuilder.setPoint(geoPointBuilder.build());
+ waypointBuilder.setPoiName(dto.getEndPoiName());
+ operationBuilder.setTargetPoint(waypointBuilder);
+ long sequence = snowflake.nextId();
+ MqttPublishDto mqttPublishDto = xpuUtil.cloudOrderOperation(operationBuilder.build(), dto.getVin(), sequence);
+
+ if (mqttPublishDto.getCode() == 200) {
+ if(!dto.getOrderId().contains("XU")){
+ Map<String, Object> cancelContext = new HashMap<>();
+ cancelContext.put("orderId", dto.getOrderId());
+ cancelContext.put("vin", dto.getVin());
+ cancelContext.put("cancelScene", StringUtils.isNotEmpty(dto.getCancelScene())
+ ? dto.getCancelScene()
+ : CancelOrderSceneEnum.NORMAL_CANCEL.getCode());
+ redisService.setCacheObject("CANCEL_ORDER_CONTEXT:" + taskId,
+ JSONObject.toJSONString(cancelContext), 30L, TimeUnit.MINUTES);
+ log.info("记录修改目的地订单上下文成功,orderId: {}, vin: {}, taskId: {}, cancelScene: {}",
+ dto.getOrderId(), dto.getVin(), taskId, cancelContext.get("cancelScene"));
+ }
+ return R.ok(true);
+ }
+
+ return R.ok(false);
+ }
--
Gitblit v1.7.1