From 8b5ac6aa170ba050387c14931b95b9d9ce5ee4e2 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 二月 2026 11:26:26 +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 | 73 +++++++++++++++++++++---------------
1 files changed, 42 insertions(+), 31 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 35c10f3..8b05587 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
@@ -77,6 +77,7 @@
import com.xiaopeng.order.service.IXpOrderReassignService;
import com.xiaopeng.order.service.IXpOrderService;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
+import com.xiaopeng.order.utils.TrajectoryGenerator;
import com.xiaopeng.order.utils.holiday.HolidayUtil;
import com.xiaopeng.order.vo.OrderDetailVo;
import io.swagger.annotations.ApiModelProperty;
@@ -949,8 +950,8 @@
cancelTaxiPassengerVo.setVin(vehicle.getVehicleVin());
cancelTaxiPassengerVo.setUid(uid);
cancelTaxiPassengerVo.setOrderNo(order.getOrderNumber());
-// cancelTaxiPassengerVo.setAppId();
-
+ // TODO 加配置文件取
+ cancelTaxiPassengerVo.setAppId("");
userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
}
// 根据订单所属开通城市id 查询定价
@@ -960,25 +961,37 @@
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<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();
JSONArray startingFareJsonArray = JSONArray.parseArray(pricing.getStartingFareJson());
- 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("num24")), Double.parseDouble(basicPricingJson.getString("num25")), Double.parseDouble(basicPricingJson.getString("num26")), Double.parseDouble(basicPricingJson.getString("num27")), Double.parseDouble(basicPricingJson.getString("num28"))));
- config.peaks.add(new TaxiPricingDemoService.PricingRule("高峰期", basicPricingJson.getString("num22").split("-")[0], basicPricingJson.getString("num22").split("-")[1], Double.parseDouble(basicPricingJson.getString("num24")), Double.parseDouble(basicPricingJson.getString("num25")), Double.parseDouble(basicPricingJson.getString("num26")), Double.parseDouble(basicPricingJson.getString("num27")), Double.parseDouble(basicPricingJson.getString("num28"))));
- config.night = new TaxiPricingDemoService.PricingRule("夜间行驶", basicPricingJson.getString("num14").split("-")[0], basicPricingJson.getString("num14").split("-")[1], Double.parseDouble(basicPricingJson.getString("num16")), Double.parseDouble(basicPricingJson.getString("num17")), Double.parseDouble(basicPricingJson.getString("num18")), Double.parseDouble(basicPricingJson.getString("num19")), Double.parseDouble(basicPricingJson.getString("num20")));
- config.holiday = new TaxiPricingDemoService.PricingRule("节假日", "00:00", "23:59", Double.parseDouble(basicPricingJson.getString("num30")), Double.parseDouble(basicPricingJson.getString("num31")), Double.parseDouble(basicPricingJson.getString("num32")), Double.parseDouble(basicPricingJson.getString("num33")), Double.parseDouble(basicPricingJson.getString("num234")));
+ 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("num24")), Double.parseDouble(basicPricingJson.getString("num25")), Double.parseDouble(basicPricingJson.getString("num26")), Double.parseDouble(basicPricingJson.getString("num27")), Double.parseDouble(basicPricingJson.getString("num28"))));
+ config.peaks.add(new TaxiPricingDemoService.PricingRule("高峰期", basicPricingJson.getString("num22").split("-")[0], basicPricingJson.getString("num22").split("-")[1], Double.parseDouble(basicPricingJson.getString("num24")), Double.parseDouble(basicPricingJson.getString("num25")), Double.parseDouble(basicPricingJson.getString("num26")), Double.parseDouble(basicPricingJson.getString("num27")), Double.parseDouble(basicPricingJson.getString("num28"))));
+ config.night = new TaxiPricingDemoService.PricingRule("夜间行驶", basicPricingJson.getString("num14").split("-")[0], basicPricingJson.getString("num14").split("-")[1], Double.parseDouble(basicPricingJson.getString("num16")), Double.parseDouble(basicPricingJson.getString("num17")), Double.parseDouble(basicPricingJson.getString("num18")), Double.parseDouble(basicPricingJson.getString("num19")), Double.parseDouble(basicPricingJson.getString("num20")));
+ config.holiday = new TaxiPricingDemoService.PricingRule("节假日", "00:00", "23:59", Double.parseDouble(basicPricingJson.getString("num30")), Double.parseDouble(basicPricingJson.getString("num31")), Double.parseDouble(basicPricingJson.getString("num32")), Double.parseDouble(basicPricingJson.getString("num33")), Double.parseDouble(basicPricingJson.getString("num234")));
+ // --- 远途加价区间配置 (关键修改) ---
+ // 1. 超过 num1(12) 不足 num2(20), 加收 num3(1.2)
+ config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num6")), Double.parseDouble(basicPricingJson.getString("num7")), Double.parseDouble(basicPricingJson.getString("num8"))));
+ // 2. 超过 num4(20) 不足 num5(35), 加收 num6(2.0)
+ config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num9")), Double.parseDouble(basicPricingJson.getString("num10")), Double.parseDouble(basicPricingJson.getString("num11"))));
+ // 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;
@@ -991,13 +1004,7 @@
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)));
}
- // --- 远途加价区间配置 (关键修改) ---
- // 1. 超过 num1(12) 不足 num2(20), 加收 num3(1.2)
- config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num6")), Double.parseDouble(basicPricingJson.getString("num7")), Double.parseDouble(basicPricingJson.getString("num8"))));
- // 2. 超过 num4(20) 不足 num5(35), 加收 num6(2.0)
- config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num9")), Double.parseDouble(basicPricingJson.getString("num10")), Double.parseDouble(basicPricingJson.getString("num11"))));
- // 3. 超过 num7(35) 以后, 加收 num8(3.5) -> numEnd 传个极大值
- config.longSteps.add(new TaxiPricingDemoService.LongRangeStep(Double.parseDouble(basicPricingJson.getString("num12")), 999999, Double.parseDouble(basicPricingJson.getString("num13"))));
+
TaxiPricingDemoService.TaxiPricingService service = new TaxiPricingDemoService.TaxiPricingService();
Map<String, BigDecimal> bill = service.calculateOrderPrice(DateUtils.toDate(order.getCreateTime()), order.getMileageKilometers(), gpsPoints, config);
@@ -1547,11 +1554,15 @@
}
}
- List<OrderTrajectory> trajectories = mongoTemplate.find(
- new Query(Criteria.where("orderId").is(orderId))
- .with(Sort.by(Sort.Direction.ASC, "locatetime")),
- OrderTrajectory.class
- );
+// List<OrderTrajectory> trajectories = mongoTemplate.find(
+// new Query(Criteria.where("orderId").is(orderId))
+// .with(Sort.by(Sort.Direction.ASC, "locatetime")),
+// OrderTrajectory.class
+// );
+ List<TaxiPricingDemoService.GpsPoint> mockGpsPoints = TaxiPricingDemoService.createMockGpsPoints(DateUtils.toDate(order.getCreateTime()));
+
+ // 生成轨迹记录
+ List<OrderTrajectory> trajectories = TrajectoryGenerator.generateTrajectory(mockGpsPoints);
orderDetailVo.setTrajectories(trajectories);
if (order.getTripBegin() != null && order.getTripEnd() != null) {
// 计算两个时间相差多少分钟
--
Gitblit v1.7.1