From 340be7dbd2c93b67d8133170deb73aecfdd3f88d Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期三, 15 四月 2026 17:50:15 +0800
Subject: [PATCH] 1.车辆接驾中异常处理,改派重新优化 并记录改派数据 2.行驶中,车辆故障异常处理,添加订单故障状态字段, 并将支付方法的里判断 故障单 支付金额=0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderReassignServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderReassignServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderReassignServiceImpl.java
index 566f73d..5ae06c6 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderReassignServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderReassignServiceImpl.java
@@ -1,10 +1,18 @@
 package com.xiaopeng.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xiaopeng.api.model.order.XpOrderReassign;
+import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.order.mapper.XpOrderReassignMapper;
 import com.xiaopeng.order.service.IXpOrderReassignService;
+import com.xiaopeng.order.service.IXpOrderService;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
@@ -17,4 +25,52 @@
 @Service
 public class XpOrderReassignServiceImpl extends ServiceImpl<XpOrderReassignMapper, XpOrderReassign> implements IXpOrderReassignService {
 
+    @Resource
+    private  IXpOrderService xpOrderService;
+
+    /**
+     * 获取没有完成的数据
+     * @return
+     */
+    @Override
+    public List<XpOrderReassign> findListNotComplete(){
+        return baseMapper.findListNotComplete();
+    }
+
+    public XpOrderReassign getByOrderId(Long orderId){
+        LambdaQueryWrapper<XpOrderReassign> query = new LambdaQueryWrapper<>();
+        query.eq(XpOrderReassign::getOrderId,orderId);
+        return super.getOne(query);
+    }
+
+    @Override
+    public boolean saveInfo(XpOrderReassign entity){
+        boolean b = false;
+        XpOrderReassign byOrderId = getByOrderId(entity.getOrderId());
+
+        entity.setUpdateTime(LocalDateTime.now());
+        if(byOrderId == null){
+            entity.setCreateTime(LocalDateTime.now());
+            b = save(entity);
+        }else{
+            boolean canceled = false;
+            //修改数据 改派大于等于3次后将取消订单
+            entity.setId(byOrderId.getId());
+            entity.setReassignNum(byOrderId.getReassignNum()+1);
+
+            if(!entity.getIsComplete() && entity.getReassignNum()>=3){//在改派订单中未获取到车辆 并改派次数 >=3 则直接完成
+                entity.setIsComplete(true);
+                entity.setRemarks("改派3此后未获取匹配车辆,系统强制取消订单");
+                canceled = true;
+            }
+            b = updateById(entity);
+            //是否取消订单
+            if(canceled){
+                xpOrderService.updateOrderStatus(entity.getOrderId(),OrderStatusEnum.CANCELED.getCode());
+            }
+        }
+        return b;
+    }
+
+
 }

--
Gitblit v1.7.1