From 06c5eda038f967dc0c0261e16eff0ad1a18e41e7 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 05 六月 2024 15:52:58 +0800
Subject: [PATCH] 6.5

---
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java                               |   26 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java                    |  171 ++
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java                 |  124 +
 UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json                                                      |   17 
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java                               |   95 +
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java                                       |   22 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java                                       |   66 
 ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java |    1 
 ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html                                     |    4 
 .idea/misc.xml                                                                                                                         |    2 
 DriverNTTravel/.idea/workspace.xml                                                                                                     |  156 +
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml                         |   49 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java                                 |  128 +
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java                                       |    4 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java                  |   61 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java                                        |   54 
 UserNTTravel/guns-admin/src/main/resources/redis.properties                                                                            |    1 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java                  |    2 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                           |    2 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java              |   20 
 UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json                                                     |   60 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java                                     |    6 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java                             |   28 
 UserNTTravel/guns-admin/pom.xml                                                                                                        |    7 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                            |    5 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java                |    2 
 UserNTTravel/.idea/workspace.xml                                                                                                       |  258 ++
 UserNTTravel/guns-admin/target/classes/application.yml                                                                                 |   22 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java                            |    1 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java                                    |  563 -------
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                          |   15 
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java                                | 1035 +++++++++++++
 DispatchOKTravel/guns-admin/src/main/resources/application.yml                                                                         |    4 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java                                           |   12 
 UserNTTravel/guns-admin/target/classes/redis.properties                                                                                |    1 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java                           |   22 
 DriverNTTravel/guns-admin/src/main/resources/application.yml                                                                           |   21 
 UserNTTravel/.idea/inspectionProfiles/Project_Default.xml                                                                              |    7 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java                          |    8 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java                                |    1 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java                  |  335 ++++
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml                                 |    4 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java                                   |   19 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java                          |   10 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java                          |    2 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml                          |    4 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java                                 |    3 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                            |    4 
 UserNTTravel/guns-admin/src/main/resources/application.yml                                                                             |   22 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                           |   54 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java                              |    2 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java                                      |    8 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java                      |   46 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                          |   13 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java                  |    4 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java                             |   21 
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java                         |   21 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java                             |    2 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java                                         |    6 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                             |    2 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java                                       |  161 ++
 UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml                                  |    3 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java            |    3 
 DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                           |   15 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java                        |    1 
 ManagementNTTravel/guns-admin/src/main/resources/application.yml                                                                       |   12 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java            |    2 
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml                                   |    3 
 UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml                         |    4 
 DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml                        |  539 +++++++
 UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java                    |    6 
 71 files changed, 3,493 insertions(+), 921 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 639900d..8ed5f34 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager">
+  <component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index da143a0..7ee159e 100644
--- a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -60,8 +60,8 @@
 //    @Autowired
 //    private ICBCPayUtil icbcPayUtil;
 
-
-
+    @Autowired
+    private IOrderTransferService orderTransferService;
     /**
      * 获取订单列表
      * @param type
@@ -100,6 +100,11 @@
             if(type == 2){//跨城
                 list = orderCrossCityService.queryOrderList(search, orderSource, state, lineId, pageNum, size, uid);
             }
+
+            if(type ==7){//接送机
+                list = orderTransferService.queryOrderList(search, orderSource, state, pageNum, size, uid);
+            }
+
             return ResultUtil.success(OrderListWarpper.getOrderListWarppers(list));
         }catch (Exception e){
             e.printStackTrace();
@@ -131,6 +136,9 @@
             if(orderType == 2){//跨城
                 map = orderCrossCityService.queryOrderInfo(orderId);
             }
+            if(orderType == 7){//专车
+                map = orderTransferService.queryOrderInfo(orderId);
+            }
             return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
         }catch (Exception e){
             e.printStackTrace();
@@ -161,6 +169,9 @@
             if(orderType == 2){//跨城
                 return orderCrossCityService.cancelOrder(orderId);
             }
+            if(orderType == 7){//接送机
+                return orderTransferService.cancelOrder(orderId);
+            }
             return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java
new file mode 100644
index 0000000..6477fd2
--- /dev/null
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java
@@ -0,0 +1,95 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+import com.stylefeng.guns.modular.system.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.system.model.OrderTransferCar;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderTransferMapper extends BaseMapper<OrderTransferCar> {
+
+
+    /**
+     * 根据状态数据订单数据
+     * @param uid
+     * @param orderType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderTransferCar> queryByState(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
+                                       @Param("type") Integer type, @Param("state") Integer...state) throws Exception;
+
+
+
+    List<OrderPrivateCar> query(@Param("start") Date start, @Param("end") Date end) throws Exception;
+
+
+
+
+    List<OrderTransferCar> queryByState_(@Param("uid") Integer uid, @Param("state") Integer... state);
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
+                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
+                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
+
+
+    List<OrderPrivateCar> queryByDriver(@Param("driverId") Integer driverId, @Param("state") Integer...state);
+
+    List<Map<String, Object>> queryOrderList(@Param("search") String search, @Param("orderSource") List<String> orderSource,
+                                             @Param("state") List<String> state, @Param("companyId") Integer companyId,
+                                             @Param("pageNum") Integer pageNum, @Param("size") Integer size);}
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml
new file mode 100644
index 0000000..9425cca
--- /dev/null
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml
@@ -0,0 +1,539 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OrderTransferMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderTransferCar">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="crossCityOrderId" property="crossCityOrderId"/>
+        <result column="place" property="place"/>
+        <result column="userId" property="userId"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="carId" property="carId"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="placementLon" property="placementLon"/>
+        <result column="placementLat" property="placementLat"/>
+        <result column="placementAddress" property="placementAddress"/>
+        <result column="startLon" property="startLon"/>
+        <result column="startLat" property="startLat"/>
+        <result column="startAddress" property="startAddress"/>
+        <result column="endLon" property="endLon"/>
+        <result column="endLat" property="endLat"/>
+        <result column="endAddress" property="endAddress"/>
+        <result column="boardingLon" property="boardingLon"/>
+        <result column="boardingLat" property="boardingLat"/>
+        <result column="boardingAddress" property="boardingAddress"/>
+        <result column="boardingTime" property="boardingTime"/>
+        <result column="getoffLon" property="getoffLon"/>
+        <result column="getoffLat" property="getoffLat"/>
+        <result column="getoffAddress" property="getoffAddress"/>
+        <result column="getoffTime" property="getoffTime"/>
+        <result column="mileage" property="mileage"/>
+        <result column="payManner" property="payManner"/>
+        <result column="payType" property="payType"/>
+        <result column="orderMoney" property="orderMoney"/>
+        <result column="startMileage" property="startMileage"/>
+        <result column="startMoney" property="startMoney"/>
+        <result column="mileageKilometers" property="mileageKilometers"/>
+        <result column="mileageMoney" property="mileageMoney"/>
+        <result column="duration" property="duration"/>
+        <result column="durationMoney" property="durationMoney"/>
+        <result column="wait" property="wait"/>
+        <result column="waitMoney" property="waitMoney"/>
+        <result column="longDistance" property="longDistance"/>
+        <result column="longDistanceMoney" property="longDistanceMoney"/>
+        <result column="parkMoney" property="parkMoney"/>
+        <result column="roadTollMoney" property="roadTollMoney"/>
+        <result column="redPacketMoney" property="redPacketMoney"/>
+        <result column="couponMoney" property="couponMoney"/>
+        <result column="redPacketId" property="redPacketId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="discount" property="discount"/>
+        <result column="discountMoney" property="discountMoney"/>
+        <result column="activityId" property="activityId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="substitute" property="substitute"/>
+        <result column="passengers" property="passengers"/>
+        <result column="passengersPhone" property="passengersPhone"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="travelTime" property="travelTime"/>
+        <result column="snatchOrderTime" property="snatchOrderTime"/>
+        <result column="setOutTime" property="setOutTime"/>
+        <result column="arriveTime" property="arriveTime"/>
+        <result column="startServiceTime" property="startServiceTime"/>
+        <result column="endServiceTime" property="endServiceTime"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderSource" property="orderSource"/>
+        <result column="invoiceId" property="invoiceId"/>
+        <result column="isReassign" property="isReassign"/>
+        <result column="reassignNotice" property="reassignNotice"/>
+        <result column="trackId" property="trackId"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="oldState" property="oldState"/>
+        <result column="telX" property="telX"/>
+        <result column="bindId" property="bindId"/>
+    </resultMap>
+
+
+
+    <select id="queryByState" resultType="OrderTransferCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_transfer where isDelete = 1 and userId = #{uid}
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+    </select>
+
+
+
+    <select id="query" resultType="OrderTransferCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1
+        <if test="null != start and null != end">
+            and insertTime between #{start} and #{end}
+        </if>
+    </select>
+
+
+
+    <select id="queryByState_" resultType="OrderTransferCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_transfer where isDelete = 1 and userId = #{uid}
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        driverId as driverId,
+        (1) as orderType,
+        state as state,
+        oldState as oldState
+        from t_order_transfer where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+    <select id="queryInvoiceOrder" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        payMoney as payMoney,
+        ('接送机订单') as orderName,
+        if(invoiceId is null, 1, 2) as invoice,
+        unix_timestamp(insertTime) as insertTime,
+        (7) as orderType
+        from t_order_transfer where state in (8, 9)
+        <if test="type == 1">
+            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
+        </if>
+        <if test="type == 2">
+            and invoiceId in (select id from t_invoice where state = 2)
+        </if>
+        <if test="null != startTime and null != endTime">
+            and travelTime between #{startTime} and #{endTime}
+        </if>
+        <if test="null != startMoney and null != endMoney">
+            and payMoney between #{startMoney} and #{endMoney}
+        </if>
+        <if test="null !=uid">
+            and userId = #{uid}
+        </if>
+    </select>
+
+
+    <select id="queryOrderInfo" resultType="map">
+        select
+            a.id as id,
+            DATE_FORMAT(a.insertTime, '%Y/%m/%d/%H:%i') as orderTime,
+            a.orderNum as orderNumber,
+            DATE_FORMAT(a.travelTime, '%Y/%m/%d/%H:%i') as travelTime,
+            CONCAT(b.nickName, '-', b.phone) as `user`,
+            a.startAddress as startAddress,
+            a.endAddress as endAddress,
+            c.`name` as serverCarModel,
+            a.orderMoney as orderMoney,
+            CONCAT(d.`name`, '-',d.phone) as driver,
+            e.carLicensePlate as car,
+            CONCAT(g.`name`, '-',g.phone) as originalDriver,
+            a.state as state
+        from t_order_transfer a
+                 left join t_user b on (a.userId = b.id)
+                 left join t_server_carmodel c on (a.serverCarModelId = c.id)
+                 left join t_driver d on (a.driverId = d.id)
+                 left join t_car e on (a.carId = e.id)
+                 left join (select * from t_reassign where orderType = 1 and orderId = #{orderId} order by insertTime desc limit 0, 1) as f on (a.id = f.orderId and f.orderType = 1)
+                 left join t_driver g on (f.originalDriverId = g.id)
+        where a.id = #{orderId}
+    </select>
+
+
+
+    <select id="queryMyTravelRecord" resultType="map">
+        select
+        (payMoney * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('接送机订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_transfer where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12)
+    </select>
+
+
+    <select id="queryRedEnvelope" resultType="map">
+        select
+        redPacketMoney as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('接送机订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_transfer where userId = #{uid} and state in (8, 9) and redPacketId is not null
+    </select>
+
+
+    <select id="queryByDriver" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1 and driverId = #{driverId} and state in
+        <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+
+    <select id="queryOrderList" resultType="map">
+        select
+        a.id as id,
+        DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as orderTime,
+        CONCAT(b.nickName, '-', b.phone) as `user`,
+        a.startAddress as startAddress,
+        a.endAddress as endAddress,
+        a.state as state
+        from t_order_transfer a
+        left join t_user b on (a.userId = b.id)
+        left join t_driver c on (a.driverId = c.id)
+        left join t_car d on (a.carId = d.id)
+        where a.isDelete = 1 and a.companyId = #{companyId}
+        <if test="null != search and '' != search">
+            and (a.passengersPhone = #{search} or c.name like CONCAT('%', #{search}, '%') or c.phone like CONCAT('%', #{search}, '%') or d.carLicensePlate like CONCAT('%', #{search}, '%'))
+        </if>
+        <if test="null != orderSource">
+            and a.orderSource in
+            <foreach collection="orderSource" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != state">
+            and a.state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        order by a.insertTime desc
+        <if test="null != pageNum and null != size">
+            limit #{pageNum}, #{size}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml
index 76f05f2..cb0094d 100644
--- a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml
@@ -24,7 +24,7 @@
         select * from
         (
         select si.id as id, si.`name` as `name`, si.provinceCode as cityCode, si.province as cityName from t_site si
-        where si.province like '%市' and si.state = 1 and si.id in
+        where si.city like '%市' and si.state = 1 and si.id in
         (
         select ls.siteId
         from t_line_site ls
@@ -37,7 +37,7 @@
 
         UNION ALL
         select si.id as id, si.`name` as `name`, si.cityCode as cityCode, si.city as cityName from t_site si
-        where si.province not like '%市' and si.state = 1 and si.id in
+        where si.city not like '%市' and si.state = 1 and si.id in
         (
         select ls.siteId from t_line_site ls
         left join t_line_company lc on (ls.lineId = lc.lineId)
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java
new file mode 100644
index 0000000..33d29b8
--- /dev/null
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java
@@ -0,0 +1,1035 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 专车车订单
+ */
+@TableName("t_order_transfer")
+public class OrderTransferCar {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单类型(1=普通订单,2=摆渡订单)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 跨城订单id(摆渡车专用)
+     */
+    @TableField("crossCityOrderId")
+    private Integer crossCityOrderId;
+    /**
+     * 摆渡方位(1=跨城起点,2=跨城终点)
+     */
+    @TableField("place")
+    private Integer place;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 服务车型id
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 订单号
+     */
+    @TableField("orderNum")
+    private String orderNum;
+    /**
+     * 下单地点经度
+     */
+    @TableField("placementLon")
+    private Double placementLon;
+    /**
+     * 下单地点纬度
+     */
+    @TableField("placementLat")
+    private Double placementLat;
+    /**
+     * 下单地点
+     */
+    @TableField("placementAddress")
+    private String placementAddress;
+    /**
+     * 起点经度
+     */
+    @TableField("startLon")
+    private Double startLon;
+    /**
+     * 起点纬度
+     */
+    @TableField("startLat")
+    private Double startLat;
+    /**
+     * 起点
+     */
+    @TableField("startAddress")
+    private String startAddress;
+    /**
+     * 目的地经度
+     */
+    @TableField("endLon")
+    private Double endLon;
+    /**
+     * 目的地纬度
+     */
+    @TableField("endLat")
+    private Double endLat;
+    /**
+     * 目的地
+     */
+    @TableField("endAddress")
+    private String endAddress;
+    /**
+     * 上车点经度
+     */
+    @TableField("boardingLon")
+    private Double boardingLon;
+    /**
+     * 上车点纬度
+     */
+    @TableField("boardingLat")
+    private Double boardingLat;
+    /**
+     * 上车地点
+     */
+    @TableField("boardingAddress")
+    private String boardingAddress;
+    /**
+     * 上车时间
+     */
+    @TableField("boardingTime")
+    private Date boardingTime;
+    /**
+     * 下车点经度
+     */
+    @TableField("getoffLon")
+    private Double getoffLon;
+    /**
+     * 下车点纬度
+     */
+    @TableField("getoffLat")
+    private Double getoffLat;
+    /**
+     * 下车点
+     */
+    @TableField("getoffAddress")
+    private String getoffAddress;
+    /**
+     * 下车时间
+     */
+    @TableField("getoffTime")
+    private Date getoffTime;
+    /**
+     * 行驶里程数(米)
+     */
+    @TableField("mileage")
+    private Double mileage;
+    /**
+     * 支付方式(1=OK平台支付,2=其他方式支付)
+     */
+    @TableField("payManner")
+    private Integer payManner;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 起步里程
+     */
+    @TableField("startMileage")
+    private Double startMileage;
+    /**
+     * 起步价
+     */
+    @TableField("startMoney")
+    private Double startMoney;
+    /**
+     * 里程公里
+     */
+    @TableField("mileageKilometers")
+    private Double mileageKilometers;
+    /**
+     * 里程费
+     */
+    @TableField("mileageMoney")
+    private Double mileageMoney;
+    /**
+     * 时长分钟
+     */
+    @TableField("duration")
+    private Double duration;
+    /**
+     * 时长费
+     */
+    @TableField("durationMoney")
+    private Double durationMoney;
+    /**
+     * 等待分钟
+     */
+    @TableField("wait")
+    private Double wait;
+    /**
+     * 等待费
+     */
+    @TableField("waitMoney")
+    private Double waitMoney;
+    /**
+     * 远途公里
+     */
+    @TableField("longDistance")
+    private Double longDistance;
+    /**
+     * 远途费
+     */
+    @TableField("longDistanceMoney")
+    private Double longDistanceMoney;
+    /**
+     * 停车费
+     */
+    @TableField("parkMoney")
+    private Double parkMoney;
+    /**
+     * 过路费
+     */
+    @TableField("roadTollMoney")
+    private Double roadTollMoney;
+    /**
+     * 红包抵扣金额
+     */
+    @TableField("redPacketMoney")
+    private Double redPacketMoney;
+    /**
+     * 优惠券抵扣金额
+     */
+    @TableField("couponMoney")
+    private Double couponMoney;
+    /**
+     * 红包id
+     */
+    @TableField("redPacketId")
+    private Integer redPacketId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private Double discount;
+    /**
+     * 折扣优惠金额
+     */
+    @TableField("discountMoney")
+    private Double discountMoney;
+    /**
+     * 折扣活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 是否是代下单(0:否,1:是)
+     */
+    @TableField("substitute")
+    private Integer substitute;
+    /**
+     * 乘车人姓名
+     */
+    @TableField("passengers")
+    private String passengers;
+    /**
+     * 乘车人电话
+     */
+    @TableField("passengersPhone")
+    private String passengersPhone;
+    /**
+     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 下单时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 出行时间
+     */
+    @TableField("travelTime")
+    private Date travelTime;
+    /**
+     * 抢单时间
+     */
+    @TableField("snatchOrderTime")
+    private Date snatchOrderTime;
+    /**
+     * 司机点出发时间
+     */
+    @TableField("setOutTime")
+    private Date setOutTime;
+    /**
+     * 司机到达预约地点时间
+     */
+    @TableField("arriveTime")
+    private Date arriveTime;
+    /**
+     * 开始服务时间
+     */
+    @TableField("startServiceTime")
+    private Date startServiceTime;
+    /**
+     * 结束服务时间
+     */
+    @TableField("endServiceTime")
+    private Date endServiceTime;
+    /**
+     * 订单类型(1=普通,2=预约)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
+     */
+    @TableField("orderSource")
+    private Integer orderSource;
+    /**
+     * 发票id
+     */
+    @TableField("invoiceId")
+    private Integer invoiceId;
+    /**
+     * 是否是改派单(1=否,=是)
+     * @return
+     */
+    @TableField("isReassign")
+    private Integer isReassign;
+    /**
+     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+     */
+    @TableField("reassignNotice")
+    private Integer reassignNotice;
+    /**
+     * 高德猎鹰轨迹id
+     * @return
+     */
+    @TableField("trackId")
+    private String trackId;
+    /**
+     * 是否删除(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 该派前的订单状态
+     * @return
+     */
+    @TableField("oldState")
+    private Integer oldState;
+    /**
+     * 移动小号
+     * @return
+     */
+    @TableField("telX")
+    private String telX;
+    /**
+     * 绑定小号关系id
+     * @return
+     */
+    @TableField("bindId")
+    private String bindId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getCrossCityOrderId() {
+        return crossCityOrderId;
+    }
+
+    public void setCrossCityOrderId(Integer crossCityOrderId) {
+        this.crossCityOrderId = crossCityOrderId;
+    }
+
+    public Integer getPlace() {
+        return place;
+    }
+
+    public void setPlace(Integer place) {
+        this.place = place;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public String getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Double getBoardingLon() {
+        return boardingLon;
+    }
+
+    public void setBoardingLon(Double boardingLon) {
+        this.boardingLon = boardingLon;
+    }
+
+    public Double getBoardingLat() {
+        return boardingLat;
+    }
+
+    public void setBoardingLat(Double boardingLat) {
+        this.boardingLat = boardingLat;
+    }
+
+    public String getBoardingAddress() {
+        return boardingAddress;
+    }
+
+    public void setBoardingAddress(String boardingAddress) {
+        this.boardingAddress = boardingAddress;
+    }
+
+    public Date getBoardingTime() {
+        return boardingTime;
+    }
+
+    public void setBoardingTime(Date boardingTime) {
+        this.boardingTime = boardingTime;
+    }
+
+    public Double getGetoffLon() {
+        return getoffLon;
+    }
+
+    public void setGetoffLon(Double getoffLon) {
+        this.getoffLon = getoffLon;
+    }
+
+    public Double getGetoffLat() {
+        return getoffLat;
+    }
+
+    public void setGetoffLat(Double getoffLat) {
+        this.getoffLat = getoffLat;
+    }
+
+    public String getGetoffAddress() {
+        return getoffAddress;
+    }
+
+    public void setGetoffAddress(String getoffAddress) {
+        this.getoffAddress = getoffAddress;
+    }
+
+    public Date getGetoffTime() {
+        return getoffTime;
+    }
+
+    public void setGetoffTime(Date getoffTime) {
+        this.getoffTime = getoffTime;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Integer getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getStartMileage() {
+        return startMileage;
+    }
+
+    public void setStartMileage(Double startMileage) {
+        this.startMileage = startMileage;
+    }
+
+    public Double getStartMoney() {
+        return startMoney;
+    }
+
+    public void setStartMoney(Double startMoney) {
+        this.startMoney = startMoney;
+    }
+
+    public Double getMileageKilometers() {
+        return mileageKilometers;
+    }
+
+    public void setMileageKilometers(Double mileageKilometers) {
+        this.mileageKilometers = mileageKilometers;
+    }
+
+    public Double getMileageMoney() {
+        return mileageMoney;
+    }
+
+    public void setMileageMoney(Double mileageMoney) {
+        this.mileageMoney = mileageMoney;
+    }
+
+    public Double getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Double duration) {
+        this.duration = duration;
+    }
+
+    public Double getDurationMoney() {
+        return durationMoney;
+    }
+
+    public void setDurationMoney(Double durationMoney) {
+        this.durationMoney = durationMoney;
+    }
+
+    public Double getWait() {
+        return wait;
+    }
+
+    public void setWait(Double wait) {
+        this.wait = wait;
+    }
+
+    public Double getWaitMoney() {
+        return waitMoney;
+    }
+
+    public void setWaitMoney(Double waitMoney) {
+        this.waitMoney = waitMoney;
+    }
+
+    public Double getLongDistance() {
+        return longDistance;
+    }
+
+    public void setLongDistance(Double longDistance) {
+        this.longDistance = longDistance;
+    }
+
+    public Double getLongDistanceMoney() {
+        return longDistanceMoney;
+    }
+
+    public void setLongDistanceMoney(Double longDistanceMoney) {
+        this.longDistanceMoney = longDistanceMoney;
+    }
+
+    public Double getParkMoney() {
+        return parkMoney;
+    }
+
+    public void setParkMoney(Double parkMoney) {
+        this.parkMoney = parkMoney;
+    }
+
+    public Double getRoadTollMoney() {
+        return roadTollMoney;
+    }
+
+    public void setRoadTollMoney(Double roadTollMoney) {
+        this.roadTollMoney = roadTollMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Integer getRedPacketId() {
+        return redPacketId;
+    }
+
+    public void setRedPacketId(Integer redPacketId) {
+        this.redPacketId = redPacketId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getSubstitute() {
+        return substitute;
+    }
+
+    public void setSubstitute(Integer substitute) {
+        this.substitute = substitute;
+    }
+
+    public String getPassengers() {
+        return passengers;
+    }
+
+    public void setPassengers(String passengers) {
+        this.passengers = passengers;
+    }
+
+    public String getPassengersPhone() {
+        return passengersPhone;
+    }
+
+    public void setPassengersPhone(String passengersPhone) {
+        this.passengersPhone = passengersPhone;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Date getSnatchOrderTime() {
+        return snatchOrderTime;
+    }
+
+    public void setSnatchOrderTime(Date snatchOrderTime) {
+        this.snatchOrderTime = snatchOrderTime;
+    }
+
+    public Date getSetOutTime() {
+        return setOutTime;
+    }
+
+    public void setSetOutTime(Date setOutTime) {
+        this.setOutTime = setOutTime;
+    }
+
+    public Date getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(Date arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Date getStartServiceTime() {
+        return startServiceTime;
+    }
+
+    public void setStartServiceTime(Date startServiceTime) {
+        this.startServiceTime = startServiceTime;
+    }
+
+    public Date getEndServiceTime() {
+        return endServiceTime;
+    }
+
+    public void setEndServiceTime(Date endServiceTime) {
+        this.endServiceTime = endServiceTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public Integer getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(Integer invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public Integer getIsReassign() {
+        return isReassign;
+    }
+
+    public void setIsReassign(Integer isReassign) {
+        this.isReassign = isReassign;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+
+    public String getTrackId() {
+        return trackId;
+    }
+
+    public void setTrackId(String trackId) {
+        this.trackId = trackId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Integer getOldState() {
+        return oldState;
+    }
+
+    public void setOldState(Integer oldState) {
+        this.oldState = oldState;
+    }
+
+    public String getTelX() {
+        return telX;
+    }
+
+    public void setTelX(String telX) {
+        this.telX = telX;
+    }
+
+    public String getBindId() {
+        return bindId;
+    }
+
+    public void setBindId(String bindId) {
+        this.bindId = bindId;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderPrivateCar{" +
+                "id=" + id +
+                ", type=" + type +
+                ", crossCityOrderId=" + crossCityOrderId +
+                ", place=" + place +
+                ", userId=" + userId +
+                ", serverCarModelId=" + serverCarModelId +
+                ", driverId=" + driverId +
+                ", carId=" + carId +
+                ", orderNum='" + orderNum + '\'' +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", placementAddress='" + placementAddress + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", boardingLon=" + boardingLon +
+                ", boardingLat=" + boardingLat +
+                ", boardingAddress='" + boardingAddress + '\'' +
+                ", boardingTime=" + boardingTime +
+                ", getoffLon=" + getoffLon +
+                ", getoffLat=" + getoffLat +
+                ", getoffAddress='" + getoffAddress + '\'' +
+                ", getoffTime=" + getoffTime +
+                ", mileage=" + mileage +
+                ", payManner=" + payManner +
+                ", payType=" + payType +
+                ", orderMoney=" + orderMoney +
+                ", startMileage=" + startMileage +
+                ", startMoney=" + startMoney +
+                ", mileageKilometers=" + mileageKilometers +
+                ", mileageMoney=" + mileageMoney +
+                ", duration=" + duration +
+                ", durationMoney=" + durationMoney +
+                ", wait=" + wait +
+                ", waitMoney=" + waitMoney +
+                ", longDistance=" + longDistance +
+                ", longDistanceMoney=" + longDistanceMoney +
+                ", parkMoney=" + parkMoney +
+                ", roadTollMoney=" + roadTollMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", substitute=" + substitute +
+                ", passengers='" + passengers + '\'' +
+                ", passengersPhone='" + passengersPhone + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", travelTime=" + travelTime +
+                ", snatchOrderTime=" + snatchOrderTime +
+                ", setOutTime=" + setOutTime +
+                ", arriveTime=" + arriveTime +
+                ", startServiceTime=" + startServiceTime +
+                ", endServiceTime=" + endServiceTime +
+                ", orderType=" + orderType +
+                ", orderSource=" + orderSource +
+                ", invoiceId=" + invoiceId +
+                ", isReassign=" + isReassign +
+                ", reassignNotice=" + reassignNotice +
+                ", trackId='" + trackId + '\'' +
+                ", isDelete=" + isDelete +
+                ", oldState=" + oldState +
+                ", telX='" + telX + '\'' +
+                ", bindId='" + bindId + '\'' +
+                '}';
+    }
+}
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java
new file mode 100644
index 0000000..055356c
--- /dev/null
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java
@@ -0,0 +1,21 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OrderTransferCar;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderTransferService extends IService<OrderTransferCar> {
+
+
+    List<Map<String, Object>> queryOrderList(String search, String orderSource, String state, Integer pageNum, Integer size, Integer uid) throws Exception;
+
+    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+
+    ResultUtil cancelOrder(Integer orderId) throws Exception;
+}
diff --git a/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java
new file mode 100644
index 0000000..678cba7
--- /dev/null
+++ b/DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java
@@ -0,0 +1,124 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.common.constant.state.Order;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.util.StringUtils;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.util.*;
+
+
+@Service
+public class OrderTransferServiceImpl extends ServiceImpl<OrderTransferMapper, OrderTransferCar> implements IOrderTransferService {
+    @Autowired
+    private IDispatchService dispatchService;
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private PushUtil pushUtil;
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+
+    @Override
+    public List<Map<String, Object>> queryOrderList(String search, String orderSource, String state, Integer pageNum, Integer size, Integer uid) throws Exception {
+        Dispatch dispatch = dispatchService.selectById(uid);
+        Integer companyId = null != dispatch.getFranchiseeId() ? dispatch.getFranchiseeId() : dispatch.getCompanyId();
+        pageNum = (pageNum - 1) * size;
+        List<String> orderSources = null;
+        if(ToolUtil.isNotEmpty(orderSource)){
+            orderSources = Arrays.asList(orderSource.split(","));
+        }
+        List<String> states = null;
+        if(ToolUtil.isNotEmpty(state)){
+            states = Arrays.asList(state.split(","));
+        }
+        return this.baseMapper.queryOrderList(search, orderSources, states, companyId, pageNum, size);
+    }
+
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+        return this.baseMapper.queryOrderInfo(orderId);
+    }
+
+    @Override
+    public ResultUtil cancelOrder(Integer orderId) throws Exception {
+        OrderTransferCar orderPrivateCar = this.selectById(orderId);
+        if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){
+            return ResultUtil.error("不允许重复取消");
+        }
+        if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
+            return ResultUtil.error("订单已完成,不允许取消");
+        }
+        orderPrivateCar.setState(10);
+        this.updateById(orderPrivateCar);
+
+        //添加取消记录
+        OrderCancel orderCancel = new OrderCancel();
+        orderCancel.setOrderId(orderId);
+        orderCancel.setOrderType(1);
+        orderCancel.setReason("调度端取消");
+        orderCancel.setRemark("调度端取消");
+        orderCancel.setState(2);
+        orderCancel.setInsertTime(new Date());
+        orderCancel.setUserType(2);
+        orderCancelService.insert(orderCancel);
+
+        new Thread(new Runnable() {//发送消息提醒
+            @Override
+            public void run() {
+                pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderId, 7, 10, 0);
+                if(null != orderPrivateCar.getDriverId()){
+                    //修改司机为空闲
+                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+                    driver.setState(2);
+                    driverService.updateById(driver);
+                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderId, 7, 10, 0);
+                }
+            }
+        }).start();
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "调度已成功取消出行订单,谢谢使用!", orderPrivateCar.getUserId(), 1);
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                if(pushMinistryOfTransport){//上传数据
+                    pushMinistryOfTransportUtil.orderCancel(orderId);
+                }
+            }
+        }).start();
+
+        return ResultUtil.success();
+    }
+
+}
diff --git a/DispatchOKTravel/guns-admin/src/main/resources/application.yml b/DispatchOKTravel/guns-admin/src/main/resources/application.yml
index 79dd39b..f56f5a5 100644
--- a/DispatchOKTravel/guns-admin/src/main/resources/application.yml
+++ b/DispatchOKTravel/guns-admin/src/main/resources/application.yml
@@ -50,9 +50,9 @@
 
 spring:
   datasource:
-    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-    password: 123456
+    password: WeiLaiChuXing@2024!
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
 
diff --git a/DriverNTTravel/.idea/workspace.xml b/DriverNTTravel/.idea/workspace.xml
index 27de135..75c7410 100644
--- a/DriverNTTravel/.idea/workspace.xml
+++ b/DriverNTTravel/.idea/workspace.xml
@@ -5,43 +5,75 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="a7570672-bfad-4d39-9825-905c049a9d7e" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTapeMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTape.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTapeService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTapeServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysCouponRecordMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TActivityGeneralizationMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AliSms.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysCouponRecord.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TActivityGeneralization.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysCouponRecordService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITActivityGeneralizationService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SysCouponRecordServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TActivityGeneralizationServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/misc.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/src/main/resources/redis.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-admin/target/classes/redis.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/../UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -196,15 +228,6 @@
 }</component>
   <component name="MarkdownSettingsMigration">
     <option name="stateVersion" value="1" />
