“mitao”
2026-02-27 4182a02eb0c1df70300ecbbb653c4ad51dc19f03
feat(management):巡游计划订单记录接口
5个文件已修改
84 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpCruiseOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpCruiseOrderPageQuery.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpCruiseOrderPageVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/IXpFleetVehicleService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpCruiseOrder.java
@@ -40,6 +40,9 @@
    @ApiModelProperty(value = "车辆vin")
    private String vehicleVin;
    @ApiModelProperty(value = "车队id")
    private Long fleetId;
    @ApiModelProperty(value = "订单类型 1=正常巡游单 2返程单")
    private Integer orderType;
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpCruiseOrderPageQuery.java
@@ -24,8 +24,8 @@
    @NotNull(message = "巡游计划ID不能为空")
    private Long missionId;
    @ApiModelProperty(value = "订单号")
    private String orderNumber;
    @ApiModelProperty(value = "订单ID")
    private Long id;
    @ApiModelProperty(value = "车牌号")
    private String plateNumber;
@@ -33,7 +33,7 @@
    @ApiModelProperty(value = "车队ID")
    private Long fleetId;
    @ApiModelProperty(value = "状态 1进行中 2已停止 3已完成")
    @ApiModelProperty(value = "状态 1进行中 2已停止 3 已完成")
    private Integer status;
    @ApiModelProperty(value = "开始时间")
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpCruiseOrderPageVO.java
@@ -17,10 +17,7 @@
public class XpCruiseOrderPageVO {
    @ApiModelProperty(value = "订单ID")
    private String id;
    @ApiModelProperty(value = "订单号")
    private String orderNumber;
    private Long id;
    @ApiModelProperty(value = "车辆id")
    private Long vehicleId;
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
@@ -152,8 +152,9 @@
        PageInfo<XpCruiseOrderPageVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        LambdaQueryWrapper<XpCruiseOrder> wrapper = new LambdaQueryWrapper<XpCruiseOrder>()
                .eq(XpCruiseOrder::getMissionId, String.valueOf(query.getMissionId()))
                .like(StringUtils.isNotBlank(query.getOrderNumber()), XpCruiseOrder::getOrderNumber, query.getOrderNumber())
                .eq(query.getStatus() != null, XpCruiseOrder::getStatus, query.getStatus());
                .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());
@@ -161,15 +162,15 @@
        if (query.getEndTime() != null) {
            wrapper.le(BaseModel::getCreateTime, query.getEndTime().plusDays(1).atStartOfDay());
        }
        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());
        }
        //使用订单中的车队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());
@@ -181,7 +182,7 @@
            wrapper.in(XpCruiseOrder::getVehicleId, vehicleIds);
        }
        wrapper.orderByDesc(BaseModel::getCreateTime);
        wrapper.orderByDesc(XpCruiseOrder::getCreateTime);
        Page<XpCruiseOrder> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<XpCruiseOrder> pageResult = this.page(page, wrapper);
        if (CollectionUtils.isEmpty(pageResult.getRecords())) {
@@ -204,19 +205,35 @@
        } 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, 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;
        if (!vehicleFleetIdMap.isEmpty()) {
            List<Long> fleetIds = vehicleFleetIdMap.values().stream().distinct().collect(Collectors.toList());
            R<List<XpFleet>> fleetResult = xpFleetClient.listByIds(fleetIds);
        Set<Long> fleetIds = pageResult.getRecords().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));
@@ -233,7 +250,8 @@
            if (vehicle != null) {
                vo.setPlateNumber(vehicle.getPlateNumber());
            }
            Long fleetId = vehicleFleetIdMap.get(order.getVehicleId());
            // Long fleetId = vehicleFleetIdMap.get(order.getVehicleId());
            Long fleetId = order.getFleetId();
            if (fleetId != null) {
                vo.setFleetName(fleetNameMap.get(fleetId));
            }
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/IXpFleetVehicleService.java
@@ -3,6 +3,8 @@
import com.xiaopeng.api.model.vehicleConvoy.XpFleetVehicle;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
 * 车队车辆中间表 服务类