puzhibing
2026-03-05 de5f07fe1acd8d462f9c54d7a04c5c47a87264d1
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;