-  </component>
-  <component name="MavenImportPreferences">
-    <option name="generalSettings">
-      <MavenGeneralSettings>
-        <option name="localRepository" value="D:\apache-maven\repository" />
-        <option name="mavenHome" value="$PROJECT_DIR$/../../../apache-maven/apache-maven-3.6.1" />
-        <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
-      </MavenGeneralSettings>
-    </option>
   </component>
   <component name="MavenProjectNavigator">
     <treeState>
@@ -433,6 +456,8 @@
   </component>
   <component name="PropertiesComponent">{
   &quot;keyToString&quot;: {
+    &quot;Maven.guns-admin [clean].executor&quot;: &quot;Run&quot;,
+    &quot;Maven.guns-admin [package].executor&quot;: &quot;Run&quot;,
     &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
     &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
     &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
@@ -443,12 +468,13 @@
     &quot;Spring Boot.GunsApplication.executor&quot;: &quot;Debug&quot;,
     &quot;git-widget-placeholder&quot;: &quot;master&quot;,
     &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;D:/study/NTTravel/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping&quot;,
+    &quot;last_opened_file_path&quot;: &quot;D:/study/NTTravel/DispatchOKTravel&quot;,
     &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
     &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
     &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
     &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
     &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;MavenSettings&quot;,
     &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
     &quot;应用程序.CompareFace.executor&quot;: &quot;Debug&quot;
   }
@@ -591,7 +617,14 @@
       <workItem from="1716514334090" duration="9851000" />
       <workItem from="1716774529103" duration="6847000" />
       <workItem from="1716793830661" duration="723000" />
-      <workItem from="1716794972983" duration="3789000" />
+      <workItem from="1716794972983" duration="26913000" />
+      <workItem from="1717151399113" duration="3655000" />
+      <workItem from="1717403690337" duration="561000" />
+      <workItem from="1717404707718" duration="713000" />
+      <workItem from="1717406236377" duration="1168000" />
+      <workItem from="1717408102063" duration="10633000" />
+      <workItem from="1717493148714" duration="1613000" />
+      <workItem from="1717552295849" duration="3859000" />
     </task>
     <servers />
   </component>
@@ -678,13 +711,8 @@
       <breakpoints>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java</url>
-          <line>711</line>
+          <line>722</line>
           <option name="timeStamp" value="15" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java</url>
-          <line>191</line>
-          <option name="timeStamp" value="19" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java</url>
@@ -698,11 +726,51 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java</url>
-          <line>748</line>
+          <line>790</line>
           <option name="timeStamp" value="22" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
+          <line>250</line>
+          <option name="timeStamp" value="23" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
+          <line>227</line>
+          <option name="timeStamp" value="24" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java</url>
+          <line>278</line>
+          <option name="timeStamp" value="26" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java</url>
+          <line>71</line>
+          <option name="timeStamp" value="28" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java</url>
+          <line>106</line>
+          <option name="timeStamp" value="30" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java</url>
+          <line>529</line>
+          <option name="timeStamp" value="31" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
+          <line>522</line>
+          <option name="timeStamp" value="33" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
+    <watches-manager>
+      <configuration name="SpringBootApplicationConfigurationType">
+        <watch expression="faceDistinguishService" language="JAVA" />
+      </configuration>
+    </watches-manager>
   </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/guns-admin/pom.xml">
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 2c2a98a..ae4b1a8 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,4 +1,5 @@
 package com.stylefeng.guns.modular.api;
+import java.util.Date;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -9,15 +10,14 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.DriverWorkMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
+import com.stylefeng.guns.modular.system.dao.TDriverFacialFailMapper;
 import com.stylefeng.guns.modular.system.model.*;
-import com.stylefeng.guns.modular.system.util.ALiSendSms;
+import com.stylefeng.guns.modular.system.util.*;
 //import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
-import com.stylefeng.guns.modular.system.util.CompareFace;
-import com.stylefeng.guns.modular.system.util.HuaWeiSMSUtil;
 import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -26,8 +26,10 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
@@ -331,7 +333,16 @@
             return ResultUtil.runErr();
         }
     }
