From 3632e38fe93105092e58c30c9043585d5a9a7489 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 13 三月 2026 11:36:30 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
---
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 087b753..f502c67 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