From de5f07fe1acd8d462f9c54d7a04c5c47a87264d1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 07 三月 2026 21:01:24 +0800
Subject: [PATCH] 修改bug

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 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 829c92a..2b0f4eb 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
@@ -444,9 +444,9 @@
                 throw new ServiceException("当前订单状态不允许取消,只有待接单、待出发、接驾中状态的订单可以取消", I18nKeyConstant.ORDER_CANCEL_FAILED);
             }
         } else {
-            // 关闭订单:只有待付款(8)、待评价(9)状态可以关闭
-            if (currentStatus != 7 && currentStatus != 8 && currentStatus != 9) {
-                throw new ServiceException("当前订单状态不允许关闭,只有待付款、待评价状态的订单可以关闭", I18nKeyConstant.ORDER_CLOSE_FAILED);
+            // 关闭订单:0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中 状态可以关闭
+            if (currentStatus == 7 || currentStatus == 8 || currentStatus == 9 || currentStatus == 10) {
+                throw new ServiceException("当前订单状态不允许关闭", I18nKeyConstant.ORDER_CLOSE_FAILED);
             }
         }
 
@@ -859,6 +859,9 @@
         List<XpHistoryStartPointsVo> data = r.getData();
 
         for (XpHistoryStartPointsVo datum : data) {
+            // 保留2位数小数
+            Double distance = datum.getDistance();
+            datum.setDistance(BigDecimal.valueOf(distance).setScale(2, RoundingMode.HALF_UP).doubleValue());
             xpOrders.stream().filter(e->e.getEndPointId().equals(datum.getId())).findFirst().ifPresent(
                     order->{
                         datum.setNum(order.getNum());
@@ -887,6 +890,9 @@
         List<XpHistoryEndPointsVo> data = r.getData();
 
         for (XpHistoryEndPointsVo datum : data) {
+            // 保留2位数小数
+            Double distance = datum.getDistance();
+            datum.setDistance(BigDecimal.valueOf(distance).setScale(2, RoundingMode.HALF_UP).doubleValue());
             xpOrders.stream().filter(e->e.getEndPointId().equals(datum.getId())).findFirst().ifPresent(
                     order->{
                         datum.setNum(order.getNum());
@@ -1155,6 +1161,7 @@
                 xpOrder.setArrivalTime(LocalDateTime.now());
                 break;
             case 5:
+                xpOrder.setBoardingTime(LocalDateTime.now());
                 // 删除定时任务job
                 QuartzManager.removeJob((OrderCancelJob.name + xpOrder.getId()).toUpperCase(), TimeJobType.ORDER_CANCEL);
                 break;

--
Gitblit v1.7.1