From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 12 九月 2025 20:30:13 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                             |    4 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java         |   77 +++
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java                             |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java              |   24 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java                |   69 ++-
 ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js                                                |    5 
 DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml                                                                    |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java                    |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java |   13 
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html                                            |   48 ++
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java                                     |   53 +++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java                      |   19 
 DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml                                                                    |    2 
 DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml                                                                      |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                          |   39 +
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html                                                                  |    5 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java                              |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java                      |  352 ++++++++++++++++++++
 ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml                                                                  |    2 
 UserQYTTravel/guns-admin/src/main/resources/application-test.yml                                                                        |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java                           |   17 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                           |    4 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java             |   21 +
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java   |   18 -
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html                                        |   16 
 UserQYTTravel/guns-admin/src/main/resources/application-prod.yml                                                                        |    2 
 ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml                                                                  |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java                              |   21 +
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml                              |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml                              |    2 
 DriverQYTTravel/guns-admin/src/main/resources/application-test.yml                                                                      |    2 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java             |    8 
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java                       |    5 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java                  |   47 +-
 ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html                                                 |    2 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                                |   39 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java                |    6 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java                   |    4 
 ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java                                                                        |    6 
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java                    |   35 +
 40 files changed, 828 insertions(+), 158 deletions(-)

diff --git a/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml b/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml
index d2c6f43..aab39b2 100644
--- a/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml
+++ b/DispatchQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
   port: 8008
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
 #  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
   spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
diff --git a/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml b/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml
index c32a571..69e1a88 100644
--- a/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml
+++ b/DispatchQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
   port: 8008
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
 #  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
   spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
index 6ac2b97..61f805f 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -18,15 +18,21 @@
 import com.stylefeng.guns.modular.system.util.DateUtil;
 import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
 import com.stylefeng.guns.modular.system.util.SystemException;
+import com.stylefeng.guns.modular.system.util.model.GeoFencingPolygon;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 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.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -64,6 +70,9 @@
     
     @Autowired
     private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
     
     
     /**
@@ -304,12 +313,14 @@
                 }
             }
             if(Integer.valueOf(map.get("type").toString()) == 2){//电子围栏
-                String gid = map.get("gid").toString();
-                List<String> list1 = gdMapElectricFenceUtil.monitorElectricFenc("", lonLat);
-                if(list1.contains(gid)){
+                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;
                 }
-                continue;
             }
         }
         return false;
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 0a36215..da50ac1 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -24,7 +24,6 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.service.impl.CarServiceImpl;
-import com.stylefeng.guns.modular.system.service.impl.CompanyServiceImpl;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
@@ -165,7 +164,8 @@
     private CarModelMapper carModelMapper;
     @Autowired
     private CarServiceImpl carServiceImpl;
-    private CompanyServiceImpl companyServiceImpl;
+    @Autowired
+    private ICompanyService companyService;
 
 
     /**
@@ -270,7 +270,7 @@
         }
         UserInfo userInfo = userInfoMapper.selectById(orderCrossCity.getUserId());
         Driver driver = driverService.selectById(orderCrossCity.getDriverId());
-        Company company = companyServiceImpl.selectById(driver.getCompanyId());
+        Company company = companyService.selectById(driver.getCompanyId());
         switch (state){
             case 3://出发前往预约点
                 orderCrossCity.setState(3);
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
index 25dea7d..ccb71ad 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -5,6 +5,7 @@
 import com.google.gson.Gson;
 import com.open.common.util.OpenApiClient;
 import com.open.common.util.SystemParameterNames;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.util.SpringContextsUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import lombok.extern.slf4j.Slf4j;
@@ -31,7 +32,7 @@
 	 * @param request
 	 * @return
 	 */
-	public static SaveStaffNode saveStaffNode(SaveStaffNodeRequest request){
+	public static ResultUtil<SaveStaffNode> saveStaffNode(SaveStaffNodeRequest request){
 		//请求路径
 		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/saveStaffNode";
 		//私钥文件
@@ -59,16 +60,24 @@
 		String retCode = jsonObject.getString("retCode");
 		if (!"0".equals(retCode)) {
 			log.error("【企业增加员工】请求失败:" + result);
-			throw new RuntimeException("【企业增加员工】请求失败:" + result);
+			String retMsg = jsonObject.getString("retMsg");
+			if(retMsg.contains("员工昵称已存在")){
+				request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
+				request.setEmpNickname(request.getEmpName());
+				return saveStaffNode(request);
+			}
+			retMsg = retMsg.substring(retMsg.indexOf("{"));
+			jsonObject = JSON.parseObject(retMsg);
+			return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
 		}
 		JSONObject object = jsonObject.getJSONObject("object");
 		String status = object.getString("status");
 		if (!"0".equals(status)) {
 			log.error("【企业增加员工】失败:" + object.toJSONString());
-			throw new RuntimeException("【企业增加员工】失败:" + object.toJSONString());
+			return ResultUtil.error("【企业增加员工】失败:" + object.getString("desc"));
 		}
 		SaveStaffNode saveStaffNode = object.getObject("data", SaveStaffNode.class);
-		return saveStaffNode;
+		return ResultUtil.success(saveStaffNode);
 	}
 	
 	
diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml b/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml
index afcaef7..364e895 100644
--- a/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml
+++ b/DriverQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
     port: 8007
 
 guns:
-    swagger-open: true              #是否开启swagger (true/false)
+    swagger-open: false              #是否开启swagger (true/false)
     kaptcha-open: false             #是否开启登录时验证码 (true/false)
     file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
     picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml b/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml
index 9e8d31f..ad9230c 100644
--- a/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml
+++ b/DriverQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
     port: 8007
 
 guns:
-    swagger-open: true              #是否开启swagger (true/false)
+    swagger-open: false              #是否开启swagger (true/false)
     kaptcha-open: false             #是否开启登录时验证码 (true/false)
     file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
     picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index c4a66e2..37bac06 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -168,7 +168,7 @@
      */
     @RequestMapping("/tDriver_add")
     public String tDriverAdd(Model model) {
-        List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2));
+        List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).eq("state", 0).ne("flag", 3));
         model.addAttribute("companyList", companyList);
     
         Integer roleType = shiroExtUtil.getUser().getRoleType();
@@ -177,8 +177,7 @@
             List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>()
                     .eq("type", 3)
                     .eq("superiorId", shiroExtUtil.getUser().getObjectId())
-                    .notIn("state", 1)
-                    .notIn("flag", 3));
+                    .eq("state", 0).ne("flag", 3));
             model.addAttribute("franchiseeList", franchiseeList);
         } else {
             model.addAttribute("franchiseeList", null);
@@ -187,8 +186,15 @@
         model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
 
         //查询线路列表
-        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
-        model.addAttribute("lineList",lineList);
+        if(1 != roleType){
+            Integer objectId = shiroExtUtil.getUser().getObjectId();
+            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1).last(" and (id in (select lineId from t_line_company where companyId = " + objectId + ") or companyId = " + objectId + ")"));
+            model.addAttribute("lineList",lineList);
+        }else{
+            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
+            model.addAttribute("lineList",lineList);
+        }
+
         List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
         model.addAttribute("provinceList",provinceList);
         return PREFIX + "tDriver_add.html";
