From 547a4a0b1d130c6d2fb854b31a15e2bf7e75c811 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 17 四月 2026 21:03:39 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 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