From 2c97ba6813d18102e15c70ab2a24d62bc2263d05 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 14 二月 2026 19:11:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 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 8b05587..eb8083b 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
@@ -33,8 +33,8 @@
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
 import com.xiaopeng.api.model.account.XpAppUser;
-import com.xiaopeng.api.model.operation.XpGeoQueryEntity;
 import com.xiaopeng.api.model.operation.XpFeedbackType;
+import com.xiaopeng.api.model.operation.XpGeoQueryEntity;
 import com.xiaopeng.api.model.operation.XpPoint;
 import com.xiaopeng.api.model.operation.XpPricing;
 import com.xiaopeng.api.model.order.*;
@@ -80,16 +80,13 @@
 import com.xiaopeng.order.utils.TrajectoryGenerator;
 import com.xiaopeng.order.utils.holiday.HolidayUtil;
 import com.xiaopeng.order.vo.OrderDetailVo;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.transaction.core.TransactionType;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
@@ -179,10 +176,10 @@
         wrapper.orderByDesc(XpOrder::getCreateTime);
 
         // 2. 分页查询
-        PageInfo<XpOrder> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
-        PageInfo<XpOrder> orderPage = this.page(pageInfo, wrapper);
+        Page<XpOrder> page = new Page<>(query.getPageNum(), query.getPageSize());
+        Page<XpOrder> pageResult = this.page(page, wrapper);
 
-        if (CollectionUtils.isEmpty(orderPage.getRecords())) {
+        if (CollectionUtils.isEmpty(pageResult.getRecords())) {
             PageInfo<XpOrderPageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
             resultPage.setTotal(0L);
             resultPage.setRecords(new ArrayList<>());
@@ -193,7 +190,7 @@
         Set<Long> userIds = new HashSet<>();
         Set<Long> vehicleIds = new HashSet<>();
         Set<Long> fleetIds = new HashSet<>();
-        for (XpOrder order : orderPage.getRecords()) {
+        for (XpOrder order : pageResult.getRecords()) {
             if (Objects.nonNull(order.getAppUserId())) {
                 userIds.add(order.getAppUserId());
             }
@@ -211,13 +208,13 @@
         Map<Long, XpFleet> fleetMap = batchGetFleets(fleetIds);
 
         // 5. 组装 VO
-        List<XpOrderPageVO> voList = orderPage.getRecords().stream()
+        List<XpOrderPageVO> voList = pageResult.getRecords().stream()
                 .map(order -> convertToPageVO(order, userMap, vehicleMap, fleetMap))
                 .collect(Collectors.toList());
 
         // 6. 返回分页结果
         PageInfo<XpOrderPageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
-        resultPage.setTotal(orderPage.getTotal());
+        resultPage.setTotal(pageResult.getTotal());
         resultPage.setRecords(voList);
         return resultPage;
     }
@@ -561,6 +558,9 @@
         if (Objects.isNull(newVehicle.getAcceptOrTestStatus()) || newVehicle.getAcceptOrTestStatus() != 1) {
             throw new ServiceException("新车辆未开始接单", I18nKeyConstant.ORDER_REASSIGN_NEW_VEHICLE_NOT_START_ACCEPT);
         }
+        if (Objects.isNull(newVehicle.getState()) || newVehicle.getState() != 0) {
+            throw new ServiceException("新车辆已接单,请重新选择", I18nKeyConstant.ORDER_REASSIGN_NEW_VEHICLE_NOT_FREE);
+        }
 
         // 6. 保存原车辆和车队信息
         Long oldVehicleId = order.getVehicleId();
@@ -619,6 +619,7 @@
 
         log.info("订单改派成功,订单ID: {}, 原车辆ID: {}, 新车辆ID: {}, 原车队ID: {}, 新车队ID: {}, 操作人: {}",
                 orderId, oldVehicleId, newVehicleId, oldFleetId, newFleetId, SecurityUtils.getUsername());
+        //推送消息
     }
 
     @Override
@@ -955,7 +956,7 @@
             userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
         }
         // 根据订单所属开通城市id 查询定价
-        R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCityId(order.getCityId());
+        R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCid(order.getCityId());
         XpPricing pricing = pricingByCityId.getData();
         if (pricing == null) {
             throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);

--
Gitblit v1.7.1