-
+    @Resource
+    private DriverWorkMapper driverWorkMapper;
+    @Autowired
+    private IOrderService orderService;
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+    @Resource
+    private TDriverFacialFailMapper driverFacialFailMapper;
     @ResponseBody
     @PostMapping("/api/driver/face")
     @ApiOperation(value = "面容识别", tags = {"司机端-登录"}, notes = "")
@@ -349,12 +360,43 @@
             //通过第三方进行识别
             if (CompareFace.faceCompare(url, driver.getFaceImgUrl())){
                 driver.setLastFacialTime(new Date());
+                driver.setFailCount(0);
                 driverService.updateById(driver);
                 return ResultUtil.success();
             }
             driver.setFailCount(driver.getFailCount()==null? 0: driver.getFailCount()+1);
             driverService.updateById(driver);
-            if (driver.getFailCount()==5){
+            if (driver.getFailCount()>=5){
+                DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1);
+                List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid);
+                if(list.size() > 0){
+                    return ResultUtil.error("还有未完成的订单,不能进行下班操作");
+                }
+                driverWork.setEndTime(new Date());
+                driverWork.setState(2);
+                driverWorkMapper.updateById(driverWork);
+                driver.setState(1);
+
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if(pushMinistryOfTransport){//上传数据
+                            pushMinistryOfTransportUtil.operateLogout(uid);
+                        }
+                    }
+                }).start();
+
+                TDriverFacialFail tDriverFacialFail = new TDriverFacialFail();
+                tDriverFacialFail.setDriverId(driver.getId());
+                tDriverFacialFail.setCity("成都市");
+                tDriverFacialFail.setCityCode("510100");
+                tDriverFacialFail.setFacialPicture(url);
+                tDriverFacialFail.setCreateTime(new Date());
+                driverFacialFailMapper.insert(tDriverFacialFail);
+//                tDriverFacialFail.setIsDelete(0);
+
+
+
                 return new ResultUtil<>(-1,"已满五次,退回主页");
             }
             //成功的话保存最后识别时间
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 844d62a..b935453 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -98,6 +98,7 @@
             tape.setOrderType(orderType);
             tape.setInsertTime(new Date());
             tape.setAfterTime(newDate);
+            tape.setOrderId(orderId);
             String[] split = fileLink.split(",");
             for (String s : split) {
                 orderTapeService.insert(tape);
@@ -109,7 +110,7 @@
                     orderPrivateCar.setRouteRecord(orderPrivateCar.getRouteRecord()==null? fileLink: orderPrivateCar.getRouteRecord()+","+fileLink);
                     privateCarService.updateById(orderPrivateCar);
                     break;
-                    case 5:
+                    case 3:
                     OrderCrossCity orderCrossCity = crossCityService.selectById(orderId);
                         orderCrossCity.setRecordTime(new Date());
                         orderCrossCity.setRouteRecord(orderCrossCity.getRouteRecord()==null? fileLink: orderCrossCity.getRouteRecord()+","+fileLink);
@@ -353,7 +354,7 @@
     @ApiOperation(value = "获取改派支付金额", tags = {"司机端-服务中"}, notes = "返回金额为0不需要调用支付")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id(跨城多个订单使用逗号分隔)", name = "orderId", required = true, dataType = "string"),
-            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城 7=接送机)", name = "orderType", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     public ResultUtil<BaseWarpper> queryReassignMoney(String orderId, Integer orderType){
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
index 9f87bde..5282810 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -265,7 +265,7 @@
     public void wxPayCrossCity(HttpServletRequest request, HttpServletResponse response){
         try {
             Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-//            System.err.println(JSON.toJSONString(map));
+            System.err.println(JSON.toJSONString(map));
             if(null != map){
                 String out_trade_no = map.get("out_trade_no");
                 String transaction_id = map.get("transaction_id");
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index fb9d8f9..6cfc0b1 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -254,7 +254,7 @@
                 orderCrossCity.setGetoffTime(new Date());
                 orderCrossCity.setState(8);//跨城直接到待评价
                 orderCrossCity.setEndServiceTime(new Date());
-
+                this.updateById(orderCrossCity);
                 //还原座位数
                 LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
                 lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index e6cb0b7..de8f0f8 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -332,7 +332,8 @@
             }
         }).start();
         return ResultUtil.success();
-    }   @Override
+    }
+    @Override
     public ResultUtil specail(Integer orderId, Double lon, Double lat, String endAddress) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
                         orderPrivateCar.setEndLon(lon);
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java
new file mode 100644
index 0000000..cdc9e58
--- /dev/null
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java
@@ -0,0 +1,21 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.model.TDriverFacialFail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 人脸识别失败记录表 Mapper 接口
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-05
+ */
+public interface TDriverFacialFailMapper extends BaseMapper<TDriverFacialFail> {
+
+}
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java
index 0be0ab6..47681c8 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java
@@ -46,5 +46,6 @@
     Map<String,Object> getTransferOrderDetailById(@Param("orderId") Integer orderId);
 
     List<Map<String, Object>> queryOrderList(@Param("state") Integer state, @Param("driverId") Integer driverId);
+    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
 
 }
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml
index 026cc5d..137654a 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml
@@ -167,7 +167,7 @@
         <if test="state == 1">
             select
             id as id,
-            (1) as type,
+            (7) as type,
             ('接送机订单') as `name`,
             DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
             startAddress as startAddress,
@@ -185,7 +185,7 @@
 
             select
             id as id,
-            (1) as type,
+            (7) as type,
             ('接送机订单') as `name`,
             DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
             startAddress as startAddress,
@@ -202,7 +202,7 @@
         <if test="state == 2">
             select
             id as id,
-            (1) as type,
+            (7) as type,
             ('接送机订单') as `name`,
             DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
             startAddress as startAddress,
@@ -235,7 +235,48 @@
             orderType as orderType,
             isReassign as isReassign,
             companyId as companyId
-        from t_order_private_car where id = #{orderId}
+        from t_order_transfer where id = #{orderId}
+    </select>
+
+
+    <select id="queryOrderInfo" resultType="map">
+        select
+            a.id as orderId,
+            a.userId as userId,
+            a.driverId as driverId,
+            a.state as orderState,
+            DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime_,
+            DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime,
+            DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
+            a.startAddress as startAddress,
+            a.endAddress as endAddress,
+            a.startLon as startLon,
+            a.startLat as startLat,
+            a.endLon as endLon,
+            a.endLat as endLat,
+            a.orderMoney as orderMoney,
+            a.payManner as payManner,
+            a.trackId as trackId,
+            b.nickName as nickName,
+            a.passengersPhone as phone,
+            a.orderType as reservation,
+            a.telX as telX,
+            a.bindId as bindId,
+            (
+                (select count(id) from t_order_private_car where userId = b.id and state in (8, 9)) +
+                (select count(id) from t_order_taxi where userId = b.id and state in (8, 9)) +
+                (select count(id) from t_order_cross_city where userId = b.id and state in (8, 9))
+                ) as historyNum,
+            (select phone from t_phone where companyId = a.companyId and `type` = 1) as emergencyCall,
+            c.reason as cancelReason,
+            c.remark as cancelRemark,
+            c.money as cancelPayMoney,
+            if(c.userType = 1, '用户取消', '平台取消') as cancelUser,
+            (select isSpecialCar from t_sys_reformist where companyId = a.companyId) as reassign
+        from t_order_transfer a
+                 left join t_user b on (a.userId = b.id)
+                 left join t_order_cancel c on (a.id = c.orderId and c.orderType = 1 and c.state = 2)
+        where a.id = #{orderId}
     </select>
 
 </mapper>
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java
new file mode 100644
index 0000000..6669b87
--- /dev/null
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 司机人脸识别失败记录
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-05
+ */
+@TableName("t_driver_facial_fail")
+public class TDriverFacialFail extends Model<TDriverFacialFail> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 司机id
+     */
+    private Integer driverId;
+
+    /**
+     * 所属城市
+     */
+    private String city;
+    /**
+     * 城市code
+     */
+    private String cityCode;
+    /**
+     * 识别失败图片
+     */
+    private String facialPicture;
+    /**
+     * 识别时间
+     */
+    private Date createTime;
+    /**
+     * 是否删除  1=否 2=是
+     */
+    private Integer isDelete;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getFacialPicture() {
+        return facialPicture;
+    }
+
+    public void setFacialPicture(String facialPicture) {
+        this.facialPicture = facialPicture;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    @Override
+    public String toString() {
+        return "TDriverFacialFail{" +
+                "id=" + id +
+                ", driverId=" + driverId +
+                ", city='" + city + '\'' +
+                ", cityCode='" + cityCode + '\'' +
+                ", facialPicture='" + facialPicture + '\'' +
+                ", createTime='" + createTime + '\'' +
+                ", isDelete='" + isDelete + '\'' +
+                '}';
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+}
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java
index 0c052e0..52ef8ef 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java
@@ -1,9 +1,11 @@
 package com.stylefeng.guns.modular.system.model;
 
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -18,6 +20,7 @@
  * @since 2020-09-02
  */
 @TableName("t_order_transfer")
+@Data
 public class TOrderTransfer extends Model<TOrderTransfer> {
 
     private static final long serialVersionUID = 1L;
@@ -30,6 +33,19 @@
     /**
      * 类型(1=普通订单,2=摆渡订单)
      */
+    @TableField("startMileage")
+    private Double startMileage;
+    @TableField("mileageKilometers")
+    private Double mileageKilometers;
+    @TableField("duration")
+    private Double duration;
+    @TableField("wait")
+    private Double wait;
+    @TableField("waitMoney")
+    private Double waitMoney;
+
+    @TableField("longDistance")
+    private Double longDistance;
     private Integer type;
     /**
      * 用户id
@@ -130,39 +146,39 @@
     /**
      * 订单金额
      */
-    private BigDecimal orderMoney;
+    private Double orderMoney;
     /**
      * 起步价
      */
-    private BigDecimal startMoney;
+    private Double startMoney;
     /**
      * 里程费
      */
-    private BigDecimal mileageMoney;
+    private Double mileageMoney;
     /**
      * 时长费
      */
-    private BigDecimal durationMoney;
+    private Double durationMoney;
     /**
      * 远途费
      */
-    private BigDecimal longDistanceMoney;
+    private Double longDistanceMoney;
     /**
      * 停车费
      */
-    private BigDecimal parkMoney;
+    private Double parkMoney;
     /**
      * 过路费
      */
-    private BigDecimal roadTollMoney;
+    private Double roadTollMoney;
     /**
      * 红包抵扣金额
      */
-    private BigDecimal redPacketMoney;
+    private Double redPacketMoney;
     /**
      * 优惠券抵扣金额
      */
-    private BigDecimal couponMoney;
+    private Double couponMoney;
     /**
      * 红包记录id
      */
@@ -190,7 +206,7 @@
     /**
      * 支付金额
      */
-    private BigDecimal payMoney;
+    private Double payMoney;
     /**
      * 是否是代下单(0:否,1:是)
      */
@@ -289,533 +305,6 @@
      */
     private Date recordTime;
 
-    public Date getRecordTime() {
-        return recordTime;
-    }
-
-    public void setRecordTime(Date recordTime) {
-        this.recordTime = recordTime;
-    }
-
-    public String getRouteRecord() {
-        return routeRecord;
-    }
-
-    public void setRouteRecord(String routeRecord) {
-        this.routeRecord = routeRecord;
-    }
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getType() {
-        return type;
-    }
-
-    public void setType(Integer type) {
-        this.type = type;
-    }
-
-    public Integer getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Integer userId) {
-        this.userId = userId;
-    }
-
-    public Integer getDriverId() {
-        return driverId;
-    }
-
-    public void setDriverId(Integer driverId) {
-        this.driverId = driverId;
-    }
-
-    public Integer getCarId() {
-        return carId;
-    }
-
-    public void setCarId(Integer carId) {
-        this.carId = carId;
-    }
-
-    public String getOrderNum() {
-        return orderNum;
-    }
-
-    public void setOrderNum(String orderNum) {
-        this.orderNum = orderNum;
-    }
-
-    public Double getPlacementLon() {
-        return placementLon;
-    }
-
-    public void setPlacementLon(Double placementLon) {
-        this.placementLon = placementLon;
-    }
-
-    public Double getPlacementLat() {
-        return placementLat;
-    }
-
-    public void setPlacementLat(Double placementLat) {
-        this.placementLat = placementLat;
-    }
-
-    public String getPlacementAddress() {
-        return placementAddress;
-    }
-
-    public void setPlacementAddress(String placementAddress) {
-        this.placementAddress = placementAddress;
-    }
-
-    public Double getStartLon() {
-        return startLon;
-    }
-
-    public void setStartLon(Double startLon) {
-        this.startLon = startLon;
-    }
-
-    public Double getStartLat() {
-        return startLat;
-    }
-
-    public void setStartLat(Double startLat) {
-        this.startLat = startLat;
-    }
-
-    public Double getEndLon() {
-        return endLon;
-    }
-
-    public void setEndLon(Double endLon) {
-        this.endLon = endLon;
-    }
-
-    public String getStartAddress() {
-        return startAddress;
-    }
-
-    public void setStartAddress(String startAddress) {
-        this.startAddress = startAddress;
-    }
-
-    public Double getEndLat() {
-        return endLat;
-    }
-
-    public void setEndLat(Double endLat) {
-        this.endLat = endLat;
-    }
-
-    public String getEndAddress() {
-        return endAddress;
-    }
-
-    public void setEndAddress(String endAddress) {
-        this.endAddress = endAddress;
-    }
-
-    public Double getBoardingLon() {
-        return boardingLon;
-    }
-
-    public void setBoardingLon(Double boardingLon) {
-        this.boardingLon = boardingLon;
-    }
-
-    public Double getBoardingLat() {
-        return boardingLat;
-    }
-
-    public void setBoardingLat(Double boardingLat) {
-        this.boardingLat = boardingLat;
-    }
-
-    public String getBoardingAddress() {
-        return boardingAddress;
-    }
-
-    public void setBoardingAddress(String boardingAddress) {
-        this.boardingAddress = boardingAddress;
-    }
-
-    public Date getBoardingTime() {
-        return boardingTime;
-    }
-
-    public void setBoardingTime(Date boardingTime) {
-        this.boardingTime = boardingTime;
-    }
-
-    public Double getGetoffLon() {
-        return getoffLon;
-    }
-
-    public void setGetoffLon(Double getoffLon) {
-        this.getoffLon = getoffLon;
-    }
-
-    public Double getGetoffLat() {
-        return getoffLat;
-    }
-
-    public void setGetoffLat(Double getoffLat) {
-        this.getoffLat = getoffLat;
-    }
-
-    public String getGetoffAddress() {
-        return getoffAddress;
-    }
-
-    public void setGetoffAddress(String getoffAddress) {
-        this.getoffAddress = getoffAddress;
-    }
-
-    public Date getGetoffTime() {
-        return getoffTime;
-    }
-
-    public void setGetoffTime(Date getoffTime) {
-        this.getoffTime = getoffTime;
-    }
-
-    public Double getMileage() {
-        return mileage;
-    }
-
-    public void setMileage(Double mileage) {
-        this.mileage = mileage;
-    }
-
-    public Integer getPayManner() {
-        return payManner;
-    }
-
-    public void setPayManner(Integer payManner) {
-        this.payManner = payManner;
-    }
-
-    public Integer getPayType() {
-        return payType;
-    }
-
-    public void setPayType(Integer payType) {
-        this.payType = payType;
-    }
-
-    public BigDecimal getOrderMoney() {
-        return orderMoney;
-    }
-
-    public void setOrderMoney(BigDecimal orderMoney) {
-        this.orderMoney = orderMoney;
-    }
-
-    public BigDecimal getStartMoney() {
-        return startMoney;
-    }
-
-    public void setStartMoney(BigDecimal startMoney) {
-        this.startMoney = startMoney;
-    }
-
-    public BigDecimal getMileageMoney() {
-        return mileageMoney;
-    }
-
-    public void setMileageMoney(BigDecimal mileageMoney) {
-        this.mileageMoney = mileageMoney;
-    }
-
-    public BigDecimal getDurationMoney() {
-        return durationMoney;
-    }
-
-    public void setDurationMoney(BigDecimal durationMoney) {
-        this.durationMoney = durationMoney;
-    }
-
-    public BigDecimal getLongDistanceMoney() {
-        return longDistanceMoney;
-    }
-
-    public void setLongDistanceMoney(BigDecimal longDistanceMoney) {
-        this.longDistanceMoney = longDistanceMoney;
-    }
-
-    public BigDecimal getParkMoney() {
-        return parkMoney;
-    }
-
-    public void setParkMoney(BigDecimal parkMoney) {
-        this.parkMoney = parkMoney;
-    }
-
-    public BigDecimal getRoadTollMoney() {
-        return roadTollMoney;
-    }
-
-    public void setRoadTollMoney(BigDecimal roadTollMoney) {
-        this.roadTollMoney = roadTollMoney;
-    }
-
-    public BigDecimal getRedPacketMoney() {
-        return redPacketMoney;
-    }
-
-    public void setRedPacketMoney(BigDecimal redPacketMoney) {
-        this.redPacketMoney = redPacketMoney;
-    }
-
-    public BigDecimal getCouponMoney() {
-        return couponMoney;
-    }
-
-    public void setCouponMoney(BigDecimal couponMoney) {
-        this.couponMoney = couponMoney;
-    }
-
-    public Integer getRedPacketId() {
-        return redPacketId;
-    }
-
-    public void setRedPacketId(Integer redPacketId) {
-        this.redPacketId = redPacketId;
-    }
-
-    public Integer getCouponId() {
-        return couponId;
-    }
-
-    public void setCouponId(Integer couponId) {
-        this.couponId = couponId;
-    }
-
-    public Double getDiscount() {
-        return discount;
-    }
-
-    public void setDiscount(Double discount) {
-        this.discount = discount;
-    }
-
-    public Double getDiscountMoney() {
-        return discountMoney;
-    }
-
-    public void setDiscountMoney(Double discountMoney) {
-        this.discountMoney = discountMoney;
-    }
-
-    public Integer getActivityId() {
-        return activityId;
-    }
-
-    public void setActivityId(Integer activityId) {
-        this.activityId = activityId;
-    }
-
-    public Integer getCompanyId() {
-        return companyId;
-    }
-
-    public void setCompanyId(Integer companyId) {
-        this.companyId = companyId;
-    }
-
-    public BigDecimal getPayMoney() {
-        return payMoney;
-    }
-
-    public void setPayMoney(BigDecimal payMoney) {
-        this.payMoney = payMoney;
-    }
-
-    public Integer getSubstitute() {
-        return substitute;
-    }
-
-    public void setSubstitute(Integer substitute) {
-        this.substitute = substitute;
-    }
-
-    public String getPassengers() {
-        return passengers;
-    }
-
-    public void setPassengers(String passengers) {
-        this.passengers = passengers;
-    }
-
-    public String getPassengersPhone() {
-        return passengersPhone;
-    }
-
-    public void setPassengersPhone(String passengersPhone) {
-        this.passengersPhone = passengersPhone;
-    }
-
-    public Integer getState() {
-        return state;
-    }
-
-    public void setState(Integer state) {
-        this.state = state;
-    }
-
-    public Date getInsertTime() {
-        return insertTime;
-    }
-
-    public void setInsertTime(Date insertTime) {
-        this.insertTime = insertTime;
-    }
-
-    public Date getTravelTime() {
-        return travelTime;
-    }
-
-    public void setTravelTime(Date travelTime) {
-        this.travelTime = travelTime;
-    }
-
-    public Date getSnatchOrderTime() {
-        return snatchOrderTime;
-    }
-
-    public void setSnatchOrderTime(Date snatchOrderTime) {
-        this.snatchOrderTime = snatchOrderTime;
-    }
-
-    public Date getSetOutTime() {
-        return setOutTime;
-    }
-
-    public void setSetOutTime(Date setOutTime) {
-        this.setOutTime = setOutTime;
-    }
-
-    public Date getArriveTime() {
-        return arriveTime;
-    }
-
-    public void setArriveTime(Date arriveTime) {
-        this.arriveTime = arriveTime;
-    }
-
-    public Date getStartServiceTime() {
-        return startServiceTime;
-    }
-
-    public void setStartServiceTime(Date startServiceTime) {
-        this.startServiceTime = startServiceTime;
-    }
-
-    public Date getEndServiceTime() {
-        return endServiceTime;
-    }
-
-    public void setEndServiceTime(Date endServiceTime) {
-        this.endServiceTime = endServiceTime;
-    }
-
-    public Integer getOrderType() {
-        return orderType;
-    }
-
-    public void setOrderType(Integer orderType) {
-        this.orderType = orderType;
-    }
-
-    public Integer getOrderSource() {
-        return orderSource;
-    }
-
-    public void setOrderSource(Integer orderSource) {
-        this.orderSource = orderSource;
-    }
-
-    public Integer getInvoiceId() {
-        return invoiceId;
-    }
-
-    public void setInvoiceId(Integer invoiceId) {
-        this.invoiceId = invoiceId;
-    }
-
-    public Integer getIsReassign() {
-        return isReassign;
-    }
-
-    public void setIsReassign(Integer isReassign) {
-        this.isReassign = isReassign;
-    }
-
-    public Integer getReassignNotice() {
-        return reassignNotice;
-    }
-
-    public void setReassignNotice(Integer reassignNotice) {
-        this.reassignNotice = reassignNotice;
-    }
-
-    public String getTrackId() {
-        return trackId;
-    }
-
-    public void setTrackId(String trackId) {
-        this.trackId = trackId;
-    }
-
-    public Integer getIsDelete() {
-        return isDelete;
-    }
-
-    public void setIsDelete(Integer isDelete) {
-        this.isDelete = isDelete;
-    }
-
-    public Integer getOldState() {
-        return oldState;
-    }
-
-    public void setOldState(Integer oldState) {
-        this.oldState = oldState;
-    }
-
-    public String getTelX() {
-        return telX;
-    }
-
-    public void setTelX(String telX) {
-        this.telX = telX;
-    }
-
-    public String getBindId() {
-        return bindId;
-    }
-
-    public void setBindId(String bindId) {
-        this.bindId = bindId;
-    }
-
-    public Integer getServerCarModelId() {
-        return serverCarModelId;
-    }
-
-    public void setServerCarModelId(Integer serverCarModelId) {
-        this.serverCarModelId = serverCarModelId;
-    }
 
     @Override
     protected Serializable pkVal() {
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java
index 288ca3a..ab1a13a 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java
@@ -50,4 +50,12 @@
     Map<String,Object> getTransferOrderDetailById(@Param("orderId") Integer orderId);
 
     List<Map<String, Object>> queryOrderList(Integer state, Integer driverId) throws Exception;
+
+    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+
+    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address) throws Exception;
+
+    Map<String, Object> queryMoneyInfo(Integer orderId) throws Exception;
+
+    ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception;
 }
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index a88de81..7fe7a37 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -172,7 +172,7 @@
                 break;
         }
 //        HuaWeiSMSUtil.sendSms("[\"" + authCode + "\"]", phone, "8822061324669", templateCode);