@@ -261,19 +267,19 @@
         model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
     
         if (1 == roleType) {
-            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).ne("flag", 3));
+            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).eq("state", 0).ne("flag", 3));
             model.addAttribute("companyList", companyList);
-            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("superiorId", tDriver.getCompanyId()));
+            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("state", 0).ne("flag", 3).eq("superiorId", tDriver.getCompanyId()));
             model.addAttribute("franchiseeList", franchiseeList);
         } else if (2 == roleType) {
-            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("superiorId", shiroExtUtil.getUser().getObjectId()));
+            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 3).eq("state", 0).ne("flag", 3).eq("superiorId", shiroExtUtil.getUser().getObjectId()));
             model.addAttribute("franchiseeList", franchiseeList);
         }
 
         //查询平台ID
-        TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1));
+        TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1).eq("state", 0).ne("flag", 3));
         //判断是平台司机还是加盟司机
-        if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){
+        if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId().equals(company.getId())) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){
             model.addAttribute("companyType",1);
         }else{
             model.addAttribute("companyType",2);
@@ -315,26 +321,43 @@
         model.addAttribute("six",six);
 
         //查询线路列表
-        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
-        model.addAttribute("lineList",lineList);
+        if(1 != roleType){
+            Integer objectId = shiroExtUtil.getUser().getObjectId();
+            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1).last(" and (id in (select lineId from t_line_company where companyId = " + objectId + ") or companyId = " + objectId + ")"));
+            model.addAttribute("lineList",lineList);
+        }else{
+            List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
+            model.addAttribute("lineList",lineList);
+        }
         //查询驾驶员已添加的线路列表
         List<Map<String, Object>> driverLineList = tDriverLineService.getDriverLineListByDriverId(tDriverId);
         model.addAttribute("driverLineList",driverLineList);
         model.addAttribute("provinceId", 1);
+        model.addAttribute("cityId","");
+        model.addAttribute("areaId","");
+        model.addAttribute("provinceId", "");
+        model.addAttribute("areaList", new ArrayList<>());
+        model.addAttribute("cityList", new ArrayList<>());
         if(ToolUtil.isNotEmpty(tDriver.getPlaceOfEmployment())){
             TRegion area = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tDriver.getPlaceOfEmployment()));
-            model.addAttribute("areaId",area.getId());
-            TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", area.getParentId()));
-            model.addAttribute("cityId",city.getId());
-            TRegion province = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", city.getParentId()));
-            model.addAttribute("provinceId",province.getId());
+            if(null != area) {
+                model.addAttribute("areaId", area.getId());
+                TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", area.getParentId()));
+                if (null != city) {
+                    model.addAttribute("cityId", city.getId());
+                    TRegion province = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("id", city.getParentId()));
+                    if (null != province) {
+                        model.addAttribute("provinceId", province.getId());
+                    }
+                    //市
+                    List<TRegion> cityList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getParentId()));
+                    model.addAttribute("cityList", cityList);
+                }
 
-            //市
-            List<TRegion> cityList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getParentId()));
-            model.addAttribute("cityList",cityList);
-            //区
-            List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", area.getParentId()));
-            model.addAttribute("areaList",areaList);
+                //区
+                List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", area.getParentId()));
+                model.addAttribute("areaList",areaList);
+            }
         }
         //省
         List<TRegion> provinceList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
index bf36247..33ca40d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
@@ -15,6 +15,7 @@
 import com.stylefeng.guns.modular.system.dao.TCompanyMapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.service.impl.IncomeServiceImpl;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
@@ -62,6 +63,9 @@
 
     @Autowired
     private ITDriverService tDriverService;
+
+    @Autowired
+    private IIncomeService incomeService;
     
     @Autowired
     private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
@@ -750,6 +754,15 @@
                     paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                     OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
 
+                    //添加收入
+                    Map<String, Object> map = null;
+                    try {
+                        map = incomeService.saveIncome(tOrderPrivateCar.getId(), 1, tOrderPrivateCar.getOrderMoney().doubleValue());
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                    tOrderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
+
                     //中台修改订单状态
                     ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                     request1.setOrderId(tOrderPrivateCar.getTravelId());
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java
index 0fc8764..0fb36a9 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDispatchController.java
@@ -8,12 +8,21 @@
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.modular.system.model.TCompany;
 import com.stylefeng.guns.modular.system.model.TDispatch;
+import com.stylefeng.guns.modular.system.model.User;
 import com.stylefeng.guns.modular.system.service.ITCompanyService;
 import com.stylefeng.guns.modular.system.service.ITDispatchService;
 import com.stylefeng.guns.modular.system.service.IUserService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -175,7 +184,39 @@
 		    tDispatch.setCompanyId(objectId1);
 	    }
 	    tDispatch.setPassword(ShiroKit.md5(tDispatch.getPassword(), "WL:x9#"));
-	    tDispatchService.insert(tDispatch);
+
+		User user = userService.selectById(shiroExtUtil.getUser().getId());
+		TCompany tCompany = tCompanyService.selectById(user.getObjectId());
+		List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDispatch.getAccount(), tCompany.getEnterCode());
+		Long empId = null;
+		Integer empnew = null;
+		if(null == userInfoByPhone || userInfoByPhone.size() == 0){
+			SaveStaffNodeRequest request = new SaveStaffNodeRequest();
+			request.setMobile(user.getPhone());
+			request.setEntercode(tCompany.getEnterCode());
+			request.setEmpName(tDispatch.getName());
+			request.setEmpNickname(tDispatch.getName());
+			request.setLoginNo(tDispatch.getPhone());
+			request.setEmpSex("男");
+			request.setMphone(tDispatch.getPhone());
+			request.setEmail(tDispatch.getPhone() + "@qyt.com");
+			request.setDeptId(0);
+			request.setPositionId(1);
+			request.setSuperLevel(0);
+			request.setHideMobile(0);
+			ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
+			if(200 != resultUtil.getStatus()){
+				return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+			}
+			SaveStaffNode saveStaffNode = resultUtil.getData();
+			empId = saveStaffNode.getEmpId();
+			empnew = 1;
+		}
+		tDispatch.setEmpId(empId);
+		tDispatch.setEntercode(tCompany.getEnterCode());
+		tDispatch.setEnterId(Long.valueOf(tCompany.getEnterCode()));
+		tDispatch.setEmpnew(empnew);
+		tDispatchService.insert(tDispatch);
 	    return SUCCESS_TIP;
     }
 
@@ -197,6 +238,22 @@
             dispatch.setState(1);
         }
         tDispatchService.updateById(dispatch);
+		ShiroUser user = shiroExtUtil.getUser();
+		TCompany tCompany = tCompanyService.selectById(user.getObjectId());
+		if (null != dispatch.getEmpId() && 1 == dispatch.getEmpnew()) {
+			//中台先删除司机
+			List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(dispatch.getPhone(), tCompany.getEnterCode());
+			if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == dispatch.getEmpnew()) {
+				DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
+				deleteStafNodeRequest.setEmpId(dispatch.getEmpId());
+				deleteStafNodeRequest.setEntercode(tCompany.getEnterCode());
+				deleteStafNodeRequest.setMobile(tCompany.getPrincipalPhone());
+				ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
+				if(200 != resultUtil.getStatus()){
+					return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
+				}
+			}
+		}
         return SUCCESS_TIP;
     }
 
