From 1af7e3e33a47c40026584e79365900894c5c3553 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 28 三月 2026 01:38:37 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java
index 7e58c51..1b41300 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java
@@ -264,7 +264,7 @@
xpOrder.setVehicleId(vehicleId);
xpOrder.setFleetId(xpVehicle.getFleetId());
this.save(xpOrder);
- redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), 1, 24L, TimeUnit.HOURS);
+ redisService.setCacheObject("TEST_ORDER_STATUS:" + xpOrder.getId(), 1, 24L, TimeUnit.HOURS);
//缓存导航数据,用于下单后推送导航给车端和乘客端
redisService.setCacheObject("TEST_ORDER_NAVIGATION_END_DATA:" + vehicleId, JSON.toJSONString(routeVo), 24L, TimeUnit.HOURS);
//下发XPU消息
@@ -670,7 +670,7 @@
order.setDuration(new BigDecimal(duration).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue());
order.setStartTestPointId(null);
this.updateById(order);
- redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 7, 24L, TimeUnit.HOURS);
+ redisService.setCacheObject("TEST_ORDER_STATUS:" + order.getId(), 7, 24L, TimeUnit.HOURS);
//给XPU推送订单取消的报文
PushOrderDto pushOrderDto = new PushOrderDto();
@@ -910,6 +910,7 @@
case 6:
// 行程开始时间
xpOrder.setTripBegin(LocalDateTime.now());
+ redisService.deleteObject("TEST_ORDER_NAVIGATION_START_DATA:" + xpOrder.getVehicleId());
break;
case 7:
xpOrder.setGetoffTime(LocalDateTime.now());
@@ -930,19 +931,36 @@
xpOrder.setMileageKilometers(new BigDecimal(reduce).divide(new BigDecimal(1000)).setScale(4, RoundingMode.HALF_EVEN).doubleValue());
long duration = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) - xpOrder.getTripBegin().toEpochSecond(ZoneOffset.of("+8"));
xpOrder.setDuration(new BigDecimal(duration).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue());
+
+ //创建定时结束订单和等待结束后下发巡游单的定时任务
+ Integer arriveTime = xpSystemSettingClient.getOrderFinishTime().getData();
+ // 添加自动结束行程定时任务job
+ Map<String, ? extends Object> endTripJobMaps =
+ new ImmutableMap.Builder<String, String>()
+ .put("id", xpOrder.getId().toString())
+ .put("orderType", OrderType.TEST_ORDER)
+ .build();
+ QuartzManager.addJob(
+ EndTripJob.class,
+ (EndTripJob.name + xpOrder.getId()).toUpperCase(),
+ TimeJobType.END_TRIP,
+ DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(arriveTime)),
+ endTripJobMaps
+ );
break;
}
xpOrder.setStatus(status);
xpOrder.setStartTestPointId(null);
this.updateById(xpOrder);
- redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), status, 24L, TimeUnit.HOURS);
+ redisService.setCacheObject("TEST_ORDER_STATUS:" + xpOrder.getId(), status, 24L, TimeUnit.HOURS);
}else{
+ //测试巡游单,只需要修改状态
if(status == 10){
xpOrder.setStatus(status);
xpOrder.setStartTestPointId(null);
this.updateById(xpOrder);
- redisService.setCacheObject("ORDER_STATUS:" + xpOrder.getId(), status, 24L, TimeUnit.HOURS);
+ redisService.setCacheObject("TEST_ORDER_STATUS:" + xpOrder.getId(), status, 24L, TimeUnit.HOURS);
}
}
return R.ok();
@@ -971,7 +989,7 @@
order.setStartTestPointId(null);
order.setTripEnd(LocalDateTime.now());
baseMapper.updateById(order);
- redisService.setCacheObject("ORDER_STATUS:" + order.getId(), 8, 24L, TimeUnit.HOURS);
+ redisService.setCacheObject("TEST_ORDER_STATUS:" + order.getId(), 8, 24L, TimeUnit.HOURS);
// 根据订单所属开通城市id 查询定价
R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCid(order.getCityId());
@@ -1339,7 +1357,7 @@
@Override
public void saveVehicleLocation(OrderTrajectory orderTrajectory) {
// 查询订单信息
- Integer status = redisService.getCacheObject("ORDER_STATUS:" + orderTrajectory.getOrderId());
+ Integer status = redisService.getCacheObject("TEST_ORDER_STATUS:" + orderTrajectory.getOrderId());
if(status < 6 || status > 8){
return;
}
--
Gitblit v1.7.1