From d4f8d30d1c6e4397dbfbdbb759cc66132913dd53 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 13 三月 2026 11:34:35 +0800
Subject: [PATCH] 修改计费规则

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 35 insertions(+), 24 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 cf6c106..f433dd1 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
@@ -1476,19 +1476,19 @@
             throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);
         }
         // 费用
-//        // 查询订单轨迹
-//        List<OrderTrajectory> trajectories = mongoTemplate.find(
-//                new Query(Criteria.where("orderId").is(orderId))
-//                        .with(Sort.by(Sort.Direction.ASC, "locatetime")),
-//                OrderTrajectory.class
-//        );
-//        List<TaxiPricingDemoService.GpsPoint> gpsPoints = new ArrayList<>();
-//        for (OrderTrajectory trajectory : trajectories) {
-//            TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(), trajectory.getLocatetime());
-//            gpsPoints.add(point);
-//        }
-        // 补充临时轨迹数据
-        List<TaxiPricingDemoService.GpsPoint> gpsPoints = TaxiPricingDemoService.createMockGpsPoints(DateUtils.toDate(order.getCreateTime()));
+        // 查询订单轨迹
+        List<OrderTrajectory> trajectories = mongoTemplate.find(
+                new Query(Criteria.where("orderId").is(orderId))
+                        .with(Sort.by(Sort.Direction.ASC, "locatetime")),
+                OrderTrajectory.class
+        );
+        List<TaxiPricingDemoService.GpsPoint> gpsPoints = new ArrayList<>();
+        for (OrderTrajectory trajectory : trajectories) {
+            TaxiPricingDemoService.GpsPoint point = new TaxiPricingDemoService.GpsPoint(trajectory.getDistance(), trajectory.getLocatetime());
+            gpsPoints.add(point);
+        }
+//         补充临时轨迹数据
+//        List<TaxiPricingDemoService.GpsPoint> gpsPoints = TaxiPricingDemoService.createMockGpsPoints(DateUtils.toDate(order.getCreateTime()));
 
 
         TaxiPricingDemoService.PricingConfig config = new TaxiPricingDemoService.PricingConfig();
@@ -1529,11 +1529,26 @@
                 paramNum5 = jsonObject.getDouble("num5");
                 break;
             }
-
-
         }
 
 
+        //一口价
+        if(pricing.getPricingType() == 2){
+            JSONObject basicPricingJson = JSONObject.parseObject(pricing.getBasicPricingJson());
+            String num1 = "00:00";
+            String num2 = "23:59";
+            String num3 = basicPricingJson.getString("num1");
+            String num4 = basicPricingJson.getString("num2");
+            String num5 = basicPricingJson.getString("num3");
+            String num6 = basicPricingJson.getString("num4");
+            String num7 = basicPricingJson.getString("num5");
+            config.normals.add(new TaxiPricingDemoService.PricingRule("普通时段", num1, num2, Double.parseDouble(num3), Double.parseDouble(num4), Double.parseDouble(num5), Double.parseDouble(num6), Double.parseDouble(num7)));
+            paramNum4 = basicPricingJson.getDouble("num2");
+            paramNum5 = basicPricingJson.getDouble("num3");
+        }
+
+
+        //动态计费
         if (pricing.getPricingType() == 1) {
             JSONObject basicPricingJson = JSONObject.parseObject(pricing.getBasicPricingJson());
             config.peaks.add(new TaxiPricingDemoService.PricingRule("高峰期", basicPricingJson.getString("num21").split(" - ")[0], basicPricingJson.getString("num21").split(" - ")[1], Double.parseDouble(basicPricingJson.getString("num23")),paramNum4, paramNum5,  Double.parseDouble(basicPricingJson.getString("num24")), Double.parseDouble(basicPricingJson.getString("num25"))));
@@ -1551,17 +1566,14 @@
 
 
         TaxiPricingDemoService.TaxiPricingService service = new TaxiPricingDemoService.TaxiPricingService();
-
         Integer holidayToday = holidayUtil.isHolidayToday();
-
-
         Map<String, BigDecimal> bill = service.calculateOrderPrice(DateUtils.toDate(order.getBoardingTime()), order.getMileageKilometers(), gpsPoints, config,holidayToday);
-        System.err.println("======= 订单计费账单 =======");
-        bill.forEach((detail, price) -> System.err.println(detail + ": " + price + " 元"));
+        log.info("======= 订单计费账单 =======");
+        bill.forEach((detail, price) -> log.info(detail + ": " + price + " 元"));
 
         BigDecimal totalAmount = bill.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
-        System.err.println("--------------------------");
-        System.err.println("应付总额: " + totalAmount + " 元");
+        log.info("--------------------------");
+        log.info("应付总额: " + totalAmount + " 元");
         BigDecimal startMoney = BigDecimal.ZERO;
         // 默认费率1
         double priceRate = 1;
@@ -1789,8 +1801,7 @@
         if (vehicle != null) {
             // 修改车辆状态
             vehicle.setState(0);
-
-
+            //发送巡游订单
             addCruiseMission(vehicle, order);
 //            // 获取配置 根据配置判断是否该收车 如果是则找到收车点位进行收车操作
 //            R<XpTaskRule> xpTaskRuleR = xpTaskRuleClient.queryDetail();

--
Gitblit v1.7.1