@@ -214,15 +271,15 @@
 			    return new ErrorTip(500, "账号已存在,请重新输入");
 		    }
 	    }
-	    Integer roleType = shiroExtUtil.getUser().getRoleType();
-	    Integer objectId = shiroExtUtil.getUser().getObjectId();
-	    if (2 == roleType) {
-		    tDispatch.setCompanyId(objectId);
-	    } else if (3 == roleType) {
-		    TCompany company = tCompanyService.selectById(objectId);
-		    tDispatch.setCompanyId(company.getSuperiorId());
-		    tDispatch.setFranchiseeId(objectId);
-	    }
+//	    Integer roleType = shiroExtUtil.getUser().getRoleType();
+//	    Integer objectId = shiroExtUtil.getUser().getObjectId();
+//	    if (2 == roleType) {
+//		    tDispatch.setCompanyId(objectId);
+//	    } else if (3 == roleType) {
+//		    TCompany company = tCompanyService.selectById(objectId);
+//		    tDispatch.setCompanyId(company.getSuperiorId());
+//		    tDispatch.setFranchiseeId(objectId);
+//	    }
 	    if (SinataUtil.isNotEmpty(tDispatch.getPassword())) {
 		    tDispatch.setPassword(ShiroKit.md5(tDispatch.getPassword(), "WL:x9#"));
 	    }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
index 946aeb5..c7fa7d3 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TLineController.java
@@ -81,7 +81,12 @@
     @RequestMapping("/tLine_add")
     public String tLineAdd(Model model) {
         //站点
-        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1));
+        Integer companyId = null;
+        if(shiroExtUtil.getUser().getRoleType() != 1){
+            companyId = shiroExtUtil.getUser().getObjectId();
+        }
+        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)
+                .eq(null != companyId, "companyId", companyId));
         model.addAttribute("siteList",siteList);
         //跨城车型
         List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
@@ -132,7 +137,12 @@
         TLineSite end = itLineSiteService.selectOne(new EntityWrapper<TLineSite>().eq("lineId", tLineId).eq("type", 2));
         model.addAttribute("end",end);
         //站点
-        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1));
+        Integer companyId = null;
+        if(shiroExtUtil.getUser().getRoleType() != 1){
+            companyId = shiroExtUtil.getUser().getObjectId();
+        }
+        List<TSite> siteList = itSiteService.selectList(new EntityWrapper<TSite>().eq("state", 1)
+                .eq(null != companyId, "companyId", companyId));
         model.addAttribute("siteList",siteList);
         //跨城车型
         List<TServerCarmodel> carmodelList = itServerCarmodelService.selectList(new EntityWrapper<TServerCarmodel>().eq("type", 2).eq("state", 1));
@@ -160,7 +170,11 @@
             endTime = timeArray[1];
         }
         Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        page.setRecords(tLineService.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state, shiroExtUtil.getUser().getObjectId()));
+        Integer companyId = null;
+        if(shiroExtUtil.getUser().getRoleType() != 1){
+            companyId = shiroExtUtil.getUser().getObjectId();
+        }
+        page.setRecords(tLineService.getLineList(page, beginTime, endTime, name, insertUser, modelStr, state, companyId));
         return super.packForBT(page);
     }
 
@@ -170,6 +184,7 @@
     @RequestMapping(value = "/add")
     @ResponseBody
     public ResultUtil add(TLine tLine,Integer startSiteId,Integer endSiteId,@RequestParam String subArr,@RequestParam String shuArr) {
+
         String name = tLine.getName();
         name = name.replaceAll("& lt;", "<");
         name = name.replaceAll("& gt;", ">");
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
index 0837007..c863de8 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -498,22 +498,6 @@
             }
         }
 
-        //中台修改订单状态
-        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
-        request1.setOrderId(orderCrossCity.getTravelId());
-        request1.setStatus(orderCrossCity.getState());
-        if (null != orderCrossCity.getDriverId()) {
-            TDriver driver2 = tDriverService.selectById(orderCrossCity.getDriverId());
-            TCompany company = iTCompanyService.selectById(driver2.getCompanyId());
-            request1.setDriverId(driver2.getEmpId().toString());
-            request1.setSupplierShopId(company.getEnterCode());
-        }
-        if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) {
-            TDriver driver2 = tDriverService.selectById(orderCrossCity.getPromotionDriverId());
-            request1.setPromoterId(driver2.getEmpId().toString());
-        }
-        OrderUtil.modifyTravelItinerary(request1);
-
         //未支付,调取消订单
         if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
             OrderUtil.tradeOrderCancel(orderCrossCity.getTravelId());
@@ -576,7 +560,7 @@
                         request2.setRefundType("5");
                         request2.setApplyRefundCharge(orderCrossCity.getPayMoney());
                         request2.setActualRefundCharge(orderCrossCity.getPayMoney());
-                        request2.setRefundAccount(user1.getEnterId().toString());
+                        request2.setRefundAccount(user1.getEmpId().toString());
                         request2.setRemark("服务商取消订单退款");
                         OrderUtil.orderRefundNotice(request2);
                         //添加交易明细
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java
index 848390c..0807929 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java
@@ -9,6 +9,7 @@
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.IdGenerator;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.modular.system.model.TLocation;
@@ -142,7 +143,12 @@
             endTime = timeArray[1];
         }
         Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        page.setRecords(tSiteService.getSiteList(page, beginTime, endTime, name, insertUser, city, state, shiroExtUtil.getUser().getObjectId()));
+        ShiroUser user = shiroExtUtil.getUser();
+        Integer companyId = null;
+        if(1 != user.getRoleType()){
+            companyId = user.getObjectId();
+        }
+        page.setRecords(tSiteService.getSiteList(page, beginTime, endTime, name, insertUser, city, state, companyId));
         return super.packForBT(page);
     }
 
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml
index 20954a2..90a10ed 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TLineMapper.xml
@@ -46,7 +46,7 @@
                 and o.state = #{state}
             </if>
             <if test="companyId != null">
