From f72ae151cc12b219cb5f39eea3ec0ea089a6ef2a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 27 八月 2025 23:53:05 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/resources/application-dev.yml                                                            |    2 
 DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml             |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                |   57 
 UserQYTTravel/guns-admin/src/main/resources/application-test.yml                                                           |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java              |  231 +
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                              |    9 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml                     |    4 
 DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java                    |    2 
 UserQYTTravel/guns-admin/src/main/resources/application-prod.yml                                                           |    2 
 DispatchQYTTravel/guns-admin/pom.xml                                                                                       |    5 
 DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java   |   27 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                |    3 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |  321 +-
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java                  | 2852 ++++++++++++++-------------
 DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java             |   19 
 DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java   |   23 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml           |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java                                | 2382 +++++++++++-----------
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java                      |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java     |   13 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                   |   23 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                 |   71 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml       |    4 
 23 files changed, 3,178 insertions(+), 2,883 deletions(-)

diff --git a/DispatchQYTTravel/guns-admin/pom.xml b/DispatchQYTTravel/guns-admin/pom.xml
index db10eb4..b03a69b 100644
--- a/DispatchQYTTravel/guns-admin/pom.xml
+++ b/DispatchQYTTravel/guns-admin/pom.xml
@@ -195,6 +195,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
 
diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
index ef37769..352c699 100644
--- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
+++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
@@ -16,5 +16,5 @@
      * @return
      */
     Map<String, Object> query(@Param("companyId") Integer companyId, @Param("type") Integer type,
-                              @Param("serverCarModelId") Integer serverCarModelId);
+                              @Param("serverCarModelId") Integer serverCarModelId, @Param("systemPriceCityId") Integer systemPriceCityId);
 }
diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
index e79ec0a..b4ee5e6 100644
--- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
+++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
@@ -26,12 +26,15 @@
         isOpen as isOpen,
         isOpenExclusive as isOpenExclusive,
         isOpenPrice as isOpenPrice
-        from t_system_price where state = 1 and companyId = #{companyId}
+        from t_system_price where state = 1
         <if test="null != type">
             and `type` = #{type}
         </if>
         <if test="null != serverCarModelId">
             and serverCarModelId = #{serverCarModelId}
         </if>
+        <if test="null != systemPriceCityId">
+            and systemPriceCityId = #{systemPriceCityId}
+        </if>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java
index c4a07b8..0559021 100644
--- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java
+++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java
@@ -387,18 +387,18 @@
         orderCrossCity.setIsDelete(1);
         orderCrossCity.setIsReassign(1);
         //调用高德创建轨迹
-        String s = gdFalconUtil.selectTerminal(driver.getPhone());
-        String track = gdFalconUtil.createTrack(s);
-        orderCrossCity.setTrackId(track);
+//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+//        String track = gdFalconUtil.createTrack(s);
+//        orderCrossCity.setTrackId(track);
 
         //调用移动的小号接口
-        Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
-        Region region = regionMapper.query(geocode.get("districtCode"));
-        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
-        if(String.valueOf(map.get("code")).equals("200")){
-            orderCrossCity.setTelX(map.get("telX"));
-            orderCrossCity.setBindId(map.get("bindId"));
-        }
+//        Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+//        Region region = regionMapper.query(geocode.get("districtCode"));
+//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
+//        if(String.valueOf(map.get("code")).equals("200")){
+//            orderCrossCity.setTelX(map.get("telX"));
+//            orderCrossCity.setBindId(map.get("bindId"));
+//        }
         if(orderCrossCityWarpper.getTravelMode() == 2){//包车
             orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber());
             orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat());
@@ -491,7 +491,8 @@
         Timer timer = new Timer();
         timer.schedule(timerTask, 30 * 60 * 1000);
 
-        return payMoneyUtil.weixinpay("完成订单", "", orderCrossCity.getId() + "_3_" + UUIDUtil.getRandomCode(5), orderCrossCity.getOrderMoney().toString(), "/base/wxPayOrderTaxi", "NATIVE", userInfo.getAppletsOpenId());
+//        return payMoneyUtil.weixinpay("完成订单", "", orderCrossCity.getId() + "_3_" + UUIDUtil.getRandomCode(5), orderCrossCity.getOrderMoney().toString(), "/base/wxPayOrderTaxi", "NATIVE", userInfo.getAppletsOpenId());
+        return ResultUtil.success();
     }
 
 
diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index d342706..747c60d 100644
--- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -6,14 +6,8 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
 import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
-import com.stylefeng.guns.modular.system.model.Company;
-import com.stylefeng.guns.modular.system.model.OpenCity;
-import com.stylefeng.guns.modular.system.model.OpenCityBusiness;
-import com.stylefeng.guns.modular.system.model.ServerCarModel;
-import com.stylefeng.guns.modular.system.service.ICompanyCityService;
-import com.stylefeng.guns.modular.system.service.IOpenCityBusinessService;
-import com.stylefeng.guns.modular.system.service.IOpenCityService;
-import com.stylefeng.guns.modular.system.service.IServerCarModelService;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
 import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
@@ -49,6 +43,9 @@
 
     @Autowired
     private IOpenCityBusinessService openCityBusinessService;
+
+    @Resource
+    private ISystemPriceCityService systemPriceCityService;
 
 
 
@@ -91,7 +88,7 @@
         String duration = distance.get("duration");//时间(秒)
         long duration_ = Long.valueOf(duration).longValue();
 
-        List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1);
+        List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1, geocode);
 //        if(price.size() == 0){
 //            return ResultUtil.error("未获取到可服务的车型", new ArrayList<>());
 //        }
@@ -120,11 +117,19 @@
      * @return
      * @throws Exception
      */
-    public List<ServerCarModelWarpper> getPrice(Integer companyId, double distance, long duration, long wait, Integer type) throws Exception {
+    public List<ServerCarModelWarpper> getPrice(Integer companyId, double distance, long duration, long wait, Integer type, Map<String, String> geocode) throws Exception {
+        String provinceCode = geocode.get("provinceCode");
+        String cityCode = geocode.get("cityCode");
+        String districtCode = geocode.get("districtCode");
+        SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(provinceCode, cityCode, districtCode);
+        System.err.println("获取匹配的城市价格配置:" + systemPriceCity);
+        if (null == systemPriceCity) {
+            return new ArrayList<>();
+        }
         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()));
+            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()), systemPriceCity.getId());
             if(null == query1){//排除没有设置价格的车型
                 continue;
             }
diff --git a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java
index e6d0e05..da0f88b 100644
--- a/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java
+++ b/DispatchQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java
@@ -9,12 +9,18 @@
 import com.stylefeng.guns.modular.system.service.IDispatchService;
 import com.stylefeng.guns.modular.system.service.ISiteService;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
+import com.stylefeng.guns.modular.system.util.model.GeoFencingPolygon;
 import com.stylefeng.guns.modular.system.warpper.SiteWarpper;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -31,6 +37,9 @@
 
     @Autowired
     private IDispatchService dispatchService;
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
 
 
 
@@ -135,8 +144,14 @@
                 }
             }
             if(Integer.valueOf(map.get("type").toString()) == 2){//电子围栏
-                List<String> list1 = gdMapElectricFenceUtil.monitorElectricFenc("", lonLat);
-                return list1.size() > 0 ? true : false;
+                String[] split = lonLat.split(",");
+                GeoJsonPoint point = new GeoJsonPoint(Double.valueOf(split[0]), Double.valueOf(split[1]));
+                Query query = Query.query(Criteria.where("geoJsonPolygon").intersects(point));
+                List<GeoFencingPolygon> geoFencingPolygons = mongoTemplate.find(query, GeoFencingPolygon.class);
+                List<Integer> s_sites = geoFencingPolygons.stream().map(GeoFencingPolygon::getSiteId).collect(Collectors.toList());
+                if(s_sites.contains(siteId)){
+                    return true;
+                }
             }
         }
         return false;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 6b27477..fee9b60 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -1471,24 +1471,27 @@
                     case 1:
                         OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                         orderPrivateCar.setState(9);
+                        orderPrivateCar.setPayTime(new Date());
                         orderPrivateCarService.updateById(orderPrivateCar);
-                        Driver driver1 = null;
-                        Company company = null;
-                        //中台修改订单状态
-                        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-                        request.setOrderId(orderPrivateCar.getTravelId());
-                        request.setStatus(orderPrivateCar.getState());
-                        if (null != orderPrivateCar.getDriverId()) {
-                            driver1 = driverService.selectById(orderPrivateCar.getDriverId());
-                            company = companyService.selectById(driver1.getCompanyId());
-                            request.setDriverId(driver1.getEmpId().toString());
-                            request.setSupplierShopId(company.getEnterCode());
+                        if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+                            Driver driver1 = null;
+                            Company company = null;
+                            //中台修改订单状态
+                            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                            request.setOrderId(orderPrivateCar.getTravelId());
+                            request.setStatus(orderPrivateCar.getState());
+                            if (null != orderPrivateCar.getDriverId()) {
+                                driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+                                company = companyService.selectById(driver1.getCompanyId());
+                                request.setDriverId(driver1.getEmpId().toString());
+                                request.setSupplierShopId(company.getEnterCode());
+                            }
+                            if (2 == orderPrivateCar.getPromotion()) {
+                                Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+                                request.setPromoterId(driver2.getEmpId().toString());
+                            }
+                            OrderUtil.modifyTravelItinerary(request);
                         }
