From f08b7e95bc941a72d4a7b7bc64c2086ed53f1565 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 21 十月 2024 15:48:27 +0800
Subject: [PATCH] 修改2.0 bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java                       |   92 +++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                     |  269 ++++++-----
 ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html                      |    8 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java            |  160 +++++--
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                         |  107 ++++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                             |    9 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java           |  106 +++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java |   11 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                           |   87 ++-
 DriverIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java                                 |    6 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java               |  138 +++++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java                                    |   14 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java      |    2 
 UserIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java                                   |    6 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java             |   82 +++
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java  |   11 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                          |    1 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java          |  131 ++++-
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                         |   55 +-
 19 files changed, 964 insertions(+), 331 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 3ea81ce..730a9b4 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1216,6 +1216,7 @@
                 BaseWarpper baseWarpper = new BaseWarpper();
                 baseWarpper.setDay(String.valueOf(null != map.get("time") ? map.get("time") : ""));
                 baseWarpper.setAmount(Double.valueOf(String.valueOf(null != map.get("money") ? map.get("money") : 0)));
+                baseWarpper.setType(Integer.valueOf(type));
                 if("2".equals(type)){
                     switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){
                         case 1:
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index c7413bf..736a375 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -254,27 +254,63 @@
         }
     
         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());
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+            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);
+                            }
+                        }
                     }
-                    fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
-                            orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(),  orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
-                }else{
-                    //开始修改行程数据
-                    fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
                 }
-            }catch (Exception e){
-                e.printStackTrace();
+                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);
+                        }
+                    }
+                }
             }
         }).start();
         
@@ -417,10 +453,19 @@
         new Thread(()->{
             Car car = carMapper.selectById(driver.getCarId());
             //修改行程数据
-            try {
-                fleetEngineUtil.updateTrip(finalTripStatus, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
+            boolean updateTrip = fleetEngineUtil.updateTrip(finalTripStatus, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip(finalTripStatus, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }).start();
         
@@ -731,12 +776,21 @@
             orderLogistics.setEndLat(Double.valueOf(orderLogistics.getDestinationLat()));
             orderLogistics.setEndAddress(orderLogistics.getDestination());
             //修改google地图行程终点
-            try {
-                fleetEngineUtil.updateTrip(null, null, null, orderLogistics.getTripId(),
-                        null, null, orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
-            } catch (Exception e) {
-                e.printStackTrace();
-                throw new RuntimeException(e);
+            boolean updateTrip = fleetEngineUtil.updateTrip(null, null, null, orderLogistics.getTripId(),
+                    null, null, orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip(null, null, null, orderLogistics.getTripId(),
+                            null, null, orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
+                    if(updateTrip){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }
         orderLogistics.setDestinationLon("");
@@ -1098,11 +1152,20 @@
         //上报google
         OrderLogistics finalOrderLogistics = orderLogistics;
         new Thread(()->{
-            try {
-                fleetEngineUtil.reportBillableEvent(finalOrderLogistics.getTripId());
-                log.warn("行程结束:{}   {}", System.currentTimeMillis(), finalOrderLogistics.getTripId());
-            }catch (Exception e){
-                e.printStackTrace();
+            log.warn("行程结束:{}   {}", System.currentTimeMillis(), finalOrderLogistics.getTripId());
+            boolean reportBillableEvent = fleetEngineUtil.reportBillableEvent(finalOrderLogistics.getTripId());
+            if(!reportBillableEvent){
+                for (int i = 0; i < 5; i++) {
+                    reportBillableEvent = fleetEngineUtil.reportBillableEvent(finalOrderLogistics.getTripId());
+                    if(reportBillableEvent){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }).start();
         return ResultUtil.success();
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 77d54f6..2d6aea2 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -390,13 +390,53 @@
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)){
                         CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        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);
+                                }
+                            }
+                        }
                     }
-                    fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
+                    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);
+                            }
+                        }
+                    }
                 }
                 //开始修改行程数据
-                fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+                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();
             }
@@ -584,11 +624,21 @@
         String finalTripStatus = tripStatus;
         new Thread(()->{
             //修改行程数据
-            try {
-                fleetEngineUtil.updateTrip(finalTripStatus, null, 1, orderPrivateCar.getTripId(), null, null, null, null);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
+            boolean updateTrip = fleetEngineUtil.updateTrip(finalTripStatus, null, 1, orderPrivateCar.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip(finalTripStatus, null, 1, orderPrivateCar.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
+            
         }).start();
 
         // TODO: 2020/6/5 推送状态
@@ -711,12 +761,21 @@
     
         OrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
         new Thread(()->{
-            try {
-                //上报google
-                fleetEngineUtil.reportBillableEvent(finalOrderPrivateCar.getTripId());
-                log.warn("行程结束:{}   {}", System.currentTimeMillis(), finalOrderPrivateCar.getTripId());
-            }catch (Exception e){
-                e.printStackTrace();
+            //上报google
+            log.warn("行程结束:{}   {}", System.currentTimeMillis(), finalOrderPrivateCar.getTripId());
+            boolean reportBillableEvent = fleetEngineUtil.reportBillableEvent(finalOrderPrivateCar.getTripId());
+            if(!reportBillableEvent){
+                for (int i = 0; i < 5; i++) {
+                    reportBillableEvent = fleetEngineUtil.reportBillableEvent(finalOrderPrivateCar.getTripId());
+                    if(reportBillableEvent){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }).start();
         return ResultUtil.success();
@@ -1067,12 +1126,21 @@
             orderPrivateCar.setEndLat(Double.valueOf(orderPrivateCar.getDestinationLat()));
             orderPrivateCar.setEndAddress(orderPrivateCar.getDestination());
             //修改google地图行程终点
-            try {
-                fleetEngineUtil.updateTrip(null, null, null, orderPrivateCar.getTripId(),
-                        null, null, orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
-            } catch (Exception e) {
-                e.printStackTrace();
-                throw new RuntimeException(e);
+            boolean updateTrip = fleetEngineUtil.updateTrip(null, null, null, orderPrivateCar.getTripId(),
+                    null, null, orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip(null, null, null, orderPrivateCar.getTripId(),
+                            null, null, orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                    if(updateTrip){
+                        break;
+                    }
+                    try {
+                        Thread.sleep(5000L);
+                    } catch (InterruptedException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }
         orderPrivateCar.setDestinationLon("");
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 60e5a9e..bec8066 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1111,7 +1111,20 @@
                     CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)) {
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        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);
+                                }
+                            }
+                        }
                     }
                 }catch (Exception e){
                     e.printStackTrace();
@@ -1221,10 +1234,50 @@
                     CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)){
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                        fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        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 updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!updateVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(updateVehicles){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(5000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
                     }else{
-                        fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!updateVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(updateVehicles){
+                                    break;
+                                }
+                                try {
+                                    Thread.sleep(5000L);
+                                } catch (InterruptedException e) {
+                                    throw new RuntimeException(e);
+                                }
+                            }
+                        }
                     }
                 }catch (Exception e){
                     e.printStackTrace();
@@ -1289,10 +1342,50 @@
                         CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                         String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                         if(ToolUtil.isEmpty(vehicles)){
-                            fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                            fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                            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 updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                            if(!updateVehicles){
+                                for (int i = 0; i < 5; i++) {
+                                    updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(updateVehicles){
+                                        break;
+                                    }
+                                    try {
+                                        Thread.sleep(5000L);
+                                    } catch (InterruptedException e) {
+                                        throw new RuntimeException(e);
+                                    }
+                                }
+                            }
                         }else{
-                            fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                            boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                            if(!updateVehicles){
+                                for (int i = 0; i < 5; i++) {
+                                    updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(updateVehicles){
+                                        break;
+                                    }
+                                    try {
+                                        Thread.sleep(5000L);
+                                    } catch (InterruptedException e) {
+                                        throw new RuntimeException(e);
+                                    }
+                                }
+                            }
                         }
                     }catch (Exception e){
                         e.printStackTrace();
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 b9713a2..98436de 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
@@ -431,13 +431,53 @@
                                 String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                 if(ToolUtil.isEmpty(vehicles)){
                                     CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    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);
+                                            }
+                                        }
+                                    }
                                 }