-                and o.companyId = #{companyId}
+                and (o.id in (select lineId from t_line_company where companyId = #{companyId}) or o.companyId = #{companyId})
             </if>
         </where>
         order by o.id desc
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java
index f765df7..467e507 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDispatch.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableName;
 import java.io.Serializable;
 
@@ -62,6 +63,26 @@
      * 状态 1=正常 2=冻结 3=删除
      */
     private Integer state;
+    /**
+     * 中台员工ID
+     */
+    @TableField("empId")
+    private Long empId;
+    /**
+     * 中台员工所属企业ID
+     */
+    @TableField("enterId")
+    private Long enterId;
+    /**
+     * 中台员工所属企业编号
+     */
+    @TableField("entercode")
+    private String entercode;
+    /**
+     * 中台新增状态(0=否,1=是)
+     */
+    @TableField("empnew")
+    private Integer empnew;
 
 
     public Integer getId() {
@@ -152,6 +173,38 @@
         this.state = state;
     }
 
+    public Long getEmpId() {
+        return empId;
+    }
+
+    public void setEmpId(Long empId) {
+        this.empId = empId;
+    }
+
+    public Long getEnterId() {
+        return enterId;
+    }
+
+    public void setEnterId(Long enterId) {
+        this.enterId = enterId;
+    }
+
+    public String getEntercode() {
+        return entercode;
+    }
+
+    public void setEntercode(String entercode) {
+        this.entercode = entercode;
+    }
+
+    public Integer getEmpnew() {
+        return empnew;
+    }
+
+    public void setEmpnew(Integer empnew) {
+        this.empnew = empnew;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
index 61cf3e6..fa1fb03 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
@@ -63,4 +63,6 @@
 
     void updateState(String s);
 
+
+    Map<String, Object> saveIncome(Integer orderId, Integer orderType, Double payMoney) throws Exception;
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
index ac47b6e..be6012d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -1,11 +1,15 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.util.ExcelUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.IncomeMapper;
-import com.stylefeng.guns.modular.system.model.Income;
+import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +18,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -45,6 +50,12 @@
     private ITDriverService driverService;
     @Autowired
     private ShiroExtUtil shiroExtUtil;
+
+    @Autowired
+    private ITCompanyService companyService;
+
+    @Autowired
+    private ITLineService lineService;
     
     
     /**
@@ -664,4 +675,343 @@
     public void updateState(String s) {
         this.baseMapper.updateState(s);
     }
+
+    @Override
+    public Map<String, Object> saveIncome(Integer orderId, Integer orderType, Double payMoney) throws Exception {
+        TCompany company = null;
+        Integer orderNumber = 0;
+        Integer driverId = null;
+        JSONObject jsonObject = null;
+        JSONArray rules = null;
+        JSONArray time_rules = null;
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+        String startTime = sdf1.format(new Date()) + " 00:00:00";
+        String endTime = sdf1.format(new Date()) + " 23:59:59";
+        Map<String, Object> map = new HashMap<>();
+        switch (orderType){
+            case 1:
+                TOrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                driverId = orderPrivateCar.getDriverId();
+                company = companyService.selectById(orderPrivateCar.getCompanyId());
+                jsonObject = JSON.parseObject(company.getSpe());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if( ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>()
+                        .eq("driverId", orderPrivateCar.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getSpe());
+                break;
+            case 2:
+                TOrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                driverId = orderTaxi.getDriverId();
+                company = companyService.selectById(orderTaxi.getCompanyId());
+                jsonObject = JSON.parseObject(company.getTaxi());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>()
+                        .eq("driverId", orderTaxi.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getTaxi());
+                break;
+            case 3:
+                TOrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                TLine line = lineService.selectById(orderCrossCity.getLineId());
+                driverId = orderCrossCity.getDriverId();
+                jsonObject = JSON.parseObject(line.getOutSetting());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>()
+                        .eq("driverId", orderCrossCity.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", line.getOutSetting());
+                break;
+            case 4:
+                TOrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                driverId = orderLogistics.getDriverId();
+                company = companyService.selectById(orderLogistics.getCompanyId());
+                jsonObject = JSON.parseObject(company.getSameLogistics());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
+                        .eq("driverId", orderLogistics.getDriverId())
+                        .eq("type", 4)
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(6, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getSameLogistics());
+                break;
+            case 5:
+                TOrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
+                driverId = orderLogistics1.getDriverId();
+                company = companyService.selectById(orderLogistics1.getCompanyId());
+                jsonObject = JSON.parseObject(company.getCrossLogistics());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
+                        .eq("driverId", orderLogistics1.getDriverId())
+                        .eq("type", 5)
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(6, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getCrossLogistics());
+                break;
+            case 7:
+                TOrderCall orderCall = orderCallService.selectById(orderId);
+                driverId = orderCall.getDriverId();
+                company = companyService.selectById(orderCall.getCompanyId());
+                jsonObject = JSON.parseObject(company.getOnCall());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+
+                orderNumber = orderCallService.selectCount(new EntityWrapper<TOrderCall>()
+                        .eq("driverId", orderCall.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getOnCall());
+                break;
+        }
+
+        BigDecimal money = BigDecimal.ZERO;
+        //{"rules":[],"time_rules":[[{"order":"1,3","percent":"20","MemberCoins":"1.1,2"},{"order":"3,10","percent":"40","MemberCoins":"2,5"}]]}
+        //按天
+        if(rules.size() > 0){
+            for (int i = 0; i < rules.size(); i++) {
+                JSONObject jsonObject1 = rules.getJSONObject(i);
+                money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                if(money.compareTo(BigDecimal.ZERO) >= 0){
+                    break;
+                }
+            }
+        }
+        //按时间段
+        if(time_rules.size() > 0){
+            boolean b = false;
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            for (int i = 0; i < time_rules.size(); i++) {
+                JSONArray jsonArray = time_rules.getJSONArray(i);
+                JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                String time = jsonObject2.getString("time");
+                if(!b && ToolUtil.isNotEmpty(time)){
+                    String[] split = time.split(" - ");
+                    Date start = sdf.parse(split[0] + " 00:00:00");
+                    Date end = sdf.parse(split[1] + " 23:59:59");
+                    if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                        for (int j = 0; j < jsonArray.size(); j++) {
+                            JSONObject jsonObject1 = jsonArray.getJSONObject(j);
+                            money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                            if(money.compareTo(BigDecimal.ZERO) < 0){
+                                continue;
+                            }
+                            b = true;
+                            break;
+                        }
+                    }
+                }
+                if(b){
+                    break;
+                }
+            }
+
+            if(!b){
+                JSONArray jsonArray = time_rules.getJSONArray(0);
+                for (int j = 0; j < jsonArray.size(); j++) {
+                    JSONObject jsonObject1 = jsonArray.getJSONObject(j);
+                    money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                    if(money.compareTo(BigDecimal.ZERO) < 0){
+                        continue;
+                    }
+                    break;
+                }
+            }
+        }
+        if(money.compareTo(BigDecimal.ZERO) > 0){
+            TDriver driver = driverService.selectById(driverId);
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance((null != driver.getBalance() ? driver.getBalance() : BigDecimal.ZERO).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+            driverService.updateById(driver);
+        }
+        return map;
+    }
+
+    public BigDecimal getDriverMoney(Integer orderNumber, Double payMoney, Integer driverId, Integer orderId, Integer orderType, JSONObject jsonObject1) throws Exception{
+        String order = jsonObject1.getString("order");
+        Double percent = jsonObject1.getDouble("percent");
+        String MemberCoins = jsonObject1.getString("MemberCoins");
+        String[] split = order.split(",");
+        if(Integer.valueOf(split[0]).compareTo(orderNumber) <= 0 && Integer.valueOf(split[1]).compareTo(orderNumber) > 0){
+            String[] split1 = MemberCoins.split(",");
+            Double d = Double.valueOf(split1[0]);
+            Double g = Double.valueOf(split1[1]);
+
+            //平台抽成金额
+            BigDecimal multiply1 = new BigDecimal(payMoney).multiply(new BigDecimal(percent / 100));
+            //抽成金额小于最低金额,司机收入为0
+            if(multiply1.compareTo(new BigDecimal(d)) < 0){
+                saveData(1, 1, 2, orderId, orderType, d);
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(d));
+                if(subtract.compareTo(BigDecimal.ZERO) > 0){
+                    saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                    return subtract;
+                }
+                return new BigDecimal(0);
+            }
+            if(multiply1.compareTo(new BigDecimal(d)) >= 0 && multiply1.compareTo(new BigDecimal(g)) < 0){
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(multiply1);
+                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                saveData(1, 1, 2, orderId, orderType, multiply1.doubleValue());
+                return subtract;
+            }
+            if(multiply1.compareTo(new BigDecimal(g)) >= 0){
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(g));
+                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                saveData(1, 1, 2, orderId, orderType, g);
+                return subtract;
+            }
+        }
+        return new BigDecimal(-1);
+    }
+
 }
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
index 88e4bb9..28c2683 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -229,6 +229,11 @@
 		if (!"0".equals(retCode)) {
             log.error("【企业增加员工】请求失败:{}", result);
 			String retMsg = jsonObject.getString("retMsg");
+			if(retMsg.contains("员工昵称已存在")){
+				request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
+				request.setEmpNickname(request.getEmpName());
+				return saveStaffNode(request);
+			}
 			retMsg = retMsg.substring(retMsg.indexOf("{"));
 			jsonObject = JSON.parseObject(retMsg);
 			return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
index ec396fc..29be15d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -680,11 +680,11 @@
 
 	/**
 	 * 订单退款
-	 * @param request
+	 * @param request1
 	 * @return
 	 */
-	public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request) {
-		request.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5400004" : "5401007");
+	public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request1) {
+		request1.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
 		//请求路径
 		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderRefund";
 		//私钥文件
@@ -696,6 +696,13 @@
 		Map<String, Object> contentMap = new HashMap<String, Object>();
 		Date nowdate = new Date();
 		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+
+		TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+		request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1726529285264269312");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 6);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(request1);
 
 		String timeStamp = date.format(nowdate);
 		String messageId = UUIDUtil.getRandomCode();
@@ -716,11 +723,18 @@
 		}
 		JSONObject refundInfo = jsonObject.getJSONObject("busiResp").getJSONObject("refundInfo");
 		String retCode = refundInfo.getString("retCode");
-		if(!"".equals(retCode)){
+		if(!"0".equals(retCode)){
 			log.error("【订单退款】失败:" + refundInfo.getString("retMsg"));
 			throw new RuntimeException("【订单退款】失败:" + refundInfo.getString("retMsg"));
 		}
-		TradeOrderRefund tradeOrderRefund = refundInfo.getObject("data", TradeOrderRefund.class);
+		JSONObject object = refundInfo.getJSONObject("object");
+		String retCode1 = object.getString("retCode");
+		if(!"000000".equals(retCode1)){
+			log.error("【订单退款】失败:" + object.getString("retMsg"));
+			throw new RuntimeException("【订单退款】失败:" + object.getString("retMsg"));
+		}
+
+		TradeOrderRefund tradeOrderRefund = object.getObject("data", TradeOrderRefund.class);
 		return tradeOrderRefund;
 	}
 
@@ -771,10 +785,10 @@
 	 * @param orderId
 	 */
 	public static void tradeOrderCancel(String orderId) {
-		TradeOrderCancelRequest request = new TradeOrderCancelRequest();
-		request.setScene("TRAFFIC");
-		request.setMhltiCenterAppId("52270015");
-		request.setOrderId(orderId);
+		TradeOrderCancelRequest request1 = new TradeOrderCancelRequest();
+		request1.setScene("TRAFFIC");
+		request1.setMhltiCenterAppId("52270015");
+		request1.setOrderId(orderId);
 
 		//请求路径
 		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCancel";
@@ -788,6 +802,13 @@
 		Date nowdate = new Date();
 		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
 
+		TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+		request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1963507067318833152");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(request1);
+
 		String timeStamp = date.format(nowdate);
 		String messageId = UUIDUtil.getRandomCode();
 		contentMap.put(SystemParameterNames.getAppKey(), appKey);
diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml b/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml
index f75941d..163b453 100644
--- a/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml
+++ b/ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
   port: 8010
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
   spring-session-open: true      #是否开启spring session,如果是多机环境需要开启(true/false)
   session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
diff --git a/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml b/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml
index 22bbbc5..56aed10 100644
--- a/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml
+++ b/ManagementQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
   port: 8080
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
   spring-session-open: true      #是否开启spring session,如果是多机环境需要开启(true/false)
   session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
index 9f6b6b5..d77054b 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
@@ -9,6 +9,11 @@
     <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
     <link href="${ctxPath}/static/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
     <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
+    <style>
+        .slimScrollBar{
+            width: 10px !important;
+        }
+    </style>
 </head>
 
 <body class="fixed-sidebar full-height-layout gray-bg" style="overflow:hidden">
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html
index 1a36c30..9076ca5 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDispatch/tDispatch_edit.html
@@ -9,13 +9,13 @@
                     <#input id="name" name="调度名称" value="${item.name}"/>
 
                     @if(roleType == 1){
-                        <#select id="oneId" name="所属分公司:" onchange="TDispatchInfoDlg.companyChange(this)">
-                        <option value="">选择所属分公司</option>
-                        @for(obj in companyList){
-                        <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
-                        @}
+                        <#select id="oneId" name="所属分公司:" onchange="TDispatchInfoDlg.companyChange(this)" disabled>
+                            <option value="">选择所属分公司</option>
+                            @for(obj in companyList){
+                            <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
                         </#select>
-                        <#select id="twoId" name="所属加盟商:" >
+                        <#select id="twoId" name="所属加盟商:" disabled>
                             <option value="">选择所属加盟商</option>
                             @for(obj in franchiseeList){
                             <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
@@ -23,7 +23,7 @@
                         </#select>
                     @}
                     @if(roleType == 2){
-                        <#select id="franchiseeId" name="所属加盟商:" >
+                        <#select id="franchiseeId" name="所属加盟商:" disabled>
                             <option value="">选择所属加盟商</option>
                             @for(obj in franchiseeList){
                             <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
@@ -31,7 +31,7 @@
                         </#select>
                     @}
                     <#input id="phone" name="联系电话" value="${item.phone}" />
-                    <#input id="account" name="登录账号" value="${item.account}"/>
+                    <#input id="account" name="登录账号" value="${item.account}" disabled/>
                     <#input id="password" name="登录密码" value="" type="password"/>
                     <#input id="rePassword" name="确认密码" value="" type="password"/>
                 </div>
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
index 2cf1237..eb525ff 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/tLine_add.html
@@ -203,7 +203,7 @@
 
             <div class="row btn-group-m-t">
                 <div class="col-sm-10 col-sm-offset-5">
-                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addSubmit()"/>
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TLineInfoDlg.addSubmit(this)"/>
                     <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TLineInfoDlg.close()"/>
                 </div>
             </div>
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html
index a152350..4f2f370 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSystemPrice/taxiSet.html
@@ -50,9 +50,21 @@
                             <input type="text" onblur="checkIsYuan(this)" value='${json.num1!}' name="num1" id="num1" class="form-control newWidth" placeholder="最多3位数"/>
                             元,起步包含<input type="text" onblur="checkIsGongLi(this)" name="num2" id="num2" value='${json.num2!}' class="form-control newWidth" placeholder="最多3位数"/>
                             公里,不足起步公里按起步公里收费</br></br>
-                            超过起步里程后每公里加收  <input type="text" onblur="checkIsYuan(this)" name="num3" id="num3" value='${json.num3!}' class="form-control newWidth" placeholder="最多3位数"/>元
-<!--                            <span id="min">,<input type="text" onblur="checkIsMinute(this)" name="num5" id="num5" class="form-control newWidth" placeholder="最多3位数"/>-->
-<!--                            分钟</span>-->
+                            超过起步里程后每公里加收  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                            <button style="background-color: #1c53c1; width: 60px; height: 30px; border-style: none; border-radius: 5px; color: white; font-size: 20px;" onclick="addPriceButton()">+</button>
+                            <div id="mileage_div">
+                                @if(null != json.mileageList){
+                                    @for(obj in json.mileageList){
+                                    <div style="padding: 10px 0px;">
+                                        <input onblur="checkIsYuan(this)" name="mileage" class="form-control newWidth mileage" value="${obj.mileage}" placeholder="最多3位数"/>公里以上,每公里加收
+                                        <input onblur="checkIsYuan(this)" name="price" class="form-control newWidth price" value="${obj.price}" placeholder="最多3位数"/>元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                        <button style="background-color: white; width: 60px;height: 30px;border-radius: 5px;color: red;font-size: 15px;border: none;" onclick="remPriceButton(this)">删除</button>
+                                    </div>
+                                    @}
+                                @}
+                            </div>
+
+
                         </div>
                     </div>
                     <div class="form-group waitFee">
@@ -60,7 +72,7 @@
                         <div class="col-sm-10">
                             单程载客行驶
                             <input type="text" onblur="checkIsGongLi(this)" name="num4" id="num4"  value='${json.num4!}' class="form-control newWidth" placeholder="最多3位数" oninput="change(this)"/>
-                            (不含<input type="text" id="buhan" value="${json.num4!}" disabled style="border: none;width:45px;text-align:center">公里)超出部分收取空驶费,每公里加收<input type="text" onblur="checkIsYuan(this)" name="num5" id="num5"  value='${json.num5!}' class="form-control newWidth" placeholder="最多3位数"/>元
+                            (不含<input id="buhan" value="${json.num4!}" disabled style="border: none;width:45px;text-align:center">公里)超出部分收取空驶费,每公里加收<input type="text" onblur="checkIsYuan(this)" name="num5" id="num5"  value='${json.num5!}' class="form-control newWidth" placeholder="最多3位数"/>元
                         </div>
                     </div>
                     <div class="form-group waitFee">
@@ -108,7 +120,6 @@
 
         var b = false;
         var waitFee = '{';
-        // waitFee = waitFee + '"num1":"'+$("#num1").val()+'",';
         $('.waitFee input[type="text"]').each(function(){
             var value = $(this).val();
             if('' == value){
@@ -118,8 +129,23 @@
             }
             waitFee = waitFee + '"'+$(this)[0].name+'":"'+value+'",';
         });
+        waitFee = waitFee + '"mileageList":['
+        $('#mileage_div').children('div').each(function (){
+            waitFee = waitFee + "{"
+                $(this).children('input').each(function (){
+                var value = $(this).val();
+                if('' == value){
+                    b = true;
+                    Feng.info("请填写完整配置");
+                    return
+                }
+                waitFee = waitFee + '"'+$(this)[0].name+'":"'+value+'",';
+            })
+            waitFee = waitFee.substring(0,waitFee.length-1);
+            waitFee = waitFee + "},"
+        })
         waitFee = waitFee.substring(0,waitFee.length-1);
-        waitFee += '}';
+        waitFee += ']}';
         console.log(btoa(waitFee));
 
 		window.parent.document.getElementById("zc_price").value = btoa(waitFee);
@@ -174,6 +200,16 @@
             $(obj).val('');
         }
     }
+    function addPriceButton(){
+        $('#mileage_div').append('<div style="padding: 10px 0px;">' +
+            '<input onblur="checkIsYuan(this)" name="mileage" class="form-control newWidth mileage" placeholder="最多3位数"/>公里以上,每公里加收' +
+            '<input onblur="checkIsYuan(this)" name="price" class="form-control newWidth price" placeholder="最多3位数"/>元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' +
+            '<button style="background-color: white; width: 60px;height: 30px;border-radius: 5px;color: red;font-size: 15px;border: none;" onclick="remPriceButton(this)">删除</button>' +
+            '</div>')
+    }
 
+    function remPriceButton(e){
+        $(e).parent('div').remove();
+    }
 </script>
 @}
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
index 4ead55d..6ccc7ac 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tLine/tLine_info.js
@@ -137,7 +137,7 @@
 /**
  * 提交添加
  */
-TLineInfoDlg.addSubmit = function() {
+TLineInfoDlg.addSubmit = function(e) {
 
     this.clearData();
     this.collectData();
@@ -173,9 +173,10 @@
         Feng.error("请至少设置一条班次设置");
         return;
     }
-
+    $(e).attr('disabled','disabled'); //点击后就禁用,若想再次点击需刷新页面;
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/tLine/add", function(data){
+        $(e).removeAttr('disabled');
         if(data.status == 200){
             Feng.success("添加成功!");
             window.parent.TLine.table.refresh();
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
index 23b8ed9..95abc9e 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
@@ -3,6 +3,10 @@
 
 import com.stylefeng.guns.modular.crossCity.server.ILineService;
 import com.stylefeng.guns.modular.crossCity.warpper.LineWarpper;
+import com.stylefeng.guns.modular.system.dao.CarMapper;
+import com.stylefeng.guns.modular.system.model.Car;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.service.ICompanyService;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import io.swagger.annotations.Api;
@@ -29,6 +33,12 @@
     @Autowired
     private ILineService lineService;
 
+    @Autowired
+    private CarMapper carMapper;
+
+    @Autowired
+    private ICompanyService companyService;
+
 
 
     @ResponseBody
@@ -49,6 +59,17 @@
         }
     }
 
+
+    @ResponseBody
+    @RequestMapping(value = "/base/line/confirm", method = RequestMethod.POST)
+    @ApiOperation(value = "判断当前是否需要摆渡车", tags = {"用户端-跨城"}, notes = "")
+    public ResultUtil confirm(Integer carId){
+        Car car = carMapper.selectById(carId);
+        Company company = companyService.selectById(car.getCompanyId());
+        return ResultUtil.success(company.getIsNeedFerry());
+    }
+
+
 //    @ResponseBody
 //    @RequestMapping(value = "/base/line/scanCodeQueryLines", method = RequestMethod.POST)
 //    @ApiOperation(value = "扫码获取线路信息", tags = {"用户端-跨城"}, notes = "")
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
index 17bf4d0..21d6ebc 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
@@ -43,7 +43,7 @@
         left join t_car_model f on (d.carModelId = f.id)
         left join t_car_service g on (d.id = g.carId and g.`type` = 3)
         left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and a.lineId = h.lineId)
-        where 1 = 1
+        where b.driverId in (select driverId from t_driver_work where state = 1 and type like '%3%')
         <if test="null != lineId">
             and a.lineId = #{lineId}
         </if>
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 495fdc8..0f1ac3b 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
@@ -55,6 +55,8 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -1033,7 +1035,7 @@
 				}else{
 					tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isCompensate\":\"1\",\"isPromote\":\"0\"}");
 				}
