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-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |  193 ++++++++++++++++++++++++------------------------
 1 files changed, 96 insertions(+), 97 deletions(-)

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 13418e9..403e0a1 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
@@ -572,10 +572,6 @@
                     reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
                     reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
                     reassignOrderDTO.setCount(10);
-//                    RealtimePose pose = systemRuntimeStatus.getPose();
-//                    Wgs naviPose = pose.getNaviPose();
-//                    Double latitude = naviPose.getLatitude();
-//                    Double longitude = naviPose.getLongitude();
                     reassignOrderDTO.setLongitude(xpOrder.getStartLon());
                     reassignOrderDTO.setLatitude(xpOrder.getStartLat());
                     reassignOrderClient.reassignOrder(reassignOrderDTO);
@@ -1192,7 +1188,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.READY_DEPART.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.READY_DEPART, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode());
                         }
                     }
                     break;
@@ -1207,7 +1203,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PICK_UP.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PICK_UP, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode());
                         }
                     }
                     break;
@@ -1222,7 +1218,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PICK_UP_GUESTS.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
                         }
                     }
                     break;
@@ -1233,7 +1229,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PASSENGER_BOARDED.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
                         }
                     }
                     break;
@@ -1244,7 +1240,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.IN_SERVICE.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.IN_SERVICE, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode());
                         }
                     }
                     break;
@@ -1259,7 +1255,7 @@
                             testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
                         }else{
                             buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
-                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), false);
+                            xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
                         }
                     }
                     break;
@@ -1322,74 +1318,75 @@
                             }
                             return;
                         }
-                        if(orderId.contains("TEST")){
-                            //判断订单状态,已经取消的不作处理
-                            Object cacheObject = redisService.getCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4));
-                            if(null != cacheObject){
-                                int order_status = Integer.parseInt(cacheObject.toString());
-                                if(0 == order_status){
-                                    return;
-                                }
-                            }
-                            XpTestOrder testOrder = testOrderClient.queryOrderById(Long.valueOf(orderId.substring(4))).getData();
-                            if(testOrder.getStatus() == 0 || testOrder.getStatus() >= 8){
-                                return;
-                            }
-                            //行程中取消订单,按照行程结束处理
-                            if(testOrder.getStatus() > 5 && testOrder.getStatus() < 8){
-                                testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
-                                redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
-                            }else{
-                                testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.CANCELED.getCode());
-                                redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
-                            }
-                        }else{
-                            //判断订单状态,已经取消的不作处理
-                            Object cacheObject = redisService.getCacheObject("ORDER_STATUS:" + orderId);
-                            if(null != cacheObject){
-                                int order_status = Integer.parseInt(cacheObject.toString());
-                                if(0 == order_status){
-                                    return;
-                                }
-                            }
-                            XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
-                            if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){
-                                return;
-                            }
-
-                            List<Integer>  xczqx = new ArrayList<Integer>(){{
-                                add(OrderStatusEnum.IN_SERVICE.getCode());//服务中
-                                add(OrderStatusEnum.SEE_OFF_GUESTS.getCode());//SEE_OFF_GUESTS
-                            }};
-                            if(xczqx.contains(xpOrder.getStatus())){//行程中取消订单,按照行程结束处理
-                                buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
-                                xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), true);
-                                redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
-                                // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
-                                String json = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
-                                if (StringUtils.isNotEmpty(json)){
-                                    JSONObject jsonObject = JSON.parseObject(json);
-                                    Long nextOrderId = jsonObject.getLong("orderId");
-                                    XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
-                                    if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
-                                        redisService.setCacheObject(CacheConstants.nextOrder(orderId),null);
-                                        ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
-                                        reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
-                                        reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
-                                        reassignOrderDTO.setCount(10);
-                                        reassignOrderDTO.setLongitude(xpOrder.getStartLon());
-                                        reassignOrderDTO.setLatitude(xpOrder.getStartLon());
-                                        reassignOrderClient.reassignOrder(reassignOrderDTO);
-                                    }
-                                }
-                                redisService.getCacheObject("ORDER_CONNECT_ORDER:" + orderId);
-
-                            }else{
-                                buildPushOrderStatus(cmd, orderId, OrderStatusEnum.CANCELED, sequence);
-                                xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode(), true);
-                                redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
-                            }
-                        }
+                        // 这部分不做处理,已经移到靠边停车报文处理中了
+//                        if(orderId.contains("TEST")){
+//                            //判断订单状态,已经取消的不作处理
+//                            Object cacheObject = redisService.getCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4));
+//                            if(null != cacheObject){
+//                                int order_status = Integer.parseInt(cacheObject.toString());
+//                                if(0 == order_status){
+//                                    return;
+//                                }
+//                            }
+//                            XpTestOrder testOrder = testOrderClient.queryOrderById(Long.valueOf(orderId.substring(4))).getData();
+//                            if(testOrder.getStatus() == 0 || testOrder.getStatus() >= 8){
+//                                return;
+//                            }
+//                            //行程中取消订单,按照行程结束处理
+//                            if(testOrder.getStatus() > 5 && testOrder.getStatus() < 8){
+//                                testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+//                                redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
+//                            }else{
+//                                testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.CANCELED.getCode());
+//                                redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
+//                            }
+//                        }else{
+//                            //判断订单状态,已经取消的不作处理
+//                            Object cacheObject = redisService.getCacheObject("ORDER_STATUS:" + orderId);
+//                            if(null != cacheObject){
+//                                int order_status = Integer.parseInt(cacheObject.toString());
+//                                if(0 == order_status){
+//                                    return;
+//                                }
+//                            }
+//                            XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
+//                            if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){
+//                                return;
+//                            }
+//
+//                            List<Integer> xczqx = new ArrayList<Integer>(){{
+//                                add(OrderStatusEnum.IN_SERVICE.getCode());//服务中
+//                                add(OrderStatusEnum.SEE_OFF_GUESTS.getCode());//SEE_OFF_GUESTS
+//                            }};
+//                            if(xczqx.contains(xpOrder.getStatus())){//行程中取消订单,按照行程结束处理
+//                                buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
+//                                xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+//                                redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
+//                                // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
+//                                String json = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
+//                                if (StringUtils.isNotEmpty(json)){
+//                                    JSONObject jsonObject = JSON.parseObject(json);
+//                                    Long nextOrderId = jsonObject.getLong("orderId");
+//                                    XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
+//                                    if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
+//                                        redisService.setCacheObject(CacheConstants.nextOrder(orderId),null);
+//                                        ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
+//                                        reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
+//                                        reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
+//                                        reassignOrderDTO.setCount(10);
+//                                        reassignOrderDTO.setLongitude(xpOrder.getStartLon());
+//                                        reassignOrderDTO.setLatitude(xpOrder.getStartLon());
+//                                        reassignOrderClient.reassignOrder(reassignOrderDTO);
+//                                    }
+//                                }
+//                                redisService.getCacheObject("ORDER_CONNECT_ORDER:" + orderId);
+//
+//                            }else{
+//                                buildPushOrderStatus(cmd, orderId, OrderStatusEnum.CANCELED, sequence);
+//                                xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode());
+//                                redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
+//                            }
+//                        }
                     }
                     break;
                 case ORDER_ARRIVED_AT_CRUISE_DESTINATION:
