From 99a812326d53eb83f40045c857ddc5fac9d09d91 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 21 三月 2026 15:55:02 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 /dev/null                                                                                                    |   55 -------
 sql/增量sql/xprt_maintenance.sql                                                                               |   39 +++++
 xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java |    2 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/job/jobs/AddCruiseMissionJob.java                    |    3 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java                 |  143 +++++++++----------
 sql/增量sql/xprt_operation.sql                                                                                 |  120 +++++++++++++++-
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaskOrderCancelUtil.java                       |    6 
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   13 +
 8 files changed, 237 insertions(+), 144 deletions(-)

diff --git "a/sql/\345\242\236\351\207\217sql/xprt_maintenance.sql" "b/sql/\345\242\236\351\207\217sql/xprt_maintenance.sql"
index e69de29..dbee9c9 100644
--- "a/sql/\345\242\236\351\207\217sql/xprt_maintenance.sql"
+++ "b/sql/\345\242\236\351\207\217sql/xprt_maintenance.sql"
@@ -0,0 +1,39 @@
+ALTER TABLE `xp_task_0` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_1` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_2` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_3` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_4` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_5` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_6` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_7` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_8` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_9` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_10` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_11` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_12` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_13` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_14` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_15` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_16` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_17` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_18` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
+
+ALTER TABLE `xp_task_19` MODIFY COLUMN `vehicle_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆位置' AFTER `task_image`;
diff --git "a/sql/\345\242\236\351\207\217sql/xprt_operation.sql" "b/sql/\345\242\236\351\207\217sql/xprt_operation.sql"
index ae9fffd..af12d39 100644
--- "a/sql/\345\242\236\351\207\217sql/xprt_operation.sql"
+++ "b/sql/\345\242\236\351\207\217sql/xprt_operation.sql"
@@ -1,19 +1,119 @@
-ALTER TABLE `xp_point_0` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
 
-ALTER TABLE `xp_point_1` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
 
-ALTER TABLE `xp_point_2` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
 
-ALTER TABLE `xp_point_3` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
 
-ALTER TABLE `xp_point_4` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
 
-ALTER TABLE `xp_point_5` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_0` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
 
-ALTER TABLE `xp_point_6` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_1` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
 
-ALTER TABLE `xp_point_7` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_1` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
 