-                                fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
+                                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);
+                                        }
+                                    }
+                                }
                             }
                             //开始修改行程数据
-                            fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+                            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();
                         }
@@ -614,13 +654,53 @@
                                 String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                 if(ToolUtil.isEmpty(vehicles)){
                                     CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    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);
+                                            }
+                                        }
+                                    }
                                 }
-                                fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
+                                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{
                                 //开始修改行程数据
-                                fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
+                                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();
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
index bb4f2f8..7775ffd 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -402,10 +402,50 @@
                                 CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                 String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                 if(ToolUtil.isEmpty(vehicles)){
-                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    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 updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }else{
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }
                             }catch (Exception e){
                                 e.printStackTrace();
@@ -460,10 +500,50 @@
                                 CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                 String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                 if(ToolUtil.isEmpty(vehicles)){
-                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    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 updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }else{
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }
                             }catch (Exception e){
                                 e.printStackTrace();
@@ -517,10 +597,50 @@
                                 CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                 String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                 if(ToolUtil.isEmpty(vehicles)){
-                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    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 updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }else{
-                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                    if(!updateVehicles){
+                                        for (int i = 0; i < 5; i++) {
+                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                            if(updateVehicles){
+                                                break;
+                                            }
+                                            try {
+                                                Thread.sleep(5000L);
+                                            } catch (InterruptedException e) {
+                                                throw new RuntimeException(e);
+                                            }
+                                        }
+                                    }
                                 }
                             }catch (Exception e){
                                 e.printStackTrace();
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index f602b04..fdc3d8c 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -167,7 +167,7 @@
 	 * @param licensePlate 车牌号
 	 * @param id 车辆id
 	 */
-	public String createVehicles(int maximumCapacity, String licensePlate, String id) throws Exception{
+	public boolean createVehicles(int maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -207,7 +207,8 @@
 					return createVehicles(maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("添加车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -230,7 +231,7 @@
 		 * 	"waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -241,7 +242,7 @@
 	 * @param id
 	 * @return
 	 */
-	public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) throws Exception{
+	public boolean updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleState)){
@@ -305,7 +306,8 @@
 					return updateVehicles(vehicleState, maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("修改车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -328,7 +330,7 @@
 		 *   "waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -337,7 +339,7 @@
 	 * @param id 车辆id
 	 * @return
 	 */
-	public String getVehicles(String id) throws Exception{
+	public String getVehicles(String id){
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + (null != id ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -366,7 +368,8 @@
 					return getVehicles(id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("查询车辆信息异常:  id={},   body={}", id, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -446,7 +449,7 @@
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception{
+	public boolean createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -495,7 +498,8 @@
 					return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("创建行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -612,7 +616,7 @@
 		 * 	"currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -628,7 +632,7 @@
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
+	public boolean updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleId)){
@@ -714,7 +718,8 @@
 					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("修改行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -834,7 +839,7 @@
 		 * 	"numberOfPassengers": 1
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -844,7 +849,7 @@
 	 * @param tripId 订单id
 	 * @return
 	 */
-	public String getTrip(String tripId) throws Exception {
+	public String getTrip(String tripId) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -873,7 +878,8 @@
 					return getTrip(tripId);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("获取行程异常:  tripId={}  body={}", tripId, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -963,7 +969,7 @@
 	 * @param tripId 行程id
 	 * @return
 	 */
-	public boolean reportBillableEvent(String tripId) throws Exception {
+	public boolean reportBillableEvent(String tripId) {
 		String billableEventId = UUIDUtil.getRandomCode();
 		String url = "https://mobilitybilling.googleapis.com/v1:reportBillableEvent?regionCode=GH&key=" + key + "&billableEventId=" + billableEventId;
 		HttpRequest post = HttpUtil.createPost(url);
@@ -973,22 +979,13 @@
 		post.addHeaders(headers);
 		JSONObject body = new JSONObject();
 		body.put("related_ids", "[\"" + tripId + "\"]");
+		body.put("regionCode", "GH");
 		post.body(body.toJSONString());
-		
-		
-		
-		
-		
-		
-		
-		
-		
-		
 		//上线客户测试和上线运营开放
 //		HttpResponse response = post.execute();
 //		if(200 != response.getStatus()){
-//			logger.error(response.body());
-//			throw new Exception(response.body());
+//			logger.error("google地图上报结算   tripId:{}   异常:{}", tripId,response.body());
+//			return false;
 //		}
 		return true;
 	}
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
index 0269775..3441c54 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
@@ -33,6 +33,9 @@
     private String day;
     @ApiModelProperty("其他内容")
     private Object data;
+    
+    @ApiModelProperty("类型(1=活动收入,2=跑单收入,3=取消订单收入,4=改派订单收入,5=优惠券补贴,6=折扣不贴,7=红包补贴)")
+    private Integer type;
 
     public BaseWarpper() {
         this.id = 0;
@@ -125,7 +128,15 @@
     public void setData(Object data) {
         this.data = data;
     }
-
+    
+    public Integer getType() {
+        return type;
+    }
+    
+    public void setType(Integer type) {
+        this.type = type;
+    }
+    
     @Override
     public String toString() {
         return "BaseWarpper{" +
@@ -155,6 +166,7 @@
             baseWarpper.setLat(null != map.get("lat") ? Double.valueOf(map.get("lat").toString()) : 0.0);
             baseWarpper.setDay(null != map.get("day") ? map.get("day").toString() : "");
             baseWarpper.setData(null != map.get("data") ? map.get("data") : new Object());
+            baseWarpper.setType(null != map.get("type") ? Integer.valueOf(map.get("type").toString()) : 0);
         }
         return baseWarpper;
     }
diff --git a/DriverIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java b/DriverIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
index 17ffd3a..7bb9fd6 100644
--- a/DriverIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
+++ b/DriverIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
@@ -20,11 +20,11 @@
 
     private String driverClassName = "com.mysql.cj.jdbc.Driver";
 
-    private Integer initialSize = 2;
+    private Integer initialSize = 100;
 
-    private Integer minIdle = 1;
+    private Integer minIdle = 100;
 
-    private Integer maxActive = 20;
+    private Integer maxActive = 500;
 
     private Integer maxWait = 60000;
 
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java
index 9be5e77..d75b404 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java
@@ -140,7 +140,16 @@
         
         //修改行程信息
         try {
-            fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderLogistics.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderLogistics.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderLogistics.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    Thread.sleep(5000L);
+                }
+            }
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
index 9d4941b..78dfdd8 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
@@ -612,7 +612,16 @@
     
         //修改行程信息
         try {
-            fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderPrivateCar.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderPrivateCar.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderPrivateCar.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    Thread.sleep(5000L);
+                }
+            }
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
index a5afbca..ea265b0 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
@@ -406,7 +406,7 @@
                         tEmail.setLink(link);
                         tEmail.setUserId(user.getId());
                         tEmail.setType(1);
-                        tEmail.setName("Discount activities");
+                        tEmail.setName(1 == language ? "折扣活动" : 2 == language ? "Discount activities" : "Activités à rabais");
                         tEmail.setCreateTime(new Date());
                         int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                         tEmail.setWeek(EmailUtil.getWeek(2,i));
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index b331d74..4d6679b 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -25,7 +25,6 @@
 
 /**
  * Fleet Engine API 工具类
- *
  * @author zhibing.pu
  * @Date 2024/5/17 9:59
  */
@@ -35,27 +34,28 @@
 	
 	static Logger logger = LoggerFactory.getLogger(FleetEngineUtil.class);
 	
-	private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
-	
 	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
-
+	
 	private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
-
+	
 	private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
-
+	
 	private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
-
+	
 	private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
-
+	
 	private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
+	
 	private final String provider = "i-go-odrd-testing";
 	
+	private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
+
 //	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
 //
 //	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
@@ -80,13 +80,16 @@
 	private RedisUtil redisUtil;
 	
 	
+	
+	
+	
+	
 	/**
 	 * 获取jwt token
-	 *
 	 * @param type 0=服务端,1=乘客,2=司机
 	 * @return
 	 */
-	public Map<String, Object> fleetEngineAuth(int type, String id) {
+	public Map<String, Object> fleetEngineAuth(int type, String id){
 		try {
 			//谷歌云服务器使用这部分代码
 //			AuthTokenMinter minter = AuthTokenMinter.builder()
@@ -108,17 +111,17 @@
 			
 			String jwt = "";
 			Long expirationTimestamp = 0L;
-			if (0 == type) {
+			if(0 == type){
 				FleetEngineToken serverToken = minter.getServerToken();
 				jwt = serverToken.jwt();
 				expirationTimestamp = serverToken.expirationTimestamp().getTime();
 			}
-			if (1 == type) {
+			if(1 == type){
 				FleetEngineToken consumerToken = minter.getConsumerToken(TripClaims.create(id));
 				jwt = consumerToken.jwt();
 				expirationTimestamp = consumerToken.expirationTimestamp().getTime();
 			}
-			if (2 == type) {
+			if(2 == type){
 				FleetEngineToken driverToken = minter.getDriverToken(VehicleClaims.create(id));
 				jwt = driverToken.jwt();
 				expirationTimestamp = driverToken.expirationTimestamp().getTime();
@@ -133,18 +136,19 @@
 	}
 	
 	
-	public String getToken() {
+	
+	public String getToken(){
 		String token_json = redisUtil.getValue("google_token");
 		String google_token = "";
-		if (!StringUtils.hasLength(token_json)) {
+		if(!StringUtils.hasLength(token_json)){
 			Map<String, Object> map = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", JSON.toJSONString(map));
 			google_token = map.get("token").toString();
-		} else {
+		}else{
 			JSONObject jsonObject1 = JSON.parseObject(token_json);
 			Long expirationTimestamp = jsonObject1.getLong("expirationTimestamp");
 			google_token = jsonObject1.getString("token");
-			if ((expirationTimestamp - 10000L) <= System.currentTimeMillis()) {
+			if((expirationTimestamp - 10000L) <= System.currentTimeMillis()){
 				Map<String, Object> map = fleetEngineAuth(0, null);
 				redisUtil.setStrValue("google_token", JSON.toJSONString(map));
 				google_token = map.get("token").toString();
@@ -154,14 +158,16 @@
 	}
 	
 	
+	
+	
+	
 	/**
 	 * 添加车辆
-	 *
 	 * @param maximumCapacity 这辆车可以搭载的乘客总数
-	 * @param licensePlate    车牌号
-	 * @param id              车辆id
+	 * @param licensePlate 车牌号
+	 * @param id 车辆id
 	 */
-	public String createVehicles(int maximumCapacity, String licensePlate, String id) throws Exception {
+	public boolean createVehicles(int maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -187,21 +193,22 @@
 		logger.info("创建车辆结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return createVehicles(maximumCapacity, licensePlate, id);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return createVehicles(maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("添加车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -224,55 +231,27 @@
 		 * 	"waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
-	}
-	
-	/**
-	 * 上报google可结算订单
-	 *
-	 * @param tripId 行程id
-	 * @return
-	 */
-	public boolean reportBillableEvent(String tripId) throws Exception {
-		String billableEventId = UUIDUtil.getRandomCode();
-		String url = "https://mobilitybilling.googleapis.com/v1:reportBillableEvent?regionCode=GH&key=" + key + "&billableEventId=" + billableEventId;
-		HttpRequest post = HttpUtil.createPost(url);
-		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + getToken());
-		headers.put("Content-Type", "application/json");
-		post.addHeaders(headers);
-		JSONObject body = new JSONObject();
-		body.put("related_ids", "[\"" + tripId + "\"]");
-		post.body(body.toJSONString());
-		
-		
-		//上线客户测试和上线运营开放
-//		HttpResponse response = post.execute();
-//		if(200 != response.getStatus()){
-//			logger.error(response.body());
-//			throw new Exception(response.body());
-//		}
 		return true;
 	}
 	
+	
 	/**
 	 * 修改车辆信息
-	 *
 	 * @param maximumCapacity
 	 * @param licensePlate
 	 * @param id
 	 * @return
 	 */
-	public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) throws Exception {
+	public boolean updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
-		if (StringUtils.hasLength(vehicleState)) {
+		if(StringUtils.hasLength(vehicleState)){
 			sb.add("vehicleState");
 		}
-		if (null != maximumCapacity) {
+		if(null != maximumCapacity){
 			sb.add("maximumCapacity");
 		}
-		if (StringUtils.hasLength(licensePlate)) {
+		if(StringUtils.hasLength(licensePlate)){
 			sb.add("licensePlate");
 		}
 		String collect = sb.stream().collect(Collectors.joining(","));
@@ -290,13 +269,13 @@
 		 * OFFLINE	车辆不接受新行程。注意:在完成分配给车辆的行程时,车辆仍可继续在此状态下运行。
 		 * ONLINE	车辆正在接受新行程。
 		 */
-		if (StringUtils.hasLength(vehicleState)) {
+		if(StringUtils.hasLength(vehicleState)){
 			body.put("vehicleState", vehicleState);
 		}
-		if (null != maximumCapacity) {
+		if(null != maximumCapacity){
 			body.put("maximumCapacity", maximumCapacity);
 		}
-		if (StringUtils.hasLength(licensePlate)) {
+		if(StringUtils.hasLength(licensePlate)){
 			JSONObject licensePlate1 = new JSONObject();
 			licensePlate1.put("countryCode", "GH");
 			licensePlate1.put("lastCharacter", getLastNumber(licensePlate));
@@ -313,21 +292,22 @@
 		logger.info("修改车辆信息结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return updateVehicles(vehicleState, maximumCapacity, licensePlate, id);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return updateVehicles(vehicleState, maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("修改车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -350,17 +330,16 @@
 		 *   "waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
 	/**
 	 * 获取车辆信息
-	 *
 	 * @param id 车辆id
 	 * @return
 	 */
-	public String getVehicles(String id) throws Exception {
+	public String getVehicles(String id){
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + (null != id ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -372,24 +351,25 @@
 		logger.info("查询车辆结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 404) {
+			if(code == 404){
 				return "";
 			}
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return getVehicles(id);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return getVehicles(id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("查询车辆信息异常:  id={},   body={}", id, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -441,16 +421,16 @@
 	}
 	
 	
+	
 	/**
 	 * 获取最后一个数字
-	 *
 	 * @param str
 	 * @return
 	 */
-	private String getLastNumber(String str) {
+	private String getLastNumber(String str){
 		for (int i = str.length(); i > 0; i--) {
 			char c = str.charAt(i - 1);
-			if (String.valueOf(c).matches("\\d")) {
+			if(String.valueOf(c).matches("\\d")){
 				return str.substring(i - 1, i);
 			}
 		}
@@ -460,17 +440,16 @@
 	
 	/**
 	 * 创建新的行程
-	 *
-	 * @param vehicleId          车辆id
+	 * @param vehicleId 车辆id
 	 * @param numberOfPassengers 人数
-	 * @param tripId             订单id
-	 * @param start_lat          起点纬度
-	 * @param start_lng          起点经度
-	 * @param end_lat            终点纬度
-	 * @param end_lng            终点经度
+	 * @param tripId 订单id
+	 * @param start_lat 起点纬度
+	 * @param start_lng 起点经度
+	 * @param end_lat 终点纬度
+	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
+	public boolean createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -479,7 +458,7 @@
 		post.addHeaders(headers);
 		
 		JSONObject body = new JSONObject();
-		if (StringUtils.hasLength(vehicleId)) {
+		if(StringUtils.hasLength(vehicleId)){
 			body.put("vehicleId", vehicleId);
 		}
 		body.put("tripStatus", "NEW");
@@ -505,21 +484,22 @@
 		logger.info("创建行程结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("创建行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -636,40 +616,39 @@
 		 * 	"currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
 	/**
 	 * 修改行程
-	 *
-	 * @param tripStatus         行程状态
-	 * @param vehicleId          车辆id
+	 * @param tripStatus 行程状态
+	 * @param vehicleId 车辆id
 	 * @param numberOfPassengers 人数
-	 * @param tripId             订单id
-	 * @param start_lat          起点纬度
-	 * @param start_lng          起点经度
-	 * @param end_lat            终点纬度
-	 * @param end_lng            终点经度
+	 * @param tripId 订单id
+	 * @param start_lat 起点纬度
+	 * @param start_lng 起点经度
+	 * @param end_lat 终点纬度
+	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
+	public boolean updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId + "?updateMask=";
 		List<String> sb = new ArrayList<>();
-		if (StringUtils.hasLength(vehicleId)) {
+		if(StringUtils.hasLength(vehicleId)){
 			sb.add("vehicleId");
 		}
-		if (StringUtils.hasLength(tripStatus)) {
+		if(StringUtils.hasLength(tripStatus)){
 			sb.add("tripStatus");
 		}
-		if (null != numberOfPassengers) {
+		if(null != numberOfPassengers){
 			sb.add("numberOfPassengers");
 		}
-		if (StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)) {
+		if(StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)){
 			sb.add("pickupPoint");
 		}
 		
-		if (StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)) {
+		if(StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)){
 			sb.add("dropoffPoint");
 		}
 		String collect = sb.stream().collect(Collectors.joining(","));
@@ -682,7 +661,7 @@
 		put.addHeaders(headers);
 		
 		JSONObject body = new JSONObject();
-		if (StringUtils.hasLength(vehicleId)) {
+		if(StringUtils.hasLength(vehicleId)){
 			body.put("vehicleId", vehicleId);
 		}
 		/**
@@ -696,13 +675,13 @@
 		 * COMPLETE	乘客已下车,行程已完成。
 		 * CANCELED	在司机、乘客或拼车服务提供商取车之前,行程被取消。
 		 */
-		if (StringUtils.hasLength(tripStatus)) {
+		if(StringUtils.hasLength(tripStatus)){
 			body.put("tripStatus", tripStatus);
 		}
-		if (null != numberOfPassengers) {
+		if(null != numberOfPassengers){
 			body.put("numberOfPassengers", numberOfPassengers);
 		}
-		if (StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)) {
+		if(StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)){
 			JSONObject pickupPoint = new JSONObject();
 			JSONObject point = new JSONObject();
 			point.put("latitude", start_lat);
@@ -711,7 +690,7 @@
 			body.put("pickupPoint", pickupPoint);
 		}
 		
-		if (StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)) {
+		if(StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)){
 			JSONObject dropoffPoint = new JSONObject();
 			JSONObject end_point = new JSONObject();
 			end_point.put("latitude", end_lat);
@@ -725,21 +704,22 @@
 		logger.info("修改行程结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("修改行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -859,17 +839,17 @@
 		 * 	"numberOfPassengers": 1
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
+	
 	
 	
 	/**
 	 * 获取行程信息
-	 *
 	 * @param tripId 订单id
 	 * @return
 	 */
-	public String getTrip(String tripId) throws Exception {
+	public String getTrip(String tripId) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -881,24 +861,25 @@
 		logger.info("查询行程结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
-		if (null != error) {
+		if(null != error){
 			Integer code = error.getInteger("code");
-			if (code == 404) {
+			if(code == 404){
 				return "";
 			}
-			if (code == 401) {
+			if(code == 401){
 				String status = error.getString("status");
-				if (StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")) {
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
 					redisUtil.remove("google_token");
 					return getTrip(tripId);
 				}
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
-				if (reason.equals("ACCESS_TOKEN_EXPIRED")) {
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
 					return getTrip(tripId);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("获取行程异常:  tripId={}  body={}", tripId, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -981,4 +962,32 @@
 		
 		return response.body();
 	}
+	
+	
+	/**
+	 * 上报google可结算订单
+	 * @param tripId 行程id
+	 * @return
+	 */
+	public boolean reportBillableEvent(String tripId) {
+		String billableEventId = UUIDUtil.getRandomCode();
+		String url = "https://mobilitybilling.googleapis.com/v1:reportBillableEvent?regionCode=GH&key=" + key + "&billableEventId=" + billableEventId;
+		HttpRequest post = HttpUtil.createPost(url);
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Authorization", "Bearer " + getToken());
+		headers.put("Content-Type", "application/json");
+		post.addHeaders(headers);
+		JSONObject body = new JSONObject();
+		body.put("related_ids", "[\"" + tripId + "\"]");
+		body.put("regionCode", "GH");
+		post.body(body.toJSONString());
+		//上线客户测试和上线运营开放
+//		HttpResponse response = post.execute();
+//		if(200 != response.getStatus()){
+//			logger.error("google地图上报结算   tripId:{}   异常:{}", tripId,response.body());
+//			return false;
+//		}
+		return true;
+	}
+	
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html
index 9fe7eaf..707769e 100644
--- a/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html
+++ b/ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/settlementAllocation/settlementAllocation.html
@@ -12,18 +12,18 @@
                             <#button name="修改" icon="fa-edit" clickFun="SettlementAllocation.setSettlementAllocation()"/>
 	                        <div class="form-group">
 		                        <input type="radio" name="type" value="1" ${null != item && item.type == '1' ? 'checked' : ''}>
-		                        每天超过 <input type="number" min="1" max="31"class="date"  value="${null != item && item.type == '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算
+		                        每天&nbsp;&nbsp;&nbsp;&nbsp;超过 <input type="number" class="date"  value="${null != item && item.type == '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算
 	                        </div>
                             <div class="form-group">
                                 <input type="radio" name="type" value="3" ${null != item && item.type == '3' ? 'checked' : ''}> 每月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                                每月<input type="number" min="1" max="31" class="date" value="${null != item && item.type == '3' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 号可结算
+	                            每月&nbsp;&nbsp;&nbsp;&nbsp;每月<input type="number" min="1" max="31" class="date" value="${null != item && item.type == '3' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 号可结算
                             </div>
                             <div class="form-group">
                                 <input type="radio" name="type" value="2" ${null != item && item.type == '2' ? 'checked' : ''}> 每周&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                                每周 <input type="number" min="1" max="7" class="date" value="${null != item && item.type == '2' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> (几)可结算
+	                            每周&nbsp;&nbsp;&nbsp;&nbsp;每周<input type="number" min="1" max="7" class="date" value="${null != item && item.type == '2' ? item.day : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> (几)可结算
                             </div>
                             <div class="form-group">
-                                &nbsp;&nbsp;&nbsp;&nbsp;周/月日上限超过 <input type="number" min="1" max="31" id="maxPrice" value="${null != item && item.type != '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算
+                                &nbsp;&nbsp;&nbsp;&nbsp;周/月&nbsp;&nbsp;&nbsp;&nbsp;日上限超过 <input type="number" id="maxPrice" value="${null != item && item.type != '1' ? item.maxPrice : ''}" style="background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> 必须结算
                             </div>
                         </div>
                         <div class="row">
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 1f35f33..586b627 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.google.api.client.http.UrlEncodedParser;
+import com.stylefeng.guns.core.util.MD5Util;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
@@ -1265,6 +1266,14 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
+            String format = String.format("payType=%s&orderId=%s&orderType=%s", payType, orderId, orderType);
+            String key = MD5Util.encrypt(format);
+            String value = redisUtil.getValue(key);
+            if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) >= 1000){
+                return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération");
+            }
+            redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5);
+    
             switch (orderType){
                 case 1:
                     return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, redDeduction, type, language);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index d707105..22b6871 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -49,6 +49,7 @@
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
@@ -787,14 +788,42 @@
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)){
                         CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                        fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        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;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
+                        boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!updateVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(updateVehicles){
+                                    break;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
                     }
         
                 }
                 //创建行程数据
-                fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(),
+                boolean createTrip = fleetEngineUtil.createTrip(vehicleId, 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(vehicleId, 1, orderLogistics.getTripId(),
+                                orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
+                        if(createTrip){
+                            break;
+                        }
+                        Thread.sleep(5000L);
+                    }
+                }
     
             }catch (Exception e){
                 e.printStackTrace();
@@ -1011,10 +1040,14 @@
      * @throws Exception
      */
     @Override
+    @Transactional
     public ResultUtil payLogisticsOrder(Integer payType, Integer bankCardId, Integer orderId,Integer couponId, Integer redDeduction, Integer type, Integer language) throws Exception {
         OrderLogistics orderLogistics = this.selectById(orderId);
-        if(orderLogistics.getState() != 7){
+        if(orderLogistics.getState() == 8 || orderLogistics.getState() == 9){
             return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.", "");
+        }
+        if(orderLogistics.getState() != 7){
+            return ResultUtil.error(language == 1 ? "订单不在待支付状态,不允许支付" : language == 2 ? "The order is no longer with Pending Payment, making payments is not allowed." : "La commande n’est plus en attente de paiement, il n’est pas permis d’effectuer des paiements.", "");
         }
         Integer uid = orderLogistics.getUserId();
         BigDecimal orderMoney = new BigDecimal(orderLogistics.getOrderMoney());
@@ -1044,7 +1077,6 @@
         //计算优惠券
         UserCouponRecord userCouponRecord = null;
         if(null != couponId){
-            //TODO 待翻译
             if(null != redDeduction && 1 == redDeduction){
                 return ResultUtil.error(language == 1 ? "优惠券和红包不能同时使用" : language == 2 ? "Coupons and lucky-promo cannot be used at the same time." : "Les coupons et les bonus ne peuvent pas être utilisés en même temps", "");
             }
@@ -1276,14 +1308,6 @@
     
     
             language = userInfo.getLanguage();
-            String payTypeChinese = "";
-            String payTypeEnglish = "";
-            String payTypeFrench = "";
-            if(orderLogistics.getPayType() == 3){
-                payTypeChinese = "余额支付";
-                payTypeEnglish = "I-GO Wallet";
-                payTypeFrench = "Portefeuille I-GO";
-            }
     
             if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                 String path = templatePath + "user/receiptLogistics.html";
@@ -1370,7 +1394,7 @@
                     Element xj_chinese = document.getElementById("xj_chinese");
                     xj_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_chinese = document.getElementById("pay_type_chinese");
-                    pay_type_chinese.text(payTypeChinese);
+                    pay_type_chinese.text("余额支付");
                     Element pay_money_chinese = document.getElementById("pay_money_chinese");
                     pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_chinese = document.getElementById("dispute_chinese");
@@ -1478,7 +1502,7 @@
                     Element xj_english = document.getElementById("xj_english");
                     xj_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_english = document.getElementById("pay_type_english");
-                    pay_type_english.text(payTypeEnglish);
+                    pay_type_english.text("I-GO Wallet");
                     Element pay_money_english = document.getElementById("pay_money_english");
                     pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_english = document.getElementById("dispute_english");
@@ -1586,7 +1610,7 @@
                     Element xj_french = document.getElementById("xj_french");
                     xj_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_french = document.getElementById("pay_type_french");
-                    pay_type_french.text(payTypeFrench);
+                    pay_type_french.text("Portefeuille I-GO");
                     Element pay_money_french = document.getElementById("pay_money_french");
                     pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_french = document.getElementById("dispute_french");
@@ -1811,10 +1835,37 @@
                                             CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                             String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                             if(ToolUtil.isEmpty(vehicles)){
-                                                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                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;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }else{
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }
                                         }catch (Exception e){
                                             e.printStackTrace();
@@ -1888,15 +1939,6 @@
                     "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
     
             language = userInfo.getLanguage();
-            String payTypeChinese = "";
-            String payTypeEnglish = "";
-            String payTypeFrench = "";
-            if(orderLogistics.getPayType() == 3){
-                payTypeChinese = "现金";
-                payTypeEnglish = "Cash";
-                payTypeFrench = "En espèces";
-            }
-    
             if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                 String path = templatePath + "user/receiptLogistics.html";
                 Document document = Jsoup.parse(new File(path), "UTF-8");
@@ -1981,7 +2023,7 @@
                     Element xj_chinese = document.getElementById("xj_chinese");
                     xj_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_chinese = document.getElementById("pay_type_chinese");
-                    pay_type_chinese.text(payTypeChinese);
+                    pay_type_chinese.text("现金");
                     Element pay_money_chinese = document.getElementById("pay_money_chinese");
                     pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_chinese = document.getElementById("dispute_chinese");
@@ -2089,7 +2131,7 @@
                     Element xj_english = document.getElementById("xj_english");
                     xj_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_english = document.getElementById("pay_type_english");
-                    pay_type_english.text(payTypeEnglish);
+                    pay_type_english.text("Cash");
                     Element pay_money_english = document.getElementById("pay_money_english");
                     pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_english = document.getElementById("dispute_english");
@@ -2197,7 +2239,7 @@
                     Element xj_french = document.getElementById("xj_french");
                     xj_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_french = document.getElementById("pay_type_french");
-                    pay_type_french.text(payTypeFrench);
+                    pay_type_french.text("En espèces");
                     Element pay_money_french = document.getElementById("pay_money_french");
                     pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_french = document.getElementById("dispute_french");
@@ -2501,6 +2543,29 @@
             query.setState(2);
             query.setCode(order_id);
             paymentRecordService.updateById(query);
+            if(orderLogistics.getIsplatPay()==1){
+                //添加已收入明细
+                Company company = companyService.selectById(orderLogistics.getCompanyId());
+                Double speMoney = company.getSpeMoney();
+                BigDecimal d = null;//企业收入
+                BigDecimal c = null;//司机收入
+                if(company.getIsSpeFixedOrProportional() == 2){//固定
+                    d = new BigDecimal(speMoney);
+                    c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机
+                }
+                if(company.getIsSpeFixedOrProportional() == 1){//比例
+                    Double price = orderLogistics.getStartMoney() + orderLogistics.getMileageMoney() + orderLogistics.getWaitMoney() + orderLogistics.getDurationMoney() + orderLogistics.getLongDistanceMoney();
+                    d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN)));
+                    c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                }
+                incomeService.saveData(1, orderLogistics.getCompanyId(), 2, orderLogistics.getId(), 4, d.doubleValue());
+                incomeService.saveData(2, orderLogistics.getDriverId(), 2, orderLogistics.getId(), 4, c.doubleValue());
+                Driver driver = driverService.selectById(orderLogistics.getDriverId());
+                driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driverService.updateById(driver);
+            }
 
             // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
             new Thread(new Runnable() {
@@ -2517,20 +2582,6 @@
                     "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
     
             language = userInfo.getLanguage();
-            String payTypeChinese = "";
-            String payTypeEnglish = "";
-            String payTypeFrench = "";
-            if(orderLogistics.getPayType() == 1){
-                payTypeChinese = "手机支付";
-                payTypeEnglish = "Mobile money";
-                payTypeFrench = "Argent mobile";
-            }
-            if(orderLogistics.getPayType() == 2){
-                payTypeChinese = "银行卡支付";
-                payTypeEnglish = "Bank card";
-                payTypeFrench = "Carte bancaire";
-            }
-    
             if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                 String path = templatePath + "user/receiptLogistics.html";
                 Document document = Jsoup.parse(new File(path), "UTF-8");
@@ -2616,7 +2667,7 @@
                     Element xj_chinese = document.getElementById("xj_chinese");
                     xj_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_chinese = document.getElementById("pay_type_chinese");
-                    pay_type_chinese.text(payTypeChinese);
+                    pay_type_chinese.text(orderLogistics.getPayType() == 1 ? "手机支付" : (orderLogistics.getPayType() == 2?"银行卡支付":(orderLogistics.getPayType() == 3?"余额支付":"现金支付")));
                     Element pay_money_chinese = document.getElementById("pay_money_chinese");
                     pay_money_chinese.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_chinese = document.getElementById("dispute_chinese");
@@ -2724,7 +2775,7 @@
                     Element xj_english = document.getElementById("xj_english");
                     xj_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_english = document.getElementById("pay_type_english");
-                    pay_type_english.text(payTypeEnglish);
+                    pay_type_english.text(orderLogistics.getPayType() == 1 ? "Mobile money" :(orderLogistics.getPayType() == 2?"Bank card":(orderLogistics.getPayType() == 3?"I-GO Wallet":"Cash")));
                     Element pay_money_english = document.getElementById("pay_money_english");
                     pay_money_english.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_english = document.getElementById("dispute_english");
@@ -2832,7 +2883,7 @@
                     Element xj_french = document.getElementById("xj_french");
                     xj_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element pay_type_french = document.getElementById("pay_type_french");
-                    pay_type_french.text(payTypeFrench);
+                    pay_type_french.text(orderLogistics.getPayType() == 1 ? "Argent mobile" : (orderLogistics.getPayType() == 2?"Carte bancaire":(orderLogistics.getPayType() == 3?"Portefeuille I-GO":"En espèces")));
                     Element pay_money_french = document.getElementById("pay_money_french");
                     pay_money_french.text("GHS " + new BigDecimal(orderLogistics.getPayMoney()).setScale(2, RoundingMode.HALF_EVEN));
                     Element dispute_french = document.getElementById("dispute_french");
@@ -3202,9 +3253,18 @@
         
         if((orderLogistics.getState() == 10 || orderLogistics.getState() == 12) && null != orderLogistics.getDriverId()){
             //修改行程信息
-            fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    Thread.sleep(5000L);
+                }
+            }
         }
-        log.warn("取消订单:{}   {}", System.currentTimeMillis(), orderLogistics.getTrackId());
+        log.warn("取消订单:{}   {}", System.currentTimeMillis(), orderLogistics.getTripId());
         //添加消息
         systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消包裹订单,谢谢使用!" : language == 2 ? "You've cancelled the delivery order successfully, thank you for using I-GO "
                 : "Vous avez annulé la commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 759c22b..5cccec9 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -46,6 +46,7 @@
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
@@ -388,13 +389,41 @@
                     String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                     if(ToolUtil.isEmpty(vehicles)){
                         CarModel carModel = carModelMapper.selectById(car.getCarModelId());
-                        fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                        fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        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;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
+                        boolean updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                        if(!updateVehicles){
+                            for (int i = 0; i < 5; i++) {
+                                updateVehicles = fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                if(updateVehicles){
+                                    break;
+                                }
+                                Thread.sleep(5000L);
+                            }
+                        }
                     }
     
                     //创建行程数据
-                    fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
+                    boolean createTrip = fleetEngineUtil.createTrip(vehicleId, 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(vehicleId, 1, orderPrivateCar.getTripId(),
+                                    orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
+                            if(createTrip){
+                                break;
+                            }
+                            Thread.sleep(5000L);
+                        }
+                    }
                 }
                 
             }catch (Exception e){
@@ -859,9 +888,18 @@
         
         //修改行程信息
         if((orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12) && null != orderPrivateCar.getDriverId()){
-            fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+            if(!updateTrip){
+                for (int i = 0; i < 5; i++) {
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
+                    if(updateTrip){
+                        break;
+                    }
+                    Thread.sleep(5000L);
+                }
+            }
         }
-        log.warn("取消订单:{}   {}", System.currentTimeMillis(), orderPrivateCar.getTrackId());
+        log.warn("取消订单:{}   {}", System.currentTimeMillis(), orderPrivateCar.getTripId());
         //添加消息
         systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消出行订单,谢谢使用!" : language == 2 ? "You've cancelled the ride order successfully, thank you for using I-GO " : "Vous avez annulé la commande de course avec succès, merci d’utiliser I-GO", orderPrivateCar.getUserId(), 1);
         Map<String, Object> map = new HashMap<>();
@@ -1207,6 +1245,7 @@
 
 
     @Override
+    @Transactional
     public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer redDeduction, Integer type, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
@@ -1987,10 +2026,37 @@
                                             CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                             String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                             if(ToolUtil.isEmpty(vehicles)){
-                                                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                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;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }else{
-                                                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                if(!updateVehicles){
+                                                    for (int i = 0; i < 5; i++) {
+                                                        updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
+                                                        if(updateVehicles){
+                                                            break;
+                                                        }
+                                                        Thread.sleep(5000L);
+                                                    }
+                                                }
                                             }
                                         }catch (Exception e){
                                             e.printStackTrace();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index ff1386c..4d6679b 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -12,6 +12,7 @@
 import com.google.fleetengine.auth.token.VehicleClaims;
 import com.google.fleetengine.auth.token.factory.signer.*;
 import com.stylefeng.guns.modular.system.util.RedisUtil;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,25 +35,27 @@
 	static Logger logger = LoggerFactory.getLogger(FleetEngineUtil.class);
 	
 	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
-
+	
 	private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
-
+	
 	private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
-
+	
 	private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
-
+	
 	private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
-
+	
 	private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
-
+	
 	private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
-
+	
 	private final String provider = "i-go-odrd-testing";
 	
+	private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
+
 //	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
 //
 //	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
@@ -164,7 +167,7 @@
 	 * @param licensePlate 车牌号
 	 * @param id 车辆id
 	 */
-	public String createVehicles(int maximumCapacity, String licensePlate, String id) throws Exception{
+	public boolean createVehicles(int maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -204,7 +207,8 @@
 					return createVehicles(maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("添加车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -227,7 +231,7 @@
 		 * 	"waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -238,7 +242,7 @@
 	 * @param id
 	 * @return
 	 */
-	public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) throws Exception{
+	public boolean updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleState)){
@@ -302,7 +306,8 @@
 					return updateVehicles(vehicleState, maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("修改车辆信息异常:  licensePlate={},   body={}", licensePlate, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -325,7 +330,7 @@
 		 *   "waypointsVersion": "2024-05-23T03:05:23.293329Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -334,7 +339,7 @@
 	 * @param id 车辆id
 	 * @return
 	 */
-	public String getVehicles(String id) throws Exception{
+	public String getVehicles(String id){
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + (null != id ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -363,7 +368,8 @@
 					return getVehicles(id);
 				}
 			}
-			throw new Exception(response.body());
+			log.error("查询车辆信息异常:  id={},   body={}", id, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -443,7 +449,7 @@
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception{
+	public boolean createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -492,7 +498,8 @@
 					return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("创建行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -609,7 +616,7 @@
 		 * 	"currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z"
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -625,7 +632,7 @@
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
+	public boolean updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleId)){
@@ -711,7 +718,8 @@
 					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("修改行程异常:  tripId={}  body={}", tripId, response.body());
+			return false;
 		}
 		/**
 		 * 返回结果
@@ -831,7 +839,7 @@
 		 * 	"numberOfPassengers": 1
 		 * }
 		 */
-		return response.body();
+		return true;
 	}
 	
 	
@@ -841,7 +849,7 @@
 	 * @param tripId 订单id
 	 * @return
 	 */
-	public String getTrip(String tripId) throws Exception {
+	public String getTrip(String tripId) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
@@ -870,7 +878,8 @@
 					return getTrip(tripId);
 				}
 			}
-			throw new Exception(response.body());
+			logger.error("获取行程异常:  tripId={}  body={}", tripId, response.body());
+			return null;
 		}
 		/**
 		 * 返回结果
@@ -953,4 +962,32 @@
 		
 		return response.body();
 	}
+	
+	
+	/**
+	 * 上报google可结算订单
+	 * @param tripId 行程id
+	 * @return
+	 */
+	public boolean reportBillableEvent(String tripId) {
+		String billableEventId = UUIDUtil.getRandomCode();
+		String url = "https://mobilitybilling.googleapis.com/v1:reportBillableEvent?regionCode=GH&key=" + key + "&billableEventId=" + billableEventId;
+		HttpRequest post = HttpUtil.createPost(url);
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Authorization", "Bearer " + getToken());
+		headers.put("Content-Type", "application/json");
+		post.addHeaders(headers);
+		JSONObject body = new JSONObject();
+		body.put("related_ids", "[\"" + tripId + "\"]");
+		body.put("regionCode", "GH");
+		post.body(body.toJSONString());
+		//上线客户测试和上线运营开放
+//		HttpResponse response = post.execute();
+//		if(200 != response.getStatus()){
+//			logger.error("google地图上报结算   tripId:{}   异常:{}", tripId,response.body());
+//			return false;
+//		}
+		return true;
+	}
+	
 }
diff --git a/UserIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java b/UserIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
index 17ffd3a..7bb9fd6 100644
--- a/UserIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
+++ b/UserIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
@@ -20,11 +20,11 @@
 
     private String driverClassName = "com.mysql.cj.jdbc.Driver";
 
-    private Integer initialSize = 2;
+    private Integer initialSize = 100;
 
-    private Integer minIdle = 1;
+    private Integer minIdle = 100;
 
-    private Integer maxActive = 20;
+    private Integer maxActive = 500;
 
     private Integer maxWait = 60000;
 

--
Gitblit v1.7.1