From fe431f9c9248540850a4c6371496363519308a0b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 27 二月 2026 18:47:42 +0800
Subject: [PATCH] bug修改

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 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 1e47fee..57b6459 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
@@ -952,6 +952,7 @@
         order.setStatus(8);
         order.setAppUserId(null);
         order.setTripEnd(LocalDateTime.now());
+        order.setMileageKilometers(80.0);
         baseMapper.updateById(order);
         // 解绑用户与车辆关系
         CancelTaxiPassengerVo cancelTaxiPassengerVo = new CancelTaxiPassengerVo();
@@ -1009,9 +1010,8 @@
             // 3. 超过 num7(35) 以后, 加收 num8(3.5) -> numEnd 传个极大值
             config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num12")), 999999, Double.parseDouble(basicPricingJson.getString("num13"))));
         }
-        for (Object o : startingFareJsonArray) {
-            // 转化为jsonObject
-            JSONObject jsonObject = (JSONObject) o;
+        for (int i = 0; i < startingFareJsonArray.size(); i++) {
+            com.alibaba.fastjson.JSONObject jsonObject = startingFareJsonArray.getJSONObject(i);
             String num1 = jsonObject.getString("num1");
             String num2 = jsonObject.getString("num2");
             String num3 = jsonObject.getString("num3");
@@ -1021,7 +1021,6 @@
             String num7 = jsonObject.getString("num7");
             config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", num1, num2, Double.parseDouble(num3), Double.parseDouble(num4), Double.parseDouble(num5), Double.parseDouble(num6), Double.parseDouble(num7)));
         }
-
 
         TaxiPricingDemoService.TaxiPricingService service = new TaxiPricingDemoService.TaxiPricingService();
         Map<String, BigDecimal> bill = service.calculateOrderPrice(DateUtils.toDate(order.getCreateTime()), order.getMileageKilometers(), gpsPoints, config);
@@ -1091,8 +1090,9 @@
                 } else if (key.contains("节假")) {
                     startDetail.setType(4);
                 }
-                startDetail.setDuration(Double.valueOf(key.split("=")[1]));
-                startDetail.setMileage(new BigDecimal(key.split("&")[1]));
+                String durationAndMileage = key.split("\\|")[2];
+                startDetail.setDuration(Double.valueOf(durationAndMileage.split("&")[0]));
+                startDetail.setMileage(new BigDecimal(durationAndMileage.split("&")[1]));
                 start.add(startDetail);
             }
             // 封装里程费
@@ -1100,8 +1100,8 @@
                 FareBreakdownDetailVo mileageDetail = new FareBreakdownDetailVo();
                 if (key.contains("普通时段")) {
                     mileageDetail.setType(1);
-                    String key1 = "distance普通时段" + key.split("\\|")[1];
-                    String key2 = "普通时段" + key.split("\\|")[1];
+                    String key1 = "distance普通时段|" + key.split("\\|")[1];
+                    String key2 = "普通时段|" + key.split("\\|")[1];
                     BigDecimal distance = bill.get(key1);
                     BigDecimal money = bill.get(key2);
                     mileageDetail.setMileage(distance);
@@ -1109,8 +1109,8 @@
                     mileageDetail.setMoney(money.multiply(BigDecimal.valueOf(priceRate)));
                 } else if (key.contains("夜间行驶")) {
                     mileageDetail.setType(2);
-                    String key1 = "distance夜间行驶" + key.split("\\|")[1];
-                    String key2 = "夜间行驶" + key.split("\\|")[1];
+                    String key1 = "distance夜间行驶|" + key.split("\\|")[1];
+                    String key2 = "夜间行驶|" + key.split("\\|")[1];
                     BigDecimal distance = bill.get(key1);
                     BigDecimal money = bill.get(key2);
                     mileageDetail.setMileage(distance);
@@ -1119,8 +1119,8 @@
                     mileageDetail.setMoney(money.multiply(BigDecimal.valueOf(priceRate)));
                 } else if (key.contains("高峰期")) {
                     mileageDetail.setType(3);
-                    String key1 = "distance高峰期" + key.split("\\|")[1];
-                    String key2 = "高峰期" + key.split("\\|")[1];
+                    String key1 = "distance高峰期|" + key.split("\\|")[1];
+                    String key2 = "高峰期|" + key.split("\\|")[1];
                     BigDecimal distance = bill.get(key1);
                     BigDecimal money = bill.get(key2);
                     mileageDetail.setMileage(distance);
@@ -1129,8 +1129,8 @@
                     mileageDetail.setMoney(money.multiply(BigDecimal.valueOf(priceRate)));
                 } else if (key.contains("节假")) {
                     mileageDetail.setType(4);
-                    String key1 = "distance节假日" + key.split("\\|")[1];
-                    String key2 = "节假日" + key.split("\\|")[1];
+                    String key1 = "distance节假日|" + key.split("\\|")[1];
+                    String key2 = "节假日|" + key.split("\\|")[1];
                     BigDecimal distance = bill.get(key1);
                     BigDecimal money = bill.get(key2);
                     mileageDetail.setMileage(distance);

--
Gitblit v1.7.1