From 74df7f0790b7130db118bbeadd450347d03f4d7c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 27 二月 2026 20:34:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 53 +++++++++++++++++++++++++++++------------------------
1 files changed, 29 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 1e47fee..1a07002 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);
@@ -1178,16 +1178,19 @@
for (XpOrderDetail xpOrderDetail : xpOrderDetails) {
xpOrderDetailMapper.insert(xpOrderDetail);
}
- for (FareBreakdownDetailVo fareBreakdownDetailVo : duration) {
- order.setDurationType(fareBreakdownDetailVo.getType());
- order.setDurationMoney(fareBreakdownDetailVo.getMoney());
- order.setDuration(Double.parseDouble(fareBreakdownDetailVo.getDuration() + ""));
+ for (XpOrderDetail xpOrderDetail : xpOrderDetails) {
+ if (xpOrderDetail.getDetailType() == 1){
+ order.setDurationType(xpOrderDetail.getType());
+ order.setDurationMoney(xpOrderDetail.getMoney());
+ order.setDuration(Double.parseDouble(xpOrderDetail.getDuration() + ""));
+ }else{
+ order.setLongDistanceType(order.getDurationType());
+ order.setLongDistance(xpOrderDetail.getMileage().doubleValue());
+ order.setLongDistancemoney(xpOrderDetail.getMoney());
+ }
+
}
- for (FareBreakdownDetailVo fareBreakdownDetailVo : longDistance) {
- order.setLongDistanceType(fareBreakdownDetailVo.getType());
- order.setLongDistance(fareBreakdownDetailVo.getMileage().doubleValue());
- order.setLongDistancemoney(fareBreakdownDetailVo.getMoney());
- }
+
BigDecimal orderMoney = startMoney.add(mileageMoney).add(order.getDurationMoney() != null ? order.getDurationMoney() : BigDecimal.ZERO)
.add(order.getLongDistancemoney() != null ? order.getLongDistancemoney() : BigDecimal.ZERO)
.add(order.getWaitMoney()!=null?order.getWaitMoney():BigDecimal.ZERO);
@@ -1478,7 +1481,7 @@
detail.setTime(xpOrderDetail.getTime());
detail.setMileage(xpOrderDetail.getMileage());
detail.setDuration(xpOrderDetail.getDuration());
- if (xpOrderDetail.getType() == 1){
+ if (xpOrderDetail.getDetailType() == 1){
start.add(detail);
}else{
mileage.add(detail);
@@ -1490,6 +1493,7 @@
durationDetail.setType(order.getDurationType());
durationDetail.setDuration(order.getDuration());
durationDetail.setMoney(order.getDurationMoney());
+ duration.add(durationDetail);
}
List<FareBreakdownDetailVo> longDistance = new ArrayList<>();
@@ -1531,6 +1535,7 @@
// mvp版本不做支付 使用优惠券抵扣为0元订单处理 处理订单状态即可
XpOrder order = this.getById(dto.getOrderId());
order.setStatus(9);
+ order.setAppUserId(null);
baseMapper.updateById(order);
return R.ok();
}
--
Gitblit v1.7.1