@@ -1688,31 +1685,33 @@
 
     //靠边停车处理逻辑
     public void pulloverStatusEvent(MsgContent msgContent){
-        // todo 等对接完成数据结构后再实现相关功能
         //开始处理消息对应的业务逻辑
-        NavigationRequest naviRequest = msgContent.getNavigationRequest();
-        String requestId = naviRequest.getRequestId();
-        String orderId = naviRequest.getOrderId();
-        String taskId = naviRequest.getTaskId();
-        OrderPhase orderPhase = naviRequest.getOrderPhase();
+        PullOverInfo pulloverInfo = msgContent.getPulloverInfo();
+        String orderId = pulloverInfo.getOrderId();
+        String taskId = pulloverInfo.getTaskId();
+        PullOverStatus pullOverStatus = pulloverInfo.getPullOverStatus();
         log.info("订单ID:{}", orderId);
         log.info("任务ID:{}", taskId);
 
         //获取系统异常订单超时配置,创建定时任务取消订单
         if(!orderId.contains("XU")){
-            XpSystemSetting xpSystemSetting = systemSettingClient.getSystemSettingOne().getData();
-            Map<String, ? extends Object> jobMaps =
-                    new ImmutableMap.Builder<String, String>()
-                            .put("id", orderId)
-                            .put("orderType", orderId.contains("TEST") ? OrderType.TEST_ORDER : OrderType.USER_ORDER)
-                            .build();
-            QuartzManager.addJob(
-                    OrderExceptionJob.class,
-                    (OrderExceptionJob.name + orderId).toUpperCase(),
-                    TimeJobType.ERROR_ORDER_CANCEL,
-                    DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
-                    jobMaps
-            );
+            //靠边停车完成后,创建定时任务处理后续业务逻辑
+            if(pullOverStatus.getNumber() == PullOverStatus.PULL_OVER_COMPLETED.getNumber()){
+                XpSystemSetting xpSystemSetting = systemSettingClient.getSystemSettingOne().getData();
+                Map<String, ? extends Object> jobMaps =
+                        new ImmutableMap.Builder<String, String>()
+                                .put("id", orderId)
+                                .put("orderType", orderId.contains("TEST") ? OrderType.TEST_ORDER : OrderType.USER_ORDER)
+                                .build();
+                QuartzManager.addJob(
+                        OrderExceptionJob.class,
+                        (OrderExceptionJob.name + orderId).toUpperCase(),
+                        TimeJobType.ERROR_ORDER_CANCEL,
+                        DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
+                        jobMaps
+                );
+            }
+
         }
 
     }

--
Gitblit v1.7.1