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