From bfe14c42d806ef369993940573245b954fddfc8e Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期三, 25 二月 2026 16:54:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java |   48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
index 68dbfa9..19f79b8 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleOperationsController.java
@@ -1,9 +1,17 @@
 package com.xiaopeng.maintenance.controller;
 
+import cn.hutool.core.util.IdUtil;
+import com.sun.xml.internal.bind.v2.TODO;
+import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
+import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
+import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.order.XpCruiseOrder;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.web.page.PageInfo;
+import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.maintenance.dto.VehicleDispatchAcceptDTO;
 import com.xiaopeng.maintenance.dto.VehicleDispatchDepartureDTO;
 import com.xiaopeng.maintenance.model.query.OperationRecordsQuery;
@@ -13,10 +21,17 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
  * <p>
@@ -35,6 +50,12 @@
     private IXpVehiclePreparationService xpVehiclePreparationService;
     @Autowired
     private XpVehicleClient xpVehicleClient;
+    @Autowired
+    private XpCruiseOrderClient xpCruiseOrderClient;
+    @Autowired
+    private MongoTemplate mongoTemplate;
+    @Autowired
+    private OrderMissionClient orderMissionClient;
 
     /**
      * 车辆详情-车辆调度-发车 收车
@@ -56,7 +77,32 @@
         if(dto.getDepartureStatus()==1){
             // 找车辆的任务  生成巡游单子 下发命令 TODO
         }else if(dto.getDepartureStatus()==3){
-            // 收车 关闭当前巡游单子 生成新的返程单子  找到收车站点 TODO
+            // 收车 关闭当前巡游单子 生成新的返程单子  找到收车站点
+            R<String> r = xpCruiseOrderClient.updateCruiseOrder(xpVehicle.getVehicleVin());
+
+            // redis 获取当前最新经纬度位置
+            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+            double x = vehiclePosition.getPoint().getX();
+            double y = vehiclePosition.getPoint().getY();
+            XpCruiseOrder xpCruiseOrder = new XpCruiseOrder();
+            xpCruiseOrder.setId("XU"+ IdUtil.fastUUID());
+            xpCruiseOrder.setVehicleId(xpVehicle.getId());
+            xpCruiseOrder.setOrderType(2);
+            xpCruiseOrder.setStartLon(x);
+            xpCruiseOrder.setStartLat(y);
+            // TODO 找到收车站点
+            xpCruiseOrder.setStatus(1);
+
+
+            // 下发命令
+            orderMissionClient.pushOrder(new PushOrderDto( xpCruiseOrder.getVehicleVin(),xpCruiseOrder.getId(),null));
+
+
+
+
+
+
+
 
         }
         return R.ok();

--
Gitblit v1.7.1