From 43e9944347e51d5628166f8c1b78d98cfd2013ea Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期三, 22 四月 2026 22:12:22 +0800
Subject: [PATCH] 1.调试接口修改问题 2.修改定向服务的播单和 改派

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceServiceImpl.java |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceServiceImpl.java
index 96db0c3..d56d845 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTargetedServiceServiceImpl.java
@@ -9,6 +9,7 @@
 import com.xiaopeng.api.model.operation.XpTargetedServiceWhitelist;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
 import com.xiaopeng.api.query.operation.XpTargetedServiceQuery;
+import com.xiaopeng.api.vo.operation.XpTargetedServiceVehicleVo;
 import com.xiaopeng.api.vo.operation.XpTargetedServiceVo;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.exception.ServiceException;
@@ -22,10 +23,7 @@
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -49,11 +47,11 @@
         List<XpTargetedServiceVehicle> list = xpTargetedServiceMapper.listVehicle(targetedServiceId);
 
         if(!list.isEmpty()){
-            List<Long> ids = new ArrayList<>();
+            List<Long> vehicleIds = new ArrayList<>();
             for (XpTargetedServiceVehicle xpTargetedServiceVehicle : list) {
-                ids.add(xpTargetedServiceVehicle.getVehicleId());
+                vehicleIds.add(xpTargetedServiceVehicle.getVehicleId());
             }
-            R<List<XpVehicle>> listR = xpVehicleClient.listByIds(ids);
+            R<List<XpVehicle>> listR = xpVehicleClient.listByIds(vehicleIds);
             if(!listR.getData().isEmpty()){
                 List<XpVehicle> vehicleList = listR.getData();
                 Map<Long, XpVehicle> vehicleMap = vehicleList.stream()
@@ -187,4 +185,59 @@
         removeBatchByIds(ids);
         return R.ok();
     }
+
+    /**
+     * 定向服务 根据 用户id 和 城市编码 查询 定向服务的 数据和 车辆信息
+     * @param appUserId
+     * @param cityCode
+     * @return
+     */
+    @Override
+    public List<String> findSetVehicleVinByUserIdAndCityCode(Long appUserId, String cityCode) {
+        List<XpTargetedServiceVehicleVo> list = findListByUserIdAndCityCode(appUserId, cityCode);
+        if(list.isEmpty()){
+            return null;
+        }
+        return list.stream()
+                .map(XpTargetedServiceVehicleVo::getVehicleVin)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+
+    }
+
+    @Override
+    public List<XpTargetedServiceVehicleVo> findListByUserIdAndCityCode(Long appUserId, String cityCode) {
+
+        List<XpTargetedServiceVehicleVo> listInfoVehicle = baseMapper.findListInfoVehicle(appUserId, cityCode, LocalDateTime.now());
+
+        if(!listInfoVehicle.isEmpty()){
+            // 提取车辆ID列表
+            List<Long> vehicleIds = listInfoVehicle.stream()
+                    .map(XpTargetedServiceVehicleVo::getVehicleId)
+                    .filter(Objects::nonNull)
+                    .distinct()
+                    .collect(Collectors.toList());
+
+            R<List<XpVehicle>> listR = xpVehicleClient.listByIds(vehicleIds);
+            if(!listR.getData().isEmpty()){
+                List<XpVehicle> vehicleList = listR.getData();
+                Map<Long, XpVehicle> vehicleMap = vehicleList.stream()
+                        .collect(Collectors.toMap(XpVehicle::getId, vehicle -> vehicle));
+
+                for (XpTargetedServiceVehicleVo beanVo : listInfoVehicle) {
+                    XpVehicle remoteVehicle = vehicleMap.get(beanVo.getVehicleId());
+                    if (remoteVehicle != null) {
+                        beanVo.setVehicleVin(remoteVehicle.getVehicleVin());
+                    }
+                }
+            }
+            return listInfoVehicle;
+        }
+        return null;
+    }
+
+
+
+
 }

--
Gitblit v1.7.1