-ALTER TABLE `xp_point_8` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_1` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
 
-ALTER TABLE `xp_point_9` MODIFY COLUMN `point_pictures` json NULL COMMENT '点位照片' AFTER `remarks`;
+ALTER TABLE `xp_point_1` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_1` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_1` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_2` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_3` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_4` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_5` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_6` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_7` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_8` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份名称' AFTER `parking_point`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `province_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '省份code' AFTER `province_name`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市名称' AFTER `province_code`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '城市code' AFTER `city_name`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `district_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县名称' AFTER `city_code`;
+
+ALTER TABLE `xp_point_9` ADD COLUMN `district_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '区县code' AFTER `district_name`;
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
index 621e44f..ef69498 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -874,6 +874,14 @@
                 case ORDER_CANCELLED:
                     //已取消
                     if(!orderId.contains("XU")){
+                        //判断订单状态,已经取消的不作处理
+                        Object cacheObject = redisService.getCacheObject("ORDER_STATUS:" + orderId);
+                        if(null != cacheObject){
+                            int order_status = Integer.parseInt(cacheObject.toString());
+                            if(0 == order_status){
+                                return;
+                            }
+                        }
                         //行程中取消订单,按照行程结束处理
                         buildPushOrderStatus(orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
                         xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
@@ -904,9 +912,6 @@
     public void buildPushOrderStatus(String orderId, OrderStatusEnum status, Long sequence){
         if(orderId.contains("XU")){
             //巡游单
-            //响应消息
-            // TODO 1.处理结束当前巡游订单  2.创建新的巡游订单 返航  3.调用xpu车机接口  (判断是返航还是正常  返航需要存储之前的订单id)
-            responseMessage(sequence, "");
             //到达目的地
             if(OrderStatusEnum.COMPLETED.equals(status)){
                 // 返程找到目前的订单 -》之前的订单 查询生成一个   正常巡游 找到下一个点位   若到达最后点位  则反向找点位  每次判断是否收车状态 是则不进行处理了
@@ -919,6 +924,8 @@
                     xpCruiseOrderClient.completeCruiseOrder(Long.parseLong(orderId.substring(2)));
                     R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(vehicleId);
                     XpVehicle xpVehicle = xpVehicleR.getData();
+                    //响应消息
+                    responseMessage(sequence, xpVehicle.getVehicleVin());
                     // 运营中 继续执行
                     if(xpVehicle.getOperatingStatus()==1 && xpVehicle.getState()==0){
                         log.info("巡游单到达终点,继续执行下一笔巡游单");
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/job/jobs/AddCruiseMissionJob.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/job/jobs/AddCruiseMissionJob.java
index eefa938..13201d9 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/job/jobs/AddCruiseMissionJob.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/job/jobs/AddCruiseMissionJob.java
@@ -41,12 +41,15 @@
             cancelTaxiPassengerVo.setOrderNo(xpOrder.getOrderNumber());
             cancelTaxiPassengerVo.setAppId(appid);
             userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
+            log.info("车辆到达终点后的定时任务解绑用户和车辆关系 {}", xpOrder.getOrderNumber());
 
             // 修改车辆接单状态
             vehicle.setState(0);
             xpVehicleClient.updateVehicleById(vehicle);
+            log.info("车辆到达终点后的定时任务回滚车辆状态为空闲 {}", xpOrder.getOrderNumber());
         }
         xpOrderService.addCruiseMission(vehicle, xpOrder);
+        log.info("车辆到达终点后的定时任务给车辆派巡游单 {}", xpOrder.getOrderNumber());
 	}
 
 }
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 86ee427..5f7c16d 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -635,6 +635,7 @@
             order.setStatus(0);
             order.setAppUserId(null);
             baseMapper.updateById(order);
+            redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
             // 消息推送
             Map<String, Object> params = new HashMap<>();
             Map<String, Object> content = new HashMap<>();
@@ -1278,11 +1279,13 @@
             order.setStatus(0);
             order.setAppUserId(null);
             baseMapper.updateById(order);
+            redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
             return;
         }
         order.setStatus(0);
         order.setAppUserId(null);
         baseMapper.updateById(order);
+        redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
         XpOrderCancel xpOrderCancel = new XpOrderCancel();
         xpOrderCancel.setOrderId(orderId);
         xpOrderCancel.setUserId(Long.valueOf(uid));
@@ -1299,21 +1302,6 @@
             Integer i = Integer.valueOf(cacheObject.toString());
             redisService.setCacheCancelOrder("CANCEL_ORDER_" + uid, i + 1);
         }
-
-        // 消息推送
-//        Map<String, Object> params = new HashMap<>();
-//        Map<String, Object> content = new HashMap<>();
-//        content.put("orderId", order.getId().toString());
-//        content.put("status", OrderStatusEnum.CANCELED.getCode());
-//        params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
-//        params.put("content", JSONObject.toJSONString(content));
-//        params.put("timestamp", new Date().getTime() + "");
-//        String message = JSONObject.toJSONString(params);
-//        SendMessageDTO sendMessageDTO = new SendMessageDTO();
-//        sendMessageDTO.setMessage(message);
-//        sendMessageDTO.setAppUserId(uid);
-//        xpPushMessageClient.sendStatus(sendMessageDTO);
-//        log.info("订单取消消息推送完毕");
 
         // 移除mongo数据
         xpPricingClient.deleteXpGeoQueryEntity(order.getId().toString());
@@ -1369,6 +1357,7 @@
         order.setStatus(0);
         order.setAppUserId(null);
         baseMapper.updateById(order);
+        redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
         XpOrderCancel xpOrderCancel = new XpOrderCancel();
         xpOrderCancel.setOrderId(Long.valueOf(orderId));
         xpOrderCancel.setUserId(1l);
@@ -1450,6 +1439,7 @@
         xpOrder.setAppUserId(null);
         xpOrder.setStatus(10);
         baseMapper.updateById(xpOrder);
+        redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), 10, 24L, TimeUnit.HOURS);
 
         XpOrderEvaluate evaluate = new XpOrderEvaluate();
         evaluate.setOrderId(xpOrder.getId());