-                        if (2 == orderPrivateCar.getPromotion()) {
-                            Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
-                            request.setPromoterId(driver2.getEmpId().toString());
-                        }
-                        OrderUtil.modifyTravelItinerary(request);
                         new Thread(new Runnable() {
                             @Override
                             public void run() {
@@ -1502,24 +1505,27 @@
                     case 2:
                         OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                         orderTaxi.setState(9);
+                        orderTaxi.setPayTime(new Date());
                         orderTaxiService.updateById(orderTaxi);
-                        Driver driver = null;
-                        Company company1 = null;
-                        //中台修改订单状态
-                        ModifyTravelItineraryRequest request2 = new ModifyTravelItineraryRequest();
-                        request2.setOrderId(orderTaxi.getTravelId());
-                        request2.setStatus(orderTaxi.getState());
-                        if (null != orderTaxi.getDriverId()) {
-                            driver = driverService.selectById(orderTaxi.getDriverId());
-                            company1 = companyService.selectById(driver.getCompanyId());
-                            request2.setDriverId(driver.getEmpId().toString());
-                            request2.setSupplierShopId(company1.getEnterCode());
+                        if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
+                            Driver driver = null;
+                            Company company1 = null;
+                            //中台修改订单状态
+                            ModifyTravelItineraryRequest request2 = new ModifyTravelItineraryRequest();
+                            request2.setOrderId(orderTaxi.getTravelId());
+                            request2.setStatus(orderTaxi.getState());
+                            if (null != orderTaxi.getDriverId()) {
+                                driver = driverService.selectById(orderTaxi.getDriverId());
+                                company1 = companyService.selectById(driver.getCompanyId());
+                                request2.setDriverId(driver.getEmpId().toString());
+                                request2.setSupplierShopId(company1.getEnterCode());
+                            }
+                            if (2 == orderTaxi.getPromotion()) {
+                                Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+                                request2.setPromoterId(driver2.getEmpId().toString());
+                            }
+                            OrderUtil.modifyTravelItinerary(request2);
                         }
-                        if (2 == orderTaxi.getPromotion()) {
-                            Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
-                            request2.setPromoterId(driver2.getEmpId().toString());
-                        }
-                        OrderUtil.modifyTravelItinerary(request2);
                         break;
                     case 3:
                         OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
@@ -2173,7 +2179,6 @@
             if (orderNo.contains("PR")) {
                 orderNo = orderNo.substring(2);
                 orderPrivateCarService.payOrderPrivateCarCallback(Integer.valueOf(orderNo), payId, 1);
-                orderPrivateCarService.promotion(Integer.valueOf(orderNo));
             }
             //出租车
             if (orderNo.contains("TA")) {
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index fcc3729..dcd18cc 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -355,11 +355,10 @@
                 return ResultUtil.tokenErr();
             }
             UserInfo userInfo = userInfoService.selectById(uid);
-
-
-
+            Driver driver = driverService.selectById(driverId);
             // 是否需要绑定司机
-            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", userInfo.getRegistAreaCode()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
+            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>()
+                    .eq("districtCode", driver.getPlaceOfEmployment()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
             System.out.println("111232"+tDriverPromotionActivity);
             if(tDriverPromotionActivity!=null){
                 System.out.println("11111");
@@ -374,7 +373,7 @@
                     userInfoService.updateById(userInfo);
                 }
             }else {
-                Region code = regionService.selectOne(new EntityWrapper<Region>().eq("code", userInfo.getRegistAreaCode()));
+                Region code = regionService.selectOne(new EntityWrapper<Region>().eq("code", driver.getPlaceOfEmployment()));
                 Region region = regionService.selectById(code.getParentId());
                 TDriverPromotionActivity tDriverPromotionActivity1 = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("cityCode", region.getCode()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
                 if(tDriverPromotionActivity1!=null) {
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
index 284f34f..901e0b5 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
@@ -320,7 +320,7 @@
 		a.driverId as driverId,
         a.peopleNumber as peopleNumber,
         a.seatNumber as seatNumber,
-		a.orderMoney as orderMoney,
+        if(a.abnormal = 2 and a.abnormalStatus = 2, a.responsibilityMoney, a.orderMoney) as orderMoney,
 		a.redPacketMoney as redPacketMoney,
 		a.couponMoney as couponMoney,
 		a.discountMoney as discountMoney,
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index f193cc9..f01a2c4 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -1480,6 +1480,15 @@
 		if (null == orderCrossCity) {
 			return ResultUtil.error("获取数据失败,订单信息有误");
 		}
+		if (orderCrossCity.getState() == 5) {
+			return ResultUtil.error("订单已开始服务,不能取消订单");
+		}
+		if (orderCrossCity.getState() == 6 || orderCrossCity.getState() == 8 || orderCrossCity.getState() == 9) {
+			return ResultUtil.error("订单已完成,不能取消订单");
+		}
+		if (orderCrossCity.getState() == 10) {
+			return ResultUtil.error("订单已被取消,不能重复操作");
+		}
 		OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
 		double amount = 0;
 		CancleOrder query = cancleOrderService.query(1, 3, openCity.getId());
@@ -2517,7 +2526,7 @@
 								//所有推送完后的处理
 								Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId());
 								if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) {
-									pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+									pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
 									OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId());
 									pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
 									break;
@@ -2587,7 +2596,7 @@
 								//所有推送完后的处理
 								Boolean b = pushEndMap.get(orderTaxi.getCrossCityOrderId());
 								if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) {
-									pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
+									pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, 1);
 									OrderTaxiServiceImpl.orderIds.remove(orderTaxi.getId());
 									pushEndMap.put(orderTaxi.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
 								}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
index 1edad18..1977a90 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -336,7 +336,7 @@
         a.endLat as endLat,
         a.endAddress as endAddress,
 		a.driverId as driverId,
-		a.orderMoney as orderMoney,
+		if(a.abnormal = 2 and a.abnormalStatus = 2, a.responsibilityMoney, a.orderMoney) as orderMoney,
         a.startMileage as startMileage,
         a.startMoney as startMoney,
         a.mileageKilometers as mileageKilometers,
@@ -392,7 +392,7 @@
 		a.abnormalIntro,
 		a.abnormalImg,
 		a.companyId,
-        IF(a.abnormalIntro is null and a.recoveryOrder = 1, 0, 1) as appealButton
+        IF((a.abnormalIntro is null and a.recoveryOrder = 1) or (a.state in (8, 9) and null = a.abnormal), 0, 1) as appealButton
         from t_order_private_car a
 		left join t_driver b on (a.driverId = b.id)
 		left join t_car c on (a.carId = c.id)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
index da72e33..a7fd844 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -13,1407 +13,1469 @@
  */
 @TableName("t_order_private_car")
 public class OrderPrivateCar {
-	/**
-	 * 主键
-	 */
-	@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;
-	/**
-	 * 服务车型
-	 */
-	@TableField("serverCarModel")
-	private String serverCarModel;
-	/**
-	 * 服务车型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("holidayFee")
-	private Double holidayFee;
-	/**
-	 * 红包抵扣金额
-	 */
-	@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("taxiCardId")
-	private Integer taxiCardId;
-	/**
-	 * 打车卡记录id
-	 */
-	@TableField("userTaxiCardId")
-	private Integer userTaxiCardId;
-	/**
-	 * 优惠金额
-	 */
-	@TableField("discountAmount")
-	private Double discountAmount;
-	/**
-	 * 公司id
-	 */
-	@TableField("companyId")
-	private Integer companyId;
-	/**
-	 * 支付金额
-	 */
-	@TableField("payMoney")
-	private Double payMoney;
-	//感谢费
-	@TableField("thankYouFee")
-	private Double thankYouFee;
-	/**
-	 * 是否是代下单(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;
-	/**
-	 * 乘车人数
-	 */
-	@TableField("peopleNum")
-	private Integer peopleNum;
-	/**
-	 * 乘车类型(1=独享,2=一口价,3=拼车)
-	 */
-	@TableField("rideType")
-	private Integer rideType;
-	
-	@TableField("pid")
-	private Integer pid;
-	
-	/**
-	 * 是否异常订单 1否 2是
-	 */
-	@TableField("abnormal")
-	private Integer abnormal;
-	
-	
-	/**
-	 * 推广订单 1否 2是
-	 */
-	@TableField("promotion")
-	private Integer promotion;
-	
+    /**
+     * 主键
+     */
+    @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;
+    /**
+     * 服务车型
+     */
+    @TableField("serverCarModel")
+    private String serverCarModel;
+    /**
+     * 服务车型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("holidayFee")
+    private Double holidayFee;
+    /**
+     * 红包抵扣金额
+     */
+    @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("taxiCardId")
+    private Integer taxiCardId;
+    /**
+     * 打车卡记录id
+     */
+    @TableField("userTaxiCardId")
+    private Integer userTaxiCardId;
+    /**
+     * 优惠金额
+     */
+    @TableField("discountAmount")
+    private Double discountAmount;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    //感谢费
+    @TableField("thankYouFee")
+    private Double thankYouFee;
+    /**
+     * 是否是代下单(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;
+    /**
+     * 乘车人数
+     */
+    @TableField("peopleNum")
+    private Integer peopleNum;
+    /**
+     * 乘车类型(1=独享,2=一口价,3=拼车)
+     */
+    @TableField("rideType")
+    private Integer rideType;
 
-	private Date successTime;
-	private String promotionUser;
-	
-	private String promotionPhone;
-	
-	
-	/**
-	 * 乘客反馈情况
-	 */
-	@TableField("abnormalIntro")
-	private String abnormalIntro;
-	
-	/**
-	 * 乘客反馈图片
-	 */
-	@TableField("abnormalImg")
-	private String abnormalImg;
-	
-	
-	private Integer promotionDriverId;
-	
-	private BigDecimal promotionMoney;
-	
-	
-	private Integer totalPeopleNum;
-	/**
-	 * 预估里程(米)
-	 */
-	private Double estimateMileage;
-	
-	private Double estimateTime;
-	
-	private Integer spellSuccess;
-	
-	private String splitAllocation;
-	
-	private Integer responsibilityType;
-	
-	private Long promotionActivityId;
-	/**
-	 * 中台行程id
-	 */
-	private String travelId;
-	/**
-	 * 中台是否已创建订单(0=否,1=是)
-	 */
-	private Integer isCreated;
-	/**
-	 * 是否是追缴单(0=否,1=是)
-	 */
-	private Integer recoveryOrder;
-	/**
-	 * 是否生成追缴单(0=否,1=是)
-	 */
-	private Integer isGenerateRecoveryOrder;
-	/**
-	 * 原始订单id
-	 */
-	private Integer oldOrderId;
+    @TableField("pid")
+    private Integer pid;
 
-	public Date getSuccessTime() {
-		return successTime;
-	}
+    /**
+     * 是否异常订单 1否 2是
+     */
+    @TableField("abnormal")
+    private Integer abnormal;
 
-	public void setSuccessTime(Date successTime) {
-		this.successTime = successTime;
-	}
 
-	public String getPromotionUser() {
-		return promotionUser;
-	}
-	
-	public void setPromotionUser(String promotionUser) {
-		this.promotionUser = promotionUser;
-	}
-	
-	public String getPromotionPhone() {
-		return promotionPhone;
-	}
-	
-	public void setPromotionPhone(String promotionPhone) {
-		this.promotionPhone = promotionPhone;
-	}
-	
-	public Integer getResponsibilityType() {
-		return responsibilityType;
-	}
-	
-	public void setResponsibilityType(Integer responsibilityType) {
-		this.responsibilityType = responsibilityType;
-	}
-	
-	public Integer getPromotion() {
-		return promotion;
-	}
-	
-	public void setPromotion(Integer promotion) {
-		this.promotion = promotion;
-	}
-	
-	public Integer getPromotionDriverId() {
-		return promotionDriverId;
-	}
-	
-	public void setPromotionDriverId(Integer promotionDriverId) {
-		this.promotionDriverId = promotionDriverId;
-	}
-	
-	public BigDecimal getPromotionMoney() {
-		return promotionMoney;
-	}
-	
-	public void setPromotionMoney(BigDecimal promotionMoney) {
-		this.promotionMoney = promotionMoney;
-	}
-	
-	public Integer getAbnormal() {
-		return abnormal;
-	}
-	
-	public void setAbnormal(Integer abnormal) {
-		this.abnormal = abnormal;
-	}
-	
-	public String getAbnormalIntro() {
-		return abnormalIntro;
-	}
-	
-	public void setAbnormalIntro(String abnormalIntro) {
-		this.abnormalIntro = abnormalIntro;
-	}
-	
-	public String getAbnormalImg() {
-		return abnormalImg;
-	}
-	
-	public void setAbnormalImg(String abnormalImg) {
-		this.abnormalImg = abnormalImg;
-	}
-	
-	public Integer getSpellSuccess() {
-		return spellSuccess;
-	}
-	
-	public void setSpellSuccess(Integer spellSuccess) {
-		this.spellSuccess = spellSuccess;
-	}
-	
-	public Double getEstimateTime() {
-		return estimateTime;
-	}
-	
-	public void setEstimateTime(Double estimateTime) {
-		this.estimateTime = estimateTime;
-	}
-	
-	public Double getEstimateMileage() {
-		return estimateMileage;
-	}
-	
-	public void setEstimateMileage(Double estimateMileage) {
-		this.estimateMileage = estimateMileage;
-	}
-	
-	public Integer getTotalPeopleNum() {
-		return totalPeopleNum;
-	}
-	
-	public void setTotalPeopleNum(Integer totalPeopleNum) {
-		this.totalPeopleNum = totalPeopleNum;
-	}
-	
-	public Integer getPid() {
-		return pid;
-	}
-	
-	public void setPid(Integer pid) {
-		this.pid = pid;
-	}
-	
-	public Integer getPeopleNum() {
-		return peopleNum;
-	}
-	
-	public void setPeopleNum(Integer peopleNum) {
-		this.peopleNum = peopleNum;
-	}
-	
-	public Integer getRideType() {
-		return rideType;
-	}
-	
-	public void setRideType(Integer rideType) {
-		this.rideType = rideType;
-	}
-	
-	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 String getServerCarModel() {
-		return serverCarModel;
-	}
-	
-	public void setServerCarModel(String serverCarModel) {
-		this.serverCarModel = serverCarModel;
-	}
-	
-	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 getHolidayFee() {
-		return holidayFee;
-	}
-	
-	public void setHolidayFee(Double holidayFee) {
-		this.holidayFee = holidayFee;
-	}
-	
-	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 getTaxiCardId() {
-		return taxiCardId;
-	}
-	
-	public void setTaxiCardId(Integer taxiCardId) {
-		this.taxiCardId = taxiCardId;
-	}
-	
-	public Integer getUserTaxiCardId() {
-		return userTaxiCardId;
-	}
-	
-	public void setUserTaxiCardId(Integer userTaxiCardId) {
-		this.userTaxiCardId = userTaxiCardId;
-	}
-	
-	public Double getDiscountAmount() {
-		return discountAmount;
-	}
-	
-	public void setDiscountAmount(Double discountAmount) {
-		this.discountAmount = discountAmount;
-	}
-	
-	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 Double getThankYouFee() {
-		return thankYouFee;
-	}
-	
-	public void setThankYouFee(Double thankYouFee) {
-		this.thankYouFee = thankYouFee;
-	}
-	
-	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 String getSplitAllocation() {
-		return splitAllocation;
-	}
-	
-	public void setSplitAllocation(String splitAllocation) {
-		this.splitAllocation = splitAllocation;
-	}
-	
-	public String getTravelId() {
-		return travelId;
-	}
-	
-	public void setTravelId(String travelId) {
-		this.travelId = travelId;
-	}
-	
-	public Integer getIsCreated() {
-		return isCreated;
-	}
-	
-	public void setIsCreated(Integer isCreated) {
-		this.isCreated = isCreated;
-	}
-	
-	public Integer getRecoveryOrder() {
-		return recoveryOrder;
-	}
-	
-	public void setRecoveryOrder(Integer recoveryOrder) {
-		this.recoveryOrder = recoveryOrder;
-	}
-	
-	public Long getPromotionActivityId() {
-		return promotionActivityId;
-	}
-	
-	public void setPromotionActivityId(Long promotionActivityId) {
-		this.promotionActivityId = promotionActivityId;
-	}
+    /**
+     * 推广订单 1否 2是
+     */
+    @TableField("promotion")
+    private Integer promotion;
 
-	public Integer getIsGenerateRecoveryOrder() {
-		return isGenerateRecoveryOrder;
-	}
 
-	public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
-		this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
-	}
+    private Date successTime;
+    private String promotionUser;
 
-	public Integer getOldOrderId() {
-		return oldOrderId;
-	}
+    private String promotionPhone;
 
-	public void setOldOrderId(Integer oldOrderId) {
-		this.oldOrderId = oldOrderId;
-	}
 
-	@Override public String toString() {
-	return "OrderPrivateCar{" +
-			"id=" + id +
-			", type=" + type +
-			", crossCityOrderId=" + crossCityOrderId +
-			", place=" + place +
-			", userId=" + userId +
-			", serverCarModel='" + serverCarModel + '\'' +
-			", 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 +
-			", holidayFee=" + holidayFee +
-			", redPacketMoney=" + redPacketMoney +
-			", couponMoney=" + couponMoney +
-			", redPacketId=" + redPacketId +
-			", couponId=" + couponId +
-			", discount=" + discount +
-			", discountMoney=" + discountMoney +
-			", activityId=" + activityId +
-			", taxiCardId=" + taxiCardId +
-			", userTaxiCardId=" + userTaxiCardId +
-			", discountAmount=" + discountAmount +
-			", companyId=" + companyId +
-			", payMoney=" + payMoney +
-			", thankYouFee=" + thankYouFee +
-			", 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 + '\'' +
-			", peopleNum=" + peopleNum +
-			", rideType=" + rideType +
-			", pid=" + pid +
-			", abnormal=" + abnormal +
-			", promotion=" + promotion +
-			", promotionUser='" + promotionUser + '\'' +
-			", promotionPhone='" + promotionPhone + '\'' +
-			", abnormalIntro='" + abnormalIntro + '\'' +
-			", abnormalImg='" + abnormalImg + '\'' +
-			", promotionDriverId=" + promotionDriverId +
-			", promotionMoney=" + promotionMoney +
-			", totalPeopleNum=" + totalPeopleNum +
-			", estimateMileage=" + estimateMileage +
-			", estimateTime=" + estimateTime +
-			", spellSuccess=" + spellSuccess +
-			", splitAllocation='" + splitAllocation + '\'' +
-			", responsibilityType=" + responsibilityType +
-			", promotionActivityId=" + promotionActivityId +
-			", travelId='" + travelId + '\'' +
-			", isCreated=" + isCreated +
-			", recoveryOrder=" + recoveryOrder +
-			'}';
-}}
+    /**
+     * 乘客反馈情况
+     */
+    @TableField("abnormalIntro")
+    private String abnormalIntro;
+
+    /**
+     * 乘客反馈图片
+     */
+    @TableField("abnormalImg")
+    private String abnormalImg;
+
+
+    private Integer promotionDriverId;
+
+    private BigDecimal promotionMoney;
+
+
+    private Integer totalPeopleNum;
+    /**
+     * 预估里程(米)
+     */
+    private Double estimateMileage;
+
+    private Double estimateTime;
+
+    private Integer spellSuccess;
+
+    private String splitAllocation;
+
+    private Integer responsibilityType;
+
+    private Long promotionActivityId;
+    /**
+     * 中台行程id
+     */
+    private String travelId;
+    /**
+     * 中台是否已创建订单(0=否,1=是)
+     */
+    private Integer isCreated;
+    /**
+     * 是否是追缴单(0=否,1=是)
+     */
+    private Integer recoveryOrder;
+    /**
+     * 是否生成追缴单(0=否,1=是)
+     */
+    private Integer isGenerateRecoveryOrder;
+    /**
+     * 原始订单id
+     */
+    private Integer oldOrderId;
+
+    private Integer abnormalStatus;
+
+    private BigDecimal responsibilityMoney;
+
+    private String voice;
+
+    private Date voiceTime;
+
+    private Date recoveryOrderCreateDate;
+
+    private Date payTime;
+
+    public Date getSuccessTime() {
+        return successTime;
+    }
+
+    public void setSuccessTime(Date successTime) {
+        this.successTime = successTime;
+    }
+
+    public String getPromotionUser() {
+        return promotionUser;
+    }
+
+    public void setPromotionUser(String promotionUser) {
+        this.promotionUser = promotionUser;
+    }
+
+    public String getPromotionPhone() {
+        return promotionPhone;
+    }
+
+    public void setPromotionPhone(String promotionPhone) {
+        this.promotionPhone = promotionPhone;
+    }
+
+    public Integer getResponsibilityType() {
+        return responsibilityType;
+    }
+
+    public void setResponsibilityType(Integer responsibilityType) {
+        this.responsibilityType = responsibilityType;
+    }
+
+    public Integer getPromotion() {
+        return promotion;
+    }
+
+    public void setPromotion(Integer promotion) {
+        this.promotion = promotion;
+    }
+
+    public Integer getPromotionDriverId() {
+        return promotionDriverId;
+    }
+
+    public void setPromotionDriverId(Integer promotionDriverId) {
+        this.promotionDriverId = promotionDriverId;
+    }
+
+    public BigDecimal getPromotionMoney() {
+        return promotionMoney;
+    }
+
+    public void setPromotionMoney(BigDecimal promotionMoney) {
+        this.promotionMoney = promotionMoney;
+    }
+
+    public Integer getAbnormal() {
+        return abnormal;
+    }
+
+    public void setAbnormal(Integer abnormal) {
+        this.abnormal = abnormal;
+    }
+
+    public String getAbnormalIntro() {
+        return abnormalIntro;
+    }
+
+    public void setAbnormalIntro(String abnormalIntro) {
+        this.abnormalIntro = abnormalIntro;
+    }
+
+    public String getAbnormalImg() {
+        return abnormalImg;
+    }
+
+    public void setAbnormalImg(String abnormalImg) {
+        this.abnormalImg = abnormalImg;
+    }
+
+    public Integer getSpellSuccess() {
+        return spellSuccess;
+    }
+
+    public void setSpellSuccess(Integer spellSuccess) {
+        this.spellSuccess = spellSuccess;
+    }
+
+    public Double getEstimateTime() {
+        return estimateTime;
+    }
+
+    public void setEstimateTime(Double estimateTime) {
+        this.estimateTime = estimateTime;
+    }
+
+    public Double getEstimateMileage() {
+        return estimateMileage;
+    }
+
+    public void setEstimateMileage(Double estimateMileage) {
+        this.estimateMileage = estimateMileage;
+    }
+
+    public Integer getTotalPeopleNum() {
+        return totalPeopleNum;
+    }
+
+    public void setTotalPeopleNum(Integer totalPeopleNum) {
+        this.totalPeopleNum = totalPeopleNum;
+    }
+
+    public Integer getPid() {
+        return pid;
+    }
+
+    public void setPid(Integer pid) {
+        this.pid = pid;
+    }
+
+    public Integer getPeopleNum() {
+        return peopleNum;
+    }
+
+    public void setPeopleNum(Integer peopleNum) {
+        this.peopleNum = peopleNum;
+    }
+
+    public Integer getRideType() {
+        return rideType;
+    }
+
+    public void setRideType(Integer rideType) {
+        this.rideType = rideType;
+    }
+
+    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 String getServerCarModel() {
+        return serverCarModel;
+    }
+
+    public void setServerCarModel(String serverCarModel) {
+        this.serverCarModel = serverCarModel;
+    }
+
+    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 getHolidayFee() {
+        return holidayFee;
+    }
+
+    public void setHolidayFee(Double holidayFee) {
+        this.holidayFee = holidayFee;
+    }
+
+    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 getTaxiCardId() {
+        return taxiCardId;
+    }
+
+    public void setTaxiCardId(Integer taxiCardId) {
+        this.taxiCardId = taxiCardId;
+    }
+
+    public Integer getUserTaxiCardId() {
+        return userTaxiCardId;
+    }
+
+    public void setUserTaxiCardId(Integer userTaxiCardId) {
+        this.userTaxiCardId = userTaxiCardId;
+    }
+
+    public Double getDiscountAmount() {
+        return discountAmount;
+    }
+
+    public void setDiscountAmount(Double discountAmount) {
+        this.discountAmount = discountAmount;
+    }
+
+    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 Double getThankYouFee() {
+        return thankYouFee;
+    }
+
+    public void setThankYouFee(Double thankYouFee) {
+        this.thankYouFee = thankYouFee;
+    }
+
+    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 String getSplitAllocation() {
+        return splitAllocation;
+    }
+
+    public void setSplitAllocation(String splitAllocation) {
+        this.splitAllocation = splitAllocation;
+    }
+
+    public String getTravelId() {
+        return travelId;
+    }
+
+    public void setTravelId(String travelId) {
+        this.travelId = travelId;
+    }
+
+    public Integer getIsCreated() {
+        return isCreated;
+    }
+
+    public void setIsCreated(Integer isCreated) {
+        this.isCreated = isCreated;
+    }
+
+    public Integer getRecoveryOrder() {
+        return recoveryOrder;
+    }
+
+    public void setRecoveryOrder(Integer recoveryOrder) {
+        this.recoveryOrder = recoveryOrder;
+    }
+
+    public Long getPromotionActivityId() {
+        return promotionActivityId;
+    }
+
+    public void setPromotionActivityId(Long promotionActivityId) {
+        this.promotionActivityId = promotionActivityId;
+    }
+
+    public Integer getIsGenerateRecoveryOrder() {
+        return isGenerateRecoveryOrder;
+    }
+
+    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
+        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
+    }
+
+    public Integer getOldOrderId() {
+        return oldOrderId;
+    }
+
+    public void setOldOrderId(Integer oldOrderId) {
+        this.oldOrderId = oldOrderId;
+    }
+
+    public Integer getAbnormalStatus() {
+        return abnormalStatus;
+    }
+
+    public void setAbnormalStatus(Integer abnormalStatus) {
+        this.abnormalStatus = abnormalStatus;
+    }
+
+    public BigDecimal getResponsibilityMoney() {
+        return responsibilityMoney;
+    }
+
+    public void setResponsibilityMoney(BigDecimal responsibilityMoney) {
+        this.responsibilityMoney = responsibilityMoney;
+    }
+
+    public String getVoice() {
+        return voice;
+    }
+
+    public void setVoice(String voice) {
+        this.voice = voice;
+    }
+
+    public Date getVoiceTime() {
+        return voiceTime;
+    }
+
+    public void setVoiceTime(Date voiceTime) {
+        this.voiceTime = voiceTime;
+    }
+
+    public Date getRecoveryOrderCreateDate() {
+        return recoveryOrderCreateDate;
+    }
+
+    public void setRecoveryOrderCreateDate(Date recoveryOrderCreateDate) {
+        this.recoveryOrderCreateDate = recoveryOrderCreateDate;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderPrivateCar{" +
+                "id=" + id +
+                ", type=" + type +
+                ", crossCityOrderId=" + crossCityOrderId +
+                ", place=" + place +
+                ", userId=" + userId +
+                ", serverCarModel='" + serverCarModel + '\'' +
+                ", 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 +
+                ", holidayFee=" + holidayFee +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", taxiCardId=" + taxiCardId +
+                ", userTaxiCardId=" + userTaxiCardId +
+                ", discountAmount=" + discountAmount +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", thankYouFee=" + thankYouFee +
+                ", 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 + '\'' +
+                ", peopleNum=" + peopleNum +
+                ", rideType=" + rideType +
+                ", pid=" + pid +
+                ", abnormal=" + abnormal +
+                ", promotion=" + promotion +
+                ", promotionUser='" + promotionUser + '\'' +
+                ", promotionPhone='" + promotionPhone + '\'' +
+                ", abnormalIntro='" + abnormalIntro + '\'' +
+                ", abnormalImg='" + abnormalImg + '\'' +
+                ", promotionDriverId=" + promotionDriverId +
+                ", promotionMoney=" + promotionMoney +
+                ", totalPeopleNum=" + totalPeopleNum +
+                ", estimateMileage=" + estimateMileage +
+                ", estimateTime=" + estimateTime +
+                ", spellSuccess=" + spellSuccess +
+                ", splitAllocation='" + splitAllocation + '\'' +
+                ", responsibilityType=" + responsibilityType +
+                ", promotionActivityId=" + promotionActivityId +
+                ", travelId='" + travelId + '\'' +
+                ", isCreated=" + isCreated +
+                ", recoveryOrder=" + recoveryOrder +
+                '}';
+    }
+}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index d34c2b8..47cd81d 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -603,16 +603,6 @@
 				orderPrivateCar.setIsReassign(1);
 				orderPrivateCar.setIsDelete(1);
 
-				// 是否推广订单
-				Integer promotion = isPromotion(uid);
-				if(promotion!=null){
-					orderPrivateCar.setPromotion(2);
-					Driver driver = driverService.selectById(promotion);
-					orderPrivateCar.setPromotionUser(driver.getName());
-					orderPrivateCar.setPromotionPhone(driver.getPhone());
-					orderPrivateCar.setPromotionDriverId(promotion);
-				}
-
 				//判断独享,一口价,拼车
 				JSONArray jsonArray = JSON.parseArray(serverCarModel);
 				this.insert(orderPrivateCar);
@@ -701,10 +691,10 @@
 							orderPrivateCar.setIsDelete(1);
 							orderPrivateCar.setPid(orderPrivateCar1.getPid() == null ? orderPrivateCar1.getId() : orderPrivateCar1.getPid());
 
-							Integer promotion1 = isPromotion(orderPrivateCar.getUserId());
+							Integer promotion1 = isPromotion(orderPrivateCar.getUserId(), driver.getPlaceOfEmployment());
 							if(promotion1!=null){
 								orderPrivateCar.setPromotion(2);
-								Driver driver1 = driverService.selectById(promotion);
+								Driver driver1 = driverService.selectById(promotion1);
 								orderPrivateCar.setPromotionUser(driver1.getName());
 								orderPrivateCar.setPromotionPhone(driver1.getPhone());
 								orderPrivateCar.setPromotionDriverId(promotion1);
@@ -760,7 +750,6 @@
 				
 				//添加消息
 				systemNoticeService.addSystemNotice(1, "您的快车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
-				
 				baseWarpper.setId(orderPrivateCar.getId());
 			} catch (Exception e) {
 				e.printStackTrace();
@@ -774,11 +763,11 @@
 	}
 
 
-	private Integer isPromotion(Integer userId){
+	private Integer isPromotion(Integer userId, String code){
 		UserInfo userInfo = userInfoService.selectById(userId);
-		if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
-			String registAreaCode = userInfo.getRegistAreaCode();
-			TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).eq("state",1).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
+		if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()>=System.currentTimeMillis()){
+			TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", code)
+					.eq("state",1).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
 			if(tDriverPromotionActivity!=null){
 				return userInfo.getBindDriverId();
 			}
@@ -939,6 +928,15 @@
 		if (null == orderPrivateCar) {
 			return ResultUtil.error("获取数据失败,订单信息有误");
 		}
+		if (orderPrivateCar.getState() == 5) {
+			return ResultUtil.error("订单已开始服务,不能取消订单");
+		}
+		if (orderPrivateCar.getState() == 6 || orderPrivateCar.getState() == 7 || orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) {
+			return ResultUtil.error("订单已完成,不能取消订单");
+		}
+		if (orderPrivateCar.getState() == 10) {
+			return ResultUtil.error("订单已被取消,不能重复操作");
+		}
 		OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
 		double amount = 0;
 		CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, openCity.getId());
@@ -1026,23 +1024,25 @@
 				}
 				this.deleteTask(id);//删除定时任务
 				
-				Driver driver1 = null;
-				Company company = null;
-				//中台修改订单状态
-				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-				request.setOrderId(orderPrivateCar.getTravelId());
-				request.setStatus(orderPrivateCar.getState());
-				if (null != orderPrivateCar.getDriverId()) {
-					driver1 = driverService.selectById(orderPrivateCar.getDriverId());
-					company = companyService.selectById(driver1.getCompanyId());
-					request.setDriverId(driver1.getEmpId().toString());
-					request.setSupplierShopId(company.getEnterCode());
+				if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderPrivateCar.getTravelId());
+					request.setStatus(orderPrivateCar.getState());
+					if (null != orderPrivateCar.getDriverId()) {
+						driver1 = driverService.selectById(orderPrivateCar.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderPrivateCar.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
-				if (2 == orderPrivateCar.getPromotion()) {
-					Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
-					request.setPromoterId(driver2.getEmpId().toString());
-				}
-				OrderUtil.modifyTravelItinerary(request);
 				
 				new Thread(new Runnable() {
 					@Override
@@ -1161,23 +1161,25 @@
 				orderPrivateCar.setBindId("");
 				this.updateById(orderPrivateCar);
 				
-				Driver driver = null;
-				Company company = null;
-				//中台修改订单状态
-				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-				request.setOrderId(orderPrivateCar.getTravelId());
-				request.setStatus(orderPrivateCar.getState());
-				if (null != orderPrivateCar.getDriverId()) {
-					driver = driverService.selectById(orderPrivateCar.getDriverId());
-					company = companyService.selectById(driver.getCompanyId());
-					request.setDriverId(driver.getEmpId().toString());
-					request.setSupplierShopId(company.getEnterCode());
+				if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+					Driver driver = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderPrivateCar.getTravelId());
+					request.setStatus(orderPrivateCar.getState());
+					if (null != orderPrivateCar.getDriverId()) {
+						driver = driverService.selectById(orderPrivateCar.getDriverId());
+						company = companyService.selectById(driver.getCompanyId());
+						request.setDriverId(driver.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderPrivateCar.getPromotion()) {
+						Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+						request.setPromoterId(driver1.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
-				if (2 == orderPrivateCar.getPromotion()) {
-					Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
-					request.setPromoterId(driver1.getEmpId().toString());
-				}
-				OrderUtil.modifyTravelItinerary(request);
 				
 				orderCancel.setState(2);
 				orderCancel.setPayType(3);
@@ -1924,6 +1926,7 @@
 			orderPrivateCar.setState(8);
 			orderPrivateCar.setPayType(3);
 			orderPrivateCar.setPayMoney(orderMoney);
+			orderPrivateCar.setPayTime(new Date());
 			
 			//处理优惠券和红包
 			if (null != userCouponRecord) {
@@ -1936,9 +1939,13 @@
 				query.setEndTime(new Date());
 				userRedPacketRecordService.updateById(query);
 			}
-			//添加收入
-			Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
-			orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+			//非追缴单才需要添加收入
+			if(0 == orderPrivateCar.getRecoveryOrder()){
+				//添加收入
+				Double orderMoney1 = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
+				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+			}
 			
 			// TODO: 2020/5/24 这里需要给司机和用户推送订单状态
 			new Thread(new Runnable() {
@@ -1976,7 +1983,7 @@
 			return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
 		}
 		Integer uid = orderPrivateCar.getUserId();
-		Double orderMoney = orderPrivateCar.getOrderMoney();
+		Double orderMoney = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
 		UserInfo userInfo = userInfoService.selectById(uid);
 		ResultUtil resultUtil = ResultUtil.success(new Object());
 		orderPrivateCar.setCouponMoney(0D);//初始化历史数据
@@ -2146,8 +2153,41 @@
 			}
 //			String app = type == 1 ? "APP" : "JSAPI";
 //			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
-			
+			//如果没有创建行程,需要先创建行程单
 			Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+			if(ToolUtil.isEmpty(orderPrivateCar.getTravelId())){
+				Company company = companyService.selectById(driver.getCompanyId());
+				//调三方订单中心创建行程单
+				CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+				request.setOrderNo("PR" + orderPrivateCar.getId());
+				request.setCustomerId(userInfo.getOnconUUID());
+				request.setDriverId(driver.getEmpId().toString());
+				request.setSupplierShopId(company.getEnterCode());
+				if(orderPrivateCar.getPromotion() !=null && 2 == orderPrivateCar.getPromotion()){
+					Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				request.setServiceType(2);
+				String travelItinerary = OrderUtil.createTravelItinerary(request);
+				orderPrivateCar.setTravelId(travelItinerary);
+
+				//创建订单
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+				request1.setOrderId(orderPrivateCar.getTravelId());
+				request1.setStatus(orderPrivateCar.getState());
+				if (null != orderPrivateCar.getDriverId()) {
+					request1.setDriverId(driver.getEmpId().toString());
+					request1.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderPrivateCar.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request1.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request1);
+			}
+
+
 			if(null == orderPrivateCar.getIsCreated() || 0 == orderPrivateCar.getIsCreated()){
 				//调用中台创建订单及拉起支付接口
 				TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
@@ -2167,7 +2207,7 @@
 				tradeOrderCreateData.setOrderDesc("完成订单");
 				tradeOrderCreateData.setRetUrl(path);
 				tradeOrderCreateData.setClientIp(ip);
-				
+
 				List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
 				GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
 				goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
@@ -2178,7 +2218,7 @@
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
-				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
+				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData, orderPrivateCar.getRecoveryOrder());
 				PayInfo payInfo = tradeOrderCreate.getPayInfo();
 				if(!"000000".equals(payInfo.getRetCode())){
 					return ResultUtil.error(payInfo.getRetMsg());
@@ -2203,7 +2243,7 @@
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
-				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
+				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data, orderPrivateCar.getRecoveryOrder());
 				if(!"000000".equals(payInfo.getRetCode())){
 					return ResultUtil.error(payInfo.getRetMsg());
 				}
@@ -2275,6 +2315,7 @@
 			
 			orderPrivateCar.setState(8);
 			orderPrivateCar.setPayType(3);
+			orderPrivateCar.setPayTime(new Date());
 			
 			//处理优惠券和红包
 			if (null != userCouponRecord) {
@@ -2291,10 +2332,13 @@
 				query.setEndTime(new Date());
 				userRedPacketRecordService.updateById(query);
 			}
-			
-			//添加收入
-			Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
-			orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+			//非追缴单才添加收入记录
+			if(0 == orderPrivateCar.getRecoveryOrder()){
+				//添加收入
+				Double orderMoney1 = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney1);
+				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+			}
 
 
 			this.updateAllColumnById(orderPrivateCar);
@@ -2324,6 +2368,7 @@
 			if (orderMoney == 0) {
 				return ResultUtil.error("请使用余额支付");
 			}
+			orderPrivateCar.setPayTime(new Date());
 			Integer integer = paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 4, orderMoney, "", 1);
 			resultUtil = appOrderController.placeAnOrder(new BigDecimal(orderMoney), 4, orderId, 6, integer);
 			
@@ -2441,23 +2486,25 @@
 			orderPrivateCar.setTelX("");
 			this.updateById(orderPrivateCar);
 			
-			Driver driver = null;
-			Company company = null;
-			//中台修改订单状态
-			ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-			request.setOrderId(orderPrivateCar.getTravelId());
-			request.setStatus(orderPrivateCar.getState());
-			if (null != orderPrivateCar.getDriverId()) {
-				driver = driverService.selectById(orderPrivateCar.getDriverId());
-				company = companyService.selectById(driver.getCompanyId());
-				request.setDriverId(driver.getEmpId().toString());
-				request.setSupplierShopId(company.getEnterCode());
+			if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
+				Driver driver = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderPrivateCar.getTravelId());
+				request.setStatus(orderPrivateCar.getState());
+				if (null != orderPrivateCar.getDriverId()) {
+					driver = driverService.selectById(orderPrivateCar.getDriverId());
+					company = companyService.selectById(driver.getCompanyId());
+					request.setDriverId(driver.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderPrivateCar.getPromotion()) {
+					Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 			}
-			if (2 == orderPrivateCar.getPromotion()) {
-				Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
-				request.setPromoterId(driver1.getEmpId().toString());
-			}
-			OrderUtil.modifyTravelItinerary(request);
 			
 			query.setState(2);
 			query.setCode(order_id);
@@ -2499,6 +2546,7 @@
 			orderPrivateCar.setState(8);
 			orderPrivateCar.setPayType(type);
 			orderPrivateCar.setPayMoney(query.getAmount());
+			orderPrivateCar.setPayTime(new Date());
 			
 			UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
 			OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
@@ -2533,11 +2581,16 @@
 			query.setState(2);
 			query.setCode(order_id);
 			paymentRecordService.updateById(query);
-			
-			//添加收入
-			Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney());
-			orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+
+			//非追缴单才需要记录收入
+			if(0 == orderPrivateCar.getRecoveryOrder()){
+				//添加收入
+				Double orderMoney = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+				Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
+				orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+			}
 			this.updateById(orderPrivateCar);
+			promotion(orderPrivateCar.getId());
 			
 			// TODO: 2020/5/24 这里需要给司机和用户推送订单状态
 			new Thread(new Runnable() {
@@ -2779,52 +2832,66 @@
 					OpenCity openCity = openCityService.openCity1(startLon.toString(), startLat.toString());
 					List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
 					//整轮派单结束,若无司机接单,系统自动增加派单5轮,若增加5轮后任无司机接单,则系统结束派单,乘客端显示无司机接单、是否再次打车
-					for (int i = 1; i <= querys.size() + 15; i++) {
-						OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
-						if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
-							break;
-						}
-						int finalI = i;
-						PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
-						System.out.println("pushOrder:" + pushOrder);
-						if (orderPrivateCar.getState() > 1) {
-							break;
-						}
-						//获取空闲司机
-						List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
-						if (list.size() > 0) {
-							double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
-							int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
-							lastIndex = lastIndex == 0 ? list.size() : lastIndex;
-							list = list.subList(0, lastIndex);//获取空闲司机中占比数据
-							for (Driver driver : list) {//开始进行推送
-								boolean bo = false;
-								for (Integer integer : integers) {
-									if (integer.compareTo(driver.getId()) == 0) {
-										bo = true;
-										break;
+					int num = 0;
+					for (int j = 0; j < 6; j++) {
+						Boolean push = false;
+						for (int i = 1; i <= querys.size(); i++) {
+							num++;
+							OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(id);
+							if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
+								push = true;
+								break;
+							}
+							int finalI = i;
+							PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
+							System.out.println("pushOrder:" + pushOrder);
+							if (orderPrivateCar.getState() > 1) {
+								push = true;
+								break;
+							}
+							//获取空闲司机
+							List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
+							//随机排序
+							Collections.shuffle(list);
+							if (list.size() > 0) {
+								double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+								int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+								lastIndex = lastIndex == 0 ? list.size() : lastIndex;
+								list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+								for (Driver driver : list) {//开始进行推送
+									boolean bo = false;
+									for (Integer integer : integers) {
+										if (integer.compareTo(driver.getId()) == 0) {
+											bo = true;
+											break;
+										}
 									}
+									if (bo) {
+										continue;
+									}
+									pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
 								}
-								if (bo) {
-									continue;
-								}
-								pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
+							}
+							Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+							OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(orderPrivateCar.getId());
+							Integer state =orderPrivateCar1.getState();
+							if (state > 1) {
+								orderIds.remove(orderPrivateCar.getId());
+								push = true;
+								break;
+							}
+							if (num == 18) {
+								orderPrivateCar1.setState(10);
+								orderPrivateCarMapper.updateById(orderPrivateCar1);
+								pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
+								orderIds.remove(orderPrivateCar.getId());
 							}
 						}
-						Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
-						OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(orderPrivateCar.getId());
-						Integer state =orderPrivateCar1.getState();
-						if (state > 1) {
-							orderIds.remove(orderPrivateCar.getId());
+						if(push){
 							break;
 						}
-						if (i == querys.size() + 15) {
-							orderPrivateCar1.setState(10);
-							orderPrivateCarMapper.updateById(orderPrivateCar1);
-							pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
-							orderIds.remove(orderPrivateCar.getId());
-						}
 					}
+
 				} catch (Exception e) {
 					e.printStackTrace();
 				}
@@ -2897,7 +2964,7 @@
 								return;
 							}
 							if (i == querys.size() + 15 && state == 1) {
-								pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+								pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1);
 								orderIds.remove(orderPrivateCar.getId());
 							}
 						}
@@ -2933,7 +3000,7 @@
 		// 开始绑定的  后面到期也结算
 		System.out.println("eeeee+"+orderPrivateCar.getPromotionDriverId());
 		if(orderPrivateCar.getPromotionDriverId()!=null ){
-			String registAreaCode = userInfo.getRegistAreaCode();
+			String registAreaCode = driverService.selectById(orderPrivateCar.getPromotionDriverId()).getPlaceOfEmployment();
 			TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
 			System.out.println("ddddd"+tDriverPromotionActivity);
 			if(tDriverPromotionActivity!=null){
@@ -2946,16 +3013,6 @@
 				orderPrivateCar.setPromotionActivityId(tDriverPromotionActivity.getId());
 				orderPrivateCar.setSuccessTime(new Date());
 				this.baseMapper.updateById(orderPrivateCar);
-			}
-		}
-
-		// 是否异常订单
-        if (orderPrivateCar.getResponsibilityType() !=null && orderPrivateCar.getResponsibilityType() >2) {
-			TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 1).eq("orderNum", orderPrivateCar.getOrderNum())).stream().findFirst().orElse(null);
-			if (tAbnormalPayOrder != null) {
-				tAbnormalPayOrder.setPayStatus(2);
-				tAbnormalPayOrder.setPayTime(new Date());
-				abnormalPayOrderMapper.updateById(tAbnormalPayOrder);
 			}
 		}
 	}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index a356b3c..311733b 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -105,7 +105,7 @@
 	 * @param orderId
 	 * @param orderType
 	 */
-	public void pushEndPush(Integer type, Integer uid, Integer orderId, Integer orderType) {
+	public void pushEndPush(Integer type, Integer uid, Integer orderId, Integer orderType, Integer state) {
 		JSONObject jsonObject = new JSONObject();
 		jsonObject.put("code", 200);
 		jsonObject.put("msg", "SUCCESS");
@@ -113,6 +113,7 @@
 		Map<String, Object> map = new HashMap<>();
 		map.put("orderId", orderId);
 		map.put("orderType", orderType);
+		map.put("state", state);
 		jsonObject.put("data", map);
 		
 		//调用推送
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 090bbb4..a32508d 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -25,10 +25,7 @@
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
@@ -51,6 +48,8 @@
 	private IOrderPrivateCarService orderPrivateCarService;
 	@Autowired
 	private IPaymentRecordService paymentRecordService;
+	@Autowired
+	private IIncomeService incomeService;
 	
 	
 	@Autowired
@@ -80,12 +79,12 @@
 	@Scheduled(fixedRate = 1000 * 60)
 	public void taskMinute() {
 		try {
+			//处理超时未支付的订单
+			timoutNoPayment();
 			//修改过期的优惠券
 			userCouponRecordService.updateTimeOut();
 			//修改过期的商家优惠券
 			userMerchantCouponService.updateExpired();
-			//处理超时未支付的订单
-			timoutNoPayment();
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -108,7 +107,7 @@
 		try {
 			List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1)
 					.eq("state", 7).eq("abnormal", 1)
-					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 1 HOUR)"));
 			for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
 				UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
 				SendSmsRequest request = new SendSmsRequest();
@@ -121,7 +120,7 @@
 			}
 			List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1)
 					.eq("state", 7).eq("abnormal", 1)
-					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 1 HOUR)"));
 			for (OrderTaxi orderTaxi : orderTaxis) {
 				UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
 				SendSmsRequest request = new SendSmsRequest();
@@ -143,18 +142,23 @@
 	 */
 	public void timoutNoPayment() {
 		List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7)
-				.eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 72 HOUR)"));
+				.eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 1).last(" and now() >= DATE_ADD(insertTime, INTERVAL 10 MINUTE)"));
+		List<OrderPrivateCar> orderPrivateCars1 = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7)
+				.eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 2).last(" and now() >= DATE_ADD(abnormalTime, INTERVAL 10 MINUTE)"));
+		orderPrivateCars.addAll(orderPrivateCars1);
 		for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
 			try {
 				Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
 				Company company = companyService.selectById(driver.getCompanyId());
 				UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+				Double orderMoney = (1 == orderPrivateCar.getAbnormal() ? orderPrivateCar.getOrderMoney() : orderPrivateCar.getResponsibilityMoney().doubleValue());
+
 				if(null == orderPrivateCar.getIsCreated()){
 					//先调中台创建订单
 					CreateOrderRequest createOrderRequest = new CreateOrderRequest();
 					createOrderRequest.setTreatShopId(driver.getEmpId().toString());
 					createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
-					createOrderRequest.setCharge(new BigDecimal(orderPrivateCar.getOrderMoney()));
+					createOrderRequest.setCharge(new BigDecimal(orderMoney));
 					createOrderRequest.setOrderNo("PR" + orderPrivateCar.getId());
 					createOrderRequest.setOrderId(orderPrivateCar.getTravelId());
 					createOrderRequest.setCustomerId(userInfo.getOnconUUID());
@@ -166,7 +170,7 @@
 				//使用备付金进行支付订单
 				TradePayOffData tradePayOffData = new TradePayOffData();
 				tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
-				tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + "");
+				tradePayOffData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
 				tradePayOffData.setOrderDesc("完成订单");
 				PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
 				String retCode = payInfo.getRetCode();
@@ -195,7 +199,7 @@
 					paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
 					paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
 					paymentOrderRequest.setOrderId(orderPrivateCar.getTravelId());
-					paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
+					paymentOrderRequest.setCharge(BigDecimal.valueOf(orderMoney));
 					paymentOrderRequest.setPayTime(data.getPayTime());
 					paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
 					OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
@@ -222,17 +226,23 @@
 					orderPrivateCar1.setRecoveryOrder(1);
 					orderPrivateCar1.setIsGenerateRecoveryOrder(0);
 					orderPrivateCar1.setOldOrderId(orderPrivateCar.getId());
+					orderPrivateCar1.setRecoveryOrderCreateDate(new Date());
 					
 					//修改原始订单为支付状态
 					orderPrivateCar.setState(9);
 					orderPrivateCar.setPayType(5);
-					orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
+					orderPrivateCar.setPayMoney(orderMoney);
+					orderPrivateCar.setPayTime(new Date());
+					orderPrivateCar.setIsGenerateRecoveryOrder(1);
+					//添加收入
+					Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
+					orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
 					orderPrivateCarService.updateById(orderPrivateCar);
 					//保存追缴单
 					orderPrivateCarService.insert(orderPrivateCar1);
 					//添加三方支付记录
 					try {
-						paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
+						paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderMoney, payId, 2);
 					} catch (Exception e) {
 						throw new RuntimeException(e);
 					}
@@ -271,18 +281,22 @@
 		
 		//出租车
 		List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("state", 7)
-				.eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)"));
+				.eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 1).last(" and now() >= DATE_ADD(insertTime, INTERVAL 10 MINUTE)"));
+		List<OrderTaxi> orderTaxis1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("state", 7)
+				.eq("isDelete", 1).eq("recoveryOrder", 0).eq("abnormal", 2).last(" and now() >= DATE_ADD(abnormalTime, INTERVAL 10 MINUTE)"));
+		orderTaxis.addAll(orderTaxis1);
 		for (OrderTaxi orderTaxi : orderTaxis) {
 			try {
 				Driver driver = driverService.selectById(orderTaxi.getDriverId());
 				Company company = companyService.selectById(driver.getCompanyId());
 				UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
+				Double orderMoney = (1 == orderTaxi.getAbnormal() ? orderTaxi.getOrderMoney() : orderTaxi.getResponsibilityMoney().doubleValue());
 				if(null == orderTaxi.getIsCreated()){
 					//先调中台创建订单
 					CreateOrderRequest createOrderRequest = new CreateOrderRequest();
 					createOrderRequest.setTreatShopId(driver.getEmpId().toString());
 					createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
-					createOrderRequest.setCharge(new BigDecimal(orderTaxi.getOrderMoney()));
+					createOrderRequest.setCharge(new BigDecimal(orderMoney));
 					createOrderRequest.setOrderNo("TA" + orderTaxi.getId());
 					createOrderRequest.setOrderId(orderTaxi.getTravelId());
 					createOrderRequest.setCustomerId(userInfo.getOnconUUID());
@@ -294,7 +308,7 @@
 				//使用备付金进行支付订单
 				TradePayOffData tradePayOffData = new TradePayOffData();
 				tradePayOffData.setPartnerPayId(orderTaxi.getTravelId());
-				tradePayOffData.setTotalFee(Double.valueOf(orderTaxi.getOrderMoney() * 100).intValue() + "");
+				tradePayOffData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + "");
 				tradePayOffData.setOrderDesc("完成订单");
 				PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData);
 				String retCode = payInfo.getRetCode();
@@ -323,7 +337,7 @@
 					paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
 					paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
 					paymentOrderRequest.setOrderId(orderTaxi.getTravelId());
-					paymentOrderRequest.setCharge(BigDecimal.valueOf(orderTaxi.getOrderMoney()));
+					paymentOrderRequest.setCharge(BigDecimal.valueOf(orderMoney));
 					paymentOrderRequest.setPayTime(data.getPayTime());
 					paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
 					OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
@@ -350,17 +364,20 @@
 					orderTaxi1.setRecoveryOrder(1);
 					orderTaxi1.setIsGenerateRecoveryOrder(0);
 					orderTaxi1.setOldOrderId(orderTaxi.getId());
+					orderTaxi1.setRecoveryOrderCreateDate(new Date());
 					
 					//修改原始订单为支付状态
 					orderTaxi.setState(9);
 					orderTaxi.setPayType(5);
-					orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
+					orderTaxi.setPayMoney(orderMoney);
+					orderTaxi.setPayTime(new Date());
+					orderTaxi.setIsGenerateRecoveryOrder(1);
 					orderTaxiService.updateById(orderTaxi);
 					//保存追缴单
 					orderTaxiService.insert(orderTaxi1);
 					//添加三方支付记录
 					try {
-						paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderTaxi.getOrderMoney(), payId, 2);
+						paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderMoney, payId, 2);
 					} catch (Exception e) {
 						throw new RuntimeException(e);
 					}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