-				tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
+				tradeOrderCreateData.setCharge(new BigDecimal(orderMoney).setScale(2, RoundingMode.HALF_EVEN));
 				tradeOrderCreateData.setOrderNo("CC" + orderCrossCity.getId());
 				tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID());
 				tradeOrderCreateData.setPartnerPayId(orderCrossCity.getTravelId());
@@ -1057,6 +1059,7 @@
 
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -1066,7 +1069,7 @@
 					return ResultUtil.error(payInfo.getRetMsg());
 				}
 				orderCrossCity.setIsCreated(1);
-				orderCrossCity.setTrackId(tradeOrderCreate.getOrderInfo().getOrderId());
+				orderCrossCity.setTravelId(tradeOrderCreate.getOrderInfo().getOrderId());
 				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
 			}else{
 				//拉起支付
@@ -1083,6 +1086,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -1092,7 +1096,7 @@
 				}
 				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
 			}
-
+			this.updateById(orderCrossCity);
 			paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据
 
 			//创建定时任务查询订单支付状态
@@ -1114,9 +1118,9 @@
 						request.setDriverId(driver.getEmpId().toString());
 						ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
 						TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
-						if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
+						if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
 							GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
-							getPaymentInfoDataRequest1.setPartnerPayId(orderCrossCity1.getTravelId());
+							getPaymentInfoDataRequest1.setPartnerPayId(orderCrossCity.getTravelId());
 							GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
 							payOrderCrossCityCallback(orderCrossCity1.getId(), getPaymentInfo1.getPayId(), 1, null);
 							break;