@@ -1476,6 +1466,9 @@
         if(xpOrder.getStatus() >= 8){
             return R.fail("订单已结束");
         }
+        Long appUserId = xpOrder.getAppUserId();
+        // 查询车辆
+        XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
         switch (status) {
             case 4:
                 // 查询起点点位
@@ -1500,6 +1493,8 @@
                 LocalDateTime now = LocalDateTime.now();
                 xpOrder.setBoardingTime(now);
                 xpOrder.setRideTime(now);
+                //推送行起点到终点的驶轨迹给乘客端
+                sendRoute(appUserId.toString(), orderId, "ORDER_NAVIGATION_END_DATA", xpVehicle.getVehicleVin());
                 // 删除定时任务job
                 QuartzManager.removeJob((OrderCancelJob.name + xpOrder.getId()).toUpperCase(), TimeJobType.ORDER_CANCEL);
                 break;
@@ -1510,8 +1505,6 @@
             case 7:
                 xpOrder.setGetoffTime(LocalDateTime.now());
                 // 解析下车地点
-                // 查询车辆
-                XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
                 VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
                 if(Objects.nonNull(vehiclePosition)){
                     GeoJsonPoint point = vehiclePosition.getPoint();
@@ -1522,6 +1515,13 @@
                         xpOrder.setGetoffAddress(geocode.get("address"));
                     }
                 }
+                //计算行驶总距离和时长
+                List<OrderTrajectory> orderTrajectoryList = mongoTemplate.find(new Query().addCriteria(Criteria.where("orderId").is(xpOrder.getId())), OrderTrajectory.class);
+                Double reduce = orderTrajectoryList.stream().map(OrderTrajectory::getDistance).reduce(0.0, Double::sum);
+                xpOrder.setMileageKilometers(new BigDecimal(reduce).divide(new BigDecimal(1000)).setScale(4, RoundingMode.HALF_EVEN).doubleValue());
+                long duration = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) - xpOrder.getTripBegin().toEpochSecond(ZoneOffset.of("+8"));
+                xpOrder.setDuration(new BigDecimal(duration).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue());
+
                 // 推送倒计时消息
                 Map<String, Object> params = new HashMap<>();
                 Map<String, Object> content = new HashMap<>();
@@ -1570,7 +1570,7 @@
                         endTripJobMaps
                 );
                 // 添加车辆到达终点后限停时间到后驶离的定时任务
-                //时间到后添加巡游订单,解绑车辆关系,车辆驶离点位
+                //时间到后将车辆状态回滚到空闲、添加巡游订单,解绑用户和车辆关系,车辆驶离点位
                 XpPoint point = xpPointClient.queryById(xpOrder.getEndPointId()).getData();
                 Map<String, ? extends Object> jobMaps =
                         new ImmutableMap.Builder<String, String>()
@@ -1589,6 +1589,7 @@
         xpOrder.setStatus(status);
         xpOrder.setAppUserId(null);
         this.updateById(xpOrder);
+        redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), status, 24L, TimeUnit.HOURS);
         return R.ok();
     }
 
@@ -1614,12 +1615,8 @@
         order.setStatus(8);
         order.setAppUserId(null);
         order.setTripEnd(LocalDateTime.now());
-
-        double exactMinutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMillis() / (1000.0 * 60);
-        exactMinutes = new BigDecimal(exactMinutes).setScale(2, RoundingMode.HALF_UP).doubleValue();
-        order.setDuration(exactMinutes);
-
         baseMapper.updateById(order);
+        redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 8, 24L, TimeUnit.HOURS);
 
         // 根据订单所属开通城市id 查询定价
         R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCid(order.getCityId());