index 77fc715..26eb18f 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -181,9 +181,10 @@
 	 * 拉起支付
 	 *
 	 * @param tradePayOff1Data
+	 * @param recoveryOrder
 	 * @return
 	 */
-	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
+	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data, Integer recoveryOrder) {
 		tradePayOff1Data.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
 		tradePayOff1Data.setTimeout("72H");
 		tradePayOff1Data.setScene("TRAFFIC");
@@ -191,7 +192,11 @@
 		tradePayOff1Data.setNeedLoginFlag("N");
 		tradePayOff1Data.setAccessMode("APP");
 		tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> {
-			goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+			if(0 == recoveryOrder){
+				goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+			}else{
+				goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "981100006228370" : "981100006005901");
+			}
 			goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId());
 			
 			goodsInfoRequest.setAreaInfo("520100");
@@ -386,7 +391,7 @@
 	 * @param tradeOrderCreateData
 	 * @return
 	 */
-	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData, Integer recoveryOrder) {
 		tradeOrderCreateData.setScene("TRAFFIC");
 		tradeOrderCreateData.setPartnerId("522700");
 		tradeOrderCreateData.setTimeout("72H");
@@ -397,7 +402,11 @@
 		tradeOrderCreateData.setNeedLoginFlag("N");
 		tradeOrderCreateData.setAccessMode("APP");
 		tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> {
-			goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+			if(0 == recoveryOrder){
+				goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+			}else{
+				goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "981100006228370" : "981100006005901");
+			}
 			goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId());
 			goodsInfoRequest.setAreaInfo("520100");
 			goodsInfoRequest.setPayType("0");