@@ -2179,21 +2183,6 @@
 		} else {
 			return ResultUtil.error("请完善后台取消规则设置");
 		}
-		//中台修改订单状态
-		ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
-		request1.setOrderId(orderCrossCity.getTravelId());
-		request1.setStatus(orderCrossCity.getState());
-		if (null != orderCrossCity.getDriverId()) {
-			Driver driver2 = driverService.selectById(orderCrossCity.getDriverId());
-			Company company = iCompanyService.selectById(driver2.getCompanyId());
-			request1.setDriverId(driver2.getEmpId().toString());
-			request1.setSupplierShopId(company.getEnterCode());
-		}
-		if (2 == orderCrossCity.getPromotion() && null != orderCrossCity.getPromotionDriverId()) {
-			Driver driver2 = driverService.selectById(orderCrossCity.getPromotionDriverId());
-			request1.setPromoterId(driver2.getEmpId().toString());
-		}
-		OrderUtil.modifyTravelItinerary(request1);
 
 		//未支付的情况取消订单
 		if(null == orderCrossCity.getPayType() && ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
@@ -2251,15 +2240,15 @@
 						}});
 						TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
 						//退款通知
-						OrderRefundNoticeRequest request1 = new OrderRefundNoticeRequest();
-						request1.setOrderId(orderCrossCity.getTravelId());
-						request1.setRefundPayNum(tradeOrderRefund.getRefundId());
-						request1.setRefundType("5");
-						request1.setApplyRefundCharge(new BigDecimal(orderCrossCity.getPayMoney()));
-						request1.setActualRefundCharge(new BigDecimal(orderCrossCity.getPayMoney()));
-						request1.setRefundAccount(userInfo.getOnconUUID());
-						request1.setRemark("跨城订单取消退款");
-						OrderUtil.orderRefundNotice(request1);
+						OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
+						request2.setOrderId(orderCrossCity.getTravelId());
+						request2.setRefundPayNum(tradeOrderRefund.getRefundId());
+						request2.setRefundType("5");
+						request2.setApplyRefundCharge(BigDecimal.valueOf(orderCrossCity.getPayMoney()));
+						request2.setActualRefundCharge(BigDecimal.valueOf(orderCrossCity.getPayMoney()));
+						request2.setRefundAccount(userInfo.getOnconUUID());
+						request2.setRemark("跨城订单取消退款");
+						OrderUtil.orderRefundNotice(request2);
 						//添加交易明细
 						transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id);
 					}
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 7172da0..e1756b2 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
@@ -48,6 +48,8 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -1982,15 +1984,6 @@
 		if (orderPrivateCar.getState() != 7) {
 			return ResultUtil.error("订单不在待支付状态,不允许支付", new ArrayList<>());
 		}
