From 086c8c208e6af4d593a80d8e6ea85013d8dd14cc Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 10 三月 2026 09:04:25 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java |   36 +++++++++++++++++++++++++++++++-----
 1 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
index 3b016e7..b7cfd63 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
+++ b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -13,6 +13,7 @@
 import com.xiaopeng.api.model.operation.XpElectronicFence;
 import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
 import com.xiaopeng.api.model.order.XpOrder;
+import com.xiaopeng.api.model.vehicleConvoy.XpFleetVehicle;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicleAnnualRecord;
 import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
@@ -32,6 +33,7 @@
 import com.xiaopeng.vehicleConvoy.model.query.*;
 import com.xiaopeng.vehicleConvoy.model.vo.XpVehicleVO;
 import com.xiaopeng.vehicleConvoy.service.IXpVehicleAnnualRecordService;
+import com.xiaopeng.vehicleConvoy.service.IXpFleetVehicleService;
 import com.xiaopeng.vehicleConvoy.service.IXpVehicleService;
 import com.xiaopeng.vehicleConvoy.util.VehicleControlUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -75,10 +77,12 @@
     @Autowired
     private XpElectronicClient xpElectronicClient;
 
-    @Autowired
-    private IXpVehicleAnnualRecordService xpVehicleAnnualRecordService;
-    @Resource
-    private XpuVinClient xpuVinClient;
+	    @Autowired
+	    private IXpVehicleAnnualRecordService xpVehicleAnnualRecordService;
+	    @Autowired
+	    private IXpFleetVehicleService xpFleetVehicleService;
+	    @Resource
+	    private XpuVinClient xpuVinClient;
     @Autowired
     private RedisService redisService;
     @Autowired
@@ -489,9 +493,22 @@
         List<String> ids = Arrays.asList(idStr.split(","));
         // 查询车辆完整信息
         List<XpVehicle> vehicles = this.listByIds(ids);
+        List<Long> vehicleIdList = vehicles.stream()
+                .map(XpVehicle::getId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+        Set<Long> boundVehicleIdSet = CollUtil.isEmpty(vehicleIdList)
+                ? Collections.emptySet()
+                : xpFleetVehicleService.lambdaQuery()
+                .in(XpFleetVehicle::getVehicleId, vehicleIdList)
+                .list()
+                .stream()
+                .map(XpFleetVehicle::getVehicleId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
         LocalDate now = LocalDate.now();
         List<String> errorMessages = new ArrayList<>();
-
+	
         for (XpVehicle vehicle : vehicles) {
             List<String> reasons = new ArrayList<>();
             Locale locale = LocaleContextHolder.getLocale();
@@ -504,6 +521,15 @@
                     reasons.add("Status is not 'Pending Operation'");
                 }
             }
+
+            // 校验车辆是否绑定车队
+            if (vehicle.getId() == null || !boundVehicleIdSet.contains(vehicle.getId())) {
+                if ("zh".equals(locale.getLanguage())) {
+                    reasons.add("操作失败,车辆未绑定车队");
+                } else {
+                    reasons.add("Operation failed, vehicle is not bound to a fleet");
+                }
+            }
             // 校验年检到期时间
             if (vehicle.getAnnualInspectionDate() == null || vehicle.getAnnualInspectionDate().toLocalDate().isBefore(now)) {
                 if ("zh".equals(locale.getLanguage())) {

--
Gitblit v1.7.1