From 15c0a773a587243e6fae4293d990c3c73f308792 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 18 三月 2026 20:50:42 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/RoutinePreparationScheduleTask.java |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/RoutinePreparationScheduleTask.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/RoutinePreparationScheduleTask.java
index ded3b5f..661ab76 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/RoutinePreparationScheduleTask.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/schedule/RoutinePreparationScheduleTask.java
@@ -9,11 +9,13 @@
 import com.xiaopeng.api.model.maintenance.XpTaskRule;
 import com.xiaopeng.api.model.maintenance.XpTaskRuleRole;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.api.vo.maintenance.TaskScheduleConstants;
 import com.xiaopeng.maintenance.mapper.XpTaskMapper;
 import com.xiaopeng.maintenance.mapper.XpTaskRuleMapper;
 import com.xiaopeng.maintenance.mapper.XpTaskRuleRoleMapper;
+import com.xiaopeng.maintenance.service.VehicleLocationFillService;
 import com.xiaopeng.maintenance.utils.UUIDUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -21,6 +23,7 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -66,6 +69,9 @@
 
     @Autowired
     private XpFleetOperationsClient xpFleetOperationsClient;
+
+    @Autowired
+    private VehicleLocationFillService vehicleLocationFillService;
 
     /**
      * 每分钟检查一次是否需要执行任务下发
@@ -354,6 +360,14 @@
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         int skippedCount = 0;
 
+        Map<String, VehiclePosition> positionByVin = vehicleLocationFillService.loadPositionByVin(
+                vehicles.stream()
+                        .map(XpVehicle::getVehicleVin)
+                        .filter(StringUtils::hasLength)
+                        .distinct()
+                        .collect(Collectors.toList())
+        );
+
         for (XpVehicle vehicle : vehicles) {
             List<Long> handleUserIds = resolveHandleUserIds(vehicle.getId(), roleOperationUserIds,
                     vehicleIdToFleetIdCache, fleetIdToOperationUserIdsCache);
@@ -380,6 +394,7 @@
 
             // 设置车辆信息
             task.setVehicleId(vehicle.getId());
+            vehicleLocationFillService.fillFromVin(task, vehicle.getVehicleVin(), positionByVin);
 
             // 设置任务时限 常规任务限时3天
             task.setEndTime(LocalDateTime.now().plusDays(3));

--
Gitblit v1.7.1