-        String sData = aLiSendSms.sendSms(phone, "SMS_147415322", "{\"code\":\"" + authCode + "\"}");
+        String sData = aLiSendSms.sendSms(phone, "SMS_467580138", "{\"code\":\"" + authCode + "\"}");
 //        JSONObject jsonObject = JSON.parseObject(sData);
 //        String message = jsonObject.getString("Message");
 //        if(!"OK".equals(message)){
@@ -551,6 +551,8 @@
     }
 
 
+    @Autowired
+    private ITSysFaceDistinguishService faceDistinguishService;
     /**
      * 上下班操作
      * @param uid
@@ -581,6 +583,15 @@
                 }
             }).start();
         }else{
+            //拿到后台配置的人脸识别配置
+            TSysFaceDistinguish tSysFaceDistinguish = faceDistinguishService.selectOne(null);
+            //如果是关闭就结束
+            if (tSysFaceDistinguish.getIsOpen()!=2){
+                if (driver.getFailCount()>=5){
+                    return ResultUtil.error("请进行人脸认证后重试");
+                }
+            }
+
             driverWork = new DriverWork();
             driverWork.setState(1);
             driverWork.setDriverId(uid);
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 868fdd1..eb0aa55 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -605,6 +605,10 @@
                 break;
             case 6:
                 break;
+            case 7://专车
+                map = orderTransferService.queryOrderInfo(orderId);
+                break;
+
         }
         if(null != map.get("telX")){
             map.put("phone", map.get("telX"));
@@ -640,6 +644,9 @@
                 break;
             case 6:
                 break;
+            case 7://接送机
+                companyId = orderTransferService.selectById(orderId).getCompanyId();
+                break;
         }
         return sysReformistMapper.queryMoney(companyId);
     }
@@ -671,6 +678,10 @@
                 return orderLogisticsService.process(orderId, state, lon, lat, address);
             case 6:
                 break;
+            case 7://专车
+                return orderTransferService.process(orderId, state, lon, lat, address);
+
+
         }
         return null;
     }
@@ -706,6 +717,8 @@
                 break;
             case 6:
                 break;
+            case 7://接送机
+                return orderTransferService.confirmFees(orderId, type, parkingFee, crossingFee);
         }
         return null;
     }
@@ -1167,6 +1180,8 @@
                 return orderPrivateCarService.queryMoneyInfo(orderId);
             case 2:
                 break;
+            case 7:
+                return orderTransferService.queryMoneyInfo(orderId);
         }
         return null;
     }
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java
index 667a3a8..2618ff0 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java
@@ -1,9 +1,12 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
 import com.stylefeng.guns.modular.system.dao.TOrderTransferMapper;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.TOrderTransfer;
@@ -20,9 +23,8 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * <p>
@@ -199,4 +201,331 @@
     public List<Map<String, Object>> queryOrderList(Integer state, Integer driverId) throws Exception {
         return this.baseMapper.queryOrderList(state, driverId);
     }
+
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+        return this.baseMapper.queryOrderInfo(orderId);
+    }
+
+    @Override
+    public ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception {
+        TOrderTransfer orderPrivateCar = this.selectById(orderId);
+        orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用
+        orderPrivateCar.setPayManner(type);
+        orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee);
+        orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee);
+        orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney());
+        orderPrivateCar.setState(7);
+        this.updateById(orderPrivateCar);
+
+        pushUtil.removeTask(orderId, 7);//删除定时任务,结束推送数据
+        systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId());
+
+        //回滚司机状态为空闲
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        driver.setState(2);
+        driverService.updateById(driver);
+
+        TOrderTransfer finalOrderTaxi = orderPrivateCar;
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                pushUtil.pushOrderState(1, finalOrderTaxi.getUserId(), finalOrderTaxi.getId(), 7, finalOrderTaxi.getState());
+                pushUtil.pushOrderState(2, finalOrderTaxi.getDriverId(), finalOrderTaxi.getId(), 7, finalOrderTaxi.getState());
+            }
+        }).start();
+
+        TOrderTransfer finalOrderPrivateCar = orderPrivateCar;
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                if(pushMinistryOfTransport){//上传交通数据
+                    pushMinistryOfTransportUtil.baseInfoVehicleTotalMile(finalOrderPrivateCar.getCarId());
+                    pushMinistryOfTransportUtil.operateArrive(orderId);
+                }
+            }
+        }).start();
+
+
+        return ResultUtil.success();
+    }
+
+
+    @Override
+    public Map<String, Object> queryMoneyInfo(Integer orderId) throws Exception {
+        TOrderTransfer orderPrivateCar = this.selectById(orderId);
+        if(orderPrivateCar.getState() == 5){//服务中的时候获取实时费用数据
+            this.setMoney(orderPrivateCar, 0D, 0D);
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderMoney", orderPrivateCar.getOrderMoney());//订单金额
+        map.put("startMileage", orderPrivateCar.getStartMileage());//起步价
+        map.put("startMoney", orderPrivateCar.getStartMoney());//起步价
+        map.put("mileageKilometers", orderPrivateCar.getMileageKilometers());//里程费
+        map.put("mileageMoney", orderPrivateCar.getMileageMoney());//里程费
+        map.put("duration", orderPrivateCar.getDuration());//时长费
+        map.put("durationMoney", orderPrivateCar.getDurationMoney());//时长费
+        map.put("wait", orderPrivateCar.getWait());//等待费
+        map.put("waitMoney", orderPrivateCar.getWaitMoney());//等待费
+        map.put("longDistance", orderPrivateCar.getLongDistance());//远途费
+        map.put("longDistanceMoney", orderPrivateCar.getLongDistanceMoney());//远途费
+        map.put("parkMoney", orderPrivateCar.getParkMoney());//停车费
+        map.put("roadTollMoney", orderPrivateCar.getRoadTollMoney());//过路费
+        map.put("redPacketMoney", orderPrivateCar.getRedPacketMoney());//红包抵扣金额
+        map.put("couponMoney", orderPrivateCar.getCouponMoney());//优惠券抵扣金额
+        map.put("discountMoney", orderPrivateCar.getDiscountMoney());//折扣抵扣金额
+        map.put("discount", orderPrivateCar.getDiscount());//折扣
+        return map;
+    }
+    @Override
+    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address) throws Exception {
+        TOrderTransfer orderPrivateCar = this.selectById(orderId);
+        switch (state){
+            case 3://出发前往预约点
+                orderPrivateCar.setState(3);
+                orderPrivateCar.setSetOutTime(new Date());
+                systemNoticeService.addSystemNotice(1, "司机已出发,请耐心等待", orderPrivateCar.getUserId());
+                break;
+            case 4://到达预约点,等待客户上车
+                orderPrivateCar.setState(4);
+                orderPrivateCar.setArriveTime(new Date());
+                systemNoticeService.addSystemNotice(1, "司机已到达您设置的预约地点,请及时上车", orderPrivateCar.getUserId());
+                break;
+            case 5://开始服务
+                orderPrivateCar.setBoardingLon(lon);
+                orderPrivateCar.setBoardingLat(lat);
+                orderPrivateCar.setBoardingAddress(address);
+                orderPrivateCar.setBoardingTime(new Date());
+                orderPrivateCar.setState(5);
+                orderPrivateCar.setStartServiceTime(new Date());
+
+                pushUtil.pushDriverPosition(orderPrivateCar.getId(), 7);//主动推送司机定位
+                break;
+            case 6://结束服务(专车可以返回继续服务)不修改状态
+                orderPrivateCar.setGetoffLon(lon);
+                orderPrivateCar.setGetoffLat(lat);
+                orderPrivateCar.setGetoffAddress(address);
+                orderPrivateCar.setGetoffTime(new Date());
+                orderPrivateCar.setEndServiceTime(new Date());
+
+//                //设置结束的时候的经纬度
+//                if (orderPrivateCar.getEndLat()!=null){
+//                        orderPrivateCar.setEndLon(lon);
+//                        orderPrivateCar.setEndLat(lat);
+//                        orderPrivateCar.setEndAddress(address);
+//                }
+
+
+                break;
+        }
+        this.updateById(orderPrivateCar);
+
+        // TODO: 2020/6/5 推送状态
+        TOrderTransfer finalOrderPrivateCar = orderPrivateCar;
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                pushUtil.pushOrderState(1, finalOrderPrivateCar.getUserId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState());
+                pushUtil.pushOrderState(2, finalOrderPrivateCar.getDriverId(), finalOrderPrivateCar.getId(), 1, finalOrderPrivateCar.getState());
+                if(finalOrderPrivateCar.getState() == 5 && pushMinistryOfTransport){//上传数据
+                    pushMinistryOfTransportUtil.operateDepart(orderId);
+                }
+            }
+        }).start();
+        return ResultUtil.success();
+    }
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+    public TOrderTransfer setMoney(TOrderTransfer orderPrivateCar, Double parkingFee, Double crossingFee) throws Exception {
+        Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 7, orderPrivateCar.getServerCarModelId());
+        //开始根据不同的方式计算金额
+        double amount = 0;
+        JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
+        Double num1 = jsonObject.getDouble("num1");//起步价(元)
+        Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
+        Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
+        Double num4 = jsonObject.getDouble("num4");//里程费(元)
+        Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
+        Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
+        Double num7 = jsonObject.getDouble("num7");//等待费(元)
+        Double num8 = jsonObject.getDouble("num8");//远途费(公里)
+        Double num9 = jsonObject.getDouble("num9");//远途费(公里)
+        Double num10 = jsonObject.getDouble("num10");//远途费(元)
+        Double num11 = jsonObject.getDouble("num11");//远途费(公里)
+        Double num12 = jsonObject.getDouble("num12");//远途费(公里)
+        Double num13 = jsonObject.getDouble("num13");//远途费(元)
+        Double num14 = jsonObject.getDouble("num14");//远途费(公里)
+        Double num15 = jsonObject.getDouble("num15");//远途费(元)
+        String num16 = jsonObject.getString("num16");//夜间费(开始时间)
+        Double num17 = jsonObject.getDouble("num17");//夜间费(元)
+        Double num18 = jsonObject.getDouble("num18");//夜间费(元)
+        Double num19 = jsonObject.getDouble("num19");//夜间费(元)
+        Double num20 = jsonObject.getDouble("num20");//夜间费(元)
+        Double num21 = jsonObject.getDouble("num21");//夜间费(元)
+        Double num22 = jsonObject.getDouble("num22");//夜间费(元)
+        String num23 = jsonObject.getString("num23");//高峰费(开始时间)
+        String num24 = jsonObject.getString("num24");//高峰费(开始时间)
+        Double num25 = jsonObject.getDouble("num25");//高峰费(元)
+        Double num26 = jsonObject.getDouble("num26");//高峰费(元)
+        Double num27 = jsonObject.getDouble("num27");//高峰费(元)
+        Double num28 = jsonObject.getDouble("num28");//高峰费(元)
+        Double num29 = jsonObject.getDouble("num29");//高峰费(元)
+        Double num30 = jsonObject.getDouble("num30");//高峰费(元)
+
+        Date date = new Date();
+        double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage()) / 1000;//实际公里
+        double t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
+        double w = ((orderPrivateCar.getStartServiceTime().getTime() - orderPrivateCar.getArriveTime().getTime()) / 60000) + 1;//等待分钟(不满一分钟按一分钟算)
+        double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
+        double t1 = (t - num3) < 0 ? 0 : new BigDecimal(t - num3).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超过起步分钟数的时间
+        double w1 = (w - num6) < 0 ? 0 : new BigDecimal(w - num6).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超出等待时间的时间
+        double yt1 = 0;//远途1段
+        double yt2 = 0;//远途2段
+        double yt3 = 0;//远途3段
+
+
+        //夜间服务处理逻辑
+        Calendar s = Calendar.getInstance();
+        s.setTime(date);
+        s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
+        s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
+
+        Calendar e = Calendar.getInstance();
+        e.setTime(date);
+        e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
+        e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
+
+        if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
+            if(d > num8.doubleValue() && d <= num9.doubleValue()){
+                yt1 = num20 * (d - num8);
+            }
+            if(d > num9.doubleValue()){
+                yt1 = num20 * (num9 - num8);
+            }
+            if(d > num11.doubleValue() && d <= num12.doubleValue()){
+                yt2 = num21 * (d - num11);
+            }
+            if(d > num12.doubleValue()){
+                yt2 = num21 * (num12 - num11);
+            }
+            if(d > num14.doubleValue()){
+                yt3 = num22 * (d - num14);
+            }
+            amount = num17 + (d1 * num18) + (t1 * num19) + (w1 * num7) + yt1 + yt2 + yt3;
+            orderPrivateCar.setStartMileage(num2);
+            orderPrivateCar.setStartMoney(num17);//起步价
+            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num18).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
+            orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num19).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
+            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
+            orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
+            orderPrivateCar.setParkMoney(parkingFee);//停车费
+            orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
+            orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
+            orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
+            orderPrivateCar.setDiscount(0D);//优惠抵扣
+            orderPrivateCar.setPayMoney(0D);//支付金额
+            orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            return orderPrivateCar;
+        }
+
+
+        //高峰时段处理逻辑
+        Calendar s1 = Calendar.getInstance();
+        s1.setTime(date);
+        s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
+        s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
+
+        Calendar e1 = Calendar.getInstance();
+        e1.setTime(date);
+        e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
+        e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
+
+        Calendar s2 = Calendar.getInstance();
+        s2.setTime(date);
+        s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
+        s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
+
+        Calendar e2 = Calendar.getInstance();
+        e2.setTime(date);
+        e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
+        e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
+
+        if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
+            if(d > num8.doubleValue() && d <= num9.doubleValue()){
+                yt1 = num28 * (d - num8);
+            }
+            if(d > num9.doubleValue()){
+                yt1 = num28 * (num9 - num8);
+            }
+            if(d > num11.doubleValue() && d <= num12.doubleValue()){
+                yt2 = num29 * (d - num11);
+            }
+            if(d > num12.doubleValue()){
+                yt2 = num29 * (num12 - num11);
+            }
+            if(d > num14.doubleValue()){
+                yt3 = num30 * (d - num14);
+            }
+            amount = num25 + (d1 * num26) + (t1 * num27) + (w1 * num7) + yt1 + yt2 + yt3;
+            orderPrivateCar.setStartMileage(num2);
+            orderPrivateCar.setStartMoney(num25);//起步价
+            orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num26).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
+            orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num27).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
+            orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
+            orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
+            orderPrivateCar.setParkMoney(parkingFee);//停车费
+            orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
+            orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
+            orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
+            orderPrivateCar.setDiscount(0D);//优惠抵扣
+            orderPrivateCar.setPayMoney(0D);//支付金额
+            orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            return orderPrivateCar;
+        }
+
+        //其他时间段的计算
+        if(d > num8.doubleValue() && d <= num9.doubleValue()){
+            yt1 = num10 * (d - num8);
+        }
+        if(d > num9.doubleValue()){
+            yt1 = num10 * (num9 - num8);
+        }
+        if(d > num11.doubleValue() && d <= num12.doubleValue()){
+            yt2 = num13 * (d - num11);
+        }
+        if(d > num12.doubleValue()){
+            yt2 = num13 * (num12 - num11);
+        }
+        if(d > num14.doubleValue()){
+            yt3 = num15 * (d - num14);
+        }
+        amount = num1 + (d1 * num4) + (t1 * num5) + (w1 * num7) + yt1 + yt2 + yt3;
+        orderPrivateCar.setStartMileage(num2);
+        orderPrivateCar.setStartMoney(num1);//起步价
+        orderPrivateCar.setMileageKilometers(new BigDecimal(d1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        orderPrivateCar.setMileageMoney(new BigDecimal(d1 * num4).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//里程费
+        orderPrivateCar.setDuration(new BigDecimal(t1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        orderPrivateCar.setDurationMoney(new BigDecimal(t1 * num5).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//时长费
+        orderPrivateCar.setWait(new BigDecimal(w1).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        orderPrivateCar.setWaitMoney(new BigDecimal(w1 * num7).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//等待费
+        orderPrivateCar.setLongDistance(new BigDecimal((d > num8) ? d - num8 : 0).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        orderPrivateCar.setLongDistanceMoney(new BigDecimal(yt1 + yt2 + yt3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//远途费
+        orderPrivateCar.setParkMoney(parkingFee);//停车费
+        orderPrivateCar.setRoadTollMoney(crossingFee);//过路费
+        orderPrivateCar.setRedPacketMoney(0D);//红包抵扣
+        orderPrivateCar.setCouponMoney(0D);//优惠券抵扣
+        orderPrivateCar.setDiscount(0D);//优惠抵扣
+        orderPrivateCar.setPayMoney(0D);//支付金额
+        orderPrivateCar.setOrderMoney(new BigDecimal(amount + parkingFee + crossingFee).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        return orderPrivateCar;
+    }
 }
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
index 51423fe..3441579 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -21,8 +21,8 @@
     // 设置鉴权参数,初始化客户端
     private DefaultProfile profile = DefaultProfile.getProfile(
             "cn-hangzhou",// 地域ID
-            "LTAI5tLz3gjFn53JyYopYoSU",// 您的AccessKey ID
-            "XR1Nk7gkgpM0bsxmXcHlpQYt9VAXCE");// 您的AccessKey Secret
+            "LTAI5tR4whv88Y5CUucCJEu6",// 您的AccessKey ID
+            "2fObO6LE6U2OzrUfXw9YBlQWHohFvg");// 您的AccessKey Secret
     private IAcsClient client = new DefaultAcsClient(profile);
 
     private static void log_print(String functionName, Object result) {
@@ -70,7 +70,7 @@
         // 接收短信的手机号码
         request.putQueryParameter("PhoneNumbers", phone);
         // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
-        request.putQueryParameter("SignName", "未来");
+        request.putQueryParameter("SignName", "未来出行");
         // 短信模板ID
         request.putQueryParameter("TemplateCode", templateCode);
         // 短信模板变量对应的实际值,JSON格式。
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
index e09c40f..7e5266c 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -86,9 +86,12 @@
      */
     public Map<String, String> geocode(String lon, String lan) throws Exception{
         String url = "https://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + lon + "," + lan;
+        System.err.println("=========="+lon+"============"+lan);
+
         String forObject = restTemplate.getForObject(url, String.class);
         JSONObject jsonObject = JSON.parseObject(forObject);
         Map<String, String> map = new HashMap<>();
+        System.err.println("=========="+jsonObject);
 
 //        gdInterfaceService.saveData("https://restapi.amap.com/v3/geocode/regeo", "经纬度转行政区域");
 
diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 25298a0..3d4e370 100644
--- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -84,7 +84,7 @@
             calendar.setTime(lastFacialTime);
 
             // 增加2分钟
-            calendar.add(Calendar.MINUTE, 2);
+            calendar.add(Calendar.MINUTE, tSysFaceDistinguish.getMinuteNum());
             Date updatedDate = calendar.getTime();
             int compareResult = now.compareTo(updatedDate);
             if (compareResult >= 0) {
diff --git a/DriverNTTravel/guns-admin/src/main/resources/application.yml b/DriverNTTravel/guns-admin/src/main/resources/application.yml
index 1eb8730..d6b0c2f 100644
--- a/DriverNTTravel/guns-admin/src/main/resources/application.yml
+++ b/DriverNTTravel/guns-admin/src/main/resources/application.yml
@@ -48,6 +48,14 @@
 
 ---
 
+#spring:
+#  datasource:
+#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: WeiLaiChuXing@2024!
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
 spring:
   datasource:
     url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -55,7 +63,6 @@
     password: 123456
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
-
 
 #spring:
 #  datasource:
@@ -82,12 +89,12 @@
 
 wx:
   grantType: authorization_code #填authorization_code
-  appid: wx19a713b4943f9568 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 5d4ca951a855b1e2c86a844cd42fd133 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
   appletsAppid: #小程序APPid
   appletsAppSecret: #
-  mchId: 1514387581 #微信支付分配的商户号
-  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
+  mchId: 1677823911 #微信支付分配的商户号
+  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
 
 ---
 
@@ -120,9 +127,9 @@
 
 #支付回调地址
 #正式环境
-callbackPath: https://fuban.net/driver
+#callbackPath: https://weilaigo.cn/driver
 #测试环境
-#callbackPath: http://121.37.97.220:81/driver
+callbackPath: http://221.182.45.100:8999/driver
 
 ---
 #交通部推送数据功能开关
diff --git a/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java b/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java
index 42dfa9a..d0eded6 100644
--- a/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java
+++ b/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java
@@ -142,6 +142,7 @@
         if(new Date().before(tActivityGeneralization.getStartTime())){
             tActivityGeneralization.setState(2);
         }
+        tActivityGeneralization.setInsertTime(new Date());
         activityGeneralizationService.insert(tActivityGeneralization);
 
         // 生成二维码,上传到服务器
diff --git a/ManagementNTTravel/guns-admin/src/main/resources/application.yml b/ManagementNTTravel/guns-admin/src/main/resources/application.yml
index 415e433..ac35c24 100644
--- a/ManagementNTTravel/guns-admin/src/main/resources/application.yml
+++ b/ManagementNTTravel/guns-admin/src/main/resources/application.yml
@@ -57,12 +57,20 @@
 
 spring:
   datasource:
-    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-    password: 123456
+    password: WeiLaiChuXing@2024!
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
 
+#spring:
+#  datasource:
+#    url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+#    username: root
+#    password: 123456
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
 
 #spring:
 #  datasource:
diff --git a/ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html b/ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
index 6288814..c96623e 100644
--- a/ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
+++ b/ManagementNTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -349,10 +349,10 @@
                             <br/>
                         </div>
                         <div class="col-sm-3">
-                            <#avatar id="userQrCode" name="用户端客服二维码" avatarImg="${reformist.userQrCode}"/>
+                            <#avatar id="userQrCode" name="用户端客服二维码" avatarImg="${reformist.userQrCode!}"/>
                         </div>
                         <div class="col-sm-3">
-                            <#avatar id="driverQrCode" name="司机端客服二维码" avatarImg="${reformist.driverQrCode}"/>
+                            <#avatar id="driverQrCode" name="司机端客服二维码" avatarImg="${reformist.driverQrCode!}"/>
                         </div>
                     </div>
                 </div>
diff --git a/UserNTTravel/.idea/inspectionProfiles/Project_Default.xml b/UserNTTravel/.idea/inspectionProfiles/Project_Default.xml
index e261e50..ee2c34b 100644
--- a/UserNTTravel/.idea/inspectionProfiles/Project_Default.xml
+++ b/UserNTTravel/.idea/inspectionProfiles/Project_Default.xml
@@ -2,6 +2,13 @@
   <profile version="1.0">
     <option name="myName" value="Project Default" />
     <inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliArrayNamingShouldHaveBracket" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliControlFlowStatementWithoutBraces" enabled="true" level="WARNING" enabled_by_default="true" />
     <inspection_tool class="AliDeprecation" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliEqualsAvoidNull" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliLongLiteralsEndingWithLowercaseL" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliMissingOverrideAnnotation" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AliWrapperTypeEquality" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="MapOrSetKeyShouldOverrideHashCodeEquals" enabled="true" level="WARNING" enabled_by_default="true" />
   </profile>
 </component>
\ No newline at end of file
diff --git a/UserNTTravel/.idea/workspace.xml b/UserNTTravel/.idea/workspace.xml
index 27de33d..785c33d 100644
--- a/UserNTTravel/.idea/workspace.xml
+++ b/UserNTTravel/.idea/workspace.xml
@@ -5,43 +5,75 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="202e88b5-454e-4bc8-8ff5-2d4680354082" name="Default Changelist" comment="Default Changelist">
-      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTapeMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTape.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTapeService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTapeServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysCouponRecordMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TActivityGeneralizationMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AliSms.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysCouponRecord.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TActivityGeneralization.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysCouponRecordService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITActivityGeneralizationService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SysCouponRecordServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TActivityGeneralizationServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderTransferMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderTransferCar.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTransferService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTransferServiceImpl.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverFacialFailMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriverFacialFail.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/misc.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SiteMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DispatchOKTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../DriverNTTravel/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/../DriverNTTravel/guns-admin/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/GeneralizationActivityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/src/main/resources/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/src/main/resources/redis.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/application.yml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-admin/target/classes/redis.properties" beforeDir="false" afterPath="$PROJECT_DIR$/guns-admin/target/classes/redis.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/guns-core/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/guns-core/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -153,6 +185,9 @@
   <component name="GitToolBoxStore">
     <option name="projectConfigVersion" value="5" />
   </component>
+  <component name="HighlightingSettingsPerFile">
+    <setting file="file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java" root0="FORCE_HIGHLIGHTING" />
+  </component>
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
@@ -221,14 +256,6 @@
 }</component>
   <component name="MarkdownSettingsMigration">
     <option name="stateVersion" value="1" />
-  </component>
-  <component name="MavenImportPreferences">
-    <option name="generalSettings">
-      <MavenGeneralSettings>
-        <option name="mavenHome" value="$PROJECT_DIR$/../../../apache-maven/apache-maven-3.6.1" />
-        <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
-      </MavenGeneralSettings>
-    </option>
   </component>
   <component name="MavenProjectNavigator">
     <treeState>
@@ -378,6 +405,9 @@
   <component name="PropertiesComponent"><![CDATA[{
   "keyToString": {
     "Maven.guns-admin [clean].executor": "Run",
+    "Maven.guns-admin [package].executor": "Run",
+    "Maven.guns-parent [clean].executor": "Run",
+    "Maven.guns-parent [package].executor": "Run",
     "RequestMappingsPanelOrder0": "0",
     "RequestMappingsPanelOrder1": "1",
     "RequestMappingsPanelWidth0": "75",
@@ -388,22 +418,26 @@
     "Spring Boot.GunsRestApplication.executor": "Debug",
     "git-widget-placeholder": "master",
     "kotlin-language-version-configured": "true",
-    "last_opened_file_path": "D:/study/NTTravel/ManagementNTTravel",
+    "last_opened_file_path": "D:/study/NTTravel/DispatchOKTravel",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
     "node.js.selected.package.tslint": "(autodetect)",
     "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "MavenSettings",
     "vue.rearranger.settings.migration": "true",
-    "应用程序.ALiSendSms.executor": "Debug"
+    "应用程序.ALiSendSms.executor": "Debug",
+    "应用程序.KaiPiaoUtil.executor": "Debug",
+    "应用程序.Main.executor": "Debug"
   }
 }]]></component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\util" />
+      <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\kaipiao" />
       <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\system\dao\mapping" />
       <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular" />
       <recent name="D:\study\NTTravel\UserNTTravel\guns-admin\src\main\java\com\stylefeng\guns\modular\CharteredCar\dao\mapping" />
-      <recent name="E:\IDEA Workspaces\KYTravel\UserOKTravel\guns-admin\src\test" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
       <recent name="com.stylefeng.guns.modular.system.dao" />
@@ -420,13 +454,39 @@
       </set>
     </option>
   </component>
-  <component name="RunManager" selected="应用程序.ALiSendSms">
+  <component name="RunManager" selected="Spring Boot.GunsRestApplication">
     <configuration name="ALiSendSms" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
       <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.util.ALiSendSms" />
       <module name="guns-admin" />
       <extension name="coverage">
         <pattern>
-          <option name="PATTERN" value="com.stylefeng.guns.modular.system.util.*" />
+          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="Jisuan" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.kaipiao.util.Jisuan" />
+      <module name="guns-admin" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.util.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="KaiPiaoUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
+      <option name="MAIN_CLASS_NAME" value="com.stylefeng.guns.modular.system.kaipiao.KaiPiaoUtil" />
+      <module name="guns-admin" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.stylefeng.guns.modular.system.kaipiao.*" />
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
@@ -468,10 +528,14 @@
       <item itemvalue="JUnit.GunsApplicationTest.queryVipLevelList" />
       <item itemvalue="Spring Boot.GunsRestApplication" />
       <item itemvalue="Spring Boot.GunsApplication" />
+      <item itemvalue="应用程序.Jisuan" />
+      <item itemvalue="应用程序.KaiPiaoUtil" />
       <item itemvalue="应用程序.ALiSendSms" />
     </list>
     <recent_temporary>
       <list>
+        <item itemvalue="应用程序.KaiPiaoUtil" />
+        <item itemvalue="应用程序.Jisuan" />
         <item itemvalue="应用程序.ALiSendSms" />
         <item itemvalue="JUnit.GunsApplicationTest.queryVipLevelList" />
       </list>
@@ -551,7 +615,14 @@
       <workItem from="1716514345062" duration="7625000" />
       <workItem from="1716774493061" duration="7494000" />
       <workItem from="1716793828497" duration="893000" />
-      <workItem from="1716794971520" duration="16681000" />
+      <workItem from="1716794971520" duration="72052000" />
+      <workItem from="1717151384772" duration="15866000" />
+      <workItem from="1717403686403" duration="564000" />
+      <workItem from="1717404706479" duration="1109000" />
+      <workItem from="1717406233505" duration="1384000" />
+      <workItem from="1717408091600" duration="20202000" />
+      <workItem from="1717493135960" duration="4451000" />
+      <workItem from="1717552313971" duration="5726000" />
     </task>
     <servers />
   </component>
@@ -648,49 +719,94 @@
     <breakpoint-manager>
       <breakpoints>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java</url>
-          <line>523</line>
-          <option name="timeStamp" value="8" />
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
+          <line>787</line>
+          <option name="timeStamp" value="35" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java</url>
-          <line>48</line>
-          <option name="timeStamp" value="10" />
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
+          <line>778</line>
+          <option name="timeStamp" value="36" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
+          <line>581</line>
+          <option name="timeStamp" value="37" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java</url>
+          <line>132</line>
+          <option name="timeStamp" value="39" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/email/KaiPiaoEmail.java</url>
+          <line>61</line>
+          <option name="timeStamp" value="43" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
+          <line>1425</line>
+          <option name="timeStamp" value="56" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
+          <line>503</line>
+          <option name="timeStamp" value="57" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java</url>
+          <line>1696</line>
+          <option name="timeStamp" value="66" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
+          <line>489</line>
+          <option name="timeStamp" value="76" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java</url>
+          <line>226</line>
+          <option name="timeStamp" value="81" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java</url>
-          <line>85</line>
-          <option name="timeStamp" value="16" />
+          <line>89</line>
+          <option name="timeStamp" value="85" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java</url>
+          <line>92</line>
+          <option name="timeStamp" value="86" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java</url>
+          <line>361</line>
+          <option name="timeStamp" value="87" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java</url>
+          <line>127</line>
+          <option name="timeStamp" value="88" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java</url>
+          <line>124</line>
+          <option name="timeStamp" value="92" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java</url>
-          <line>71</line>
-          <option name="timeStamp" value="18" />
+          <line>81</line>
+          <option name="timeStamp" value="95" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
-          <line>239</line>
-          <option name="timeStamp" value="19" />
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java</url>
+          <line>92</line>
+          <option name="timeStamp" value="97" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
-          <line>233</line>
-          <option name="timeStamp" value="20" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java</url>
-          <line>200</line>
-          <option name="timeStamp" value="21" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
-          <line>1346</line>
-          <option name="timeStamp" value="22" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java</url>
-          <line>1334</line>
-          <option name="timeStamp" value="23" />
+          <url>file://$PROJECT_DIR$/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java</url>
+          <line>272</line>
+          <option name="timeStamp" value="98" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
diff --git a/UserNTTravel/guns-admin/pom.xml b/UserNTTravel/guns-admin/pom.xml
index ef740dd..d0fb0f5 100644
--- a/UserNTTravel/guns-admin/pom.xml
+++ b/UserNTTravel/guns-admin/pom.xml
@@ -17,6 +17,13 @@
 
     <dependencies>
         <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.7.17</version>
+        </dependency>
+
+
+        <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
         </dependency>
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
index 36823c3..453ad28 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
@@ -160,7 +160,7 @@
     }
 
 
