From 1d480fdb0905715c2058d113220c47f26c051dce Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期五, 17 四月 2026 18:36:25 +0800
Subject: [PATCH] 1.按照车型 计算价格(行程中修改目的地(获取路线和费用)、行程结束) 完成100% 2.车型管理端接口添加,并修改APP页面展示需要展示车型的代码 3.系统配置文件-行程中的配置 添加,并修改代码标记需要读取配置文件的地方 4.优化代码
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 27 +++++++++++++++++----------
1 files changed, 17 insertions(+), 10 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 adac44e..4945338 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
@@ -318,7 +318,7 @@
XpVehicle vehicle = vehicleMap.get(order.getVehicleId());
if (Objects.nonNull(vehicle)) {
vo.setPlateNumber(vehicle.getPlateNumber());
- vo.setVehicleModel(vehicle.getVehicleModel());
+ vo.setVehicleModel(vehicle.getVehicleModelName());
}
}
@@ -607,7 +607,7 @@
if (Objects.nonNull(order.getVehicleId()) && vehicleMap.containsKey(order.getVehicleId())) {
XpVehicle vehicle = vehicleMap.get(order.getVehicleId());
vo.setPlateNumber(vehicle.getPlateNumber());
- vo.setVehicleModel(vehicle.getVehicleModel());
+ vo.setVehicleModel(vehicle.getVehicleModelName());
}
// 车队信息
@@ -3465,7 +3465,7 @@
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId());
XpVehicle vehicle = xpVehicleR.getData();
xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin());
- xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModel());
+ xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName());
xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor());
xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber());
xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures());
@@ -3493,7 +3493,7 @@
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId());
XpVehicle vehicle = xpVehicleR.getData();
xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin());
- xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModel());
+ xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName());
xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor());
xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber());
@@ -3513,21 +3513,28 @@
*/
private boolean isCancelShow(XpOrder xpOrder,String vehicleVin) {
boolean isCancel = false;
+
+ //获取系统配置
+ XpSystemSetting systemSetting = xpSystemSettingClient.getSystemSettingOne().getData();
+ if(systemSetting == null){
+ throw new ServiceException("获取行程配置错误");
+ }
//获取配置文件
- int sylc = 800;//单位米 todo yyy 需要读取后台配置文件
- int sysj = 5;//单位分钟 todo yyy 需要读取后台配置文件
+ int sylc = systemSetting.getXczSyDistance(); // 行程中剩余里程单位米 需要读取后台配置文件
+ int sysj = systemSetting.getXczSyTime();//行程中剩余时间 单位分钟 需要读取后台配置文件
// 减少3分钟 获取3分账内的 行程数据
- long minute =3;//todo yyy 需要读取后台配置文件
+ Integer xczSpeedPerHour = systemSetting.getXczHmSpeedPerHour();//行程中豁免时速 km/h
+ Integer xczHmDuration = systemSetting.getXczHmDuration();//行程中豁免持续时间 分钟 需要读取后台配置文件
List<OrderTrajectory> orderTrajectories = queryOrderTrajectories(xpOrder.getId());
if(!orderTrajectories.isEmpty()){// 减少3分钟 获取3分账内的 行程数据
//3千米/小时 转换成分钟 50米/分钟
- BigDecimal suduDefault = new BigDecimal("3");//3千米/小时
+ BigDecimal suduDefault = new BigDecimal(xczSpeedPerHour);//3千米/小时
BigDecimal suduDefault1 = suduDefault.multiply(BigDecimal.valueOf(1000)) ;
BigDecimal suduDefaultNew =suduDefault1.divide(BigDecimal.valueOf(60),2,RoundingMode.HALF_EVEN);
- LocalDateTime minutesBefore = LocalDateTime.now().minusMinutes(minute);
+ LocalDateTime minutesBefore = LocalDateTime.now().minusMinutes(xczHmDuration);
long milliseconds = DateUtils.getMilliseconds(minutesBefore);
List<OrderTrajectory> orderTrajectoriesNew = new ArrayList<>();
for (OrderTrajectory orderTrajectory : orderTrajectories) {
@@ -3540,7 +3547,7 @@
*/
//计算行驶总距离和时长
Double reduce = orderTrajectoriesNew.stream().map(OrderTrajectory::getDistance).reduce(0.0, Double::sum);
- BigDecimal xcsudu = new BigDecimal(reduce).divide(new BigDecimal(minute),2, RoundingMode.HALF_EVEN);//米/分钟
+ BigDecimal xcsudu = new BigDecimal(reduce).divide(new BigDecimal(xczHmDuration),2, RoundingMode.HALF_EVEN);//米/分钟
//特殊豁免:若系统检测到车辆在当前坐标时速 < 3km/h 且持续时间 > 3分钟(后台配置)(判定为极度拥堵或异常停滞),此时解除限制,允许用户修改目的地或新增途径点以寻找更近的下车位置。
if(xcsudu.compareTo(suduDefaultNew)<0){
--
Gitblit v1.7.1