@@ -1664,6 +1661,8 @@
             xpOrderDetail.setOrderId(orderId);
             xpOrderDetail.setType(1);
             xpOrderDetail.setMileage(new BigDecimal(mileageKilometers).setScale(2, RoundingMode.HALF_UP));
+            String currentTimeSlot = DateUtils.getCurrentTimeSlot();
+            xpOrderDetail.setTime(currentTimeSlot);
             xpOrderDetail.setDuration(duration1);
             xpOrderDetail.setMoney(new BigDecimal(xpPricingCardVo.getStartPrice()).setScale(2, RoundingMode.HALF_UP));
             xpOrderDetails.add(xpOrderDetail);
@@ -1671,7 +1670,6 @@
             xpOrderDetail.setDetailType(2);
             xpOrderDetail.setOrderId(orderId);
             xpOrderDetail.setType(1);
-            xpOrderDetail.setMileage(new BigDecimal(mileageKilometers).setScale(2, RoundingMode.HALF_UP));
             xpOrderDetail.setMoney(new BigDecimal(xpPricingCardVo.getDistancePrice()).setScale(2,RoundingMode.HALF_UP));
             xpOrderDetails.add(xpOrderDetail);
             xpOrderDetail = new XpOrderDetail();
@@ -2410,16 +2408,8 @@
 
     @Override
     public R<FareBreakdownVo> fareBreakdown(Long orderId, String uid) {
-
         XpOrder order = this.getById(orderId);
         order.setAppUserId(null);
-        // 查询订单轨迹
-        List<OrderTrajectory> trajectories = mongoTemplate.find(
-                new Query(Criteria.where("orderId").is(orderId))
-                        .with(Sort.by(Sort.Direction.ASC, "locatetime")),
-                OrderTrajectory.class
-        );
-
         FareBreakdownVo res = new FareBreakdownVo();
         res.setChangeMoneyFlag(order.getChangeMoneyFlag());
 
@@ -2447,22 +2437,6 @@
             }
         }
 
-//        if (order.getDuration() != null && order.getDuration() > 0) {
-//            FareBreakdownDetailVo durationDetail = new FareBreakdownDetailVo();
-//            durationDetail.setType(order.getDurationType());
-//            durationDetail.setDuration(order.getDuration());
-//            durationDetail.setMoney(order.getDurationMoney());
-//            duration.add(durationDetail);
-//        }
-
-//
-//        if (order.getLongDistance() != null && order.getLongDistance() > 0) {
-//            FareBreakdownDetailVo longDistanceDetail = new FareBreakdownDetailVo();
-//            longDistanceDetail.setType(order.getLongDistanceType());
-//            longDistanceDetail.setMileage(BigDecimal.valueOf(order.getLongDistance()));
-//            longDistanceDetail.setMoney(order.getLongDistancemoney());
-//            longDistance.add(longDistanceDetail);
-//        }
         res.setStart(start);
         res.setMileage(mileage);
         res.setDuration(duration);
@@ -2478,9 +2452,7 @@
             order.setTripEnd(tripEnd);
             this.updateById(order);
         }
-
-        double exactMinutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMillis() / (1000.0 * 60);
-        res.setTime(new BigDecimal(exactMinutes).setScale(2, RoundingMode.HALF_UP));
+        res.setTime(new BigDecimal(order.getDuration() == null ? 0 : order.getDuration()).multiply(new BigDecimal(60)).setScale(0, RoundingMode.HALF_UP));
         return R.ok(res);
     }
 
@@ -2508,6 +2480,7 @@
 
         }
         baseMapper.updateById(order);
+        redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 9, 24L, TimeUnit.HOURS);
         return R.ok();
     }
 