@@ -529,9 +538,9 @@
 		tradePayOffData.setPaymentInfos(paymentInfoRequests);
 		List<GoodsInfo> goodsInfo = new ArrayList<>();
 		GoodsInfo goodsInfo1 = new GoodsInfo();
-		goodsInfo1.setMerchantCode("B00000905");
-		goodsInfo1.setCustId("CB0000004686");
-		goodsInfo1.setCustName("证联消费平台交易客户");
+		goodsInfo1.setMerchantCode("prod".equals(qianYunTongConfig.getActiveProfile()) ? "B00001404" : "B00000905");
+		goodsInfo1.setCustId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "CB0000004853" : "CB0000004686");
+		goodsInfo1.setCustName("prod".equals(qianYunTongConfig.getActiveProfile()) ? "黔南云码通数字产业运营有限公司" : "证联消费平台交易客户");
 		goodsInfo1.setBusinessType("10408");
 		goodsInfo1.setAgreementNo("prod".equals(qianYunTongConfig.getActiveProfile()) ? "00000402485377063581755054680461" : "00000000468618354161754464398681");
 		goodsInfo1.setProfitSharing("1");
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
index 619fc56..64079e8 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
@@ -250,7 +250,7 @@
             userInfoWarpper.setIsCould(Integer.valueOf(String.valueOf(map.get("isCloud"))));
             userInfoWarpper.setIsDriverRide(null != map.get("isDriverRide") ? Integer.valueOf(String.valueOf(map.get("isDriverRide"))) : 0);
             userInfoWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