-    public void setCarTime(Integer carTime) {
+    public void setCarTime(double carTime) {
         this.carTime = carTime;
     }
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
index 3ea20e6..7f118f5 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -151,7 +151,9 @@
             orderCharteredCar.setOrderNumber(this.getOrderNum());
             orderCharteredCar.setCompanyId(1);
             orderCharteredCar.setIsDelete(1);
+            orderCharteredCar.setState(1);
             orderCharteredCar.setInsertTime(new Date());
+            orderCharteredCar.setCarTime(charteredCarDto.getCarTime());
 
             String strDateTime = charteredCarDto.getTraveltime();
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d H:m");
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index f409dcd..7817b01 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -49,7 +49,7 @@
     @PostMapping("/base/driver/queryIdleDriver")
     @ApiOperation(value = "获取5公里范围内空闲司机数量", tags = {"用户端-首页"}, notes = "")
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车 7=接送机)", name = "type", required = true, dataType = "int"),
             @ApiImplicitParam(value = "乘客当前定位经度", name = "lon", required = true, dataType = "double"),
             @ApiImplicitParam(value = "乘客当前定位纬度", name = "lat", required = true, dataType = "double")
     })
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
index 9ad4939..e4ad1c8 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
@@ -88,10 +88,10 @@
     @ApiOperation(value = "获取业务对应的所有车型", tags = {"用户端-接送机"}, notes = "")
     @ApiImplicitParams({
     })
