From 3af9c82375df6bd77ae78a5d900c409a895ecd18 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 14 十一月 2024 17:10:16 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java |  264 +++++++++++++++++++++++++++-------------------------
 1 files changed, 135 insertions(+), 129 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 98436de..0f911a0 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.util.ToolUtil;
@@ -292,6 +293,73 @@
     
                     driver.setState(2);
                     driverService.updateById(driver);
+    
+                    //检查google车辆信息或者添加新的车辆信息
+                    Car car = carService.selectById(orderPrivateCar.getCarId());
+                    if(ToolUtil.isEmpty(car.getVehicleId())){
+                        car.setVehicleId(UUIDUtil.getRandomCode());
+                        carService.updateById(car);
+                    }
+                    String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
+                    if(ToolUtil.isEmpty(vehicles)){
+                        CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+                        boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!createVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(createVehicles){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }
+    
+                    //修改google订单信息或者创建新的行程
+                    String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId());
+                    if(ToolUtil.isEmpty(trip)){
+                        JSONObject createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
+                                orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(),  orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                        JSONObject error = createTrip.getJSONObject("error");
+                        if(null != error){
+                            for (int i = 0; i < 5; i++) {
+                                createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
+                                        orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(),  orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                                error = createTrip.getJSONObject("error");
+                                String tripStatus = createTrip.getString("tripStatus");
+                                if(null == error && "NEW".equals(tripStatus)){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }else{
+                        //开始修改行程数据
+                        boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+                        if(!updateTrip){
+                            for (int i = 0; i < 5; i++) {
+                                updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+                                if(updateTrip){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }
+                    
+                    
                     
                     //删除定时任务
                     QuartzUtil.deleteQuartzTask("1_" + orderPrivateCar.getId() + "_1","ORDER_TIME_OUT");
@@ -419,70 +487,6 @@
                         }
                     }
         
-                    new Thread(()->{
-                        try {
-                            Car car = carService.selectById(orderPrivateCar.getCarId());
-                            if(!StringUtils.hasLength(car.getVehicleId())){
-                                car.setVehicleId(UUIDUtil.getRandomCode());
-                                carService.updateById(car);
-                            }
-                            String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId());
-                            if(ToolUtil.isEmpty(trip)){
-                                String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
-                                if(ToolUtil.isEmpty(vehicles)){
-                                    CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                                    boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                    if(!createVehicles){
-                                        for (int i = 0; i < 5; i++) {
-                                            createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                            if(createVehicles){
-                                                break;
-                                            }
-                                            try {
-                                                Thread.sleep(5000L);
-                                            } catch (InterruptedException e) {
-                                                throw new RuntimeException(e);
-                                            }
-                                        }
-                                    }
-                                }
-                                boolean createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
-                                        orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(),  orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
-                                if(!createTrip){
-                                    for (int i = 0; i < 5; i++) {
-                                        createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
-                                                orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(),  orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
-                                        if(createTrip){
-                                            break;
-                                        }
-                                        try {
-                                            Thread.sleep(5000L);
-                                        } catch (InterruptedException e) {
-                                            throw new RuntimeException(e);
-                                        }
-                                    }
-                                }
-                            }
-                            //开始修改行程数据
-                            boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
-                            if(!updateTrip){
-                                for (int i = 0; i < 5; i++) {
-                                    updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
-                                    if(updateTrip){
-                                        break;
-                                    }
-                                    try {
-                                        Thread.sleep(5000L);
-                                    } catch (InterruptedException e) {
-                                        throw new RuntimeException(e);
-                                    }
-                                }
-                            }
-                        }catch (Exception e){
-                            e.printStackTrace();
-                        }
-                    }).start();
-        
                     //推送相关代码------------------start----------------
                     String finalAudioUrl = audioUrl;
                     new Thread(new Runnable() {
@@ -589,6 +593,72 @@
     
                     driver.setState(2);
                     driverService.updateById(driver);
+    
+                    //检查google车辆信息或者添加新的车辆信息
+                    Car car = carService.selectById(orderLogistics.getCarId());
+                    if(ToolUtil.isEmpty(car.getVehicleId())){
+                        car.setVehicleId(UUIDUtil.getRandomCode());
+                        carService.updateById(car);
+                    }
+                    String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
+                    if(ToolUtil.isEmpty(vehicles)){
+                        CarModel carModel = carModelMapper.selectById(car.getCarModelId());
+                        boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!createVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(createVehicles){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }
+    
+                    //修改google订单信息或者创建新的行程
+                    String trip = fleetEngineUtil.getTrip(orderLogistics.getTripId());
+                    if(ToolUtil.isEmpty(trip)){
+                        JSONObject createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
+                                orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
+                        JSONObject error = createTrip.getJSONObject("error");
+                        if(null != error){
+                            for (int i = 0; i < 5; i++) {
+                                createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
+                                        orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
+                                error = createTrip.getJSONObject("error");
+                                String tripStatus = createTrip.getString("tripStatus");
+                                if(null == error && "NEW".equals(tripStatus)){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }else{
+                        //开始修改行程数据
+                        boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
+                        if(!updateTrip){
+                            for (int i = 0; i < 5; i++) {
+                                updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
+                                if(updateTrip){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(3000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
+                    }
+                    
         
                     //删除定时任务
                     QuartzUtil.deleteQuartzTask("1_" + orderLogistics.getId() + "_4","ORDER_TIME_OUT");
@@ -641,71 +711,7 @@
                                 new OrderTimeOutJob().buildQuartzJob("3_" + orderLogistics.getId() + "_4", "ORDER_TIME_OUT", jobDataMap)
                                 , orderLogistics.getEstimateArriveTime(), reminderRules.getCar() * 60000, -1);
                     }
-        
-                    new Thread(()->{
-                        try {
-                            Car car = carService.selectById(orderLogistics.getCarId());
-                            if(!StringUtils.hasLength(car.getVehicleId())){
-                                car.setVehicleId(UUIDUtil.getRandomCode());
-                                carService.updateById(car);
-                            }
-                            String trip = fleetEngineUtil.getTrip(orderLogistics.getTripId());
-                            if(ToolUtil.isEmpty(trip)){
-                                String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
-                                if(ToolUtil.isEmpty(vehicles)){
-                                    CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                                    boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                    if(!createVehicles){
-                                        for (int i = 0; i < 5; i++) {
-                                            createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                            if(createVehicles){
-                                                break;
-                                            }
-                                            try {
-                                                Thread.sleep(5000L);
-                                            } catch (InterruptedException e) {
-                                                throw new RuntimeException(e);
-                                            }
-                                        }
-                                    }
-                                }
-                                boolean createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
-                                        orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(),  orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
-                                if(!createTrip){
-                                    for (int i = 0; i < 5; i++) {
-                                        createTrip = fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
-                                                orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(),  orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
-                                        if(createTrip){
-                                            break;
-                                        }
-                                        try {
-                                            Thread.sleep(5000L);
-                                        } catch (InterruptedException e) {
-                                            throw new RuntimeException(e);
-                                        }
-                                    }
-                                }
-                            }else{
-                                //开始修改行程数据
-                                boolean updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
-                                if(!updateTrip){
-                                    for (int i = 0; i < 5; i++) {
-                                        updateTrip = fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
-                                        if(updateTrip){
-                                            break;
-                                        }
-                                        try {
-                                            Thread.sleep(5000L);
-                                        } catch (InterruptedException e) {
-                                            throw new RuntimeException(e);
-                                        }
-                                    }
-                                }
-                            }
-                        }catch (Exception e){
-                            e.printStackTrace();
-                        }
-                    }).start();
+                    
         
                     //推送相关代码------------------start----------------
                     String finalAudioUrl = audioUrl;

--
Gitblit v1.7.1