From b91c1ee0a758cfa20ae5b0ed896a7281fb34622f Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 23 三月 2026 17:33:03 +0800
Subject: [PATCH] bugfix

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
index 75a2690..61394f0 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
@@ -17,6 +17,7 @@
 import com.xiaopeng.common.core.web.domain.BaseModel;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.order.mapper.XpCruiseOrderMapper;
+import com.xiaopeng.order.model.query.XpCruiseOrderExcelQuery;
 import com.xiaopeng.order.model.query.XpCruiseOrderPageQuery;
 import com.xiaopeng.order.model.vo.XpCruiseOrderPageVO;
 import com.xiaopeng.order.service.IXpCruiseOrderService;
@@ -224,4 +225,114 @@
         pageInfo.setRecords(voList);
         return pageInfo;
     }
+
+    @Override
+    public List<XpCruiseOrderPageVO> getExportList(XpCruiseOrderExcelQuery query) {
+        LambdaQueryWrapper<XpCruiseOrder> wrapper = new LambdaQueryWrapper<XpCruiseOrder>()
+                .eq(XpCruiseOrder::getMissionId, String.valueOf(query.getMissionId()))
+                .like(Objects.nonNull(query.getId()), XpCruiseOrder::getId, query.getId())
+                .eq(query.getStatus() != null, XpCruiseOrder::getStatus, query.getStatus())
+                .eq(Objects.nonNull(query.getFleetId()), XpCruiseOrder::getFleetId, query.getFleetId());
+
+        if (query.getStartTime() != null) {
+            wrapper.ge(BaseModel::getCreateTime, query.getStartTime().atStartOfDay());
+        }
+        if (query.getEndTime() != null) {
+            wrapper.le(BaseModel::getCreateTime, query.getEndTime().plusDays(1).atStartOfDay());
+        }
+        //使用订单中的车队ID进行查询
+        // if (query.getFleetId() != null) {
+        //     R<List<Long>> fleetVehicleResult = xpFleetVehicleClient.listVehicleIdsByFleetId(query.getFleetId());
+        //     if (fleetVehicleResult == null || CollectionUtils.isEmpty(fleetVehicleResult.getData())) {
+        //         pageInfo.setRecords(Collections.emptyList());
+        //         return pageInfo;
+        //     }
+        //     wrapper.in(XpCruiseOrder::getVehicleId, fleetVehicleResult.getData());
+        // }
+
+        if (StringUtils.isNotBlank(query.getPlateNumber())) {
+            R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByPlateNumber(query.getPlateNumber());
+            if (vehicleResult == null || CollectionUtils.isEmpty(vehicleResult.getData())) {
+                return Collections.emptyList();
+            }
+            List<Long> vehicleIds = vehicleResult.getData().stream().map(XpVehicle::getId).collect(Collectors.toList());
+            wrapper.in(XpCruiseOrder::getVehicleId, vehicleIds);
+        }
+        if (!CollectionUtils.isEmpty(query.getIds())) {
+            wrapper.in(XpCruiseOrder::getId, query.getIds());
+        }
+        wrapper.orderByDesc(XpCruiseOrder::getCreateTime);
+        List<XpCruiseOrder> resultList = this.list(wrapper);
+        if (CollectionUtils.isEmpty(resultList)) {
+            return Collections.emptyList();
+        }
+        Set<Long> vehicleIds = resultList.stream()
+                .map(XpCruiseOrder::getVehicleId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
+        Map<Long, XpVehicle> vehicleMap;
+        if (!vehicleIds.isEmpty()) {
+            R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByIds(new ArrayList<>(vehicleIds));
+            if (vehicleResult != null && !CollectionUtils.isEmpty(vehicleResult.getData())) {
+                vehicleMap = vehicleResult.getData().stream().collect(Collectors.toMap(XpVehicle::getId, v -> v));
+            } else {
+                vehicleMap = Collections.emptyMap();
+            }
+        } else {
+            vehicleMap = Collections.emptyMap();
+        }
+        // Map<Long, Long> vehicleFleetIdMap = new HashMap<>();
+        // if (!vehicleIds.isEmpty()) {
+        //     for (Long vehicleId : vehicleIds) {
+        //         R<Long> fleetIdResult = xpFleetVehicleClient.getFleetIdByVehicleId(vehicleId);
+        //         if (fleetIdResult != null && fleetIdResult.getData() != null) {
+        //             vehicleFleetIdMap.put(vehicleId, fleetIdResult.getData());
+        //         }
+        //     }
+        // }
+        // Map<Long, String> fleetNameMap;
+        // if (!vehicleFleetIdMap.isEmpty()) {
+        //     List<Long> fleetIds = vehicleFleetIdMap.values().stream().distinct().collect(Collectors.toList());
+        //     R<List<XpFleet>> fleetResult = xpFleetClient.listByIds(fleetIds);
+        //     if (fleetResult != null && !CollectionUtils.isEmpty(fleetResult.getData())) {
+        //         fleetNameMap = fleetResult.getData().stream()
+        //                 .collect(Collectors.toMap(XpFleet::getId, XpFleet::getFleetName, (a, b) -> a));
+        //     } else {
+        //         fleetNameMap = Collections.emptyMap();
+        //     }
+        // } else {
+        //     fleetNameMap = Collections.emptyMap();
+        // }
+        Map<Long, String> fleetNameMap;
+        Set<Long> fleetIds = resultList.stream()
+                .map(XpCruiseOrder::getFleetId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
+        if (!fleetIds.isEmpty()) {
+            R<List<XpFleet>> fleetResult = xpFleetClient.listByIds(new ArrayList<>(fleetIds));
+            if (fleetResult != null && !CollectionUtils.isEmpty(fleetResult.getData())) {
+                fleetNameMap = fleetResult.getData().stream()
+                        .collect(Collectors.toMap(XpFleet::getId, XpFleet::getFleetName, (a, b) -> a));
+            } else {
+                fleetNameMap = Collections.emptyMap();
+            }
+        } else {
+            fleetNameMap = Collections.emptyMap();
+        }
+        List<XpCruiseOrderPageVO> voList = resultList.stream().map(order -> {
+            XpCruiseOrderPageVO vo = new XpCruiseOrderPageVO();
+            BeanUtils.copyProperties(order, vo);
+            XpVehicle vehicle = vehicleMap.get(order.getVehicleId());
+            if (vehicle != null) {
+                vo.setPlateNumber(vehicle.getPlateNumber());
+            }
+            // Long fleetId = vehicleFleetIdMap.get(order.getVehicleId());
+            Long fleetId = order.getFleetId();
+            if (fleetId != null) {
+                vo.setFleetName(fleetNameMap.get(fleetId));
+            }
+            return vo;
+        }).collect(Collectors.toList());
+        return voList;
+    }
 }

--
Gitblit v1.7.1