@@ -2557,8 +2530,8 @@
     @Override
     public void saveVehicleLocation(OrderTrajectory orderTrajectory) {
         // 查询订单信息
-        XpOrder xpOrder = this.getById(orderTrajectory.getOrderId());
-        if(xpOrder.getStatus() != 6){
+        Integer status = redisService.getCacheObject("ORDER_STATUS:" + orderTrajectory.getOrderId());
+        if(status != 6){
             return;
         }
 
@@ -2566,10 +2539,6 @@
         // 获取上一次定位
         String oldLocation = redisService.getCacheObject(CacheConstants.ORDER_OLD_LOCATION + orderTrajectory.getOrderId());
         if (StringUtils.isEmpty(oldLocation)) {
-            // 首次定位
-            xpOrder.setMileageKilometers(0D);
-            xpOrder.setAppUserId(null);
-            this.updateById(xpOrder);
             orderTrajectory.setDistance(0D);
             // 存储mongo数据
             mongoTemplate.save(orderTrajectory);
@@ -2579,17 +2548,12 @@
             Map<String, Double> distance = GeodesyUtil.getDistance(orderTrajectory.getLocation(), oldLocation);
             if (null != distance) {
                 Double distance1 = distance.get("WGS84");
-                if (distance1 > 50 && xpOrder.getStatus() == 6) {//大于50米表示在移动,且在服务中的时候记录里程
-                    xpOrder.setMileageKilometers(BigDecimal.valueOf(xpOrder.getMileageKilometers()).add(new BigDecimal(distance1).divide(new BigDecimal(1000)).setScale(4, RoundingMode.HALF_EVEN)).doubleValue());
-                    xpOrder.setAppUserId(null);
-                    this.updateById(xpOrder);
-                    // 存储本次距离
-                    orderTrajectory.setDistance(distance1);
-                    // 存储mongo数据
-                    mongoTemplate.save(orderTrajectory);
-                    // 更新定位
-                    redisService.setCacheObject(CacheConstants.ORDER_OLD_LOCATION + orderTrajectory.getOrderId(), orderTrajectory.getLocation());
-                }
+                // 存储本次距离
+                orderTrajectory.setDistance(distance1);
+                // 存储mongo数据
+                mongoTemplate.save(orderTrajectory);
+                // 更新定位
+                redisService.setCacheObject(CacheConstants.ORDER_OLD_LOCATION + orderTrajectory.getOrderId(), orderTrajectory.getLocation());
             } else {
                 log.error("调用高德计算距离出错");
             }
@@ -2782,26 +2746,55 @@
                 }
                 // 存mongo数据
                 xpPricingClient.updateXpGeoQueryEntity(order.getId().toString());
-
-
                 // 修改车辆信息
                 vehicle.setState(1);
                 xpVehicleClient.updateVehicleById(vehicle);
 
                 //绑定用户和车辆关系
                 addTaxiPassengerVo.setUid(appUserId.toString());
-
                 order.setAppUserId(null);
                 this.updateById(order);
+
+                //构建推送消息
+                Map<String, Object> params = new HashMap<>();
+                Map<String, Object> content = new HashMap<>();
+                content.put("orderId", orderId.toString());
+                content.put("status", 2);
+                params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
+                params.put("content", JSONObject.toJSONString(content));
+                params.put("timestamp", System.currentTimeMillis() + "");
+                String message = JSONObject.toJSONString(params);
+                SendMessageDTO dto1 = new SendMessageDTO();
+                dto1.setAppUserId(appUserId + "");
+                dto1.setMessage(message);
+                R<String> stringR = xpPushMessageClient.sendStatus(dto1);
+
+                //推送失败,重试3次
+                if(stringR.getCode() != Constants.SUCCESS){
+                    ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>());
+                    executor.execute(() -> {
+                        for (int i = 0; i < 3; i++) {
+                            R<String> stringR1 = xpPushMessageClient.sendStatus(dto1);
+                            if(stringR1.getCode() == Constants.SUCCESS){
+                                break;
+                            }
+                            try {
+                                Thread.sleep(1000);
+                            } catch (InterruptedException e) {
+                                throw new RuntimeException(e);
+                            }
+                            log.info("推送订单状态消息失败:{} {} {}", stringR1.getMsg(), JSON.toJSONString(dto), order.getOrderNumber());
+                        }
+                    });
+                }
+
+
+                redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 2, 24L, TimeUnit.HOURS);
                 addTaxiPassengerVo.setOrderNo(order.getOrderNumber());
