From 07b823813e0f41c49f3468f1d2fa86b82b46689e Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 13 五月 2026 09:18:00 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   66 +++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 28 deletions(-)

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 2e17420..06b46de 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
@@ -946,13 +946,6 @@
             });
         }
 
-        //给XPU推送订单取消的报文
-//        PushOrderDto pushOrderDto = new PushOrderDto();
-//        pushOrderDto.setOrderId(order.getId().toString());
-//        pushOrderDto.setVin(xpVehicle.getVehicleVin());
-//        pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
-//        orderMissionClient.cancelOrder(pushOrderDto);
-
         //结束行程,修改状态和计算费用
         endTrip(order.getId(), appUserId.toString());
 
@@ -1401,7 +1394,9 @@
         Long userId = Long.valueOf(uid);
         // - 新用户处理: 历史订单数 < 3单或无匹配数据时,隐藏该胶囊。
         Long validHistoryCount = this.baseMapper.countUserValidHistoryOrders(userId);
-        if (validHistoryCount == null || validHistoryCount < 3) return null;
+        if (validHistoryCount == null || validHistoryCount < 3) {
+            return null;
+        }
 
         LocalDateTime now = LocalDateTime.now();
         LocalTime startMoment = now.minusHours(1).toLocalTime();
@@ -1415,7 +1410,10 @@
         endPointId.addAll(this.baseMapper.frequencyOrders(startDate, endDate, startMoment, endMoment, userId));
 
         Integer minOrderDistance = getMinOrderDistanceSafely(uid, startPointId);
-        if (minOrderDistance == null) return null;//获取用户最短可发单距离失败
+        //获取用户最短可发单距离失败
+        if (minOrderDistance == null) {
+            return null;
+        }
         XpPoint start = getPointById(startPointId);
         GlobalCoordinates startCoordinates = new GlobalCoordinates(start.getPointLon(), start.getPointLat());
         List<Long> pointIdsByUserId = Optional.ofNullable(xpAppUserCollectAddrClient.getPointIdsByUserId(Long.valueOf(uid)).getData())
@@ -1811,7 +1809,7 @@
         if (order.getStatus() == 0) {
             return;
         }
-        if (!order.getAppUserId().toString().equals(uid)) {
+        if (!order.getAppUserId().equals(Long.valueOf(uid))) {
             throw new ServiceException("订单不存在", I18nKeyConstant.ORDER_NOT_EXISTS);
         }
         if (order.getStatus() > 5 || order.getStatus() < 1) {
@@ -2039,7 +2037,7 @@
     }
 
     @Override
-    public R<String> updateOrderStatus(Long orderId, Integer status, Boolean orderException) {
+    public R<String> updateOrderStatus(Long orderId, Integer status) {
         XpOrder xpOrder = this.getById(orderId);
         if (Objects.isNull(xpOrder)) {
             return R.fail("订单不存在");
@@ -2215,20 +2213,34 @@
                 if (StringUtils.isNotEmpty(json)) {
                     JSONObject jsonObject = JSON.parseObject(json);
                     Long id = jsonObject.getLong("orderId");
-                    jobMaps = new ImmutableMap.Builder<String, String>()
-                            .put("id", id.toString())
-                            .put("oldOrderId", xpOrder.getId().toString())
-                            .put("appid", appid)
-                            .put("orderType", OrderType.USER_ORDER)
-                            .build();
+                    //判断订单状态
+                    XpOrder xpOrder1 = this.getById(id);
+                    if(2 == xpOrder1.getStatus()){
+                        jobMaps = new ImmutableMap.Builder<String, String>()
+                                .put("id", id.toString())
+                                .put("oldOrderId", xpOrder.getId().toString())
+                                .put("appid", appid)
+                                .put("orderType", OrderType.USER_ORDER)
+                                .build();
 
-                    QuartzManager.addJob(
-                            PushChainReactionOrderJob.class,
-                            (PushChainReactionOrderJob.name + id).toUpperCase(),
-                            TimeJobType.ADD_CHAIN_REACTION_ORDER_MISSION,
-                            DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(point.getParkingTimeLimit())),
-                            jobMaps
-                    );
+                        QuartzManager.addJob(
+                                PushChainReactionOrderJob.class,
+                                (PushChainReactionOrderJob.name + id).toUpperCase(),
+                                TimeJobType.ADD_CHAIN_REACTION_ORDER_MISSION,
+                                DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(point.getParkingTimeLimit())),
+                                jobMaps
+                        );
+                    }
+                    //连环派订单取消的情况,继续走巡游
+                    if(0 == xpOrder1.getStatus()){
+                        QuartzManager.addJob(
+                                AddCruiseMissionJob.class,
+                                (AddCruiseMissionJob.name + xpOrder.getId()).toUpperCase(),
+                                TimeJobType.ADD_CRUISE_MISSION,
+                                DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(point.getParkingTimeLimit())),
+                                jobMaps
+                        );
+                    }
                 } else {
                     QuartzManager.addJob(
                             AddCruiseMissionJob.class,
@@ -2770,8 +2782,6 @@
             baseMapper.updateById(order);
 
         }
-
-
         if (order.getCouponId() != null) {
 //            UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
 //            useUserCouponDto.setUserId(Long.valueOf(uid));
@@ -3670,11 +3680,11 @@
                             } catch (InterruptedException e) {
                                 throw new RuntimeException(e);
                             }
-                            log.info("推送订单状态消息失败:{} {} {}", stringR1.getMsg(), JSON.toJSONString(dto), order.getOrderNumber());
+                            log.info("推送订单状态消息失败:{} {} {}", stringR1.getMsg(), JSON.toJSONString(dto1), order.getOrderNumber());
                         }
                     });
                 }
-//                redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 2, 24L, TimeUnit.HOURS);//没看懂为啥重复 缓存
+                redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 2, 24L, TimeUnit.HOURS);
                 addTaxiPassengerVo.setOrderNo(order.getOrderNumber());
                 addTaxiPassengerVo.setAppId(appid);
                 userVehicleClient.addTaxiPassenger(addTaxiPassengerVo);

--
Gitblit v1.7.1