From c98d3f2fc620b3f5d699e2be34eaabc1033b42b2 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 11 三月 2026 16:17:32 +0800
Subject: [PATCH] 修改巡游订单部分逻辑

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java |   42 ++++++++++++++++++++++++++++++------------
 1 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
index f1bf8a5..49239eb 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
@@ -52,34 +52,50 @@
      * @param vin
      */
     @Override
-    public String updateCruiseOrder(String vin) {
+    public Long updateCruiseOrder(String vin) {
         LambdaQueryWrapper<XpCruiseOrder> wrapper = new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleVin, vin).eq(XpCruiseOrder::getStatus, 1);
         XpCruiseOrder xpCruiseOrder = this.getOne(wrapper);
         if (xpCruiseOrder != null) {
             xpCruiseOrder.setStatus(2);
             this.update(xpCruiseOrder, wrapper);
-            // todo 给XPU下发订单取消报文,如果取消不成功需要重试。两次不成功,则需要换车
             PushOrderDto pushOrderDto = new PushOrderDto();
             pushOrderDto.setVin(vin);
-            pushOrderDto.setOrderId(xpCruiseOrder.getId());
-            pushOrderDto.setOperation_type(OrderOperationType.VEHICLE_CANCEL_ORDER);
+            pushOrderDto.setOrderId("XU" + xpCruiseOrder.getId());
+            pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
             R<Boolean> booleanR = orderMissionClient.cancelOrder(pushOrderDto);
             if(booleanR==null || !booleanR.getData()){
-                log.error("下发失败重试一次");
-                R<Boolean> booleanR1 = orderMissionClient.cancelOrder(pushOrderDto);
-                if(booleanR1==null || !booleanR1.getData()){
-                    log.error("换车");
-                    return null;
-                }
+                log.error("XPU取消巡游订单失败");
+                return null;
             }
-
             return xpCruiseOrder.getId();
         }
         return null;
     }
 
+
     @Override
-    public String closeCruiseOrder(String vin) {
+    public R updateCruiseOrderId(Long orderId) {
+        XpCruiseOrder xpCruiseOrder = this.getById(orderId);
+        if (xpCruiseOrder != null) {
+            xpCruiseOrder.setStatus(2);
+            xpCruiseOrder.setVehicleId(null);
+            this.updateById(xpCruiseOrder);
+            PushOrderDto pushOrderDto = new PushOrderDto();
+            pushOrderDto.setVin(xpCruiseOrder.getVehicleVin());
+            pushOrderDto.setOrderId("XU" + xpCruiseOrder.getId());
+            pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
+            R<Boolean> booleanR = orderMissionClient.cancelOrder(pushOrderDto);
+            if(booleanR==null || !booleanR.getData()){
+                log.error("XPU取消巡游订单失败");
+                return R.fail("XPU取消巡游订单失败");
+            }
+            return R.ok();
+        }
+        return R.fail("获取订单失败");
+    }
+
+    @Override
+    public Long closeCruiseOrder(String vin) {
         LambdaQueryWrapper<XpCruiseOrder> wrapper = new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleVin, vin).eq(XpCruiseOrder::getStatus, 1);
         XpCruiseOrder xpCruiseOrder = this.getOne(wrapper);
         if (xpCruiseOrder != null) {
@@ -90,6 +106,8 @@
         return null;
     }
 
+
+
     @Override
     public PageInfo<XpCruiseOrderPageVO> pageList(XpCruiseOrderPageQuery query) {
         PageInfo<XpCruiseOrderPageVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());

--
Gitblit v1.7.1