-            userInfoWarpper.setDriverAuthState(null != map.get("driverAuthState") ? Integer.valueOf(String.valueOf(map.get("driverAuthState"))) : 1);
+            userInfoWarpper.setDriverAuthState(null != map.get("driverAuthState") ? Integer.valueOf(String.valueOf(map.get("driverAuthState"))) : 0);
 
         }
         return userInfoWarpper;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
index 2501f7f..eb1fee3 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -225,7 +225,7 @@
         a.endLat as endLat,
         a.endAddress as endAddress,
 		a.driverId as driverId,
-		a.orderMoney as orderMoney,
+        if(a.abnormal = 2 and a.abnormalStatus = 2, a.responsibilityMoney, a.orderMoney) as orderMoney,
 		a.travelMoney as travelMoney,
 		a.parkMoney as parkMoney,
 		a.roadTollMoney as roadTollMoney,
@@ -265,7 +265,7 @@
         a.abnormalIntro,
         a.abnormalImg,
         a.companyId,
-        IF(a.abnormalIntro is null and a.recoveryOrder = 1, 0, 1) as appealButton
+        IF((a.abnormalIntro is null and a.recoveryOrder = 1) or (a.state in (8, 9) and null = a.abnormal), 0, 1) as appealButton
         from t_order_taxi a
 		left join t_driver b on (a.driverId = b.id)
 		left join t_car c on (a.carId = c.id)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