-		//查询支付信息
-		GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
-		getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
-		GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
-		String status = getPaymentInfo.getStatus();
-		if("1".equals(status) || "2".equals(status)){
-			payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
-			return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
-		}
 
 		Integer uid = orderPrivateCar.getUserId();
 		Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
@@ -2225,6 +2218,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -2236,6 +2230,15 @@
 				orderPrivateCar.setIsCreated(1);
 				resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl());
 			}else{
+				//查询支付信息
+				GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
+				getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
+				GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
+				String status = getPaymentInfo.getStatus();
+				if("1".equals(status) || "2".equals(status)){
+					payOrderPrivateCarCallback(orderPrivateCar.getId(), getPaymentInfo.getPayId(), 1);
+					return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>());
+				}
 				//拉起支付
 				TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
 				tradePayOff1Data.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -2250,6 +2253,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
@@ -2280,7 +2284,7 @@
 						request.setDriverId(driver.getEmpId().toString());
 						ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
 						TravelItinerary travelItinerary = travelItineraryList.getList().get(0);
-						if(travelItinerary.getStatus() != 7 || travelItinerary.getOrderStatus() == 11){
+						if(travelItinerary.getStatus() != 7 || Arrays.asList(3, 11).contains(travelItinerary.getOrderStatus())){
 							GetPaymentInfoDataRequest getPaymentInfoDataRequest1 = new GetPaymentInfoDataRequest();
 							getPaymentInfoDataRequest1.setPartnerPayId(orderPrivateCar1.getTravelId());
 							GetPaymentInfo getPaymentInfo1 = OrderUtil.paymentInfo(getPaymentInfoDataRequest1);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index 04a97d7..cf75e07 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
@@ -15,6 +16,7 @@
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
 import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
+import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -226,7 +228,7 @@
         JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费
         Double num1 = jsonObject.getDouble("num1");
         Double num2 = jsonObject.getDouble("num2");
-        Double num3 = jsonObject.getDouble("num3");
+        JSONArray mileageList = jsonObject.getJSONArray("mileageList");
         Double num4 = jsonObject.getDouble("num4");
         Double num5 = jsonObject.getDouble("num5");
         String num6 = jsonObject.getString("num6");
@@ -292,7 +294,28 @@
             BigDecimal multiply = BigDecimal.ZERO;
             BigDecimal yt = BigDecimal.ZERO;
             if (d > num2) {
-                multiply = new BigDecimal(d).subtract(new BigDecimal(num2)).multiply(new BigDecimal(num3));
+                List<MileageObject> list = new ArrayList<>();
+                for (int i = 0; i < mileageList.size(); i++) {
+                    MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
+                    list.add(mileageObject);
+                }
+                //根据配置的里程倒序排序
+                list.sort(new Comparator<MileageObject>() {
+                    @Override
+                    public int compare(MileageObject o1, MileageObject o2) {
+                        return o1.getMileage().compareTo(o2.getMileage()) * -1;
+                    }
+                });
+                //计算每个阶段的增加费用
+                Double last = d;
+                for (int i = 0; i < list.size(); i++) {
+                    Double mileage = list.get(i).getMileage();
+                    Double price = list.get(i).getPrice();
+                    if(d > mileage){
+                        multiply = new BigDecimal(last).subtract(new BigDecimal(mileage)).multiply(new BigDecimal(price));
+                        last = mileage;
+                    }
+                }
                 if (d > num4) {
                     yt = new BigDecimal(d).subtract(new BigDecimal(num4)).multiply(new BigDecimal(num5));
                 }
@@ -428,4 +451,12 @@
         }
         return map;
     }
+
+
+    @Data
+    public static class MileageObject{
+        private Double mileage;
+        private Double price;
+
+    }
 }
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 809878a..2356f32 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
@@ -107,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 1 HOUR)"));
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
 			for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
 				UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
 				SendSmsRequest request = new SendSmsRequest();
