From 406ae5451ecde0b4b40a9ecfee07f2171fda80bc Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 15 四月 2026 15:04:07 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 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 42a4d30..ce2ef4a 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
@@ -1807,6 +1807,9 @@
// 查询车辆
XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
switch (status) {
+ case 0://去掉订单 优惠卷需要返回
+
+ break;
case 4:
// 查询起点点位
Long startPointId = xpOrder.getStartPointId();
@@ -1933,6 +1936,56 @@
return R.ok();
}
+
+
+ /**
+ * 行驶中车辆异常,订单状态修改- 修改状态=7 再修改 金额-再将状态修改成8
+ */
+ @Override
+ public R<String> carAbnormalUpdateOrderStatus(Long orderId){
+ XpOrder xpOrder = this.getById(orderId);
+ if (Objects.isNull(xpOrder)) {
+ return R.fail("订单不存在");
+ }
+ if (xpOrder.getStatus() == 0) {
+ return R.fail("订单已取消");
+ }
+ if(xpOrder.getStatus() >= 8){
+ return R.fail("订单已结束");
+ }
+ // 查询车辆
+ XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+ Long appUserId = xpOrder.getAppUserId();
+
+ xpOrder.setGetoffTime(LocalDateTime.now());
+ // 解析下车地点
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+ if(Objects.nonNull(vehiclePosition)){
+ GeoJsonPoint point = vehiclePosition.getPoint();
+ if(Objects.nonNull(point)){
+ double x = point.getX();
+ double y = point.getY();
+ Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(x), String.valueOf(y));
+ xpOrder.setGetoffAddress(geocode.get("address"));
+ }
+ }
+ //计算行驶总距离和时长
+ List<OrderTrajectory> orderTrajectoryList = mongoTemplate.find(new Query().addCriteria(Criteria.where("orderId").is(xpOrder.getId())), OrderTrajectory.class);
+ Double reduce = orderTrajectoryList.stream().map(OrderTrajectory::getDistance).reduce(0.0, Double::sum);
+ xpOrder.setMileageKilometers(new BigDecimal(reduce).divide(new BigDecimal(1000)).setScale(4, RoundingMode.HALF_EVEN).doubleValue());
+ long duration = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) - xpOrder.getTripBegin().toEpochSecond(ZoneOffset.of("+8"));
+ xpOrder.setDuration(new BigDecimal(duration).divide(new BigDecimal(60), 2, RoundingMode.HALF_EVEN).doubleValue());
+
+ xpOrder.setStatus(OrderStatusEnum.SEE_OFF_GUESTS.getCode());//待客下车
+ xpOrder.setAppUserId(null);
+ this.updateById(xpOrder);
+ //结束行程,修改状态和计算费用
+ this.endTrip(xpOrder.getId(),appUserId.toString());
+ return R.ok();
+ }
+
+
+
@Override
public Boolean endTrip(Long orderId, String uid) {
List<XpOrderDetail> xpOrderDetails = new ArrayList<>();
--
Gitblit v1.7.1