index f8b7c6e..53ab1b8 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -13,1183 +13,1225 @@
  */
 @TableName("t_order_taxi")
 public class OrderTaxi {
-	/**
-	 * 主键
-	 */
-	@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("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("travelMoney")
-	private Double travelMoney;
-	/**
-	 * 停车费
-	 */
-	@TableField("parkMoney")
-	private Double parkMoney;
-	/**
-	 * 过路费
-	 */
-	@TableField("roadTollMoney")
-	private Double roadTollMoney;
-	/**
-	 * 小费
-	 */
-	@TableField("tipMoney")
-	private Double tipMoney;
-	//节假费
-	@TableField("holidayFee")
-	private Double holidayFee;
-	/**
-	 * 红包抵扣金额
-	 */
-	@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("taxiCardId")
-	private Integer taxiCardId;
-	/**
-	 * 打车卡记录id
-	 */
-	@TableField("userTaxiCardId")
-	private Integer userTaxiCardId;
-	/**
-	 * 优惠金额
-	 */
-	@TableField("discountAmount")
-	private Double discountAmount;
-	/**
-	 * 公司id
-	 */
-	@TableField("companyId")
-	private Integer companyId;
-	/**
-	 * 支付金额
-	 */
-	@TableField("payMoney")
-	private Double payMoney;
-	//感谢费
-	@TableField("thankYouFee")
-	private Double thankYouFee;
-	/**
-	 * 是否是代下单(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:调度下单,6:道行龙城下单)
-	 */
-	@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;
-	
-	/**
-	 * 是否异常订单 1否 2是
-	 */
-	@TableField("abnormal")
-	private Integer abnormal;
+    /**
+     * 主键
+     */
+    @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("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("travelMoney")
+    private Double travelMoney;
+    /**
+     * 停车费
+     */
+    @TableField("parkMoney")
+    private Double parkMoney;
+    /**
+     * 过路费
+     */
+    @TableField("roadTollMoney")
+    private Double roadTollMoney;
+    /**
+     * 小费
+     */
+    @TableField("tipMoney")
+    private Double tipMoney;
+    //节假费
+    @TableField("holidayFee")
+    private Double holidayFee;
+    /**
+     * 红包抵扣金额
+     */
+    @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("taxiCardId")
+    private Integer taxiCardId;
+    /**
+     * 打车卡记录id
+     */
+    @TableField("userTaxiCardId")
+    private Integer userTaxiCardId;
+    /**
+     * 优惠金额
+     */
+    @TableField("discountAmount")
+    private Double discountAmount;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    //感谢费
+    @TableField("thankYouFee")
+    private Double thankYouFee;
+    /**
+     * 是否是代下单(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:调度下单,6:道行龙城下单)
+     */
+    @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;
 
-	private Date successTime;
-	
-	
-	/**
-	 * 乘客反馈情况
-	 */
-	@TableField("abnormalIntro")
-	private String abnormalIntro;
-	
-	/**
-	 * 乘客反馈图片
-	 */
-	@TableField("abnormalImg")
-	private String abnormalImg;
-	
-	
-	private Integer promotionDriverId;
-	
-	private BigDecimal promotionMoney;
-	
-	
-	private String splitAllocation;
-	
-	private Integer responsibilityType;
-	
-	
-	private Integer promotion;
-	
-	private String voice;
-	
-	
-	private Date voiceTime;
-	
-	private String promotionUser;
-	
-	private String promotionPhone;
-	
-	private Long promotionActivityId;
-	/**
-	 * 中台行程id
-	 */
-	private String travelId;
-	/**
-	 * 中台是否已创建订单(0=否,1=是)
-	 */
-	private Integer isCreated;
-	/**
-	 * 是否是追缴单(0=否,1=是)
-	 */
-	private Integer recoveryOrder;
-	/**
-	 * 是否生成追缴单(0=否,1=是)
-	 */
-	private Integer isGenerateRecoveryOrder;
-	/**
-	 * 原始订单id
-	 */
-	private Integer oldOrderId;
+    /**
+     * 是否异常订单 1否 2是
+     */
+    @TableField("abnormal")
+    private Integer abnormal;
 
-	public Date getSuccessTime() {
-		return successTime;
-	}
+    private Date successTime;
 
-	public void setSuccessTime(Date successTime) {
-		this.successTime = successTime;
-	}
 
-	public Long getPromotionActivityId() {
-		return promotionActivityId;
-	}
-	
-	public void setPromotionActivityId(Long promotionActivityId) {
-		this.promotionActivityId = promotionActivityId;
-	}
-	
-	
-	public Integer getResponsibilityType() {
-		return responsibilityType;
-	}
-	
-	public void setResponsibilityType(Integer responsibilityType) {
-		this.responsibilityType = responsibilityType;
-	}
-	
-	public Integer getPromotionDriverId() {
-		return promotionDriverId;
-	}
-	
-	public void setPromotionDriverId(Integer promotionDriverId) {
-		this.promotionDriverId = promotionDriverId;
-	}
-	
-	public BigDecimal getPromotionMoney() {
-		return promotionMoney;
-	}
-	
-	public void setPromotionMoney(BigDecimal promotionMoney) {
-		this.promotionMoney = promotionMoney;
-	}
-	
-	public Integer getAbnormal() {
-		return abnormal;
-	}
-	
-	public void setAbnormal(Integer abnormal) {
-		this.abnormal = abnormal;
-	}
-	
-	public String getAbnormalIntro() {
-		return abnormalIntro;
-	}
-	
-	public void setAbnormalIntro(String abnormalIntro) {
-		this.abnormalIntro = abnormalIntro;
-	}
-	
-	public String getAbnormalImg() {
-		return abnormalImg;
-	}
-	
-	public void setAbnormalImg(String abnormalImg) {
-		this.abnormalImg = abnormalImg;
-	}
-	
-	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 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 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 getTravelMoney() {
-		return travelMoney;
-	}
-	
-	public void setTravelMoney(Double travelMoney) {
-		this.travelMoney = travelMoney;
-	}
-	
-	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 getTipMoney() {
-		return tipMoney;
-	}
-	
-	public void setTipMoney(Double tipMoney) {
-		this.tipMoney = tipMoney;
-	}
-	
-	public Double getHolidayFee() {
-		return holidayFee;
-	}
-	
-	public void setHolidayFee(Double holidayFee) {
-		this.holidayFee = holidayFee;
-	}
-	
-	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 Integer getTaxiCardId() {
-		return taxiCardId;
-	}
-	
-	public void setTaxiCardId(Integer taxiCardId) {
-		this.taxiCardId = taxiCardId;
-	}
-	
-	public Integer getUserTaxiCardId() {
-		return userTaxiCardId;
-	}
-	
-	public void setUserTaxiCardId(Integer userTaxiCardId) {
-		this.userTaxiCardId = userTaxiCardId;
-	}
-	
-	public Double getDiscountAmount() {
-		return discountAmount;
-	}
-	
-	public void setDiscountAmount(Double discountAmount) {
-		this.discountAmount = discountAmount;
-	}
-	
-	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 Double getThankYouFee() {
-		return thankYouFee;
-	}
-	
-	public void setThankYouFee(Double thankYouFee) {
-		this.thankYouFee = thankYouFee;
-	}
-	
-	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 getPayManner() {
-		return payManner;
-	}
-	
-	public void setPayManner(Integer payManner) {
-		this.payManner = payManner;
-	}
-	
-	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 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 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 String getSplitAllocation() {
-		return splitAllocation;
-	}
-	
-	public void setSplitAllocation(String splitAllocation) {
-		this.splitAllocation = splitAllocation;
-	}
-	
-	public Integer getPromotion() {
-		return promotion;
-	}
-	
-	public void setPromotion(Integer promotion) {
-		this.promotion = promotion;
-	}
-	
-	public String getVoice() {
-		return voice;
-	}
-	
-	public void setVoice(String voice) {
-		this.voice = voice;
-	}
-	
-	public Date getVoiceTime() {
-		return voiceTime;
-	}
-	
-	public void setVoiceTime(Date voiceTime) {
-		this.voiceTime = voiceTime;
-	}
-	
-	public String getPromotionUser() {
-		return promotionUser;
-	}
-	
-	public void setPromotionUser(String promotionUser) {
-		this.promotionUser = promotionUser;
-	}
-	
-	public String getPromotionPhone() {
-		return promotionPhone;
-	}
-	
-	public void setPromotionPhone(String promotionPhone) {
-		this.promotionPhone = promotionPhone;
-	}
-	
-	public String getTravelId() {
-		return travelId;
-	}
-	
-	public void setTravelId(String travelId) {
-		this.travelId = travelId;
-	}
-	
-	public Integer getIsCreated() {
-		return isCreated;
-	}
-	
-	public void setIsCreated(Integer isCreated) {
-		this.isCreated = isCreated;
-	}
-	
-	public Integer getRecoveryOrder() {
-		return recoveryOrder;
-	}
-	
-	public void setRecoveryOrder(Integer recoveryOrder) {
-		this.recoveryOrder = recoveryOrder;
-	}
+    /**
+     * 乘客反馈情况
+     */
+    @TableField("abnormalIntro")
+    private String abnormalIntro;
 
-	public Integer getIsGenerateRecoveryOrder() {
-		return isGenerateRecoveryOrder;
-	}
+    /**
+     * 乘客反馈图片
+     */
+    @TableField("abnormalImg")
+    private String abnormalImg;
 
-	public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
-		this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
-	}
 
-	public Integer getOldOrderId() {
-		return oldOrderId;
-	}
+    private Integer promotionDriverId;
 
-	public void setOldOrderId(Integer oldOrderId) {
-		this.oldOrderId = oldOrderId;
-	}
+    private BigDecimal promotionMoney;
 
-	@Override
-	public String toString() {
-		return "OrderTaxi{" +
-				"id=" + id +
-				", type=" + type +
-				", crossCityOrderId=" + crossCityOrderId +
-				", place=" + place +
-				", userId=" + userId +
-				", 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 +
-				", travelMoney=" + travelMoney +
-				", parkMoney=" + parkMoney +
-				", roadTollMoney=" + roadTollMoney +
-				", tipMoney=" + tipMoney +
-				", 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 + '\'' +
-				'}';
-	}
+
+    private String splitAllocation;
+
+    private Integer responsibilityType;
+
+
+    private Integer promotion;
+
+    private String voice;
+
+
+    private Date voiceTime;
+
+    private String promotionUser;
+
+    private String promotionPhone;
+
+    private Long promotionActivityId;
+    /**
+     * 中台行程id
+     */
+    private String travelId;
+    /**
+     * 中台是否已创建订单(0=否,1=是)
+     */
+    private Integer isCreated;
+    /**
+     * 是否是追缴单(0=否,1=是)
+     */
+    private Integer recoveryOrder;
+    /**
+     * 是否生成追缴单(0=否,1=是)
+     */
+    private Integer isGenerateRecoveryOrder;
+    /**
+     * 原始订单id
+     */
+    private Integer oldOrderId;
+
+
+    private Integer abnormalStatus;
+
+    private BigDecimal responsibilityMoney;
+
+    private Date recoveryOrderCreateDate;
+
+    private Date payTime;
+
+
+    public Date getSuccessTime() {
+        return successTime;
+    }
+
+    public void setSuccessTime(Date successTime) {
+        this.successTime = successTime;
+    }
+
+    public Long getPromotionActivityId() {
+        return promotionActivityId;
+    }
+
+    public void setPromotionActivityId(Long promotionActivityId) {
+        this.promotionActivityId = promotionActivityId;
+    }
+
+
+    public Integer getResponsibilityType() {
+        return responsibilityType;
+    }
+
+    public void setResponsibilityType(Integer responsibilityType) {
+        this.responsibilityType = responsibilityType;
+    }
+
+    public Integer getPromotionDriverId() {
+        return promotionDriverId;
+    }
+
+    public void setPromotionDriverId(Integer promotionDriverId) {
+        this.promotionDriverId = promotionDriverId;
+    }
+
+    public BigDecimal getPromotionMoney() {
+        return promotionMoney;
+    }
+
+    public void setPromotionMoney(BigDecimal promotionMoney) {
+        this.promotionMoney = promotionMoney;
+    }
+
+    public Integer getAbnormal() {
+        return abnormal;
+    }
+
+    public void setAbnormal(Integer abnormal) {
+        this.abnormal = abnormal;
+    }
+
+    public String getAbnormalIntro() {
+        return abnormalIntro;
+    }
+
+    public void setAbnormalIntro(String abnormalIntro) {
+        this.abnormalIntro = abnormalIntro;
+    }
+
+    public String getAbnormalImg() {
+        return abnormalImg;
+    }
+
+    public void setAbnormalImg(String abnormalImg) {
+        this.abnormalImg = abnormalImg;
+    }
+
+    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 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 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 getTravelMoney() {
+        return travelMoney;
+    }
+
+    public void setTravelMoney(Double travelMoney) {
+        this.travelMoney = travelMoney;
+    }
+
+    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 getTipMoney() {
+        return tipMoney;
+    }
+
+    public void setTipMoney(Double tipMoney) {
+        this.tipMoney = tipMoney;
+    }
+
+    public Double getHolidayFee() {
+        return holidayFee;
+    }
+
+    public void setHolidayFee(Double holidayFee) {
+        this.holidayFee = holidayFee;
+    }
+
+    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 Integer getTaxiCardId() {
+        return taxiCardId;
+    }
+
+    public void setTaxiCardId(Integer taxiCardId) {
+        this.taxiCardId = taxiCardId;
+    }
+
+    public Integer getUserTaxiCardId() {
+        return userTaxiCardId;
+    }
+
+    public void setUserTaxiCardId(Integer userTaxiCardId) {
+        this.userTaxiCardId = userTaxiCardId;
+    }
+
+    public Double getDiscountAmount() {
+        return discountAmount;
+    }
+
+    public void setDiscountAmount(Double discountAmount) {
+        this.discountAmount = discountAmount;
+    }
+
+    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 Double getThankYouFee() {
+        return thankYouFee;
+    }
+
+    public void setThankYouFee(Double thankYouFee) {
+        this.thankYouFee = thankYouFee;
+    }
+
+    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 getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    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 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 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 String getSplitAllocation() {
+        return splitAllocation;
+    }
+
+    public void setSplitAllocation(String splitAllocation) {
+        this.splitAllocation = splitAllocation;
+    }
+
+    public Integer getPromotion() {
+        return promotion;
+    }
+
+    public void setPromotion(Integer promotion) {
+        this.promotion = promotion;
+    }
+
+    public String getVoice() {
+        return voice;
+    }
+
+    public void setVoice(String voice) {
+        this.voice = voice;
+    }
+
+    public Date getVoiceTime() {
+        return voiceTime;
+    }
+
+    public void setVoiceTime(Date voiceTime) {
+        this.voiceTime = voiceTime;
+    }
+
+    public String getPromotionUser() {
+        return promotionUser;
+    }
+
+    public void setPromotionUser(String promotionUser) {
+        this.promotionUser = promotionUser;
+    }
+
+    public String getPromotionPhone() {
+        return promotionPhone;
+    }
+
+    public void setPromotionPhone(String promotionPhone) {
+        this.promotionPhone = promotionPhone;
+    }
+
+    public String getTravelId() {
+        return travelId;
+    }
+
+    public void setTravelId(String travelId) {
+        this.travelId = travelId;
+    }
+
+    public Integer getIsCreated() {
+        return isCreated;
+    }
+
+    public void setIsCreated(Integer isCreated) {
+        this.isCreated = isCreated;
+    }
+
+    public Integer getRecoveryOrder() {
+        return recoveryOrder;
+    }
+
+    public void setRecoveryOrder(Integer recoveryOrder) {
+        this.recoveryOrder = recoveryOrder;
+    }
+
+    public Integer getIsGenerateRecoveryOrder() {
+        return isGenerateRecoveryOrder;
+    }
+
+    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
+        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
+    }
+
+    public Integer getOldOrderId() {
+        return oldOrderId;
+    }
+
+    public void setOldOrderId(Integer oldOrderId) {
+        this.oldOrderId = oldOrderId;
+    }
+
+    public Integer getAbnormalStatus() {
+        return abnormalStatus;
+    }
+
+    public void setAbnormalStatus(Integer abnormalStatus) {
+        this.abnormalStatus = abnormalStatus;
+    }
+
+    public BigDecimal getResponsibilityMoney() {
+        return responsibilityMoney;
+    }
+
+    public void setResponsibilityMoney(BigDecimal responsibilityMoney) {
+        this.responsibilityMoney = responsibilityMoney;
+    }
+
+    public Date getRecoveryOrderCreateDate() {
+        return recoveryOrderCreateDate;
+    }
+
+    public void setRecoveryOrderCreateDate(Date recoveryOrderCreateDate) {
+        this.recoveryOrderCreateDate = recoveryOrderCreateDate;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderTaxi{" +
+                "id=" + id +
+                ", type=" + type +
+                ", crossCityOrderId=" + crossCityOrderId +
+                ", place=" + place +
+                ", userId=" + userId +
+                ", 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 +
+                ", travelMoney=" + travelMoney +
+                ", parkMoney=" + parkMoney +
+                ", roadTollMoney=" + roadTollMoney +
+                ", tipMoney=" + tipMoney +
+                ", 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/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index c486976..735aba3 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -440,6 +440,15 @@
 		if (null == orderTaxi) {
 			return ResultUtil.error("获取数据失败,订单信息有误");
 		}
+		if (orderTaxi.getState() == 5) {
+			return ResultUtil.error("订单已开始服务,不能取消订单");
+		}
+		if (orderTaxi.getState() == 6 || orderTaxi.getState() == 7 || orderTaxi.getState() == 8 || orderTaxi.getState() == 9) {
+			return ResultUtil.error("订单已完成,不能取消订单");
+		}
+		if (orderTaxi.getState() == 10) {
+			return ResultUtil.error("订单已被取消,不能重复操作");
+		}
 		double amount = 0;
 		OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
 		CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, openCity.getId());
@@ -525,23 +534,25 @@
 				}
 				this.deleteTask(id);//删除定时任务
 				
-				Driver driver1 = null;
-				Company company = null;
-				//中台修改订单状态
-				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-				request.setOrderId(orderTaxi.getTravelId());
-				request.setStatus(orderTaxi.getState());
-				if (null != orderTaxi.getDriverId()) {
-					driver1 = driverService.selectById(orderTaxi.getDriverId());
-					company = companyService.selectById(driver1.getCompanyId());
-					request.setDriverId(driver1.getEmpId().toString());
-					request.setSupplierShopId(company.getEnterCode());
+				if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
+					Driver driver1 = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderTaxi.getTravelId());
+					request.setStatus(orderTaxi.getState());
+					if (null != orderTaxi.getDriverId()) {
+						driver1 = driverService.selectById(orderTaxi.getDriverId());
+						company = companyService.selectById(driver1.getCompanyId());
+						request.setDriverId(driver1.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderTaxi.getPromotion()) {
+						Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+						request.setPromoterId(driver2.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
-				if (2 == orderTaxi.getPromotion()) {
-					Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
-					request.setPromoterId(driver2.getEmpId().toString());
-				}
-				OrderUtil.modifyTravelItinerary(request);
 				
 				new Thread(new Runnable() {
 					@Override
@@ -662,23 +673,25 @@
 				orderTaxi.setBindId("");
 				this.updateById(orderTaxi);
 				
-				Driver driver = null;
-				Company company = null;
-				//中台修改订单状态
-				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-				request.setOrderId(orderTaxi.getTravelId());
-				request.setStatus(orderTaxi.getState());
-				if (null != orderTaxi.getDriverId()) {
-					driver = driverService.selectById(orderTaxi.getDriverId());
-					company = companyService.selectById(driver.getCompanyId());
-					request.setDriverId(driver.getEmpId().toString());
-					request.setSupplierShopId(company.getEnterCode());
+				if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
+					Driver driver = null;
+					Company company = null;
+					//中台修改订单状态
+					ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+					request.setOrderId(orderTaxi.getTravelId());
+					request.setStatus(orderTaxi.getState());
+					if (null != orderTaxi.getDriverId()) {
+						driver = driverService.selectById(orderTaxi.getDriverId());
+						company = companyService.selectById(driver.getCompanyId());
+						request.setDriverId(driver.getEmpId().toString());
+						request.setSupplierShopId(company.getEnterCode());
+					}
+					if (2 == orderTaxi.getPromotion()) {
+						Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+						request.setPromoterId(driver1.getEmpId().toString());
+					}
+					OrderUtil.modifyTravelItinerary(request);
 				}
-				if (2 == orderTaxi.getPromotion()) {
-					Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
-					request.setPromoterId(driver1.getEmpId().toString());
-				}
-				OrderUtil.modifyTravelItinerary(request);
 				
 				orderCancel.setState(2);
 				orderCancel.setPayType(3);
@@ -1334,6 +1347,7 @@
 			orderTaxi.setState(8);
 			orderTaxi.setPayType(3);
 			orderTaxi.setPayMoney(orderMoney);
+			orderTaxi.setPayTime(new Date());
 			
 			//处理优惠券和红包
 			if (null != userCouponRecord) {
@@ -1389,7 +1403,7 @@
 			return ResultUtil.error("订单不在待支付状态,不允许支付", "");
 		}
 		Integer uid = orderTaxi.getUserId();
-		Double orderMoney = orderTaxi.getOrderMoney();
+		Double orderMoney = (1 == orderTaxi.getAbnormal() ? orderTaxi.getOrderMoney() : orderTaxi.getResponsibilityMoney().doubleValue());
 		UserInfo userInfo = userInfoService.selectById(uid);
 		ResultUtil resultUtil = ResultUtil.success(new Object());
 		orderTaxi.setCouponMoney(0D);//初始化历史数据
@@ -1555,6 +1569,39 @@
 //			resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
 			
 			Driver driver = driverService.selectById(orderTaxi.getDriverId());
+			if(ToolUtil.isEmpty(orderTaxi.getTravelId())){
+				Company company = companyService.selectById(driver.getCompanyId());
+				//调三方订单中心创建行程单
+				CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+				request.setOrderNo("TA" + orderTaxi.getId());
+				request.setCustomerId(userInfo.getOnconUUID());
+				request.setDriverId(driver.getEmpId().toString());
+				request.setSupplierShopId(company.getEnterCode());
+				if(orderTaxi.getPromotion() !=null && 2 == orderTaxi.getPromotion()){
+					Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				request.setServiceType(2);
+				String travelItinerary = OrderUtil.createTravelItinerary(request);
+				orderTaxi.setTravelId(travelItinerary);
+
+				//创建订单
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+				request1.setOrderId(orderTaxi.getTravelId());
+				request1.setStatus(orderTaxi.getState());
+				if (null != orderTaxi.getDriverId()) {
+					request1.setDriverId(driver.getEmpId().toString());
+					request1.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderTaxi.getPromotion()) {
+					Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request1.setPromoterId(driver2.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request1);
+			}
+
+
 			if(null == orderTaxi.getIsCreated() || 0 == orderTaxi.getIsCreated()){
 				//调用中台创建订单及拉起支付接口
 				TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
@@ -1585,7 +1632,7 @@
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
-				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
+				TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData, orderTaxi.getRecoveryOrder());
 				PayInfo payInfo = tradeOrderCreate.getPayInfo();
 				if(!"000000".equals(payInfo.getRetCode())){
 					return ResultUtil.error(payInfo.getRetMsg());
@@ -1610,7 +1657,7 @@
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
-				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
+				PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data, orderTaxi.getRecoveryOrder());
 				if(!"000000".equals(payInfo.getRetCode())){
 					return ResultUtil.error(payInfo.getRetMsg());
 				}
@@ -1652,6 +1699,7 @@
 			orderTaxi.setState(8);
 			orderTaxi.setPayType(3);
 			orderTaxi.setPayMoney(orderMoney);
+			orderTaxi.setPayTime(new Date());
 			
 			//处理优惠券和红包
 			if (null != userCouponRecord) {
@@ -1703,6 +1751,7 @@
 			if (orderMoney == 0) {
 				return ResultUtil.error("请使用余额支付");
 			}
+			orderTaxi.setPayTime(new Date());
 			Double payMoney = orderTaxi.getOrderMoney();
 			Integer integer = paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 4, orderMoney, "", 1);
 			resultUtil = appOrderController.placeAnOrder(new BigDecimal(orderMoney), 4, orderId, 9, integer);
@@ -1743,6 +1792,7 @@
 		orderTaxi.setDiscountMoney(0D);
 		orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
 		orderTaxi.setState(8);
+		orderTaxi.setPayTime(new Date());
 		this.updateById(orderTaxi);
 		
 		new Thread(new Runnable() {
@@ -2091,6 +2141,7 @@
 			orderTaxi.setState(8);
 			orderTaxi.setPayType(type);
 			orderTaxi.setPayMoney(query.getAmount());
+			orderTaxi.setPayTime(new Date());
 			
 			UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
 			OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
@@ -2185,23 +2236,25 @@
 			orderTaxi.setTelX("");
 			this.updateById(orderTaxi);
 			
-			Driver driver = null;
-			Company company = null;
-			//中台修改订单状态
-			ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
-			request.setOrderId(orderTaxi.getTravelId());
-			request.setStatus(orderTaxi.getState());
-			if (null != orderTaxi.getDriverId()) {
-				driver = driverService.selectById(orderTaxi.getDriverId());
-				company = companyService.selectById(driver.getCompanyId());
-				request.setDriverId(driver.getEmpId().toString());
-				request.setSupplierShopId(company.getEnterCode());
+			if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
+				Driver driver = null;
+				Company company = null;
+				//中台修改订单状态
+				ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+				request.setOrderId(orderTaxi.getTravelId());
+				request.setStatus(orderTaxi.getState());
+				if (null != orderTaxi.getDriverId()) {
+					driver = driverService.selectById(orderTaxi.getDriverId());
+					company = companyService.selectById(driver.getCompanyId());
+					request.setDriverId(driver.getEmpId().toString());
+					request.setSupplierShopId(company.getEnterCode());
+				}
+				if (2 == orderTaxi.getPromotion()) {
+					Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
+					request.setPromoterId(driver1.getEmpId().toString());
+				}
+				OrderUtil.modifyTravelItinerary(request);
 			}
-			if (2 == orderTaxi.getPromotion()) {
-				Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
-				request.setPromoterId(driver1.getEmpId().toString());
-			}
-			OrderUtil.modifyTravelItinerary(request);
 			
 			query.setState(2);
 			query.setCode(order_id);
@@ -2256,45 +2309,57 @@
 					OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
 					List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
 					//整轮派单结束,若无司机接单,系统自动增加派单5轮,若增加5轮后任无司机接单,则系统结束派单,乘客端显示无司机接单、是否再次打车
-					for (int i = 1; i <= querys.size() + 15; i++) {
-						int finalI = i;
-						PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
-						System.out.println("pushOrder:" + pushOrder);
-						//获取空闲司机
-						List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
-						if (list.size() > 0) {
-							double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
-							int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
-							lastIndex = lastIndex == 0 ? list.size() : lastIndex;
-							list = list.subList(0, lastIndex);//获取空闲司机中占比数据
-							for (Driver driver : list) {//开始进行推送
-								//查询是否在限制推单范围内
-								boolean bo = false;
-								for (Integer integer : integers) {
-									if (integer.compareTo(driver.getId()) == 0) {
-										bo = true;
-										break;
+					int num = 0;
+					for (int j = 0; j < 6; j++) {
+						Boolean push = false;
+						for (int i = 1; i <= querys.size(); i++) {
+							num++;
+							int finalI = i;
+							PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
+							System.out.println("pushOrder:" + pushOrder);
+							//获取空闲司机
+							List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+							//随机排序
+							Collections.shuffle(list);
+							if (list.size() > 0) {
+								double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+								int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+								lastIndex = lastIndex == 0 ? list.size() : lastIndex;
+								list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+								for (Driver driver : list) {//开始进行推送
+									//查询是否在限制推单范围内
+									boolean bo = false;
+									for (Integer integer : integers) {
+										if (integer.compareTo(driver.getId()) == 0) {
+											bo = true;
+											break;
+										}
 									}
+									if (bo) {
+										continue;
+									}
+									pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
 								}
-								if (bo) {
-									continue;
-								}
-								pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
+							}
+							Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+							OrderPrivateCar orderTaxi1 = orderPrivateCarService.selectById(orderTaxi.getId());
+							Integer state = orderTaxi1.getState();
+							if (state != 1) {
+								push = true;
+								break;
+							}
+							if (num == 18 && state == 1) {
+								orderTaxi1.setState(10);
+								orderPrivateCarService.updateById(orderTaxi1);
+								pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, 1);
+								orderIds.remove(orderTaxi.getId());
 							}
 						}
-						Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
-						OrderPrivateCar orderTaxi1 = orderPrivateCarService.selectById(orderTaxi.getId());
-						Integer state = orderTaxi1.getState();
-						if (state != 1) {
+						if(push){
 							break;
 						}
-						if (i == querys.size() + 15 && state == 1) {
-							orderTaxi1.setState(10);
-							orderPrivateCarService.updateById(orderTaxi1);
-							pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
-							orderIds.remove(orderTaxi.getId());
-						}
 					}
+
 				} catch (Exception e) {
 					e.printStackTrace();
 				}
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml b/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml
index 51de891..153c6de 100644
--- a/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml
+++ b/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml
@@ -127,7 +127,7 @@
     host: smtp.163.com
     port: 465
     username: QYTJT001@163.com
-    password: GPaYdKdsQphDGRJd  # 这里是授权码,不是邮箱登录密码
+    password: YZjmbLUDtTLQMEXq  # 这里是授权码,不是邮箱登录密码
     properties:
       mail:
         smtp:
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
index f15256e..bed8ffb 100644
--- a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
+++ b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -123,7 +123,7 @@
     host: smtp.163.com
     port: 465
     username: QYTJT001@163.com
-    password: GPaYdKdsQphDGRJd  # 这里是授权码,不是邮箱登录密码
+    password: YZjmbLUDtTLQMEXq  # 这里是授权码,不是邮箱登录密码
     properties:
       mail:
         smtp:
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
index 24584c8..0ed2998 100644
--- a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
+++ b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -125,7 +125,7 @@
     host: smtp.163.com
     port: 465
     username: QYTJT001@163.com
-    password: GPaYdKdsQphDGRJd  # 这里是授权码,不是邮箱登录密码
+    password: YZjmbLUDtTLQMEXq  # 这里是授权码,不是邮箱登录密码
     properties:
       mail:
         smtp:

--
Gitblit v1.7.1