-    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModelsTrans(){
+    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModelsTrans(String startLonLat, String endLonLat){
         try {
-            List<Map<String, Object>> list = serverCarModelService.queryServerCarModels(7);
-            return ResultUtil.success(ServerCarModelWarpper.getServerCarModelWarppers(list));
+            return serverCarModelService.queryServerCarModel1(startLonLat, endLonLat);
+
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
index 6ee982a..6a22f6d 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
@@ -130,7 +130,7 @@
         //判断验证码是否正确
 
         //判断该手机号是否注册
-        UserInfo byAccount = userInfoService.selectList(new EntityWrapper<UserInfo>().ne("flag",3)).get(0);
+        UserInfo byAccount = userInfoService.selectList(new EntityWrapper<UserInfo>().eq("phone",phone).ne("flag",3)).get(0);
         //已注册直接添加优惠卷
         TActivityGeneralization tActivityGeneralization = activityGeneralizationService.selectById(acId);
         SysCouponRecord sysCouponRecord = sysCouponRecordService.selectById(tActivityGeneralization.getCouponId());
@@ -153,7 +153,7 @@
             userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(sysCouponRecord.getCouponType())));
             userCouponRecord.setCouponUseType(sysCouponRecord.getCouponUseType());
             userCouponRecord.setInsertTime(date);
-            userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(sysCouponRecord.getFullMoney())));
+            userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(sysCouponRecord.getFullMoney()==null?0:sysCouponRecord.getFullMoney())));
             userCouponRecord.setMoney(Double.valueOf(String.valueOf(sysCouponRecord.getMoney())));
             userCouponRecord.setCompanyId(byAccount.getCompanyId());
             userCouponRecord.setUserId(byAccount.getId());
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
index d80b9e2..0ddbee4 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
@@ -68,7 +68,7 @@
     @RequestMapping(value = "/base/line/recomand", method = RequestMethod.POST)
     @ApiOperation(value = "获取热门路线", tags = {"用户端-跨城"}, notes = "")
     public ResultUtil<List<Line>> recomand(){
-        List<Line> isOpen = lineService.selectList(new EntityWrapper<Line>().eq("isOpen", 1));
+        List<Line> isOpen = lineService.selectList(new EntityWrapper<Line>().eq("isOpen", 1).eq("state",1));
 
         for (Line line : isOpen) {
             List<LineSite> lineId = lineSiteService.selectList(new EntityWrapper<LineSite>().eq("lineId", line.getId()));
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
index a287e89..0cebe65 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -118,16 +118,18 @@
             @ApiImplicitParam(value = "跨城订单id", name = "crossCityOrderId", required = true, dataType = "int"),
             @ApiImplicitParam(value = "摆渡方位(1=跨城起点,2=跨城终点)", name = "place", required = true, dataType = "int"),
             @ApiImplicitParam(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", name = "orderSource", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "乘客姓名(代下单必传)", name = "passengers", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "乘客电话(代下单必传)", name = "passengersPhone", required = false, dataType = "string"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
-                                                  String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, HttpServletRequest request){
+                                                  String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource,String passengers,String passengersPhone, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            return orderCrossCityService.saveOrderFerry(serverCarModelIds, travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+            return orderCrossCityService.saveOrderFerry(serverCarModelIds, travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid,passengers,passengersPhone);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
index 488e3a9..cc106a2 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -249,7 +249,7 @@
      */
     ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                            String startLat, String startAddress, String endLon, String endLat, String endAddress,
-                                           Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception;
+                                           Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid,String name ,String phone) throws Exception;
 
 
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
index 61647f6..2261739 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -72,7 +72,6 @@
         if(c.getTimeInMillis() > sdf.parse(day).getTime()){
             throw new SystemException("日期不能小于当天");
         }
-
         List<Map<String, Object>> list = new ArrayList<>();
         List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId);
         List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 4c7ef31..cdf1dd7 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -33,6 +33,7 @@
 import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
 import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
 import com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl;
+import io.swagger.models.auth.In;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -302,17 +303,17 @@
         }
 
         //计算折扣
-        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
-        if(null != query2){
-            Double special = query2.getSpecial();
-            orderCrossCity.setDiscount(special);
-            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-            if(orderMoney.compareTo(v) > 0){
-                orderCrossCity.setDiscountMoney(orderMoney - v);
-                orderCrossCity.setActivityId(query2.getId());
-                orderMoney = v;
-            }
-        }
+//        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
+//        if(null != query2){
+//            Double special = query2.getSpecial();
+//            orderCrossCity.setDiscount(special);
+//            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+//            if(orderMoney.compareTo(v) > 0){
+//                orderCrossCity.setDiscountMoney(orderMoney - v);
+//                orderCrossCity.setActivityId(query2.getId());
+//                orderMoney = v;
+//            }
+//        }
 
         if(payType == 1){//微信支付
             String app = type == 1 ? "APP" : "JSAPI";
@@ -1389,7 +1390,7 @@
             if(null == distance){
                 System.err.println("查询距离出错了");
             }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toPlainString();
                 t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
             }
             orderServerWarpper.setReservationMileage("0");
@@ -1421,7 +1422,7 @@
     @Override
     public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
                                               String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId,
-                                                  Integer place, Integer orderSource, Integer uid) throws Exception {
+                                                  Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception {
         if(ToolUtil.isEmpty(serverCarModelIds)){
             return ResultUtil.error("请选择服务车型");
         }
@@ -1444,7 +1445,7 @@
                 map.put("orderType", 2);
                 map.put("orderId", resultUtil.getData().getId());
             }else{
-                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid,name,phone);
                 if(resultUtil.getCode() != 200){
                     return resultUtil;
                 }
@@ -1571,7 +1572,7 @@
      * @throws Exception
      */
     private synchronized ResultUtil<BaseWarpper> orderPrivateCar(Integer serverCarModelId, Date travelTime, String placementLon, String placementLat, String startLon, String startLat,
-                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception{
+                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid,String name,String phone) throws Exception{
         //如果出行时间大于当前10分钟则默认为预约单
         Integer reservation = 1;
         if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
@@ -1604,6 +1605,8 @@
         orderPrivateCar.setEndLat(Double.valueOf(endLat));
         orderPrivateCar.setEndAddress(endAddress);
         orderPrivateCar.setSubstitute(0);
+        orderPrivateCar.setPassengers(name);
+        orderPrivateCar.setPassengersPhone(phone);
         if(orderPrivateCar.getSubstitute() == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
             UserInfo userInfo = userInfoService.selectById(uid);
             if(ToolUtil.isEmpty(userInfo.getPhone())){
@@ -1622,12 +1625,11 @@
         orderPrivateCar.setIsDelete(1);
         orderPrivateCarMapper.insert(orderPrivateCar);
 
-        //添加消息
-        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
+        //添加消息        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
 
         BaseWarpper baseWarpper = new BaseWarpper();
         baseWarpper.setId(orderPrivateCar.getId());
-        return ResultUtil.success(baseWarpper);
+       return ResultUtil.success(baseWarpper);
     }
 
 
@@ -1637,13 +1639,15 @@
      * @throws Exception
      */
     public void pushOrder(List<Map<String, Integer>> list) throws Exception{
+        System.err.println("====="+list);
         for(Map<String, Integer> map : list){
             Integer orderType = map.get("orderType");
-            Integer orderId = map.get("orderId");
+            Integer orderId1 = map.get("orderId");
             Thread thread = new Thread(new Runnable() {
                 @Override
                 public void run() {
                     List<Map<String, Integer>> datas = list;
+                    final Integer orderId = orderId1;
                     String vehicle = redisUtil.getValue("VEHICLE");
                     List<Integer> integers = new ArrayList<>();
                     if(ToolUtil.isNotEmpty(vehicle)){
@@ -1651,7 +1655,10 @@
                     }
                     try {
                         if(orderType == 1){//专车
+                            Thread.sleep(1000);
+                            System.err.println("====="+orderId);
                             OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
+                            System.err.println("====="+orderPrivateCar);
                             OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                             Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                             List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
@@ -1673,12 +1680,12 @@
                                     //删除其他无效数据
                                     for(Map<String, Integer> map : datas){
                                         Integer orderType = map.get("orderType");
-                                        Integer orderId = map.get("orderId");
+                                        Integer orderId1 = map.get("orderId");
                                         if(orderType == 1 && orderId != orderPrivateCar.getId()){
-                                            orderPrivateCarMapper.deleteById(orderId);
+                                            orderPrivateCarMapper.deleteById(orderId1);
                                         }
                                         if(orderType == 2){
-                                            orderTaxiMapper.deleteById(orderId);
+                                            orderTaxiMapper.deleteById(orderId1);
                                         }
                                     }
                                     break;
@@ -1742,12 +1749,12 @@
                                     //删除其他无效数据
                                     for(Map<String, Integer> map : datas){
                                         Integer orderType = map.get("orderType");
-                                        Integer orderId = map.get("orderId");
+                                        Integer orderId1 = map.get("orderId");
                                         if(orderType == 1){
-                                            orderPrivateCarMapper.deleteById(orderId);
+                                            orderPrivateCarMapper.deleteById(orderId1);
                                         }
-                                        if(orderType == 2 && orderId != orderTaxi.getId()){
-                                            orderTaxiMapper.deleteById(orderId);
+                                        if(orderType == 2 && orderId1 != orderTaxi.getId()){
+                                            orderTaxiMapper.deleteById(orderId1);
                                         }
                                     }
                                     break;
@@ -1794,7 +1801,7 @@
                 }
             });
             thread.start();
-            threadMap.put(orderId + "_" + orderType, thread);
+            threadMap.put(orderId1 + "_" + orderType, thread);
         }
     }
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 90092a7..b54f179 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -522,16 +522,16 @@
                 map.put("orderId", orderPrivateCar1.getId());
                 orders.add(map);
             }
-            List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
-            for(OrderTaxi orderTaxi : list1){
-                if(orderTaxi.getState() != 1){
-                    return ResultUtil.error("订单已被司机接单,推单取消");
-                }
-                Map<String, Integer> map = new HashMap<>();
-                map.put("orderType", 2);
-                map.put("orderId", orderTaxi.getId());
-                orders.add(map);
-            }
+//            List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
+//            for(OrderTaxi orderTaxi : list1){
+//                if(orderTaxi.getState() != 1){
+//                    return ResultUtil.error("订单已被司机接单,推单取消");
+//                }
+//                Map<String, Integer> map = new HashMap<>();
+//                map.put("orderType", 2);
+//                map.put("orderId", orderTaxi.getId());
+//                orders.add(map);
+//            }
             //开始重新推单
             orderCrossCityService.pushOrder(orders);
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java
new file mode 100644
index 0000000..901a74e
--- /dev/null
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOpenCitySiteMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.TOpenCitySite;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 开通城市表 Mapper 接口
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-02
+ */
+@Mapper
+public interface TOpenCitySiteMapper extends BaseMapper<TOpenCitySite> {
+
+
+}
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
index 7a758c7..917831a 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -290,6 +290,9 @@
         <if test="orderType == 5">
             left join t_order_logistics b on (a.id = b.driverId)
         </if>
+        <if test="orderType == 7">
+            left join t_order_transfer b on (a.id = b.driverId)
+        </if>
         left join t_car c on (b.carId = c.id)
         left join t_car_model d on (c.carModelId = d.id)
         left join t_car_brand f on (d.brandId = f.id)
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java
index 5e7bdbe..7e0adb9 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/KaiPiaoUtil.java
@@ -6,76 +6,88 @@
 import com.stylefeng.guns.modular.system.kaipiao.entity.InvoiceDetails;
 import com.stylefeng.guns.modular.system.kaipiao.entity.MaterialInfo;
 import com.stylefeng.guns.modular.system.kaipiao.entity.ReturnData;
+import com.stylefeng.guns.modular.system.kaipiao.util.Jisuan;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class KaiPiaoUtil {
     public static void main(String[] args) {
+        String money = "1.00";
+
         InvoiceData invoiceData  = new InvoiceData();
         //设置纳税人识别号
-        invoiceData.setNsrsbh("");
+        invoiceData.setNsrsbh("91320682MADJQBFY3G");
 
         InvoiceDetails invoiceDetails = new InvoiceDetails();
         //设置订单号
-        invoiceDetails.setOrderNo("");
+        invoiceDetails.setOrderNo("9d957b7229de4496ae487d1asdf15snwasc");
         //设置发票种类 01专票 02普票
-        invoiceDetails.setFppzDm("02");
+//        invoiceDetails.setFppzDm("02");
         //设置销售方税号
-        invoiceDetails.setXsfnsrsbh("");
+//        invoiceDetails.setXsfnsrsbh("");
         //设置销售方名称
-        invoiceDetails.setXsfmc("");
+//        invoiceDetails.setXsfmc("");
         //设置销售方地址
-        invoiceDetails.setXsfdz("");
+//        invoiceDetails.setXsfdz("");
         //设置销售方电话
-        invoiceDetails.setXsflxdh("");
+//        invoiceDetails.setXsflxdh("");
         //设置销售方开户行
-        invoiceDetails.setXsfkhh("");
+//        invoiceDetails.setXsfkhh("");
         //设置销售方银行账号
-        invoiceDetails.setXsfyhzh("");
+//        invoiceDetails.setXsfyhzh("");
         //设置购买方税号
-        invoiceDetails.setGmfnsrsbh("");
+        invoiceDetails.setGmfnsrsbh("91110105101781969R");
         //设置购买方名称
-        invoiceDetails.setGmfmc("");
+        invoiceDetails.setGmfmc("北京市红牛维他命饮料有限责任公司");
         //设置合计金额
-        invoiceDetails.setHjje("");
+        invoiceDetails.setHjje(Jisuan.jszjToJe(money));
         //设置合计税额
-        invoiceDetails.setHjse("");
+        invoiceDetails.setHjse(Jisuan.jianfa(money,Jisuan.jszjToJe(money)));
         //设置价税总计
-        invoiceDetails.setJshj("");
+        invoiceDetails.setJshj(money);
         //设置开票方纳税人识别号
-        invoiceDetails.setKpfnsrsbh("");
+//        invoiceDetails.setKpfnsrsbh("");
         //设置明细行数
-        invoiceDetails.setSpsl("1");
+//        invoiceDetails.setSpsl("1");
         //设置含税标识
-        invoiceDetails.setHsbz("2");
+//        invoiceDetails.setHsbz("2");
 
 
         //新建一个明细表
         List<MaterialInfo> materialInfos = new ArrayList<>();
         MaterialInfo materialInfo = new MaterialInfo();
+
+//        materialInfo.setXmmc("运输服务*客运服务费");
+//        materialInfo.setHwhyslwfwmc("运输服务*客运服务费");
+        //设置含税单价
+        materialInfo.setHsdj("1.00");
+        //设置不含税金额
+        materialInfo.setJe("0.97");
+        //设置含税金额
+        materialInfo.setHsje("1.00");
+        //设置税率
+        materialInfo.setSlv("0.03");
+        //设置税额
+        materialInfo.setSe(Jisuan.jianfa("1.00",Jisuan.jszjToJe("1.00")));
         materialInfos.add(materialInfo);
         invoiceDetails.setMxzbList(materialInfos);
-
-
-
         invoiceData.setData(invoiceDetails);
-
-
-
         System.err.println(JSONUtil.parse(invoiceData));
         //开票
 
 
 //        String testData = "{\"nsrsbh\": \"91440400MA4WKU0K8A\", \"data\": {\"orderNo\": \"9d957b7229de4496ae487d1041415bbwasc\",\"fppzDm\": \"02\",\"tdyslxDm\":\"\",\"xsfnsrsbh\": \"91440400MA4WKU0K8A\",\"xsfmc\": \"广东欣档科技有限公司\",\"xsfdz\": \"珠海市高新区唐家湾镇大学路101号3栋102号\",\"xsflxdh\": \"13902872568\",\"xsfkhh\": \"中国建设银行股份有限公司珠海市分行营业部\",\"xsfyhzh\": \"22050164864700000347\",\"gmfnsrsbh\": \"91110105101781969R\",\"gmfmc\": \"北京市红牛维他命饮料有限责任公司\",\"gmfdz\": \"北京市朝阳区建国门外大街永安东里8号\",\"gmflxdh\": \"010-85288069\",\"gmfkhh\": \"中国工商银行北京商务中心区支行国贸大厦分理处\",\"gmfyhzh\": \"0200041609067021427\",\"kpr\": \"\",\"skr\": \"\",\"fhr\": \"\",\"hjje\": 69.29,\"hjse\": 9.01,\"jehj\": 0,\"jshj\": \"78.30\",\"kce\": 0,\"kpfnsrsbh\": \"91440400MA4WKU0K8A\",\"spsl\": 1,\"bz\": \"\",\"hsbz\": \"2\",\"sfzsgmfyhzh\": \"N\",\"sfzsxsfyhzh\": \"N\",\"mxzbList\": [{\"xh\": 1,\"fphxzDm\": \"0\",\"xmmc\": \"唯他可可椰子水/凤梨口味/330ML\",\"hwhyslwfwmc\": \"*软饮料*唯他可可椰子水/凤梨口味/330ML\",\"sphfwssflhbbm\": \"1030307020000000000\",\"spfwjc\": \"软饮料\",\"ggxh\": \"12瓶/箱\",\"dw\": \"箱\",\"spsl\": \"1\",\"dj\": 69.29,\"je\": 69.29,\"hsje\": 78.3,\"slv\": \"0.13\",\"se\": 9.01,\"kce\": \"\",\"hsdj\": 78.3,\"bhsdj\": 69.29,\"bhsje\": 69.29}]}}";
-//        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
-//        ReturnData returnData = blueInvOpenDemo.blueInvOpen(testData, "43b9ef0799534e298ca2b6b73a6cab48", "31s1m151s161");
-//        System.out.println(returnData);
+        String testData = JSONUtil.toJsonStr(invoiceData);
+        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
+        System.err.println(invoiceData);
+        ReturnData returnData = blueInvOpenDemo.blueInvOpen(testData, "43b9ef0799534e298ca2b6b73a6cab48", "31s1m151s161");
+        System.out.println(returnData);
 
         //拿文件地址
 //        String testData = "{\n" +
 //                "\t\"nsrsbh\": \"91440400MA4WKU0K8A\",\n" +
-//                "\t\"fphm\": \"24442000000000372439\",\n" +
+//                "\t\"fphm\": \"24442000000000391916\",\n" +
 //                "\t\"kprq\": \"2024-05-29 11:52:25\"\n" +
 //                "}";
 //        SptBlueInvOpenDemo blueInvOpenDemo = new SptBlueInvOpenDemo();
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java
index 475c6d7..16db8b6 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/InvoiceDetails.java
@@ -8,15 +8,21 @@
     public  class InvoiceDetails {
 
         private String orderNo ="";
-        private String fppzDm ="";
-//        private String tdyslxDm ="";
+        private String fppzDm ="02";
+        private String tdyslxDm ="09";
 //        private String cezslxDm ="";
-        private String xsfnsrsbh = "";
-        private String xsfmc ="";
-        private String xsfdz ="";
-        private String xsflxdh ="";
-        private String xsfkhh = "";
-        private String xsfyhzh = "";
+        //销售方税号
+        private String xsfnsrsbh = "91320682MADJQBFY3G";
+        //销售方名称
+        private String xsfmc ="江苏未来出行服务有限公司";
+        //设置销售方地址
+        private String xsfdz ="如皋市城南街道幸福河西路9号10幢三层3101室";
+        //设置销售方电话
+        private String xsflxdh ="13902872568";
+        //设置销售方开户行
+        private String xsfkhh = "中国银行如皋海阳中路支行";
+        //销售方银行账号
+        private String xsfyhzh = "466380715791";
         private String gmfnsrsbh = "";
         private String gmfmc = "";
 //        private String gmfdz = "";
@@ -31,10 +37,10 @@
 //        private String jehj = "";
         private String jshj = "";
 //        private String kce = "";
-        private String kpfnsrsbh = "";
-        private String spsl = "";
+        private String kpfnsrsbh = "91320682MADJQBFY3G";
+        private String spsl = "1";
 //        private String bz = "";
-        private String hsbz = "";
+        private String hsbz = "2";
 //        private String sfwzzfp ;
 //        private String zpFppzDm ;
         private String fpdm = "";
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java
index 17c0dd5..a404130 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/entity/MaterialInfo.java
@@ -5,16 +5,16 @@
 @Data
 public  class MaterialInfo {
 
-        private String xh ="";
-        private String fphxzDm = "";
-        private String xmmc = "";
-        private String spfwjc = "";
-        private String sphfwssflhbbm = "";
-        private String hwhyslwfwmc = "";
-        private String ggxh = "";
-        private String dw = "";
-        private String spsl = "";
-        private String dj = "";
+        private String xh ="1";
+        private String fphxzDm = "0";
+        private String xmmc = "客运服务费";
+        private String spfwjc = "运输服务";
+        private String sphfwssflhbbm = "3010101020203000000";
+        private String hwhyslwfwmc = "运输服务*客运服务费";
+//        private String ggxh = "";
+//        private String dw = "";
+//        private String spsl = "";
+//        private String dj = "";
         private String hsdj = "";
         private String je = "";
         private String hsje = "";
@@ -23,8 +23,8 @@
         private String kce = "";
         private String lslbz = "";
         private String xsyhzcbz = "";
-        private String ssyhzclxDm = "";
-        private String tdzsfsDm = "";
-        private String zzstsgl = "";
+        private String ssyhzclxDm = "01";
+        private String tdzsfsDm = "05";
+        private String zzstsgl = "01";
 
     }
\ No newline at end of file
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java
new file mode 100644
index 0000000..2224e3e
--- /dev/null
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/kaipiao/util/Jisuan.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.kaipiao.util;
+
+import java.math.BigDecimal;
+
+public class Jisuan {
+    public static String jszjToJe(String inputStr) {
+        BigDecimal input = new BigDecimal(inputStr);
+        BigDecimal divisor = new BigDecimal("1.03");
+        BigDecimal result = input.divide(divisor, 2, BigDecimal.ROUND_HALF_DOWN);
+       return result.toPlainString();  // 输出:0.97
+    }
+
+    public static String jianfa(String num1Str,String num2Str) {
+        BigDecimal num1 = new BigDecimal(num1Str);
+        BigDecimal num2 = new BigDecimal(num2Str);
+        BigDecimal result = num1.subtract(num2);
+        result = result.setScale(2, BigDecimal.ROUND_HALF_DOWN);  // 保留两位小数并向下取整
+
+        return result.toPlainString();  // 输出:0.97
+    }
+
+}
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java
new file mode 100644
index 0000000..ee9d1b6
--- /dev/null
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOpenCitySite.java
@@ -0,0 +1,161 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.DataSource;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.models.auth.In;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 开通城市表
+ * </p>
+ *
+ * @author 吕雪
+ * @since 2020-06-02
+ */
+
+@TableName("t_open_city_site")
+public class TOpenCitySite extends Model<TOpenCitySite> {
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        TOpenCitySite that = (TOpenCitySite) o;
+        return Objects.equals(id, that.id) && Objects.equals(lon, that.lon) && Objects.equals(lat, that.lat) && Objects.equals(name, that.name) && Objects.equals(insertTime, that.insertTime) && Objects.equals(openCityId, that.openCityId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, lon, lat, name, insertTime, openCityId);
+    }
+
+    public String getInsertTime1() {
+
+        return insertTime1;
+    }
+
+    public void setInsertTime1(String insertTime1) {
+        this.insertTime1 = insertTime1;
+    }
+
+    @Override
+    public String toString() {
+        return "TOpenCitySite{" +
+                "id=" + id +
+                ", lon='" + lon + '\'' +
+                ", lat='" + lat + '\'' +
+                ", name='" + name + '\'' +
+                ", insertTime=" + insertTime +
+                ", openCityId=" + openCityId +
+                '}';
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getLon() {
+        return lon;
+    }
+
+    public void setLon(String lon) {
+        this.lon = lon;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getOpenCityId() {
+        return openCityId;
+    }
+
+    public void setOpenCityId(Integer openCityId) {
+        this.openCityId = openCityId;
+    }
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    private Integer flag;
+    /**
+     * 类型 1机场2站点
+     */
+    private Integer type;
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    /**
+     * 站点名称
+     */
+    private String name;
+    private Date insertTime;
+    @TableField(exist = false)
+    private String insertTime1;
+    private Integer openCityId;
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
index de7da0c..99372ab 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
@@ -20,6 +20,7 @@
      * @throws Exception
      */
     ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception;
+    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel1(String startLonLat, String endLonLat) throws Exception;
 
 
     /**
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 228c68e..9593a84 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -83,7 +83,10 @@
      */
     @Override
     public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
+        System.err.println("type"+type+"serverCarModelId"+serverCarModelId);
         List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
+        System.err.println("当前获取的司机:"+drivers);
+
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
             String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
@@ -96,6 +99,7 @@
                 }
             }
         }
+        System.err.println("符合距离的司机:"+list);
         return list;
     }
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
index 83df717..f325467 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
@@ -91,28 +91,8 @@
         invoice.setState(1);
         this.insert(invoice);
         // TODO: 2020/6/9 调用开发票第三方SDK
+        String.valueOf(invoice.getMoney());
 
-
-        for(int i = 0; i < jsonArray.size(); i++){
-            JSONObject jsonObject = jsonArray.getJSONObject(i);
-            Integer orderType = jsonObject.getIntValue("type");
-            Integer orderId = jsonObject.getIntValue("id");
-            switch (orderType){
-                case 1://专车
-                    break;
-                case 2://出租车
-                    OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
-                    orderTaxi.setInvoiceId(invoice.getId());
-                    orderTaxiService.updateById(orderTaxi);
-                    break;
-                case 3://跨城出行
-                    break;
-                case 4://同城小件物流
-                    break;
-                case 5://跨城小件物流
-                    break;
-            }
-        }
 
     }
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
index 452a72c..5969e55 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -49,7 +49,7 @@
                     baseWarpper.setId(2);
                     break;
                 case 3:
-                    baseWarpper.setName("直通车");
+                    baseWarpper.setName("城际拼车");
                     baseWarpper.setId(3);
                     break;
                 case 4:
@@ -65,7 +65,7 @@
                     baseWarpper.setId(6);
                     break;
                     case 7:
-                    baseWarpper.setName("接送机");
+                    baseWarpper.setName("接送机/站");
                     baseWarpper.setId(7);
                     break;
             }
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index 1478f2f..97ffcd1 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -76,6 +76,30 @@
         return ResultUtil.success(price);
     }
 
+    @Override
+    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel1(String startLonLat, String endLonLat) throws Exception {
+        //查找与起点匹配的企业(经营范围)
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]);
+        Company query = companyCityService.query(geocode.get("districtCode"));
+        if(null == query){
+            return ResultUtil.error("起点暂无企业提供服务", new ArrayList<>());
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1);
+        if(null == distance){
+            return ResultUtil.error("获取预估距离出错", new ArrayList<>());
+        }
+        String distance1 = distance.get("distance");//距离(米)
+        double distance1_ = Double.valueOf(distance1).doubleValue();
+        String duration = distance.get("duration");//时间(秒)
+        long duration_ = Long.valueOf(duration).longValue();
+
+        List<ServerCarModelWarpper> price = this.getPrice1(query.getId(), distance1_, duration_, 0, 7);
+        if(price.size() == 0){
+            return ResultUtil.error("未获取到可服务的车型", new ArrayList<>());
+        }
+        return ResultUtil.success(price);
+    }
+
 
     /**
      * 获取业务类型对应的所有服务车型
@@ -245,4 +269,151 @@
         return data;
     }
 
+    public List<ServerCarModelWarpper> getPrice1(Integer companyId, double distance, long duration, long wait, Integer type) throws Exception {
+        List<Map<String, Object>> list = serverCarModelMapper.queryServerCarModel(type);
+        List<ServerCarModelWarpper> data = new ArrayList<>();
+        for(Map<String, Object> map : list){
+            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()));
+            if(null == query1){//排除没有设置价格的车型
+                continue;
+            }
+            //开始根据不同的方式计算金额
+            double amount = 0;
+            if(type == 7){//专车
+                JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
+                Double num1 = jsonObject.getDouble("num1");//起步价(元)
+                Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
+                Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
+                Double num4 = jsonObject.getDouble("num4");//里程费(元)
+                Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
+                Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
+                Double num7 = jsonObject.getDouble("num7");//等待费(元)
+                Double num8 = jsonObject.getDouble("num8");//远途费(公里)
+                Double num9 = jsonObject.getDouble("num9");//远途费(公里)
+                Double num10 = jsonObject.getDouble("num10");//远途费(元)
+                Double num11 = jsonObject.getDouble("num11");//远途费(公里)
+                Double num12 = jsonObject.getDouble("num12");//远途费(公里)
+                Double num13 = jsonObject.getDouble("num13");//远途费(元)
+                Double num14 = jsonObject.getDouble("num14");//远途费(公里)
+                Double num15 = jsonObject.getDouble("num15");//远途费(元)
+                String num16 = jsonObject.getString("num16");//夜间费(开始时间)
+                Double num17 = jsonObject.getDouble("num17");//夜间费(元)
+                Double num18 = jsonObject.getDouble("num18");//夜间费(元)
+                Double num19 = jsonObject.getDouble("num19");//夜间费(元)
+                Double num20 = jsonObject.getDouble("num20");//夜间费(元)
+                Double num21 = jsonObject.getDouble("num21");//夜间费(元)
+                Double num22 = jsonObject.getDouble("num22");//夜间费(元)
+                String num23 = jsonObject.getString("num23");//高峰费(开始时间)
+                String num24 = jsonObject.getString("num24");//高峰费(开始时间)
+                Double num25 = jsonObject.getDouble("num25");//高峰费(元)
+                Double num26 = jsonObject.getDouble("num26");//高峰费(元)
+                Double num27 = jsonObject.getDouble("num27");//高峰费(元)
+                Double num28 = jsonObject.getDouble("num28");//高峰费(元)
+                Double num29 = jsonObject.getDouble("num29");//高峰费(元)
+                Double num30 = jsonObject.getDouble("num30");//高峰费(元)
+
+                Date date = new Date();
+                double d = distance / 1000;//实际公里
+                double t = duration / 60;//实际时间
+
+                double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
+                double t1 = (t - num3) < 0 ? 0 : t - num3;//超过起步分钟数的时间
+                double yt1 = 0;//远途1段
+                double yt2 = 0;//远途2段
+                double yt3 = 0;//远途3段
+
+
+                //夜间服务处理逻辑
+                Calendar s = Calendar.getInstance();
+                s.setTime(date);
+                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
+                s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
+
+                Calendar e = Calendar.getInstance();
+                e.setTime(date);
+                e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
+                e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
+
+                if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
+                    if(d > num8.doubleValue()){
+                        yt1 = num20 * (num9 - num8);
+                    }
+                    if(d > num11.doubleValue()){
+                        yt2 = num21 * (num12 - num11);
+                    }
+                    if(d > num14.doubleValue()){
+                        yt3 = num22 * (d - num14);
+                    }
+                    amount = num17 + (d1 * num18) + (t1 * num19) + (wait * num7) + yt1 + yt2 + yt3;
+                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                    serverCarModelWarpper.setMileage(d);
+                    serverCarModelWarpper.setDuration(t);
+                    data.add(serverCarModelWarpper);
+                    continue;
+                }
+
+
+                //高峰时段处理逻辑
+                Calendar s1 = Calendar.getInstance();
+                s1.setTime(date);
+                s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
+                s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
+
+                Calendar e1 = Calendar.getInstance();
+                e1.setTime(date);
+                e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
+                e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
+
+                Calendar s2 = Calendar.getInstance();
+                s2.setTime(date);
+                s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
+                s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
+
+                Calendar e2 = Calendar.getInstance();
+                e2.setTime(date);
+                e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
+                e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
+
+                if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
+                    if(d > num8.doubleValue()){
+                        yt1 = num28 * (num9 - num8);
+                    }
+                    if(d > num11.doubleValue()){
+                        yt2 = num29 * (num12 - num11);
+                    }
+                    if(d > num14.doubleValue()){
+                        yt3 = num30 * (d - num14);
+                    }
+                    amount = num25 + (d1 * num26) + (t1 * num27) + (wait * num7) + yt1 + yt2 + yt3;
+                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                    serverCarModelWarpper.setMileage(d);
+                    serverCarModelWarpper.setDuration(t);
+                    data.add(serverCarModelWarpper);
+                    continue;
+                }
+
+                //其他时间段的计算
+                if(d > num8.doubleValue()){
+                    yt1 = num10 * (num9 - num8);
+                }
+                if(d > num11.doubleValue()){
+                    yt2 = num13 * (num12 - num11);
+                }
+                if(d > num14.doubleValue()){
+                    yt3 = num15 * (d - num14);
+                }
+                amount = num1 + (d1 * num4) + (t1 * num5) + (wait * num7) + yt1 + yt2 + yt3;
+                ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                serverCarModelWarpper.setMileage(d);
+                serverCarModelWarpper.setDuration(t);
+                data.add(serverCarModelWarpper);
+                continue;
+            }
+        }
+        return data;
+    }
+
 }
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 448ce5a..0ca9622 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -150,7 +150,7 @@
                 templateCode = "c230a6b92504473c97c17741e1cc0b9d";//修改密码
                 break;
         }
-        aLiSendSms.sendSms(phone, "SMS_147415322", "{\"code\":\"" + authCode + "\"}");
+        aLiSendSms.sendSms(phone, "SMS_467580138", "{\"code\":\"" + authCode + "\"}");
 //        HuaWeiSMSUtil.sendSms("[\"" + authCode + "\"]", phone, "8822061324669", templateCode);
 //        String sData = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + authCode + "\"}");
 ////        JSONObject jsonObject = JSON.parseObject(sData);
@@ -223,6 +223,7 @@
             userInfo.setConsumption(0D);
             userInfo.setBalance(0D);
             userInfo.setState(1);
+            userInfo.setAvatar("http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/img/a9fb2816e36644b292515ffdd6ebb411.jpg");
 
             //用户所属企业
             if(null != registAreaCode){
@@ -276,7 +277,11 @@
     @Autowired
     private ISysCouponRecordService sysCouponRecordService;
     public void addnewCoupoun(String phone,UserInfo userInfo){
+        if (redisUtil.getValue("counpon:" + phone)==null){
+            return;
+        }
         Integer acId = Integer.valueOf(redisUtil.getValue("counpon:" + phone));
+
         TActivityGeneralization tActivityGeneralization = activityGeneralizationService.selectById(acId);
         SysCouponRecord sysCouponRecord = sysCouponRecordService.selectById(tActivityGeneralization.getCouponId());
         Date date = new Date();
@@ -336,6 +341,7 @@
             userInfo.setConsumption(0D);
             userInfo.setBalance(0D);
             userInfo.setState(1);
+            userInfo.setAvatar("http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/img/a9fb2816e36644b292515ffdd6ebb411.jpg");
 
             //用户所属企业
             if(null != registAreaCode){
@@ -1205,7 +1211,7 @@
      */
     public String getDefaultName(){
         int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001;
-        return "FB" + String.valueOf(num).substring(1);
+        return "WL" + String.valueOf(num).substring(1);
     }
 
 
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
index 8ae57a8..5e6e575 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -11,29 +11,47 @@
 
 public class OssUploadUtil {
 	//OSS图片访问域名
-	public static String oss_domain = "https://fuban.oss-cn-chengdu.aliyuncs.com/";
-	public static String accessKeyId = "LTAI5tLz3gjFn53JyYopYoSU";
-	public static String accessKeySecret = "XR1Nk7gkgpM0bsxmXcHlpQYt9VAXCE";
-	public static String bucketName="fuban";
-	public static String endpoint = "oss-cn-chengdu.aliyuncs.com";
-	
+	public static String oss_domain = "http://bao-weiqing.oss-cn-hangzhou.aliyuncs.com/";
+	public static String accessKeyId = "LTAI5tR4whv88Y5CUucCJEu6";
+	public static String accessKeySecret = "2fObO6LE6U2OzrUfXw9YBlQWHohFvg";
+	public static String bucketName="bao-weiqing";
+	public static String endpoint = "oss-cn-hangzhou.aliyuncs.com";
+
 	public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
-	
+
 	public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException{
 		//CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
 		String fileName = "";
-			if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
-				InputStream content = file.getInputStream();//获得指定文件的输入流
-				ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
-				meta.setContentLength(file.getSize());  // 必须设置ContentLength
-				String originalFilename = file.getOriginalFilename();
-				fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
-				ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
-				if(fileName != null && !"".equals(fileName)){
-					System.out.println(fileName);
-					fileName = oss_domain+"img/"+fileName;
-				}
+		if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
+			InputStream content = file.getInputStream();//获得指定文件的输入流
+			ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
+			meta.setContentLength(file.getSize());  // 必须设置ContentLength
+			String originalFilename = file.getOriginalFilename();
+			fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
+			ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
+			if(fileName != null && !"".equals(fileName)){
+				System.out.println(fileName);
+				fileName = oss_domain+"img/"+fileName;
 			}
+		}
+		return fileName;
+	}
+
+	public static String ossUpload(MultipartFile file) throws IOException{
+		//CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
+		String fileName = "";
+		if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
+			InputStream content = file.getInputStream();//获得指定文件的输入流
+			ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
+			meta.setContentLength(file.getSize());  // 必须设置ContentLength
+			String originalFilename = file.getOriginalFilename();
+			fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
+			ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
+			if(fileName != null && !"".equals(fileName)){
+				System.out.println(fileName);
+				fileName = oss_domain+"img/"+fileName;
+			}
+		}
 		return fileName;
 	}
 }
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
index 5f5c55b..d3b797c 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
@@ -34,7 +34,7 @@
     @ApiModelProperty("货物类型(小件物流)")
     private String cargoType;
     @ApiModelProperty("用车时长")
