From 0da19d473d89bb812610501809481fdf6c2c4756 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 24 三月 2026 20:53:13 +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 | 104 ++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 92 insertions(+), 12 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 1d792a8..ea3d41d 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
@@ -15,6 +15,7 @@
import com.xiaopeng.api.dto.account.UcUserInfo;
import com.xiaopeng.api.dto.account.UseUserCouponDto;
import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
+import com.xiaopeng.api.dto.automaticPilot.VehicleEventDTO;
import com.xiaopeng.api.dto.operation.CruisePointDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
@@ -31,6 +32,7 @@
import com.xiaopeng.api.feignClient.account.UserResourcesClient;
import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
+import com.xiaopeng.api.feignClient.automaticPilot.VehicleBuriedPointClient;
import com.xiaopeng.api.feignClient.maintenance.XpTaskRuleClient;
import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient;
import com.xiaopeng.api.feignClient.operation.XpPointClient;
@@ -83,10 +85,7 @@
import com.xiaopeng.order.model.query.XpOrderExcelQuery;
import com.xiaopeng.order.model.query.XpOrderPageQuery;
import com.xiaopeng.order.model.vo.*;
-import com.xiaopeng.order.service.IXpOrderCancelService;
-import com.xiaopeng.order.service.IXpOrderEvaluateService;
-import com.xiaopeng.order.service.IXpOrderReassignService;
-import com.xiaopeng.order.service.IXpOrderService;
+import com.xiaopeng.order.service.*;
import com.xiaopeng.order.utils.GDMapGeocodingUtil;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
import com.xiaopeng.order.utils.RegionCodeFilterUtil;
@@ -156,6 +155,8 @@
private final XpCruisePlanClient xpCruisePlanClient;
private final XpPricingUtil xpPricingUtil;
private final GDMapGeocodingUtil gdMapGeocodingUtil;
+ private final VehicleBuriedPointClient vehicleBuriedPointClient;
+ private final IXpTestOrderService xpTestOrderService;
@Autowired
@@ -995,7 +996,6 @@
log.info("已将原车辆状态设为空闲,车辆ID: {}", oldVehicleId);
// 6.1.4 为原车辆创建返程巡游订单
- --------------
createReturnCruiseOrder(oldVehicle.getId(), order);
} else {
log.warn("查询原车辆信息失败,车辆ID: {}", oldVehicleId);
@@ -2197,9 +2197,11 @@
xpVehicleClient.updateVehicleById(vehicle1);
//找到车辆的收车点位 更新终点点位
R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
- xpCruiseOrder = returnCruisePoint.getData();
- xpCruiseOrder.setOrderType(2);
- xpCruiseOrder.setOrderReverse(1);
+ if(200 != returnCruisePoint.getCode()){
+ xpCruiseOrder = returnCruisePoint.getData();
+ xpCruiseOrder.setOrderType(2);
+ xpCruiseOrder.setOrderReverse(1);
+ }
}
}
xpCruiseOrderMapper.insert(xpCruiseOrder);
@@ -2221,7 +2223,7 @@
/**
* 取消订单后的继续巡游任务
- * @param vehicle
+ * @param vehicleId
*/
public void addCruiseMission(Long vehicleId) {
XpVehicle vehicle = xpVehicleClient.queryById(vehicleId).getData();
@@ -2309,9 +2311,11 @@
xpVehicleClient.updateVehicleById(vehicle1);
//找到车辆的收车点位 更新终点点位
R<XpCruiseOrder> returnCruisePoint = xpCruisePlanClient.findReturnCruisePoint(xpCruiseOrder);
- xpCruiseOrder = returnCruisePoint.getData();
- xpCruiseOrder.setOrderType(2);
- xpCruiseOrder.setOrderReverse(1);
+ if(200 != returnCruisePoint.getCode()){
+ xpCruiseOrder = returnCruisePoint.getData();
+ xpCruiseOrder.setOrderType(2);
+ xpCruiseOrder.setOrderReverse(1);
+ }
}
}
@@ -2840,6 +2844,29 @@
xpCruiseOrder.setVehicleId(null);
xpCruiseOrderMapper.updateById(xpCruiseOrder);
log.info("修改巡游单状态,开始执行巡游单 {}", dto.getOrderId());
+ // 封装埋点消息实体
+ VehicleEventDTO vehicleEventDTO = new VehicleEventDTO();
+ vehicleEventDTO.setVin(dto.getXpVehicleVin());
+ vehicleEventDTO.setXpuId("");
+ vehicleEventDTO.setOrderId(String.valueOf(dto.getOrderId()));
+ vehicleEventDTO.setEventKey("RT_xpu_vehicle_trace_upload");
+ vehicleEventDTO.setEventTime(System.currentTimeMillis());
+ Map<String,Object> attributes = new HashMap<>();
+ attributes.put("vin",vehicleEventDTO.getVin());
+ attributes.put("order_id",vehicleEventDTO.getOrderId());
+ attributes.put("order_type","cruise_order");
+ attributes.put("timestamp",vehicleEventDTO.getEventTime());
+ attributes.put("current_main_status",OrderStatus.ORDER_STARTED);
+ attributes.put("current_sub_status","");
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getXpVehicleVin())), VehiclePosition.class);
+ if(Objects.nonNull(vehiclePosition)){
+ attributes.put("odometer_km",vehiclePosition.getTotalOdometer());
+ }else {
+ attributes.put("odometer_km","");
+ }
+ vehicleEventDTO.setAttributes(attributes);
+ vehicleBuriedPointClient.sendVehicleEvent(vehicleEventDTO);
+ log.info("巡游单埋点消息,开始执行推送: {}", dto.getOrderId());
}
}
//乘客单处理逻辑
@@ -2921,6 +2948,59 @@
//推送乘客车辆到达预约点的导航数据
sendRoute(addTaxiPassengerVo.getUid(), orderId, "ORDER_NAVIGATION_START_DATA", dto.getXpVehicleVin());
}
+
+ if(order.getStatus() == 2){
+ // 封装埋点消息实体
+ VehicleEventDTO vehicleEventDTO = new VehicleEventDTO();
+ vehicleEventDTO.setVin(dto.getXpVehicleVin());
+ vehicleEventDTO.setXpuId("");
+ vehicleEventDTO.setOrderId(String.valueOf(dto.getOrderId()));
+ vehicleEventDTO.setEventKey("RT_xpu_vehicle_trace_upload");
+ vehicleEventDTO.setEventTime(System.currentTimeMillis());
+ Map<String,Object> attributes = new HashMap<>();
+ attributes.put("vin",vehicleEventDTO.getVin());
+ attributes.put("order_id",vehicleEventDTO.getOrderId());
+ attributes.put("order_type","user_order");
+ attributes.put("timestamp",vehicleEventDTO.getEventTime());
+ attributes.put("current_main_status",OrderStatus.ORDER_EN_ROUTE_TO_PICKUP);
+ attributes.put("current_sub_status","");
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(dto.getXpVehicleVin())), VehiclePosition.class);
+ if(Objects.nonNull(vehiclePosition)){
+ attributes.put("odometer_km",vehiclePosition.getTotalOdometer());
+ }else {
+ attributes.put("odometer_km","");
+ }
+ vehicleEventDTO.setAttributes(attributes);
+ vehicleBuriedPointClient.sendVehicleEvent(vehicleEventDTO);
+ log.info("用户单埋点消息,开始执行推送: {}", dto.getOrderId());
+ }
+
+ }
+ //测试订单
+ if (OrderType.TEST_ORDER.equals(orderType)) {
+ XpTestOrder xpTestOrder = xpTestOrderService.getById(orderId);
+ //订单为待接单状态
+ if (xpTestOrder.getStatus() < 4) {
+ xpTestOrder.setAcceptanceTime(LocalDateTime.now());
+ R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin());
+ XpVehicle vehicle = null;
+ if (byVehicleVin.getCode() == 200) {
+ vehicle = byVehicleVin.getData();
+ xpTestOrder.setVehicleId(vehicle.getId());
+ xpTestOrder.setFleetId(vehicle.getFleetId());
+ }
+ xpTestOrder.setStatus(2);
+
+ // 修改车辆信息
+ XpVehicle vehicle1 = new XpVehicle();
+ vehicle1.setId(vehicle.getId());
+ vehicle1.setState(1);
+ xpVehicleClient.updateVehicleById(vehicle1);
+
+ xpTestOrder.setVehicleId(null);
+ xpTestOrderService.updateById(xpTestOrder);
+ redisService.setCacheObject("ORDER_STATUS:" + xpTestOrder.getId(), 2, 24L, TimeUnit.HOURS);
+ }
}
}
--
Gitblit v1.7.1