-                // TODO appid
                 addTaxiPassengerVo.setAppId(appid);
                 userVehicleClient.addTaxiPassenger(addTaxiPassengerVo);
                 //推送乘客车辆到达预约点的导航数据
                 sendRoute(addTaxiPassengerVo.getUid(), orderId, "ORDER_NAVIGATION_START_DATA", dto.getXpVehicleVin());
-            } else {
-                //推送行起点到终点的驶轨迹给乘客端
-                sendRoute(appUserId.toString(), orderId, "ORDER_NAVIGATION_END_DATA", dto.getXpVehicleVin());
             }
         }
     }
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaskOrderCancelUtil.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaskOrderCancelUtil.java
index 608105f..0eef366 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaskOrderCancelUtil.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TaskOrderCancelUtil.java
@@ -3,6 +3,7 @@
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xiaopeng.api.model.order.XpOrder;
+import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.order.service.IXpOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +12,7 @@
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 @Slf4j
 @Component
@@ -19,6 +21,9 @@
 
     @Autowired
     private IXpOrderService xpOrderService;
+
+    @Autowired
+    private RedisService redisService;
 
     /**
      * 30秒执行一次
@@ -54,6 +59,7 @@
         order.setAppUserId(null);
         order.setStatus(0);
         xpOrderService.updateById(order);
+        redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 0, 24L, TimeUnit.HOURS);
     }
 
 
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TrajectoryGenerator.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TrajectoryGenerator.java
deleted file mode 100644
index bd8293f..0000000
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/utils/TrajectoryGenerator.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.xiaopeng.order.utils;
-
-import com.xiaopeng.order.mangodb.model.OrderTrajectory;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-public class TrajectoryGenerator {
-
-    // 成都市中心经纬度(示例)
-    private static final double BASE_LAT = 30.5728; // 纬度
-    private static final double BASE_LON = 104.0668; // 经度
-
-    /**
-     * 根据 GpsPoint 数据生成 OrderTrajectory 轨迹记录
-     *
-     * @param gpsPoints 模拟的 GpsPoint 数据
-     * @return 轨迹记录列表
-     */
-    public static List<OrderTrajectory> generateTrajectory(List<TaxiPricingDemoService.GpsPoint> gpsPoints) {
-        List<OrderTrajectory> trajectories = new ArrayList<>();
-
-        // 初始位置
-        double currentLat = BASE_LAT;
-        double currentLon = BASE_LON;
-
-        for (int i = 0; i < gpsPoints.size(); i++) {
-            TaxiPricingDemoService.GpsPoint point = gpsPoints.get(i);
-
-            // 生成随机偏移量(确保相邻点距离不超过100米)
-            double deltaLat = (Math.random() - 0.5) * 0.001; // 纬度偏移
-            double deltaLon = (Math.random() - 0.5) * 0.001; // 经度偏移
-
-            // 更新当前位置
-            currentLat += deltaLat;
-            currentLon += deltaLon;
-
-            // 创建 OrderTrajectory 对象
-            OrderTrajectory trajectory = new OrderTrajectory();
-            trajectory.setOrderId(1L); // 假设订单 ID 为 1
-            trajectory.setLocation(String.format("%.6f,%.6f", currentLon, currentLat)); // 经纬度格式化
-            trajectory.setDirection((int) (Math.random() * 360)); // 随机方向角
-            trajectory.setSpeed(Math.random() * 50); // 随机速度(0~50 km/h)
-            trajectory.setLocatetime(point.getLocatetime()); // 时间戳
-            trajectory.setDistance(point.getDistance()); // 距离
-
-            trajectories.add(trajectory);
-        }
-
-        return trajectories;
-    }
-
-
-}
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
index fb5336c..bc94626 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
+++ b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpVehicleController.java
@@ -628,7 +628,7 @@
             String jsonString = jsonObject.toJSONString();
             vehicleDetail.setVehiclePictures(jsonString);
         }
-        return R.ok();
+        return R.ok(vehicleDetail);
     }
 
     /**

--
Gitblit v1.7.1