@@ -120,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 1 HOUR)"));
+					.last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)"));
 			for (OrderTaxi orderTaxi : orderTaxis) {
 				UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
 				SendSmsRequest request = new SendSmsRequest();
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
index e01832f..b724f16 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/EmployeeUtil.java
@@ -81,6 +81,11 @@
 		if (!"0".equals(retCode)) {
 			log.error("【企业增加员工】请求失败:" + result);
 			String retMsg = jsonObject.getString("retMsg");
+			if(retMsg.contains("员工昵称已存在")){
+				request.setEmpName(request.getEmpName() + Double.valueOf(Math.random() * 100).intValue());
+				request.setEmpNickname(request.getEmpName());
+				return saveStaffNode(request);
+			}
 			retMsg = retMsg.substring(retMsg.indexOf("{"));
 			jsonObject = JSON.parseObject(retMsg);
 			return ResultUtil.error("【企业增加员工】请求失败:" + jsonObject.getString("msg"));
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 daae9ea..bd5e2c3 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
@@ -691,11 +691,11 @@
 
 	/**
 	 * 订单退款
-	 * @param request
+	 * @param request1
 	 * @return
 	 */
-	public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request) {
-		request.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5400004" : "5401007");
+	public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request1) {
+		request1.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
 		//请求路径
 		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderRefund";
 		//私钥文件
@@ -707,6 +707,13 @@
 		Map<String, Object> contentMap = new HashMap<String, Object>();
 		Date nowdate = new Date();
 		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+
+		TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+		request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1726529285264269312");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 6);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(request1);
 
 		String timeStamp = date.format(nowdate);
 		String messageId = UUIDUtil.getRandomCode();
@@ -727,11 +734,18 @@
 		}
 		JSONObject refundInfo = jsonObject.getJSONObject("busiResp").getJSONObject("refundInfo");
 		String retCode = refundInfo.getString("retCode");
-		if(!"".equals(retCode)){
+		if(!"0".equals(retCode)){
 			log.error("【订单退款】失败:" + refundInfo.getString("retMsg"));
 			throw new RuntimeException("【订单退款】失败:" + refundInfo.getString("retMsg"));
 		}
-		TradeOrderRefund tradeOrderRefund = refundInfo.getObject("data", TradeOrderRefund.class);
+		JSONObject object = refundInfo.getJSONObject("object");
+		String retCode1 = object.getString("retCode");
+		if(!"000000".equals(retCode1)){
+			log.error("【订单退款】失败:" + object.getString("retMsg"));
+			throw new RuntimeException("【订单退款】失败:" + object.getString("retMsg"));
+		}
+
+		TradeOrderRefund tradeOrderRefund = object.getObject("data", TradeOrderRefund.class);
 		return tradeOrderRefund;
 	}
 
@@ -782,10 +796,10 @@
 	 * @param orderId
 	 */
 	public static void tradeOrderCancel(String orderId) {
-		TradeOrderCancelRequest request = new TradeOrderCancelRequest();
-		request.setScene("TRAFFIC");
-		request.setMhltiCenterAppId("52270015");
-		request.setOrderId(orderId);
+		TradeOrderCancelRequest request1 = new TradeOrderCancelRequest();
+		request1.setScene("TRAFFIC");
+		request1.setMhltiCenterAppId("52270015");
+		request1.setOrderId(orderId);
 
 		//请求路径
 		String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCancel";
@@ -799,6 +813,13 @@
 		Date nowdate = new Date();
 		SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
 
+		TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+		request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1963507067318833152");
+		request.setAppId(qianYunTongConfig.getAppkey());
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(request1);
+
 		String timeStamp = date.format(nowdate);
 		String messageId = UUIDUtil.getRandomCode();
 		contentMap.put(SystemParameterNames.getAppKey(), appKey);
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
index b3d7f21..addf947 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
@@ -36,4 +36,8 @@
 	 * 业务类型,默认传10408
 	 */
 	private String businessType;
+	/**
+	 * 结算日期yyyyMMdd
+	 */
+	private String settleDate;
 }
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
index 27ffc26..2de1651 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
@@ -45,7 +45,7 @@
 	 */
 	private Integer serviceType;
 	/**
-	 * 订单状态。1、待支付,11、已完结(可结算)
+	 * 订单状态。1、待支付,3=已支付,11、已完结(可结算),16、已取消,32、已全部退款
 	 */
 	private Integer orderStatus;
 	/**
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 056e1db..04b0101 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
@@ -49,6 +49,8 @@
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -1629,6 +1631,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradeOrderCreateData.setGoodsInfo(goodsInfo);
@@ -1654,6 +1657,7 @@
 					goodsInfoRequest.setProfitSharing("1");
 				}else{
 					goodsInfoRequest.setProfitSharing("0");
+					goodsInfoRequest.setSettleDate(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
 				}
 				goodsInfo.add(goodsInfoRequest);
 				tradePayOff1Data.setGoodsInfo(goodsInfo);
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
index bed8ffb..68b5a93 100644
--- a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
+++ b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
   port: 8006
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
   file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
   picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
index 0ed2998..2f7eb7f 100644
--- a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
+++ b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml
@@ -2,7 +2,7 @@
   port: 8006
 
 guns:
-  swagger-open: true              #是否开启swagger (true/false)
+  swagger-open: false              #是否开启swagger (true/false)
   kaptcha-open: false             #是否开启登录时验证码 (true/false)
   file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
   picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
diff --git a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java b/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java
index 564070d..3a1e339 100644
--- a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java
+++ b/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java
@@ -37,9 +37,9 @@
         public List<SwaggerResource> get() {
             List resource=new ArrayList<>();
             //name可以随便写,location前缀要与zuul配置的path一致。zuul开了token验证,要加上token,否则不用加?token=1
-            resource.add(swaggerResource("user","/user-server/v2/api-docs","1.0"));
-            resource.add(swaggerResource("driver","/driver-server/v2/api-docs","1.0"));
-            resource.add(swaggerResource("dispatch","/dispatch-server/v2/api-docs","1.0"));
+//            resource.add(swaggerResource("user","/user-server/v2/api-docs","1.0"));
+//            resource.add(swaggerResource("driver","/driver-server/v2/api-docs","1.0"));
+//            resource.add(swaggerResource("dispatch","/dispatch-server/v2/api-docs","1.0"));
             return resource;
         }
 

--
Gitblit v1.7.1