-    private Integer carTime;
+    private Double carTime;
     @ApiModelProperty("车型")
     private String serverCarModel;
     @ApiModelProperty("订单金额")
@@ -163,11 +163,11 @@
         this.cargoType = cargoType;
     }
 
-    public Integer getCarTime() {
+    public Double getCarTime() {
         return carTime;
     }
 
-    public void setCarTime(Integer carTime) {
+    public void setCarTime(Double carTime) {
         this.carTime = carTime;
     }
 
@@ -237,7 +237,7 @@
                 orderWarpper.setOrderType(null != map.get("orderType") ? Integer.valueOf(String.valueOf(map.get("orderType"))) : 0);
                 orderWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
                 orderWarpper.setCargoType(null != map.get("cargoType") ? String.valueOf(map.get("cargoType")) : "");
-                orderWarpper.setCarTime(null != map.get("carTime") ? Integer.valueOf(String.valueOf(map.get("carTime"))) : 0);
+                orderWarpper.setCarTime(null != map.get("carTime") ? Double.parseDouble(String.valueOf(map.get("carTime"))) : 0);
                 orderWarpper.setServerCarModel(null != map.get("serverCarModel") ? String.valueOf(map.get("serverCarModel")) : "");
                 orderWarpper.setDifferenceMoney(null != map.get("differenceMoney") ? Double.valueOf(map.get("differenceMoney").toString()) : 0D);
                 list.add(orderWarpper);
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java
index a8137a0..8d0da57 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java
@@ -1,11 +1,18 @@
 package com.stylefeng.guns.modular.transfer.controller;
 
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.TOpenCitySiteMapper;
+import com.stylefeng.guns.modular.system.model.OpenCity;
+import com.stylefeng.guns.modular.system.model.TOpenCitySite;
+import com.stylefeng.guns.modular.system.service.IOpenCityService;
 import com.stylefeng.guns.modular.system.service.IOrderService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.AmapGeocoding;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.transfer.model.SiteDto;
 import com.stylefeng.guns.modular.transfer.server.IOrderTransferService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -18,7 +25,9 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Api
 @RestController
@@ -153,15 +162,46 @@
         }
     }
 
