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-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 73 +++++++++++++++++++++++++++++++++---
1 files changed, 66 insertions(+), 7 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 1bb247d..18de3d3 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -87,6 +87,7 @@
import com.xiaopeng.order.service.IXpOrderReassignService;
import com.xiaopeng.order.service.IXpOrderService;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
+import com.xiaopeng.order.utils.RegionCodeFilterUtil;
import com.xiaopeng.order.utils.holiday.HolidayUtil;
import com.xiaopeng.order.vo.OrderDetailVo;
import lombok.RequiredArgsConstructor;
@@ -184,8 +185,28 @@
@Override
public PageInfo<XpOrderPageVO> pageList(XpOrderPageQuery query) {
+ // 0. 车牌号筛选:先查车辆服务获取车辆ID列表
+ List<Long> vehicleIdsFilter = null;
+ if (StringUtils.isNotBlank(query.getPlateNumber())) {
+ R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByPlateNumber(query.getPlateNumber());
+ if (vehicleResult == null || CollectionUtils.isEmpty(vehicleResult.getData())) {
+ return buildEmptyOrderPage(query);
+ }
+ vehicleIdsFilter = vehicleResult.getData().stream()
+ .map(XpVehicle::getId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(vehicleIdsFilter)) {
+ return buildEmptyOrderPage(query);
+ }
+ }
+
// 1. 构建查询条件
LambdaQueryWrapper<XpOrder> wrapper = buildQueryWrapper(query);
+ if (CollUtil.isNotEmpty(vehicleIdsFilter)) {
+ wrapper.in(XpOrder::getVehicleId, vehicleIdsFilter);
+ }
wrapper.orderByDesc(XpOrder::getCreateTime);
// 2. 分页查询
@@ -193,10 +214,7 @@
Page<XpOrder> pageResult = this.page(page, wrapper);
if (CollectionUtils.isEmpty(pageResult.getRecords())) {
- PageInfo<XpOrderPageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
- resultPage.setTotal(0L);
- resultPage.setRecords(new ArrayList<>());
- return resultPage;
+ return buildEmptyOrderPage(query);
}
// 3. 收集关联ID
@@ -229,6 +247,13 @@
PageInfo<XpOrderPageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
resultPage.setTotal(pageResult.getTotal());
resultPage.setRecords(voList);
+ return resultPage;
+ }
+
+ private PageInfo<XpOrderPageVO> buildEmptyOrderPage(XpOrderPageQuery query) {
+ PageInfo<XpOrderPageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ resultPage.setTotal(0L);
+ resultPage.setRecords(new ArrayList<>());
return resultPage;
}
@@ -303,6 +328,23 @@
// 1. 构建查询条件
LambdaQueryWrapper<XpOrder> wrapper = buildExcelQueryWrapper(query);
+ // 1.1 车牌号筛选:先查车辆服务获取车辆ID列表
+ if (StringUtils.isNotBlank(query.getPlateNumber())) {
+ R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByPlateNumber(query.getPlateNumber());
+ if (vehicleResult == null || CollectionUtils.isEmpty(vehicleResult.getData())) {
+ return new ArrayList<>();
+ }
+ List<Long> vehicleIdsFilter = vehicleResult.getData().stream()
+ .map(XpVehicle::getId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(vehicleIdsFilter)) {
+ return new ArrayList<>();
+ }
+ wrapper.in(XpOrder::getVehicleId, vehicleIdsFilter);
+ }
+
// 2. 查询订单列表
List<XpOrder> orderList = this.list(wrapper);
@@ -346,8 +388,16 @@
wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber())
.eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId())
.eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource())
- .like(StringUtils.isNotBlank(query.getCityCode()), XpOrder::getCityCode, query.getCityCode())
.eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus());
+
+ RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode())
+ .ifPresent(filter -> {
+ if (RegionCodeFilterUtil.MatchType.LIKE_RIGHT.equals(filter.getMatchType())) {
+ wrapper.likeRight(XpOrder::getCityCode, filter.getValue());
+ } else {
+ wrapper.eq(XpOrder::getCityCode, filter.getValue());
+ }
+ });
if (Objects.nonNull(query.getStartTime())) {
wrapper.ge(XpOrder::getCreateTime, LocalDateTime.of(query.getStartTime(), LocalTime.MIN));
@@ -364,8 +414,16 @@
wrapper.like(StringUtils.isNotBlank(query.getOrderNumber()), XpOrder::getOrderNumber, query.getOrderNumber())
.eq(Objects.nonNull(query.getFleetId()), XpOrder::getFleetId, query.getFleetId())
.eq(Objects.nonNull(query.getOrderSource()), XpOrder::getOrderSource, query.getOrderSource())
- .like(StringUtils.isNotBlank(query.getCityCode()), XpOrder::getCityCode, query.getCityCode())
.eq(Objects.nonNull(query.getStatus()), XpOrder::getStatus, query.getStatus());
+
+ RegionCodeFilterUtil.resolveCityCodeFilter(query.getCityCode())
+ .ifPresent(filter -> {
+ if (RegionCodeFilterUtil.MatchType.LIKE_RIGHT.equals(filter.getMatchType())) {
+ wrapper.likeRight(XpOrder::getCityCode, filter.getValue());
+ } else {
+ wrapper.eq(XpOrder::getCityCode, filter.getValue());
+ }
+ });
if (Objects.nonNull(query.getStartTime())) {
wrapper.ge(XpOrder::getCreateTime, LocalDateTime.of(query.getStartTime(), LocalTime.MIN));
@@ -379,6 +437,7 @@
wrapper.orderByDesc(XpOrder::getCreateTime);
return wrapper;
}
+
/**
* 批量获取用户信息
*/
@@ -531,7 +590,7 @@
PushOrderDto pushOrderDto = new PushOrderDto();
pushOrderDto.setOrderId(order.getId().toString());
pushOrderDto.setVin(xpVehicleR.getData().getVehicleVin());
- pushOrderDto.setOperation_type(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType.CLOUD_CANCEL_ORDER);
+ // pushOrderDto.setOperation_type(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType.CLOUD_CANCEL_ORDER);
orderMissionClient.cancelOrder(pushOrderDto);
}
} else {
--
Gitblit v1.7.1