+    @Autowired
+    private IOpenCityService openCityService;
+    @Autowired
+    private TOpenCitySiteMapper openCitySiteMapper;
     @ResponseBody
-    @PostMapping("/get/site")
+    @PostMapping("/api/get/site")
     @ApiOperation(value = "获取站点", tags = {"用户端-接送机"}, notes = "")
     @ApiImplicitParams({
-
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil site(double latitude, double longitude){
+    public ResultUtil site(double latitude, double longitude) throws Exception {
+        //获取当前城市名称
+        String cityName = AmapGeocoding.getCityName(latitude, longitude);
+        //查询ids
+        List<OpenCity> cityName1 = openCityService.selectList(new EntityWrapper<OpenCity>().eq("cityName", cityName).ne("flag",3));
+        List<Integer> ids = new ArrayList<>();
+        for (OpenCity openCity : cityName1) {
+            ids.add(openCity.getId());
+        }
+        if (ids.isEmpty()){
+            return ResultUtil.error("当前城市暂无开通站点");
+        }
 
+        List<TOpenCitySite> tOpenCitySites = openCitySiteMapper.selectList(new EntityWrapper<TOpenCitySite>().in("openCityId",ids).ne("flag",3));
+        List<TOpenCitySite> jichang = new ArrayList<>();
+        List<TOpenCitySite> dongche = new ArrayList<>();
 
+        for (TOpenCitySite tOpenCitySite : tOpenCitySites) {
+            if (tOpenCitySite.getType()==1){
+                jichang.add(tOpenCitySite);
+            }
+            if (tOpenCitySite.getType()==2){
+                dongche.add(tOpenCitySite);
+            }
+        }
+
+        SiteDto siteDto = new SiteDto();
+        siteDto.setDongche(dongche);
+        siteDto.setJichang(jichang);
+        return ResultUtil.success(siteDto);
     }
 
 }
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
index 064c445..60f2f76 100644
--- a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
@@ -354,10 +354,10 @@
         startAddress as startAddress,
         endAddress as endAddress,
         payMoney as payMoney,
-        ('专车订单') as orderName,
+        ('接送机订单') as orderName,
         if(invoiceId is null, 1, 2) as invoice,
         unix_timestamp(insertTime) as insertTime,
-        (1) as orderType
+        (7) as orderType
         from t_order_transfer where state in (8, 9)
         <if test="type == 1">
             and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
diff --git a/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java
new file mode 100644
index 0000000..5a5bb88
--- /dev/null
+++ b/UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/SiteDto.java
@@ -0,0 +1,12 @@
+package com.stylefeng.guns.modular.transfer.model;
+
+import com.stylefeng.guns.modular.system.model.TOpenCitySite;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+@Data
+public class SiteDto {
+   private   List<TOpenCitySite> jichang ;
+   private List<TOpenCitySite> dongche ;
+}
diff --git a/UserNTTravel/guns-admin/src/main/resources/application.yml b/UserNTTravel/guns-admin/src/main/resources/application.yml
index 93046a8..14ef492 100644
--- a/UserNTTravel/guns-admin/src/main/resources/application.yml
+++ b/UserNTTravel/guns-admin/src/main/resources/application.yml
@@ -54,6 +54,14 @@
   base-package: com.stylefeng.guns.modular
 
 
+#spring:
+#  datasource:
+#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: WeiLaiChuXing@2024!
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
 spring:
   datasource:
     url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -87,12 +95,12 @@
 
 wx:
   grantType: authorization_code #填authorization_code
-  appid: wx8a8b041a12743151 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 9e49b99856528f934b51e5e280c7c803 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
-  appletsAppid: wxf6c3f324ed4fed7b #小程序APPid
-  appletsAppSecret: e7af3de565406edb55e177eb8d66c525 #
-  mchId: 1514387581 #微信支付分配的商户号
-  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
+  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wxc89ecab90d24edd8 #小程序APPid
+  appletsAppSecret: bca863174d22736a4a9758a67484947e #
+  mchId: 1677823911 #微信支付分配的商户号
+  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
 
 ---
 
@@ -115,7 +123,7 @@
 
 #支付回调地址
 #正式环境
-callbackPath: https://fuban.net/user
+callbackPath: https://weilaigo.cn/user
 #测试环境
 #callbackPath: http://121.37.97.220:81/user
 
diff --git a/UserNTTravel/guns-admin/src/main/resources/redis.properties b/UserNTTravel/guns-admin/src/main/resources/redis.properties
index bc6b0e9..1ec275d 100644
--- a/UserNTTravel/guns-admin/src/main/resources/redis.properties
+++ b/UserNTTravel/guns-admin/src/main/resources/redis.properties
@@ -6,6 +6,7 @@
 # Redis���������Ӷ˿�
 spring.redis.port=6379
 # Redis�������������루Ĭ��Ϊ�գ�
+#spring.redis.password=WeiLaiChuXing@2024!
 spring.redis.password=123456
 #spring.redis.password=
 # ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
diff --git a/UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json b/UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json
index 312304b..4c6854e 100644
--- a/UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json
+++ b/UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json
@@ -67,37 +67,7 @@
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.data-source-names",
-      "type": "java.lang.String[]"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.data-source-names",
-      "type": "java.lang.String[]"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
       "name": "guns.muti-datasource.driver-class-name",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.driver-class-name",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.driver-class-name",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.password",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.password",
       "type": "java.lang.String"
     },
     {
@@ -112,37 +82,7 @@
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.url",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.url",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
       "name": "guns.muti-datasource.username",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.username",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.username",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.validation-query",
-      "type": "java.lang.String"
-    },
-    {
-      "sourceType": "com.stylefeng.guns.core.config.properties.MutiDataSourceProperties",
-      "name": "guns.muti-datasource.validation-query",
       "type": "java.lang.String"
     },
     {
diff --git a/UserNTTravel/guns-admin/target/classes/application.yml b/UserNTTravel/guns-admin/target/classes/application.yml
index 93046a8..14ef492 100644
--- a/UserNTTravel/guns-admin/target/classes/application.yml
+++ b/UserNTTravel/guns-admin/target/classes/application.yml
@@ -54,6 +54,14 @@
   base-package: com.stylefeng.guns.modular
 
 
+#spring:
+#  datasource:
+#    url: jdbc:mysql://127.0.0.1:10633/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: WeiLaiChuXing@2024!
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
 spring:
   datasource:
     url: jdbc:mysql://192.168.110.34:3306/nttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
@@ -87,12 +95,12 @@
 
 wx:
   grantType: authorization_code #填authorization_code
-  appid: wx8a8b041a12743151 #应用唯一标识,在微信开放平台提交应用审核通过后获得
-  appSecret: 9e49b99856528f934b51e5e280c7c803 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
-  appletsAppid: wxf6c3f324ed4fed7b #小程序APPid
-  appletsAppSecret: e7af3de565406edb55e177eb8d66c525 #
-  mchId: 1514387581 #微信支付分配的商户号
-  key: mIyYnFMPd2j1ki1vzUMWhKr4Ve04Mse7 #key为商户平台设置的密钥key:
+  appid: wxc89ecab90d24edd8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: bca863174d22736a4a9758a67484947e #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wxc89ecab90d24edd8 #小程序APPid
+  appletsAppSecret: bca863174d22736a4a9758a67484947e #
+  mchId: 1677823911 #微信支付分配的商户号
+  key: CnqmrOgKqOiEyytQtoyxuaRgRGjcWFnD #key为商户平台设置的密钥key:
 
 ---
 
@@ -115,7 +123,7 @@
 
 #支付回调地址
 #正式环境
-callbackPath: https://fuban.net/user
+callbackPath: https://weilaigo.cn/user
 #测试环境
 #callbackPath: http://121.37.97.220:81/user
 
diff --git a/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
index 7a758c7..917831a 100644
--- a/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
+++ b/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -290,6 +290,9 @@
         <if test="orderType == 5">
             left join t_order_logistics b on (a.id = b.driverId)
         </if>
+        <if test="orderType == 7">
+            left join t_order_transfer b on (a.id = b.driverId)
+        </if>
         left join t_car c on (b.carId = c.id)
         left join t_car_model d on (c.carModelId = d.id)
         left join t_car_brand f on (d.brandId = f.id)
diff --git a/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml b/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
index 064c445..60f2f76 100644
--- a/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
+++ b/UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
@@ -354,10 +354,10 @@
         startAddress as startAddress,
         endAddress as endAddress,
         payMoney as payMoney,
-        ('专车订单') as orderName,
+        ('接送机订单') as orderName,
         if(invoiceId is null, 1, 2) as invoice,
         unix_timestamp(insertTime) as insertTime,
-        (1) as orderType
+        (7) as orderType
         from t_order_transfer where state in (8, 9)
         <if test="type == 1">
             and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
diff --git a/UserNTTravel/guns-admin/target/classes/redis.properties b/UserNTTravel/guns-admin/target/classes/redis.properties
index 7182646..c306fa5 100644
--- a/UserNTTravel/guns-admin/target/classes/redis.properties
+++ b/UserNTTravel/guns-admin/target/classes/redis.properties
@@ -6,6 +6,7 @@
 # Redis���������Ӷ˿�
 spring.redis.port=6379
 # Redis�������������루Ĭ��Ϊ�գ�
+#spring.redis.password=WeiLaiChuXing@2024!
 spring.redis.password=123456
 #spring.redis.password=
 # ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
diff --git a/UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json b/UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json
index b771494..964333e 100644
--- a/UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json
+++ b/UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json
@@ -11,86 +11,103 @@
   "properties": [
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "com.mysql.cj.jdbc.Driver",
       "name": "spring.datasource.driver-class-name",
       "type": "java.lang.String"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "stat",
       "name": "spring.datasource.filters",
       "type": "java.lang.String"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 2,
       "name": "spring.datasource.initial-size",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 20,
       "name": "spring.datasource.max-active",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 20,
       "name": "spring.datasource.max-pool-prepared-statement-per-connection-size",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 60000,
       "name": "spring.datasource.max-wait",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 300000,
       "name": "spring.datasource.min-evictable-idle-time-millis",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 1,
       "name": "spring.datasource.min-idle",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "root",
       "name": "spring.datasource.password",
       "type": "java.lang.String"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": true,
       "name": "spring.datasource.pool-prepared-statements",
       "type": "java.lang.Boolean"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": false,
       "name": "spring.datasource.test-on-borrow",
       "type": "java.lang.Boolean"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": false,
       "name": "spring.datasource.test-on-return",
       "type": "java.lang.Boolean"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": true,
       "name": "spring.datasource.test-while-idle",
       "type": "java.lang.Boolean"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": 60000,
       "name": "spring.datasource.time-between-eviction-runs-millis",
       "type": "java.lang.Integer"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "jdbc:mysql:\/\/127.0.0.1:3306\/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull",
       "name": "spring.datasource.url",
       "type": "java.lang.String"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "root",
       "name": "spring.datasource.username",
       "type": "java.lang.String"
     },
     {
       "sourceType": "com.stylefeng.guns.core.config.properties.DruidProperties",
+      "defaultValue": "SELECT 'x'",
       "name": "spring.datasource.validation-query",
       "type": "java.lang.String"
     }

--
Gitblit v1.7.1