From 17f18c3d56a70327874aa7dda0adfa2f5e3dafce Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 14 六月 2023 20:57:38 +0800
Subject: [PATCH] 代理商修改优惠券展示

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java | 2534 +++++++++++++++++----------------------------------------
 1 files changed, 773 insertions(+), 1,761 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index 55adaa4..4c6f5ce 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -1,50 +1,69 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
 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.plugins.Page;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
-import com.stylefeng.guns.core.base.tips.ErrorTip;
-import com.stylefeng.guns.core.common.constant.factory.PageFactory;
+import com.stylefeng.guns.core.base.tips.SuccessTip;
+import com.stylefeng.guns.core.log.LogObjectHolder;
 import com.stylefeng.guns.core.shiro.ShiroKit;
-import com.stylefeng.guns.core.util.*;
-import com.stylefeng.guns.modular.system.dao.DriverPunishMapper;
-import com.stylefeng.guns.modular.system.dao.DriverTrainMapper;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
+import com.stylefeng.guns.modular.system.controller.resp.TDriverResp;
+import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
+import com.stylefeng.guns.modular.system.controller.util.HttpUtils;
+import com.stylefeng.guns.modular.system.controller.util.TokenUtils;
+import com.stylefeng.guns.modular.system.controller.util.UUIDUtil;
+import com.stylefeng.guns.modular.system.dao.AccountChangeDetailMapper;
+import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
-import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil;
-import com.stylefeng.guns.modular.system.util.PushURL;
-import com.stylefeng.guns.modular.system.util.ResultUtil;
-import org.apache.commons.lang.time.DateUtils;
-import org.apache.poi.hdf.extractor.TC;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.ui.Model;
+import com.stylefeng.guns.modular.system.util.DateUtil;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.shiro.subject.Subject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import com.stylefeng.guns.core.log.LogObjectHolder;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
 import java.text.DateFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.time.LocalDate;
+import java.time.Period;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
- * 司机审核列表控制器
+ * 控制器
  *
  * @author fengshuonan
- * @Date 2020-06-04 17:35:28
+ * @Date 2023-02-20 09:07:06
  */
 @Controller
 @RequestMapping("/tDriver")
@@ -56,33 +75,36 @@
     private ITDriverService tDriverService;
 
     @Autowired
-    private ITCompanyService tCompanyService;
+    private ITRegionService tRegionService;
 
     @Autowired
-    private ITDriverServiceService tDriverServiceService;
+    private ITAgentService tAgentService;
 
     @Autowired
-    private ITDriverLineService tDriverLineService;
+    private ITBranchOfficeService tBranchOfficeService;
+    @Autowired
+    private RedisTemplate<String,String> redisTemplate;
+    @Autowired
+    private HttpUtils httpUtils;
+    @Autowired
+    private TokenUtils tokenUtils;
+    @Autowired
+    private ITDriverWorkService tDriverWorkService;
+    @Autowired
+    private RedisUtil redisUtil;
+    @Autowired
+    private ITRechargeRecordService tRechargeRecordService;
 
     @Autowired
-    private ITLineService itLineService;
-
-    @Autowired
-    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+    private ITSystemConfigService systemConfigService;
 
     @Resource
-    private DriverTrainMapper driverTrainMapper;
+    private AccountChangeDetailMapper accountChangeDetailMapper;
 
-    @Resource
-    private DriverPunishMapper driverPunishMapper;
-
-    @Value("${pushMinistryOfTransport}")
-    private boolean pushMinistryOfTransport;
-
-
+    private Logger log = LoggerFactory.getLogger(this.getClass());
 
     /**
-     * 跳转到司机审核列表首页
+     * 跳转到首页
      */
     @RequestMapping("")
     public String index() {
@@ -90,1815 +112,805 @@
     }
 
     /**
-     * 跳转到审核通过司机首页
+     * 跳转到佣金首页
      */
-    @RequestMapping("/yesDriver")
-    public String yesDriver() {
-        return PREFIX + "yesDriver.html";
+    @RequestMapping("/commission")
+    public String commissionIndex() {
+        return PREFIX + "tDriverCommission.html";
     }
 
     /**
-     * 跳转到添加司机
+     * 跳转到添加
      */
     @RequestMapping("/tDriver_add")
-    public String tDriverAdd(Model model) {
-        List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2));
-        model.addAttribute("companyList",companyList);
-
-        Integer roleType = ShiroKit.getUser().getRoleType();
-        model.addAttribute("roleType",roleType);
-        if (2 == roleType){
-            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>()
-                    .eq("type", 3)
-                    .eq("superiorId",ShiroKit.getUser().getObjectId())
-                    .notIn("state",1)
-                    .notIn("flag",3));
-            model.addAttribute("franchiseeList",franchiseeList);
-        }else{
-            model.addAttribute("franchiseeList",null);
-        }
-        //查询当前用户所属分公司/加盟商
-        model.addAttribute("objectName",tCompanyService.selectById(ShiroKit.getUser().getObjectId()).getName());
-
-        //查询线路列表
-        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
-        model.addAttribute("lineList",lineList);
+    public String tDriverAdd() {
         return PREFIX + "tDriver_add.html";
     }
 
     /**
-     * 跳转到修改审核司机
+     * 跳转到修改
      */
-    @RequestMapping("/tDriver_immediately/{tDriverId}")
-    public String tDriver_immediately(@PathVariable Integer tDriverId, Model model) {
-        Map<String, Object> tDriver = tDriverService.getDriverById(tDriverId);
-        model.addAttribute("item",tDriver);
-        LogObjectHolder.me().set(tDriver);
-        return PREFIX + "tDriver_immediately.html";
-    }
-
-    /**
-     * 跳转到选择车辆页面
-     */
-    @RequestMapping("/tDriver_changeCar/{tDriverId}")
-    public String tDriver_changeCar(@PathVariable Integer tDriverId, Model model) {
-        model.addAttribute("tDriverId",tDriverId);
-        return PREFIX + "tDriver_changeCar.html";
-    }
-
-    /**
-     * 跳转到冻结/解冻司机页面
-     */
-    @RequestMapping("/tDriver_optDriver/{tDriverId}/{optType}")
-    public String tDriver_optDriver(@PathVariable Integer tDriverId,@PathVariable Integer optType, Model model) {
-        model.addAttribute("tDriverId",tDriverId);
-        model.addAttribute("optType",optType);
-        return PREFIX + "tDriver_optDriver.html";
-    }
-
-    /**
-     * 跳转到查看司机详情
-     */
-    @RequestMapping("/tDriver_look/{tDriverId}")
-    public String tDriver_look(@PathVariable Integer tDriverId, Model model) {
-        Map<String, Object> tDriver = tDriverService.getDriverById(tDriverId);
-        model.addAttribute("item",tDriver);
-        LogObjectHolder.me().set(tDriver);
-        return PREFIX + "tDriver_look.html";
-    }
-
-    /**
-     * 跳转到修改司机
-     */
-    @RequestMapping("/tDriver_update/{tDriverId}")
-    public String tDriverUpdate(@PathVariable Integer tDriverId, Model model) {
+    @RequestMapping("/tDriver_update")
+    public String tDriverUpdate( Integer tDriverId, Model model) throws ParseException {
         TDriver tDriver = tDriverService.selectById(tDriverId);
-        model.addAttribute("item",tDriver);
+        TDriverResp tDriverResp = new TDriverResp();
+        BeanUtils.copyProperties(tDriver,tDriverResp);
+
+        if(Objects.nonNull(tDriverResp.getFirstCertificateTime())){
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+            String format1 = format.format(tDriverResp.getFirstCertificateTime());
+            tDriverResp.setFirstCertificateTimeStr(format1);
+        }
+//        tDriverResp.setFirstCertificateTime(format.parse(format1));
+
+        // 查询邀请人
+        TDriver tDriver1 = tDriverService.selectById(tDriver.getInviterId());
+        if(Objects.nonNull(tDriver1)){
+            tDriverResp.setInviterName(tDriver1.getName());
+            tDriverResp.setInviterPhone(tDriver1.getPhone());
+        }
+
+        // 查询区域
+        TRegion district = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tDriver.getAreaCode())
+                .last("LIMIT 1"));
+        TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tDriver.getCityCode())
+                .last("LIMIT 1"));
+
+//        tDriverResp.setArea(tDriver.getProvinceName()+"/"+tDriver.getCityName()+"/"+tDriver.getAreaName());
+//        if(Objects.nonNull(district) && Objects.nonNull(city)){
+//            tDriverResp.setAreaId(city.getParentId()+"/"+city.getId()+"/"+district.getId());
+//        }
+        if(StringUtils.hasLength(tDriver.getAreaName()) && !tDriver.getAreaName().equals(tDriver.getCityName())){
+            tDriverResp.setArea(tDriver.getProvinceName()+"/"+tDriver.getCityName()+"/"+tDriver.getAreaName());
+        }else {
+            tDriverResp.setArea(tDriver.getProvinceName()+"/"+tDriver.getCityName());
+        }
+
+        if(Objects.nonNull(city)){
+            if(Objects.nonNull(district) && !district.getCode().equals(city.getCode())){
+                tDriverResp.setAreaId(city.getParentId()+"/"+city.getId()+"/"+district.getId());
+            }else {
+                tDriverResp.setAreaId(city.getParentId()+"/"+city.getId());
+            }
+        }
+
+        model.addAttribute("item",tDriverResp);
         LogObjectHolder.me().set(tDriver);
-
-        Integer roleType = ShiroKit.getUser().getRoleType();
-        model.addAttribute("roleType",roleType);
-        model.addAttribute("objectName",tCompanyService.selectById(ShiroKit.getUser().getObjectId()).getName());
-
-        if (1 == roleType){
-            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2));
-            model.addAttribute("companyList",companyList);
-            List<TCompany> franchiseeList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 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",ShiroKit.getUser().getObjectId()));
-            model.addAttribute("franchiseeList",franchiseeList);
-        }
-
-        //查询平台ID
-        TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1));
-        //判断是平台司机还是加盟司机
-        if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){
-            model.addAttribute("companyType",1);
-        }else{
-            model.addAttribute("companyType",2);
-        }
-
-        //获取经营业务
-        List<TDriverService> serviceList = tDriverServiceService.selectList(new EntityWrapper<TDriverService>().eq("driverId", tDriverId));
-        Integer one = 1;
-        Integer two = 1;
-        Integer three = 1;
-        Integer four = 1;
-        Integer five = 1;
-        Integer six = 1;
-        for (TDriverService obj : serviceList){
-            if (obj.getType() == 1){
-                one = 2;
-            }
-            if (obj.getType() == 2){
-                two = 2;
-            }
-            if (obj.getType() == 3){
-                three = 2;
-            }
-            if (obj.getType() == 4){
-                four = 2;
-            }
-            if (obj.getType() == 5){
-                five = 2;
-            }
-            if (obj.getType() == 6){
-                six = 2;
-            }
-        }
-        model.addAttribute("one",one);
-        model.addAttribute("two",two);
-        model.addAttribute("three",three);
-        model.addAttribute("four",four);
-        model.addAttribute("five",five);
-        model.addAttribute("six",six);
-
-        //查询线路列表
-        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);
         return PREFIX + "tDriver_edit.html";
     }
 
     /**
-     * 跳转到添加培训页
-     * @param id
-     * @param model
+     * 跳转冻结页面
      * @return
      */
-    @RequestMapping("/showTraining")
-    public String showTraining(Integer id, Model model){
-        model.addAttribute("id", id);
-        return PREFIX + "training.html";
+    @RequestMapping("/tDriver_start_and_stop")
+    public String tAppUserStartAndStop( Integer id,
+                                        Model model) {
+        TDriver tDriver = tDriverService.selectById(id);
+
+        model.addAttribute("id",id);
+        model.addAttribute("status",tDriver.getStatus());
+        return PREFIX + "tDriverStartAndStop.html";
     }
 
-
     /**
-     * 保存培训数据
-     * @param train
-     * @param driverId
+     * 跳转充值页面
      * @return
      */
-    @ResponseBody
-    @RequestMapping(value = "/saveTrain", method = RequestMethod.POST)
-    public ResultUtil saveTrain(String train, Integer driverId){
-        if(ToolUtil.isEmpty(train)){
-            return ResultUtil.error("请添加有效的培训记录");
+    @RequestMapping("/rechargeBalancePage")
+    public String rechargeBalancePage( Integer id,
+                                        Model model) {
+        model.addAttribute("id",id);
+        return PREFIX + "tDriverRechargeBalancePage.html";
+    }
+
+    /**
+     * 跳转异常页面
+     * @return
+     */
+    @RequestMapping("/tDriver_exception")
+    public String tDriverException(Model model) {
+        model.addAttribute("isException",2);
+        return PREFIX + "tDriverException.html";
+    }
+    /**
+     * 跳转异常启用冻结页面
+     * @return
+     */
+    @RequestMapping("/tDriverException_start_and_stop")
+    public String tDriverExceptionStartAndStop(Integer id,Model model) {
+        TDriver tDriver = tDriverService.selectById(id);
+        model.addAttribute("id",id);
+        model.addAttribute("status",tDriver.getStatus());
+        return PREFIX + "tDriverExceptionStartAndStop.html";
+    }
+
+    /**
+     * 跳转审核页面
+     * @return
+     */
+    @RequestMapping("/auditPage")
+    public String auditPage( Integer id,Model model) {
+        tDriverService.auditPage(id,model);
+        return PREFIX + "tDriverAudit.html";
+    }
+
+    /**
+     * 跳转详情页面
+     */
+    @RequestMapping("/driverDetail")
+    public String driverDetail(Integer tDriverId, Model model) {
+        tDriverService.auditPage(tDriverId,model);
+        return PREFIX + "tDriverDetail.html";
+    }
+
+    /**
+     * 佣金跳转详情页面
+     */
+    @RequestMapping("/commission/driverCommissionDetail")
+    public String driverCommissionDetail(Integer tDriverId,Integer levelFlag, Model model) {
+        tDriverService.driverCommissionDetail(tDriverId,levelFlag,model);
+        return PREFIX + "tDriverCommissionDetail.html";
+    }
+
+    /**
+     * 跳转区域页面编辑
+     */
+    @RequestMapping("/areaPageUpdate")
+    public String areaPageUpdate(String area,String areaId,Model model) {
+
+        String[] split = area.split("/");
+        model.addAttribute("provinceName",split[0]);
+        model.addAttribute("cityName",split[1]);
+        if(split.length>2){
+            model.addAttribute("districtName",split[2]);
+        }else {
+            model.addAttribute("districtName","");
         }
-        String[] split = train.split(",");
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        try {
-            List<DriverTrain> update = new ArrayList<>();
-            List<DriverTrain> add = new ArrayList<>();
-            for(String s : split){
-                String[] s1 = s.split("_");
-                if(ToolUtil.isNotEmpty(s1[0])){//修改
-                    DriverTrain driverTrain = driverTrainMapper.selectById(s1[0]);
-                    driverTrain.setDriverId(driverId);
-                    driverTrain.setCourseName(s1[1]);
-                    driverTrain.setCourseDate(sdf.parse(s1[2]));
-                    driverTrain.setStartTime(s1[3]);
-                    driverTrain.setStopTime(s1[4]);
-                    driverTrain.setDuration(Integer.valueOf(s1[5]));
-                    update.add(driverTrain);
-                }else{//添加
-                    DriverTrain driverTrain = new DriverTrain();
-                    driverTrain.setDriverId(driverId);
-                    driverTrain.setCourseName(s1[1]);
-                    driverTrain.setCourseDate(sdf.parse(s1[2]));
-                    driverTrain.setStartTime(s1[3]);
-                    driverTrain.setStopTime(s1[4]);
-                    driverTrain.setDuration(Integer.valueOf(s1[5]));
-                    add.add(driverTrain);
-                }
-            }
-            List<DriverTrain> driverTrains = driverTrainMapper.queryAllTrain(driverId);
-            for(DriverTrain driverTrain : driverTrains){
-                boolean b = true;
-                for(String s : split){
-                    String[] s1 = s.split("_");
-                    if(ToolUtil.isNotEmpty(s1[0]) && driverTrain.getId() == Integer.valueOf(s1[0])){
-                        b = false;
-                        break;
-                    }
-                }
-                if(b){
-                    driverTrainMapper.deleteById(driverTrain.getId());
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            if(pushMinistryOfTransport){//上传数据
-                                pushMinistryOfTransportUtil.baseInfoDriverEducate(driverTrain.getId(), 3);
-                            }
-                        }
-                    }).start();
-                }
-            }
-            if(update.size() > 0){
-                for(DriverTrain driverTrain : update){
-                    driverTrainMapper.updateById(driverTrain);
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            if(pushMinistryOfTransport){//上传数据
-                                pushMinistryOfTransportUtil.baseInfoDriverEducate(driverTrain.getId(), 2);
-                            }
-                        }
-                    }).start();
-                }
-            }
-            if(add.size() > 0){
-                for(DriverTrain driverTrain : add){
-                    driverTrainMapper.insert(driverTrain);
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            if(pushMinistryOfTransport){//上传数据
-                                pushMinistryOfTransportUtil.baseInfoDriverEducate(driverTrain.getId(), 1);
-                            }
-                        }
-                    }).start();
-                }
-            }
 
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
+        String[] split1 = areaId.split("/");
+        model.addAttribute("provinceId",split1[0]);
+        model.addAttribute("cityId",split1[1]);
+        if(split1.length>2) {
+            model.addAttribute("districtId", split1[2]);
+        }else {
+            model.addAttribute("districtId", "");
         }
-        return ResultUtil.success();
+
+
+        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
+        model.addAttribute("provinceList",tRegions);
+        List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
+
+
+        // 查询市
+        List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
+        model.addAttribute("cityList",tRegions1);
+
+        // 查询区
+        List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList());
+        List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", split1[1]));
+        model.addAttribute("districtList",tRegions2);
+
+        return PREFIX + "tDriverAreaUpdate.html";
     }
 
     /**
-     * 获取司机的所有培训数据
-     * @param driverId
-     * @return
+     * 跳转区域页面新增
      */
-    @ResponseBody
-    @RequestMapping(value = "/queryAllTrain", method = RequestMethod.POST)
-    public ResultUtil queryAllTrain(Integer driverId){
-        List<DriverTrain> driverTrains = driverTrainMapper.queryAllTrain(driverId);
-        return ResultUtil.success(driverTrains);
-    }
+    @RequestMapping("/areaPageAdd")
+    public String areaPageAdd(String area,String areaId,Model model) {
+        String[] split1 = areaId.split("/");
+        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
+        model.addAttribute("provinceList",tRegions);
+//        List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
+//        // 查询市
+//        List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
+//        model.addAttribute("cityList",tRegions1);
+//
+//        // 查询区
+//        List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList());
+//        List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds));
+//        model.addAttribute("districtList",tRegions2);
 
+        if(StringUtils.hasLength(area) && StringUtils.hasLength(areaId)){
+            String[] split = area.split("/");
+            model.addAttribute("provinceName",split[0]);
+            model.addAttribute("cityName",split[1]);
+            if(split.length>2){
+                model.addAttribute("districtName",split[2]);
+            }else {
+                model.addAttribute("districtName","");
+            }
 
-    /**
-     * 跳转到处罚页
-     * @param id
-     * @param model
-     * @return
-     */
-    @RequestMapping("/showPunish")
-    public String showPunish(Integer id, Model model){
-        model.addAttribute("id", id);
-        return PREFIX + "punish.html";
-    }
+            model.addAttribute("provinceId",split1[0]);
+            model.addAttribute("cityId",split1[1]);
+            if(split1.length>2) {
+                model.addAttribute("districtId", split1[2]);
+            }else {
+                model.addAttribute("districtId", "");
+            }
 
+            List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
+            model.addAttribute("cityList",tRegions1);
 
-    /**
-     * 保存处罚数据
-     * @param punish
-     * @param driverId
-     * @return
-     */
-    @ResponseBody
-    @RequestMapping(value = "/savePunish", method = RequestMethod.POST)
-    public ResultUtil savePunish(String punish, Integer driverId){
-        if(ToolUtil.isEmpty(punish)){
-            return ResultUtil.error("请添加有效的培训记录");
+            // 查询区
+            List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", split1[1]));
+            model.addAttribute("districtList",tRegions2);
+        }else {
+            model.addAttribute("cityList",new ArrayList<>());
+            model.addAttribute("districtList",new ArrayList<>());
+
+            model.addAttribute("provinceName","");
+            model.addAttribute("cityName","split[1]");
+            model.addAttribute("districtName","");
+
+            model.addAttribute("provinceId","");
+            model.addAttribute("cityId","split1[1]");
+            model.addAttribute("districtId", "");
         }
-        String[] split = punish.split(",");
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        try {
-            List<DriverPunish> update = new ArrayList<>();
-            List<DriverPunish> add = new ArrayList<>();
-            for(String s : split){
-                String[] s1 = s.split("_");
-                if(ToolUtil.isNotEmpty(s1[0])){//修改
-                    DriverPunish driverPunish = driverPunishMapper.selectById(s1[0]);
-                    driverPunish.setDriverId(driverId);
-                    driverPunish.setPunishTime(sdf.parse(s1[1]));
-                    driverPunish.setPunishReason(s1[2]);
-                    driverPunish.setPunishReault(s1[3]);
-                    update.add(driverPunish);
-                }else{//添加
-                    DriverPunish driverPunish = new DriverPunish();
-                    driverPunish.setDriverId(driverId);
-                    driverPunish.setPunishTime(sdf.parse(s1[1]));
-                    driverPunish.setPunishReason(s1[2]);
-                    driverPunish.setPunishReault(s1[3]);
-                    add.add(driverPunish);
-                }
-            }
-            List<DriverPunish> driverPunishes = driverPunishMapper.queryAllPunish(driverId);
-            for(DriverPunish driverTrain : driverPunishes){
-                boolean b = true;
-                for(String s : split){
-                    String[] s1 = s.split("_");
-                    if(ToolUtil.isNotEmpty(s1[0]) && driverTrain.getId() == Integer.valueOf(s1[0])){
-                        b = false;
-                        break;
-                    }
-                }
-                if(b){
-                    driverTrainMapper.deleteById(driverTrain.getId());
-                }
-            }
-            if(update.size() > 0){
-                for(DriverPunish driverTrain : update){
-                    driverPunishMapper.updateById(driverTrain);
-                }
-            }
-            if(add.size() > 0){
-                for(DriverPunish driverTrain : add){
-                    driverPunishMapper.insert(driverTrain);
-                    new Thread(new Runnable() {
-                        @Override
-                        public void run() {
-                            if(pushMinistryOfTransport){//上传数据
-                                pushMinistryOfTransportUtil.ratedDriverPunish(driverTrain.getId());
-                            }
-                        }
-                    }).start();
-                }
-            }
-
-        }catch (Exception e){
-            e.printStackTrace();
-            return ResultUtil.runErr();
-        }
-        return ResultUtil.success();
-    }
-
-
-    /**
-     * 获取所有处罚数据
-     * @param driverId
-     * @return
-     */
-    @ResponseBody
-    @RequestMapping(value = "/queryAllPunish", method = RequestMethod.POST)
-    public ResultUtil queryAllPunish(Integer driverId){
-        List<DriverPunish> driverPunishes = driverPunishMapper.queryAllPunish(driverId);
-        return ResultUtil.success(driverPunishes);
-    }
-
-
-    /**
-     * 根据分公司ID获取加盟商
-     * @param oneId
-     * @return
-     */
-    @RequestMapping(value = "/oneChange")
-    @ResponseBody
-    public Object oneChange(@RequestParam Integer oneId) {
-        List<TCompany> list = new ArrayList<>();
-        if (SinataUtil.isNotEmpty(oneId)){
-            list = tCompanyService.selectList(new EntityWrapper<TCompany>()
-                    .eq("type", 3)
-                    .eq("superiorId", oneId)
-                    .notIn("flag",3)
-                    .notIn("state",1));
-        }
-        return list;
+        return PREFIX + "tDriverAreaAdd.html";
     }
 
     /**
-     * 获取司机审核列表列表
+     * 获取列表
      */
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(String insertTime,
-                       String companyName,
-                       String phone,
-                       String account,
-                       Integer addType,
-                       Integer authState) {
-        String beginTime = null;
-        String endTime = null;
-        if (SinataUtil.isNotEmpty(insertTime)){
-            String[] timeArray = insertTime.split(" - ");
-            beginTime = timeArray[0];
-            endTime = timeArray[1];
-        }
-        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        if (ShiroKit.getUser().getRoleType() != 1){
-            page.setRecords(null);
-        }else{
-            page.setRecords(tDriverService.getAuthDriverList(page,beginTime,endTime,companyName,phone,account,addType,authState));
-        }
-        return super.packForBT(page);
-    }
-
-    /**
-     * 获取审核通过的司机列表
-     */
-    @RequestMapping(value = "/listYesDriver")
-    @ResponseBody
-    public Object listYesDriver(String insertTime,
-                       String companyName,
-                       String phone,
-                       String name,
-                       Integer addType,
-                       Integer authState) {
-        String beginTime = null;
-        String endTime = null;
-        if (SinataUtil.isNotEmpty(insertTime)){
-            String[] timeArray = insertTime.split(" - ");
-            beginTime = timeArray[0];
-            endTime = timeArray[1];
-        }
-        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        page.setRecords(tDriverService.getDriverList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,companyName,phone,name,addType,authState));
-        return super.packForBT(page);
-    }
-
-    /**
-     * 获取可被选择的车辆列表
-     */
-    @RequestMapping(value = "/selectCarList/{tDriverId}")
-    @ResponseBody
-    public Object selectCarList(@PathVariable Integer tDriverId,
-                                String carLicensePlate,
-                                String brandName,
-                                String modelName,
-                                String color,
-                                String serverStr) {
-        TDriver driver = tDriverService.selectById(tDriverId);
-        /*String useCarIdStr = null;
-        //查询已被使用的车辆ID
-        if (SinataUtil.isNotEmpty(driver.getCarId())){
-            useCarIdStr = tDriverService.getUseCarIdStr(driver.getCarId());
-        }else{
-            useCarIdStr = tDriverService.getUseCarIdStr(null);
-        }*/
-        //2020-08-21:新需求,已被绑定的车辆可以被继续绑定
-        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        page.setRecords(tDriverService.getCanSelectCarList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),null,carLicensePlate,brandName,modelName,color,serverStr));
-        return super.packForBT(page);
-
-    }
-
-    /**
-     * 审核操作  1=通过 2=不通过
-     */
-    @RequestMapping(value = "/authOpt")
-    @ResponseBody
-    public Object authOpt(Integer id,Integer authState) {
-        if (SinataUtil.isNotEmpty(id) && SinataUtil.isNotEmpty(authState)){
-            TDriver tDriver = tDriverService.selectById(id);
-            Integer type = 0;
-            if (1 == authState){
-                type = 5;
-                tDriver.setAuthState(2);
-
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        if(pushMinistryOfTransport){//上传数据
-                            pushMinistryOfTransportUtil.baseInfoCompanyStat();
-                            pushMinistryOfTransportUtil.baseInfoDriver(id);
-                            pushMinistryOfTransportUtil.baseInfoDriverApp(id);
-                        }
-                    }
-                }).start();
-            }else{
-                type = 6;
-                tDriver.setAuthState(4);
+    public Object list(String createTime,String phone,Integer status) {
+        EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status);
+        wrapper.orderBy("createTime",false);
+        List<TDriver> tDrivers = tDriverService.selectList(wrapper);
+        List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers);
+        for (TDriverResp driverResp : tDriverResp) {
+            TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
+                    .eq("driverId", driverResp.getId())
+                    .orderBy("workTime", false)
+                    .last("LIMIT 1"));
+            if(Objects.nonNull(tDriverWork)){
+                // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0
+                if(tDriverWork.getStatus() == 1){
+                    driverResp.setNotOnlineCount(0);
+                }else {
+                    Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now());
+                    driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays()));
+                }
+            }else {
+                if(Objects.nonNull(driverResp.getApprovalTime())){
+                    // 没有上班记录,计算审核时间
+                    Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now());
+                    driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays()));
+                }else {
+                    driverResp.setNotOnlineCount(0);
+                }
             }
-
-            Map<String,String> map = new HashMap<>();
-            map.put("uid", String.valueOf(tDriver.getId()));
-            map.put("type", String.valueOf(type));
-            String result = HttpRequestUtil.postRequest(PushURL.driver_auth_url, map);
-            System.out.println("司机注册审核发送短信 :【driverId="+tDriver.getId().toString()+"】,调用接口:"+result);
-
-            tDriverService.updateById(tDriver);
         }
-        return SUCCESS_TIP;
+        return tDriverResp;
     }
-
     /**
-     * 更换车辆操作
+     * 获取佣金列表
      */
-    @RequestMapping(value = "/selectCarOpt")
+    @RequestMapping(value = "/commission/list")
     @ResponseBody
-    public Object selectCarOpt(Integer tDriverId,Integer carId) {
-        if (SinataUtil.isNotEmpty(tDriverId) && SinataUtil.isNotEmpty(carId)){
-            TDriver tDriver = tDriverService.selectById(tDriverId);
-            tDriver.setCarId(carId);
-            tDriverService.updateById(tDriver);
+    public Object commissionList(String name,String phone,Integer status) {
+        EntityWrapper<TDriver> wrapper = tDriverService.getCommissionPageList(name,phone,status);
+        List<TDriver> tDrivers = tDriverService.selectList(wrapper);
+        List<TDriverCommissionResp> commissionResp = tDriverService.getTDriverCommissionResp(tDrivers);
+        for (TDriverCommissionResp tDriverCommissionResp : commissionResp) {
+            tDriverCommissionResp.setLevelFlag(0);
         }
+        return commissionResp;
+    }
+    /**
+     * 获取异常列表
+     */
+    @RequestMapping(value = "/exceptionList")
+    @ResponseBody
+    public Object exceptionList(String createTime,String phone,Integer status) {
+        EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status);
+        wrapper.eq("isException",2);
+        wrapper.orderBy("createTime",false);
+        List<TDriver> tDrivers = tDriverService.selectList(wrapper);
+        List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers);
+        for (TDriverResp driverResp : tDriverResp) {
+            TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
+                    .eq("driverId", driverResp.getId())
+                    .orderBy("workTime", false)
+                    .last("LIMIT 1"));
+            if(Objects.nonNull(tDriverWork)){
+                // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0
+                if(tDriverWork.getStatus() == 1){
+                    driverResp.setNotOnlineCount(0);
+                }else {
+                    Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now());
+                    driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays()));
+                }
+            }else {
+                if(Objects.nonNull(driverResp.getApprovalTime())){
+                    // 没有上班记录,计算审核时间
+                    Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now());
+                    driverResp.setNotOnlineCount(period.getYears()*365 + period.getMonths()*30 + Math.abs(period.getDays()));
+                }else {
+                    driverResp.setNotOnlineCount(0);
+                }
+            }
+        }
+        return tDriverResp;
+    }
+
+    /**
+     * 佣金关联列表
+     */
+    @RequestMapping(value = "/commission/connect/list")
+    @ResponseBody
+    public Object commissionConnectList(String driverId,Integer levelFlag) {
+        // 查询当前用户的用户信息
+        TDriver tDriver = tDriverService.selectById(driverId);
+
+        EntityWrapper<TDriver> wrapper = new EntityWrapper<>();
+        if(StringUtils.hasLength(driverId)){
+            wrapper.eq("inviterId",driverId);
+        }
+        wrapper.orderBy("createTime",false);
+        List<TDriver> list = tDriverService.selectList(wrapper);
+        List<TDriverCommissionResp> commissionResp = new ArrayList<>();
+        try{
+            commissionResp = tDriverService.getTDriverCommissionResp(list);
+            for (TDriverCommissionResp tDriverCommissionResp : commissionResp) {
+                if(Objects.nonNull(tDriver)){
+                    tDriverCommissionResp.setInviterName(tDriver.getName());
+                    tDriverCommissionResp.setInviterPhone(tDriver.getPhone());
+                    if(levelFlag == 0){
+                        tDriverCommissionResp.setLevelFlag(1);
+                        tDriverCommissionResp.setLevel("一级");
+                    }
+                    if(levelFlag == 1){
+                        tDriverCommissionResp.setLevelFlag(2);
+                        tDriverCommissionResp.setLevel("二级");
+                    }
+                    if(levelFlag == 2){
+                        tDriverCommissionResp.setLevelFlag(3);
+                        tDriverCommissionResp.setLevel("三级");
+                    }
+
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return commissionResp;
+    }
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping(value = "/list-back")
+    @ResponseBody
+    public Object listBack(String condition) {
+        return tDriverService.selectList(null);
+    }
+    /**
+     * ocr
+     */
+    @RequestMapping(value = "/ocr")
+    @ResponseBody
+    public JSONObject ocr(MultipartFile multipartFile) {
+        /*String accessToken = redisTemplate.opsForValue().get(TokenUtils.ACCESS_TOKEN_CACHE_KEY);
+        if (!StringUtils.hasLength(accessToken)) {
+            accessToken = tokenUtils.getSimpleAccessToken();
+        }
+        File file = new File(imgUrl);
+        String url = Constant.OCR_URL.replace("MODE", "scan").replace("ACCESS_TOKEN", accessToken);
+        String result = httpUtils.registRequest(url, file);
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        System.err.println(jsonObject);
+        return jsonObject;*/
+        String originalFilename = multipartFile.getOriginalFilename();
+        String[] filename = originalFilename.split("\\.");
+        log.info("tupian::"+filename[0]+"//"+filename[1]);
+        File file= null;
+        try {
+            file = File.createTempFile(filename[0], "."+filename[1]);
+            multipartFile.transferTo(file);
+            file.deleteOnExit();
+            log.info("file:"+file.getName());
+        } catch (IOException e) {
+            log.error("ocr识别失败:{}",e.getMessage());
+        }
+        return tDriverService.ocr(file);
+    }
+
+    /**
+     * 审核
+     */
+    @RequestMapping(value = "/auditSubmit")
+    @ResponseBody
+    public Object auditSubmit(Integer id,Integer approvalStatus,String approvalNotes) {
+        TDriver tDriver = tDriverService.selectById(id);
+        tDriver.setApprovalStatus(approvalStatus);
+        tDriver.setApprovalNotes(approvalNotes);
+        // 审核用户id
+        Subject subject = ShiroKit.getSubject();
+        ShiroUser shiroUser = (ShiroUser)subject.getPrincipal();
+        tDriver.setApprovalUserId(shiroUser.getId());
+        tDriver.setApprovalTime(new Date());
+        tDriverService.updateById(tDriver);
+
+        //增加积分奖励
+        if(approvalStatus == 2 &&  null != tDriver.getInviterId()){
+            TSystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 4));
+            Integer num7 = JSON.parseObject(systemConfig.getContent()).getInteger("num7");
+            TDriver tDriver1 = tDriverService.selectById(tDriver.getInviterId());
+
+            AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+            accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+            accountChangeDetail.setUserType(2);
+            accountChangeDetail.setUserId(tDriver1.getId());
+            accountChangeDetail.setType(2);
+            accountChangeDetail.setChangeType(10);
+            accountChangeDetail.setOldData(tDriver1.getIntegral().doubleValue());
+            tDriver1.setIntegral(tDriver1.getIntegral() + num7);
+            accountChangeDetail.setNewData(tDriver1.getIntegral().doubleValue());
+            accountChangeDetail.setExplain("推荐奖励");
+            accountChangeDetail.setCreateTime(new Date());
+            accountChangeDetailMapper.insert(accountChangeDetail);
+            tDriverService.updateById(tDriver1);
+        }
+
         return SUCCESS_TIP;
     }
 
     /**
-     * 新增司机审核列表
+     * 新增
      */
     @RequestMapping(value = "/add")
     @ResponseBody
-    public Object add(TDriver tDriver,@RequestParam String serverBox,@RequestParam String lineStr,Integer roleType,Integer companyType,Integer oneId,Integer twoId,Integer franchiseeId) {
-        //判断登录账户是否重复
-        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone()).in("authState", "1,2,3").ne("flag", 3));
-        if (count > 0){
-            return "error";
-        }
-        if (1 == roleType){  //平台
-            if (2 == companyType.intValue()){
-                if (SinataUtil.isNotEmpty(oneId)){
-                    tDriver.setCompanyId(oneId);
-                }
-                if (SinataUtil.isNotEmpty(twoId)){
-                    tDriver.setFranchiseeId(twoId);
-                }
-            }else if (1 == companyType.intValue()){
-                TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1));
-                tDriver.setCompanyId(company.getId());
-                tDriver.setFranchiseeId(franchiseeId);
-            }
-            tDriver.setAddType(2);
-            tDriver.setIsPlatCar(1);
-            tDriver.setAuthState(2);
-        }else if (2 == roleType){  //分公司
-            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
-                tDriver.setCompanyId(ShiroKit.getUser().getObjectId());
-            }
-            if (SinataUtil.isNotEmpty(franchiseeId)){
-                tDriver.setFranchiseeId(franchiseeId);
-            }
-            tDriver.setAddType(3);
-            tDriver.setIsPlatCar(2);
-            tDriver.setAuthState(1);
-            tDriver.setAddObjectId(ShiroKit.getUser().getObjectId());
-        }else if (3 == roleType){  //加盟商
-            TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId());
-            if (SinataUtil.isNotEmpty(tCompany)){
-                tDriver.setCompanyId(tCompany.getSuperiorId());
-            }
-            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
-                tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId());
-            }
-            tDriver.setAddType(4);
-            tDriver.setIsPlatCar(2);
-            tDriver.setAuthState(1);
-            tDriver.setAddObjectId(ShiroKit.getUser().getObjectId());
-        }
-        tDriver.setInsertTime(new Date());
-        tDriver.setInsertUser(ShiroKit.getUser().getId());
-//        tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword()));
+    public Object add(TDriver tDriver) {
 
-        tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#"));
-
+        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone()));
+        if(count>0){
+            return new SuccessTip(500,"该司机已存在!");
+        }
+        Object o = tDriverService.addOrUpdate(tDriver);
+        if(Objects.nonNull(o)){
+            return o;
+        }
+        // 默认值板块
+        tDriver.setName(tDriver.getName().replace(" ",""));
+        tDriver.setEmergencyContact(tDriver.getEmergencyContact().replace(" ",""));
+        tDriver.setCode(UUIDUtil.getNumberRandom(16));
+        tDriver.setBalance(BigDecimal.ZERO);
+        tDriver.setBackgroundBalance(BigDecimal.ZERO);
+        tDriver.setCommission(BigDecimal.ZERO);
         tDriverService.insert(tDriver);
-
-        //添加经营业务
-        String[] serverArray = serverBox.split(",");
-        for (int i=0;i<serverArray.length;i++){
-            TDriverService service = new TDriverService();
-            service.setDriverId(tDriver.getId());
-            service.setType(Integer.valueOf(serverArray[i]));
-            tDriverServiceService.insert(service);
-
-            if (3 == Integer.valueOf(serverArray[i])){
-                //添加线路
-                if (SinataUtil.isNotEmpty(lineStr)){
-                    addLine(lineStr,tDriver.getId());
-                }
-            }
-        }
-
         return SUCCESS_TIP;
     }
 
     /**
-     * 添加线路
-     * @param subArr
-     * @param id
-     */
-    public void addLine(String subArr,Integer id){
-        JSONArray jsonArray = JSON.parseArray(subArr);
-        int size = jsonArray.size();
-        for (int i = 0; i < size; i++){
-            JSONObject jsonObject = jsonArray.getJSONObject(i);
-            TDriverLine line = new TDriverLine();
-            line.setCreateTime(new Date());
-            line.setAddTime(jsonObject.getString("time"));
-            line.setLineId(jsonObject.getInteger("lineId"));
-            line.setDriverId(id);
-            tDriverLineService.insert(line);
-        }
-    }
-
-
-    /**
-     * 删除司机审核列表
+     * 删除
      */
     @RequestMapping(value = "/delete")
     @ResponseBody
     public Object delete(@RequestParam Integer tDriverId) {
-        TDriver driver = tDriverService.selectById(tDriverId);
-        driver.setFlag("3");
-        tDriverService.updateById(driver);
-        return SUCCESS_TIP;
-    }
-    /**
-     * 操作司机状态
-     */
-    @RequestMapping(value = "/optDriver")
-    @ResponseBody
-    public Object optDriver(@RequestParam Integer driverId,@RequestParam String remark,@RequestParam Integer optType) {
-        if (SinataUtil.isNotEmpty(driverId) && SinataUtil.isNotEmpty(optType)){
-            TDriver tDriver = tDriverService.selectById(driverId);
-            if (1 == optType){  //解冻
-                tDriver.setAuthState(2);
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        if(pushMinistryOfTransport){//上传数据
-                            pushMinistryOfTransportUtil.baseInfoCompanyStat();
-                            pushMinistryOfTransportUtil.baseInfoDriver(driverId);
-                        }
-                    }
-                }).start();
-            }else if (2 == optType){  //冻结
-                tDriver.setAuthState(3);
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        if(pushMinistryOfTransport){//上传数据
-                            pushMinistryOfTransportUtil.baseInfoCompanyStat();
-                            pushMinistryOfTransportUtil.baseInfoDriver(driverId);
-                        }
-                    }
-                }).start();
-            }
-            tDriver.setRemark(remark);
-            tDriverService.updateById(tDriver);
-        }
+        tDriverService.deleteById(tDriverId);
         return SUCCESS_TIP;
     }
 
     /**
-     * 修改司机审核列表
+     * 修改司机状态
+     */
+    @RequestMapping(value = "/update-status")
+    @ResponseBody
+    public Object updateStatus(Integer id,Integer status,
+                               String remark) {
+        TDriver tDriver = tDriverService.selectById(id);
+        if(1 == status){
+            tDriver.setStatus(2);
+            String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone());
+            redisUtil.remove(value);
+            redisUtil.remove("DRIVER_" + tDriver.getPhone());
+            TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
+                    .eq("driverId", tDriver.getId())
+                    .eq("status", 1)
+                    .orderBy("workTime", false)
+                    .last("LIMIT 1"));
+            if(Objects.nonNull(tDriverWork)){
+                tDriverWork.setStatus(2);
+                tDriverWork.setOffWorkTime(new Date());
+                tDriverWorkService.updateById(tDriverWork);
+            }
+        }
+        if(2 == status){
+            tDriver.setStatus(1);
+        }
+        tDriver.setRemark(remark);
+        tDriverService.updateById(tDriver);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 充值余额
+     */
+    @ApiOperation(value = "充值余额")
+    @RequestMapping(value = "/recharge-balance")
+    @Transactional(rollbackFor = Exception.class)
+    @ResponseBody
+    public Object rechargeBalance(Integer id, String money) {
+        TDriver tDriver = tDriverService.selectById(id);
+        tDriver.setBackgroundBalance(new BigDecimal(money).add(tDriver.getBackgroundBalance()));
+        tDriverService.updateById(tDriver);
+
+        // 添加充值记录
+        TRechargeRecord tRechargeRecord = new TRechargeRecord();
+        tRechargeRecord.setType(UserTypeEnum.AGENT.getCode());
+        tRechargeRecord.setUserId(id);
+        tRechargeRecord.setCode(UUIDUtil.getNumberRandom(16));
+        tRechargeRecord.setAmount(new BigDecimal(money));
+        tRechargeRecord.setPayType(2);
+        tRechargeRecord.setPayTime(new Date());
+        tRechargeRecord.setPayStatus(2);
+        tRechargeRecord.setCreateTime(new Date());
+        Integer id1 = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
+        tRechargeRecord.setAgentId(id1);
+        tRechargeRecordService.insert(tRechargeRecord);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 修改
      */
     @RequestMapping(value = "/update")
     @ResponseBody
-    public Object update(TDriver tDriver,@RequestParam String serverBox,@RequestParam String lineStr,Integer roleType,Integer companyType,Integer oneId,Integer twoId,Integer franchiseeId) {
-        TDriver obj = tDriverService.selectById(tDriver.getId());
-        if (!obj.getPhone().equals(tDriver.getPhone())){
-            //判断登录账户是否重复
-            int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone()).in("authState", "1,2,3"));
-            if (count > 0){
-                return "error";
-            }
+    public Object update(TDriver tDriver) {
+        TDriver driver = tDriverService.selectOne(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone())
+                .last("LIMIT 1"));
+        if(Objects.nonNull(driver) && !tDriver.getId().equals(driver.getId())){
+            return new SuccessTip(500,"该司机已存在!");
         }
-        if (1 == roleType){  //平台
-            if (2 == companyType.intValue()){
-                if (SinataUtil.isNotEmpty(oneId)){
-                    tDriver.setCompanyId(oneId);
-                }
-                if (SinataUtil.isNotEmpty(twoId)){
-                    tDriver.setFranchiseeId(twoId);
-                }
-            }else if (1 == companyType.intValue()){
-                TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1));
-                tDriver.setCompanyId(company.getId());
-                tDriver.setFranchiseeId(franchiseeId);
-            }
-        }else if (2 == roleType){  //分公司
-            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
-                tDriver.setCompanyId(ShiroKit.getUser().getObjectId());
-            }
-            if (SinataUtil.isNotEmpty(franchiseeId)){
-                tDriver.setFranchiseeId(franchiseeId);
-            }
-        }else if (3 == roleType){  //加盟商
-            TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId());
-            if (SinataUtil.isNotEmpty(tCompany)){
-                tDriver.setCompanyId(tCompany.getSuperiorId());
-            }
-            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
-                tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId());
-            }
+//        Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
+//        System.err.println(ocr);
+        Object o = tDriverService.addOrUpdate(tDriver);
+        if(Objects.nonNull(o)){
+            return o;
         }
-        tDriver.setUpdateTime(new Date());
-        tDriver.setUpdateUser(ShiroKit.getUser().getId());
-//        tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword()));
-        tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#"));
+        tDriver.setName(tDriver.getName().replace(" ",""));
+        tDriver.setEmergencyContact(tDriver.getEmergencyContact().replace(" ",""));
         tDriverService.updateById(tDriver);
-
-        //删除业务
-        tDriverServiceService.delete(new EntityWrapper<TDriverService>().eq("driverId",tDriver.getId()));
-
-        //删除线路
-        tDriverLineService.delete(new EntityWrapper<TDriverLine>().eq("driverId",tDriver.getId()));
-
-        //添加经营业务
-        String[] serverArray = serverBox.split(",");
-        for (int i=0;i<serverArray.length;i++){
-            TDriverService service = new TDriverService();
-            service.setDriverId(tDriver.getId());
-            service.setType(Integer.valueOf(serverArray[i]));
-            tDriverServiceService.insert(service);
-
-            if (3 == Integer.valueOf(serverArray[i])){
-                //添加线路
-                if (SinataUtil.isNotEmpty(lineStr)){
-                    addLine(lineStr,tDriver.getId());
-                }
-            }
-        }
-
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                if(pushMinistryOfTransport){//上传数据
-                    pushMinistryOfTransportUtil.baseInfoDriver(tDriver.getId());
-                }
-            }
-        }).start();
-
         return SUCCESS_TIP;
     }
 
     /**
-     * 下载模板
-     * @param request
-     * @param response
+     * 详情
      */
-    @RequestMapping(value = "/uploadDriverModel")
-    public void uploadDriverModel(HttpServletRequest request, HttpServletResponse response) {
-        // 表格数据【封装】
-        List<List<String>> dataList = new ArrayList<List<String>>();
-
-        String title = "";
-
-        // 首行【封装】
-        List<String> shellList = new ArrayList<String>();
-        if (ShiroKit.getUser().getRoleType() == 1){
-            title = "平台导入司机模板";
-
-            shellList.add("司机名称");
-            shellList.add("所属机构[平台司机/加盟司机]");
-            shellList.add("所属分公司[提示:加盟司机选填]");
-            shellList.add("所属加盟商[提示:加盟司机选填]");
-            shellList.add("性别[男/女]");
-            shellList.add("驾驶证号码");
-            shellList.add("驾龄");
-            shellList.add("身份证号");
-            shellList.add("居住地址");
-            shellList.add("出租车资格证号");
-            shellList.add("工号[选填]");
-            shellList.add("经营业务:专车[是/否]");
-            shellList.add("经营业务:出租车[是/否]");
-            shellList.add("经营业务:跨城出行[是/否]");
-            shellList.add("经营业务:小件同城物流[是/否]");
-            shellList.add("经营业务:小件跨城物流[是/否]");
-            shellList.add("经营业务:包车[是/否]");
-            shellList.add("登录账号[手机号]");
-            shellList.add("登录密码[密码长度为6-18]");
-        }else if (ShiroKit.getUser().getRoleType() == 2){
-            title = "分公司导入司机模板";
-
-            shellList.add("司机名称");
-            shellList.add("所属加盟商[选填]");
-            shellList.add("性别[男/女]");
-            shellList.add("驾驶证号码");
-            shellList.add("驾龄");
-            shellList.add("身份证号");
-            shellList.add("居住地址");
-            shellList.add("出租车资格证号");
-            shellList.add("工号[选填]");
-            shellList.add("经营业务:专车[是/否]");
-            shellList.add("经营业务:出租车[是/否]");
-            shellList.add("经营业务:跨城出行[是/否]");
-            shellList.add("经营业务:小件同城物流[是/否]");
-            shellList.add("经营业务:小件跨城物流[是/否]");
-            shellList.add("经营业务:包车[是/否]");
-            shellList.add("登录账号[手机号]");
-            shellList.add("登录密码[密码长度为6-18]");
-        }else if (ShiroKit.getUser().getRoleType() == 3){
-            title = "加盟商导入司机模板";
-
-            shellList.add("司机名称");
-            shellList.add("性别[男/女]");
-            shellList.add("驾驶证号码");
-            shellList.add("驾龄");
-            shellList.add("身份证号");
-            shellList.add("居住地址");
-            shellList.add("出租车资格证号");
-            shellList.add("工号[选填]");
-            shellList.add("经营业务:专车[是/否]");
-            shellList.add("经营业务:出租车[是/否]");
-            shellList.add("经营业务:跨城出行[是/否]");
-            shellList.add("经营业务:小件同城物流[是/否]");
-            shellList.add("经营业务:小件跨城物流[是/否]");
-            shellList.add("经营业务:包车[是/否]");
-            shellList.add("登录账号[手机号]");
-            shellList.add("登录密码[密码长度为6-18]");
-        }
-        dataList.add(shellList);
-
-        try {
-            // 调用工具类进行导出
-            ExcelExportUtil.easySheet(title+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), title, dataList, request, response);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 导入操作
-     * @param request
-     * @return
-     */
-    @RequestMapping(value="/exportDriver",method = RequestMethod.POST)
+    @RequestMapping(value = "/detail/{tDriverId}")
     @ResponseBody
-    public Object exportDriver(HttpServletRequest request){
-        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-        MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile");
+    public Object detail(@PathVariable("tDriverId") Integer tDriverId) {
+        return tDriverService.selectById(tDriverId);
+    }
+
+    @ApiOperation(value = "省查询",notes="省查询")
+    @RequestMapping(value = "/areaProvince")
+    @ResponseBody
+    public Object areaProvince(Model model) {
+        return tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
+    }
+
+    @ApiOperation(value = "市区查询",notes="市区查询")
+    @RequestMapping(value = "/areaCity")
+    @ResponseBody
+    public Object areaCity(Integer parentId,Model model) {
+        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", parentId));
+        model.addAttribute("list",tRegions);
+        return tRegions;
+    }
+
+
+
+    @ApiOperation(value = "导出司机列表",notes="导出司机列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    @RequestMapping(value = "/export")
+    @ResponseBody
+    public void export(String createTime,String phone,Integer status,HttpServletResponse response) {
         try {
-            if (ShiroKit.getUser().getRoleType() == 1){
-                Workbook book = WoUtil.ImportFile(file);
-                Sheet sh = book.getSheetAt(0);   //获取到第一个表
-                for (int i = 1; i <= sh.getLastRowNum(); i++) {
-                    Row row = sh.getRow(i);
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "DriverInfo"+time1+".xls";
+            String[] title = new String[] {"编号","姓名","手机号","性别","驾驶证号码","身份证号码",
+                    "身份证","所属代理商","所属分公司","钱包余额","累计订单量","当月订单量","积分","拒单次数","状态","审核状态","添加时间"};
+            EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status);
+            wrapper.orderBy("createTime",false);
+            List<TDriver> tDrivers = tDriverService.selectList(wrapper);
+            List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers);
 
-                    Cell cell0 = row.getCell(0);  //司机名称
-                    String zero = null;
-                    if (SinataUtil.isNotEmpty(cell0)){
-                        zero = String.valueOf(cell0.getStringCellValue()).trim();
-                    }
-
-                    Cell cell1 = row.getCell(1);  //所属机构[平台司机/加盟司机]
-                    String one = null;
-                    if (SinataUtil.isNotEmpty(cell1)){
-                        one = String.valueOf(cell1.getStringCellValue()).trim();
-                    }
-
-                    Cell cell2 = row.getCell(2);  //所属分公司[提示:加盟司机选填]
-                    String two = null;
-                    if (SinataUtil.isNotEmpty(cell2)){
-                        two = String.valueOf(cell2.getStringCellValue()).trim();
-                    }
-
-                    Cell cell3 = row.getCell(3);  //所属加盟商[提示:加盟司机选填]
-                    String three = null;
-                    if (SinataUtil.isNotEmpty(cell3)){
-                        three = String.valueOf(cell3.getStringCellValue()).trim();
-                    }
-
-                    Cell cell4 = row.getCell(4);  //性别[男/女]
-                    String four = null;
-                    if (SinataUtil.isNotEmpty(cell4)){
-                        four = String.valueOf(cell4.getStringCellValue()).trim();
-                    }
-
-                    Cell cell5 = row.getCell(5);  //驾驶证号码
-                    String five = null;
-                    if (SinataUtil.isNotEmpty(cell5)){
-                        five = String.valueOf(cell5.getStringCellValue()).trim();
-                    }
-
-                    Cell cell6 = row.getCell(6);  //驾龄
-                    String six = null;
-                    if (SinataUtil.isNotEmpty(cell6)){
-                        six = String.valueOf(cell6.getStringCellValue()).trim();
-                    }
-
-                    Cell cell7 = row.getCell(7);  //身份证号
-                    String seven = null;
-                    if (SinataUtil.isNotEmpty(cell7)){
-                        seven = String.valueOf(cell7.getStringCellValue()).trim();
-                    }
-
-                    Cell cell8 = row.getCell(8);  //居住地址
-                    String eight = null;
-                    if (SinataUtil.isNotEmpty(cell8)){
-                        eight = String.valueOf(cell8.getStringCellValue()).trim();
-                    }
-
-                    Cell cell9 = row.getCell(9);  //出租车资格证号
-                    String nine = null;
-                    if (SinataUtil.isNotEmpty(cell9)){
-                        nine = String.valueOf(cell9.getStringCellValue()).trim();
-                    }
-
-                    Cell cell10 = row.getCell(10);  //工号[选填]
-                    String ten = null;
-                    if (SinataUtil.isNotEmpty(cell10)){
-                        ten = String.valueOf(cell10.getStringCellValue()).trim();
-                    }
-
-                    Cell cell11 = row.getCell(11);  //经营业务:专车[是/否]
-                    String eleven = null;
-                    if (SinataUtil.isNotEmpty(cell11)){
-                        eleven = String.valueOf(cell11.getStringCellValue()).trim();
-                    }
-
-                    Cell cell12 = row.getCell(12);  //经营业务:专车[是/否]
-                    String twelve = null;
-                    if (SinataUtil.isNotEmpty(cell12)){
-                        twelve = String.valueOf(cell12.getStringCellValue()).trim();
-                    }
-
-                    Cell cell13 = row.getCell(13);  //经营业务:跨城出行[是/否]
-                    String thirteen = null;
-                    if (SinataUtil.isNotEmpty(cell13)){
-                        thirteen = String.valueOf(cell13.getStringCellValue()).trim();
-                    }
-
-                    Cell cell14 = row.getCell(14);  //经营业务:小件同城物流[是/否]
-                    String fourteen = null;
-                    if (SinataUtil.isNotEmpty(cell14)){
-                        fourteen = String.valueOf(cell14.getStringCellValue()).trim();
-                    }
-
-                    Cell cell15 = row.getCell(15);  //经营业务:小件跨城物流[是/否]
-                    String fifteen = null;
-                    if (SinataUtil.isNotEmpty(cell15)){
-                        fifteen = String.valueOf(cell15.getStringCellValue()).trim();
-                    }
-
-                    Cell cell16 = row.getCell(16);  //经营业务:包车[是/否]
-                    String sixteen = null;
-                    if (SinataUtil.isNotEmpty(cell16)){
-                        sixteen = String.valueOf(cell16.getStringCellValue()).trim();
-                    }
-
-                    Cell cell17 = row.getCell(17);  //登录账号[手机号]
-                    String seventeen = null;
-                    if (SinataUtil.isNotEmpty(cell17)){
-                        seventeen = String.valueOf(cell17.getStringCellValue()).trim();
-                    }
-
-                    Cell cell18 = row.getCell(18);  //登录密码[密码长度为6-18]
-                    String eighteen = null;
-                    if (SinataUtil.isNotEmpty(cell18)){
-                        eighteen = String.valueOf(cell18.getStringCellValue()).trim();
-                    }
-
-                    if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(one) || SinataUtil.isEmpty(four)
-                            || SinataUtil.isEmpty(five) || SinataUtil.isEmpty(six) || SinataUtil.isEmpty(nine)
-                            || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen)
-                            || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) || SinataUtil.isEmpty(sixteen)
-                            || SinataUtil.isEmpty(seventeen)|| SinataUtil.isEmpty(eighteen)){
-                        return new ErrorTip(500, "单元格不能为空");
-                    }else{
-                        //判断账号是否存在
-                        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", seventeen).in("authState", "1,2,3").ne("flag", 3));
-                        if (count > 0){
-                            continue;
-                        }
-
-                        //判断所属机构
-                        if (!one.equals("平台司机") && !one.equals("加盟司机")){
-                            return new ErrorTip(500, "所属机构内容不正确");
-                        }
-                        //判断性别
-                        if (!four.equals("男") && !four.equals("女")){
-                            return new ErrorTip(500, "性别内容不正确");
-                        }
-                        //判断经营业务【专车】
-                        if (!eleven.equals("是") && !eleven.equals("否")){
-                            return new ErrorTip(500, "经营业务【专车】内容不正确");
-                        }
-                        //判断经营业务【出租车】
-                        if (!twelve.equals("是") && !twelve.equals("否")){
-                            return new ErrorTip(500, "经营业务【出租车】内容不正确");
-                        }
-                        //判断经营业务【跨城出行】
-                        if (!thirteen.equals("是") && !thirteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【跨城出行】内容不正确");
-                        }
-                        //判断经营业务【小件同城物流】
-                        if (!fourteen.equals("是") && !fourteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件同城物流】内容不正确");
-                        }
-                        //判断经营业务【小件跨城物流】
-                        if (!fifteen.equals("是") && !fifteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确");
-                        }
-                        //判断经营业务【包车】
-                        if (!sixteen.equals("是") && !sixteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【包车】内容不正确");
-                        }
-                        //判断驾龄
-                        if (!isInteger(six)){
-                            return new ErrorTip(500, "驾龄格式不正确");
-                        }
-                        //判断手机号
-                        if (!isPhone(seventeen)){
-                            return new ErrorTip(500, "登录账号[手机号]格式不正确");
-                        }
-                        //判断登录密码
-                        if (!isPassword(eighteen)){
-                            return new ErrorTip(500, "登录密码格式不正确");
-                        }
-
-                        //查找平台公司
-                        TCompany platCompany = itCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1).notIn("flag", "3").last(" limit 1"));
-                        Integer companyId = platCompany.getId();
-                        Integer franchiseeId = 0;
-                        if ("加盟司机".equals(one)){
-                            //判断所属分公司是否存在
-                            if (SinataUtil.isNotEmpty(two)){
-                                TCompany company = itCompanyService.selectOne(new EntityWrapper<TCompany>().eq("name", two).eq("type", 2).notIn("flag", "3").last(" limit 1"));
-                                if (SinataUtil.isNotEmpty(company)){
-                                    companyId = company.getId();
-                                    //判断加盟商是否存在
-                                    if (SinataUtil.isNotEmpty(three)){
-                                        TCompany franchisee = itCompanyService.selectOne(new EntityWrapper<TCompany>().eq("superiorId",company.getId()).eq("name", three).eq("type", 3).notIn("flag", "3").last(" limit 1"));
-                                        if (SinataUtil.isNotEmpty(franchisee)){
-                                            franchiseeId = franchisee.getId();
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        TDriver driver = new TDriver();
-                        driver.setAccount(seventeen);
-                        driver.setJobNumber(ten);
-                        driver.setPhone(seventeen);
-                        driver.setPassword(ShiroKit.md5(eighteen, "SA;d5#"));
-                        driver.setName(zero);
-                        if ("男".equals(four)){
-                            driver.setSex(1);
-                        }else if ("女".equals(four)){
-                            driver.setSex(2);
-                        }
-                        driver.setIdCard(seven);
-                        driver.setDriverAge(Integer.valueOf(six));
-                        driver.setDriveCard(five);
-                        driver.setTaxiAptitudeCard(nine);
-                        if ("平台司机".equals(one)){
-                            driver.setIsPlatCar(1);
-                        }else if ("加盟司机".equals(one)){
-                            driver.setIsPlatCar(2);
-                        }
-                        driver.setCompanyId(companyId);
-                        driver.setFranchiseeId(franchiseeId);
-                        driver.setState(2);
-                        driver.setAuthState(2);
-                        driver.setFlag("1");
-                        driver.setInsertUser(ShiroKit.getUser().getId());
-                        driver.setInsertTime(new Date());
-                        driver.setAddType(2);
-                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
-                        if(SinataUtil.isNotEmpty(eight)){
-                            driver.setDriverAddress(eight);
-                        }
-                        tDriverService.insert(driver);
-
-
-                        //添加专车服务模式
-                        if ("是".equals(eleven)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(1);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加出租车服务模式
-                        if ("是".equals(twelve)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(2);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加跨城出行服务模式
-                        if ("是".equals(thirteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(3);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件同城物流服务模式
-                        if ("是".equals(fourteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(4);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件跨城物流服务模式
-                        if ("是".equals(fifteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(5);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加包车服务模式
-                        if ("是".equals(sixteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(6);
-                            itDriverServiceService.insert(service);
-                        }
-                    }
+            String[][] values = new String[tDriverResp.size()][];
+            for (int i = 0; i < tDriverResp.size(); i++) {
+                TDriverResp d = tDriverResp.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = d.getCode();
+                values[i][1] = d.getName();
+                values[i][2] = d.getPhone();
+                Integer sex = d.getSex();
+                if(Objects.isNull(sex)){
+                    values[i][3] = "未知";
+                }else if(1 == sex){
+                    values[i][3] = "男";
+                }else if(2 == sex){
+                    values[i][3] = "女";
                 }
-            }else if (ShiroKit.getUser().getRoleType() == 2){
-                Workbook book = WoUtil.ImportFile(file);
-                Sheet sh = book.getSheetAt(0);   //获取到第一个表
-                for (int i = 1; i <= sh.getLastRowNum(); i++) {
-                    Row row = sh.getRow(i);
-
-                    Cell cell0 = row.getCell(0);  //司机名称
-                    String zero = null;
-                    if (SinataUtil.isNotEmpty(cell0)){
-                        zero = String.valueOf(cell0.getStringCellValue()).trim();
-                    }
-
-                    Cell cell1 = row.getCell(1);  //所属加盟商[选填]
-                    String one = null;
-                    if (SinataUtil.isNotEmpty(cell1)){
-                        one = String.valueOf(cell1.getStringCellValue()).trim();
-                    }
-
-                    Cell cell2 = row.getCell(2);  //性别[男/女]
-                    String two = null;
-                    if (SinataUtil.isNotEmpty(cell2)){
-                        two = String.valueOf(cell2.getStringCellValue()).trim();
-                    }
-
-                    Cell cell3 = row.getCell(3);  //驾驶证号码
-                    String three = null;
-                    if (SinataUtil.isNotEmpty(cell3)){
-                        three = String.valueOf(cell3.getStringCellValue()).trim();
-                    }
-
-                    Cell cell4 = row.getCell(4);  //驾龄
-                    String four = null;
-                    if (SinataUtil.isNotEmpty(cell4)){
-                        four = String.valueOf(cell4.getStringCellValue()).trim();
-                    }
-
-                    Cell cell5 = row.getCell(5);  //身份证号
-                    String five = null;
-                    if (SinataUtil.isNotEmpty(cell5)){
-                        five = String.valueOf(cell5.getStringCellValue()).trim();
-                    }
-
-                    Cell cell6 = row.getCell(6);  //居住地址
-                    String six = null;
-                    if (SinataUtil.isNotEmpty(cell6)){
-                        six = String.valueOf(cell6.getStringCellValue()).trim();
-                    }
-
-                    Cell cell7 = row.getCell(7);  //出租车资格证号
-                    String seven = null;
-                    if (SinataUtil.isNotEmpty(cell7)){
-                        seven = String.valueOf(cell7.getStringCellValue()).trim();
-                    }
-
-                    Cell cell8 = row.getCell(8);  //工号[选填]
-                    String eight = null;
-                    if (SinataUtil.isNotEmpty(cell8)){
-                        eight = String.valueOf(cell8.getStringCellValue()).trim();
-                    }
-
-                    Cell cell9 = row.getCell(9);  //经营业务:专车[是/否]
-                    String nine = null;
-                    if (SinataUtil.isNotEmpty(cell9)){
-                        nine = String.valueOf(cell9.getStringCellValue()).trim();
-                    }
-
-                    Cell cell10 = row.getCell(10);  //经营业务:出租车[是/否]
-                    String ten = null;
-                    if (SinataUtil.isNotEmpty(cell10)){
-                        ten = String.valueOf(cell10.getStringCellValue()).trim();
-                    }
-
-                    Cell cell11 = row.getCell(11);  //经营业务:跨城出行[是/否]
-                    String eleven = null;
-                    if (SinataUtil.isNotEmpty(cell11)){
-                        eleven = String.valueOf(cell11.getStringCellValue()).trim();
-                    }
-
-                    Cell cell12 = row.getCell(12);  //经营业务:小件同城物流[是/否]
-                    String twelve = null;
-                    if (SinataUtil.isNotEmpty(cell12)){
-                        twelve = String.valueOf(cell12.getStringCellValue()).trim();
-                    }
-
-                    Cell cell13 = row.getCell(13);  //经营业务:小件跨城物流[是/否]
-                    String thirteen = null;
-                    if (SinataUtil.isNotEmpty(cell13)){
-                        thirteen = String.valueOf(cell13.getStringCellValue()).trim();
-                    }
-
-                    Cell cell14 = row.getCell(14);  //经营业务:包车[是/否]
-                    String fourteen = null;
-                    if (SinataUtil.isNotEmpty(cell14)){
-                        fourteen = String.valueOf(cell14.getStringCellValue()).trim();
-                    }
-
-                    Cell cell15 = row.getCell(15);  //登录账号[手机号]
-                    String fifteen = null;
-                    if (SinataUtil.isNotEmpty(cell15)){
-                        fifteen = String.valueOf(cell15.getStringCellValue()).trim();
-                    }
-
-                    Cell cell16 = row.getCell(16);  //登录密码[密码长度为6-18]
-                    String sixteen = null;
-                    if (SinataUtil.isNotEmpty(cell16)){
-                        sixteen = String.valueOf(cell16.getStringCellValue()).trim();
-                    }
-                    if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(two) || SinataUtil.isEmpty(three) || SinataUtil.isEmpty(four)
-                            || SinataUtil.isEmpty(five) || SinataUtil.isEmpty(seven)
-                            || SinataUtil.isEmpty(nine) || SinataUtil.isEmpty(ten)
-                            || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen)
-                            || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) || SinataUtil.isEmpty(sixteen)){
-                        return new ErrorTip(500, "单元格不能为空");
-                    }else{
-                        //判断账号是否存在
-                        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", fifteen).in("authState", "1,2,3").ne("flag", 3));
-                        if (count > 0){
-                            continue;
-                        }
-                        //判断性别
-                        if (!two.equals("男") && !two.equals("女")){
-                            return new ErrorTip(500, "性别内容不正确");
-                        }
-                        //判断经营业务【专车】
-                        if (!nine.equals("是") && !nine.equals("否")){
-                            return new ErrorTip(500, "经营业务【专车】内容不正确");
-                        }
-                        //判断经营业务【出租车】
-                        if (!ten.equals("是") && !ten.equals("否")){
-                            return new ErrorTip(500, "经营业务【出租车】内容不正确");
-                        }
-                        //判断经营业务【跨城出行】
-                        if (!eleven.equals("是") && !eleven.equals("否")){
-                            return new ErrorTip(500, "经营业务【跨城出行】内容不正确");
-                        }
-                        //判断经营业务【小件同城物流】
-                        if (!twelve.equals("是") && !twelve.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件同城物流】内容不正确");
-                        }
-                        //判断经营业务【小件跨城物流】
-                        if (!thirteen.equals("是") && !thirteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确");
-                        }
-                        //判断经营业务【包车】
-                        if (!fourteen.equals("是") && !fourteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【包车】内容不正确");
-                        }
-                        //判断驾龄
-                        if (!isInteger(four)){
-                            return new ErrorTip(500, "驾龄格式不正确");
-                        }
-                        //判断手机号
-                        if (!isPhone(fifteen)){
-                            return new ErrorTip(500, "登录账号[手机号]格式不正确");
-                        }
-                        //判断登录密码
-                        if (!isPassword(sixteen)){
-                            return new ErrorTip(500, "登录密码格式不正确");
-                        }
-                        //查找平台公司
-                        Integer companyId = ShiroKit.getUser().getObjectId();
-                        Integer franchiseeId = 0;
-                        //判断所属分公司是否存在
-                        if (SinataUtil.isNotEmpty(one)){
-                            TCompany franchisee = itCompanyService.selectOne(new EntityWrapper<TCompany>().eq("superiorId",companyId).eq("name", one).eq("type", 3).notIn("flag", "3").last(" limit 1"));
-                            if (SinataUtil.isNotEmpty(franchisee)){
-                                franchiseeId = franchisee.getId();
-                            }
-                        }
-
-                        TDriver driver = new TDriver();
-                        driver.setAccount(fifteen);
-                        driver.setJobNumber(eight);
-                        driver.setPhone(fifteen);
-                        driver.setPassword(ShiroKit.md5(sixteen, "SA;d5#"));
-                        driver.setName(zero);
-                        if ("男".equals(two)){
-                            driver.setSex(1);
-                        }else if ("女".equals(two)){
-                            driver.setSex(2);
-                        }
-                        driver.setIdCard(five);
-                        driver.setDriverAge(Integer.valueOf(four));
-                        driver.setDriveCard(three);
-                        driver.setTaxiAptitudeCard(seven);
-                        driver.setIsPlatCar(2);
-                        driver.setCompanyId(companyId);
-                        driver.setFranchiseeId(franchiseeId);
-                        driver.setState(1);
-                        driver.setAuthState(1);
-                        driver.setFlag("1");
-                        driver.setInsertUser(ShiroKit.getUser().getId());
-                        driver.setInsertTime(new Date());
-                        driver.setAddType(3);
-                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
-                        if (SinataUtil.isNotEmpty(six)){
-                            driver.setDriverAddress(six);
-                        }
-                        tDriverService.insert(driver);
-
-                        //添加专车服务模式
-                        if ("是".equals(nine)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(1);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加出租车服务模式
-                        if ("是".equals(ten)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(2);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加跨城出行服务模式
-                        if ("是".equals(eleven)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(3);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件同城物流服务模式
-                        if ("是".equals(twelve)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(4);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件跨城物流服务模式
-                        if ("是".equals(thirteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(5);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加包车服务模式
-                        if ("是".equals(fourteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(6);
-                            itDriverServiceService.insert(service);
-                        }
-
-                    }
+                values[i][4] = d.getDriverLicenseNumber();
+                values[i][5] = d.getIdcard();
+                if(StringUtils.hasLength(d.getIdcardFront())){
+                    values[i][6] = "已上传";
+                }else {
+                    values[i][6] = "未上传";
                 }
-            }else if (ShiroKit.getUser().getRoleType() == 3){
-                Workbook book = WoUtil.ImportFile(file);
-                Sheet sh = book.getSheetAt(0);   //获取到第一个表
-                for (int i = 1; i <= sh.getLastRowNum(); i++) {
-                    Row row = sh.getRow(i);
-
-                    Cell cell0 = row.getCell(0);  //司机名称
-                    String zero = null;
-                    if (SinataUtil.isNotEmpty(cell0)){
-                        zero = String.valueOf(cell0.getStringCellValue()).trim();
-                    }
-
-                    Cell cell2 = row.getCell(1);  //性别[男/女]
-                    String one = null;
-                    if (SinataUtil.isNotEmpty(cell2)){
-                        one = String.valueOf(cell2.getStringCellValue()).trim();
-                    }
-
-                    Cell cell3 = row.getCell(2);  //驾驶证号码
-                    String two = null;
-                    if (SinataUtil.isNotEmpty(cell3)){
-                        two = String.valueOf(cell3.getStringCellValue()).trim();
-                    }
-
-                    Cell cell4 = row.getCell(3);  //驾龄
-                    String three = null;
-                    if (SinataUtil.isNotEmpty(cell4)){
-                        three = String.valueOf(cell4.getStringCellValue()).trim();
-                    }
-
-                    Cell cell5 = row.getCell(4);  //身份证号
-                    String four = null;
-                    if (SinataUtil.isNotEmpty(cell5)){
-                        four = String.valueOf(cell5.getStringCellValue()).trim();
-                    }
-
-                    Cell cell6 = row.getCell(5);  //居住地址
-                    String five = null;
-                    if (SinataUtil.isNotEmpty(cell6)){
-                        five = String.valueOf(cell6.getStringCellValue()).trim();
-                    }
-
-                    Cell cell7 = row.getCell(6);  //出租车资格证号
-                    String six = null;
-                    if (SinataUtil.isNotEmpty(cell7)){
-                        six = String.valueOf(cell7.getStringCellValue()).trim();
-                    }
-
-                    Cell cell8 = row.getCell(7);  //工号[选填]
-                    String seven = null;
-                    if (SinataUtil.isNotEmpty(cell8)){
-                        seven = String.valueOf(cell8.getStringCellValue()).trim();
-                    }
-
-                    Cell cell9 = row.getCell(8);  //经营业务:专车[是/否]
-                    String eight = null;
-                    if (SinataUtil.isNotEmpty(cell9)){
-                        eight = String.valueOf(cell9.getStringCellValue()).trim();
-                    }
-
-                    Cell cell10 = row.getCell(9);  //经营业务:出租车[是/否]
-                    String nine = null;
-                    if (SinataUtil.isNotEmpty(cell10)){
-                        nine = String.valueOf(cell10.getStringCellValue()).trim();
-                    }
-
-                    Cell cell11 = row.getCell(10);  //经营业务:跨城出行[是/否]
-                    String ten = null;
-                    if (SinataUtil.isNotEmpty(cell11)){
-                        ten = String.valueOf(cell11.getStringCellValue()).trim();
-                    }
-
-                    Cell cell12 = row.getCell(11);  //经营业务:小件同城物流[是/否]
-                    String eleven = null;
-                    if (SinataUtil.isNotEmpty(cell12)){
-                        eleven = String.valueOf(cell12.getStringCellValue()).trim();
-                    }
-
-                    Cell cell13 = row.getCell(12);  //经营业务:小件跨城物流[是/否]
-                    String twelve = null;
-                    if (SinataUtil.isNotEmpty(cell13)){
-                        twelve = String.valueOf(cell13.getStringCellValue()).trim();
-                    }
-
-                    Cell cell14 = row.getCell(13);  //经营业务:包车[是/否]
-                    String thirteen = null;
-                    if (SinataUtil.isNotEmpty(cell14)){
-                        thirteen = String.valueOf(cell14.getStringCellValue()).trim();
-                    }
-
-                    Cell cell15 = row.getCell(14);  //登录账号[手机号]
-                    String fourteen = null;
-                    if (SinataUtil.isNotEmpty(cell15)){
-                        fourteen = String.valueOf(cell15.getStringCellValue()).trim();
-                    }
-
-                    Cell cell16 = row.getCell(15);  //登录密码[密码长度为6-18]
-                    String fifteen = null;
-                    if (SinataUtil.isNotEmpty(cell16)){
-                        fifteen = String.valueOf(cell16.getStringCellValue()).trim();
-                    }
-                    if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(one)  || SinataUtil.isEmpty(two) || SinataUtil.isEmpty(three) || SinataUtil.isEmpty(four)
-                            || SinataUtil.isEmpty(six) || SinataUtil.isEmpty(eight)
-                            || SinataUtil.isEmpty(nine) || SinataUtil.isEmpty(ten)
-                            || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen)
-                            || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) ){
-                        return new ErrorTip(500, "单元格不能为空");
-                    }else{
-                        //判断账号是否存在
-                        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", fourteen).in("authState", "1,2,3").ne("flag", 3));
-                        if (count > 0){
-                            continue;
-                        }
-                        //判断性别
-                        if (!one.equals("男") && !one.equals("女")){
-                            return new ErrorTip(500, "性别内容不正确");
-                        }
-                        //判断经营业务【专车】
-                        if (!eight.equals("是") && !eight.equals("否")){
-                            return new ErrorTip(500, "经营业务【专车】内容不正确");
-                        }
-                        //判断经营业务【出租车】
-                        if (!nine.equals("是") && !nine.equals("否")){
-                            return new ErrorTip(500, "经营业务【出租车】内容不正确");
-                        }
-                        //判断经营业务【跨城出行】
-                        if (!ten.equals("是") && !ten.equals("否")){
-                            return new ErrorTip(500, "经营业务【跨城出行】内容不正确");
-                        }
-                        //判断经营业务【小件同城物流】
-                        if (!eleven.equals("是") && !eleven.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件同城物流】内容不正确");
-                        }
-                        //判断经营业务【小件跨城物流】
-                        if (!twelve.equals("是") && !twelve.equals("否")){
-                            return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确");
-                        }
-                        //判断经营业务【包车】
-                        if (!thirteen.equals("是") && !thirteen.equals("否")){
-                            return new ErrorTip(500, "经营业务【包车】内容不正确");
-                        }
-                        //判断驾龄
-                        if (!isInteger(three)){
-                            return new ErrorTip(500, "驾龄格式不正确");
-                        }
-                        //判断手机号
-                        if (!isPhone(fourteen)){
-                            return new ErrorTip(500, "登录账号[手机号]格式不正确");
-                        }
-                        //判断登录密码
-                        if (!isPassword(fifteen)){
-                            return new ErrorTip(500, "登录密码格式不正确");
-                        }
-                        //查找平台公司
-                        Integer companyId = 0;
-                        Integer franchiseeId = 0;
-                        TCompany franchisee = itCompanyService.selectById(ShiroKit.getUser().getObjectId());
-                        if (SinataUtil.isNotEmpty(franchisee)){
-                            companyId = franchisee.getSuperiorId();
-                            franchiseeId = franchisee.getId();
-                        }
-                        if (companyId == 0 && franchiseeId == 0){
-                            return new ErrorTip(500, "当前登录账户上级分公司不能为空");
-                        }
-
-                        TDriver driver = new TDriver();
-                        driver.setAccount(fourteen);
-                        driver.setJobNumber(seven);
-                        driver.setPhone(fourteen);
-                        driver.setPassword(ShiroKit.md5(fifteen, "SA;d5#"));
-                        driver.setName(zero);
-                        if ("男".equals(one)){
-                            driver.setSex(1);
-                        }else if ("女".equals(one)){
-                            driver.setSex(2);
-                        }
-                        driver.setIdCard(four);
-                        driver.setDriverAge(Integer.valueOf(three));
-                        driver.setDriveCard(two);
-                        driver.setTaxiAptitudeCard(six);
-                        driver.setIsPlatCar(2);
-                        driver.setCompanyId(companyId);
-                        driver.setFranchiseeId(franchiseeId);
-                        driver.setState(1);
-                        driver.setAuthState(1);
-                        driver.setFlag("1");
-                        driver.setInsertUser(ShiroKit.getUser().getId());
-                        driver.setInsertTime(new Date());
-                        driver.setAddType(4);
-                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
-                        if (SinataUtil.isNotEmpty(five)){
-                            driver.setDriverAddress(five);
-                        }
-                        tDriverService.insert(driver);
-
-                        //添加专车服务模式
-                        if ("是".equals(eight)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(1);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加出租车服务模式
-                        if ("是".equals(nine)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(2);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加跨城出行服务模式
-                        if ("是".equals(ten)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(3);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件同城物流服务模式
-                        if ("是".equals(eleven)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(4);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加小件跨城物流服务模式
-                        if ("是".equals(twelve)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(5);
-                            itDriverServiceService.insert(service);
-                        }
-                        //添加包车服务模式
-                        if ("是".equals(thirteen)){
-                            TDriverService service = new TDriverService();
-                            service.setDriverId(driver.getId());
-                            service.setType(6);
-                            itDriverServiceService.insert(service);
-                        }
-                    }
+                values[i][7] = d.getAgentName();
+                values[i][8] = d.getBranchName();
+                values[i][9] = String.valueOf(d.getBalance());
+                values[i][10] = String.valueOf(d.getCumulativeOrderCount());
+                values[i][11] = String.valueOf(d.getMonthOrderCount());
+                values[i][12] = String.valueOf(d.getIntegral());
+                values[i][13] = String.valueOf(d.getRefusalCount());
+                Integer status1 = d.getStatus();
+                if(1 == status1){
+                    values[i][14] = "正常";
+                }else if(2 == status1){
+                    values[i][14] = "冻结";
+                }else {
+                    values[i][14] = "删除";
                 }
+                Integer approvalStatus = d.getApprovalStatus();
+                if(1 == approvalStatus){
+                    values[i][15] = "待审核";
+                }else if(2 == approvalStatus){
+                    values[i][15] = "已同意";
+                }else {
+                    values[i][15] = "已拒绝";
+                }
+                values[i][16] = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(d.getCreateTime());
             }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return SUCCESS_TIP;
-    }
-
-
-
-
-    @Autowired
-    private ITCompanyService itCompanyService;
-
-    @Autowired
-    private ITDriverServiceService itDriverServiceService;
-
-    /**
-     * 验证是否可以字符转为整数
-     * @param str
-     * @return
-     */
-    public static boolean isInteger(String str) {
-        try{
-            String reg = "^[0-9]\\d*$";
-            boolean flag = str.matches(reg);
-            return flag;
-        }catch(NumberFormatException e) {
-            System.out.println("异常:\"" + str + "\"...");
-            return false;
-        }
-    }
-    /**
-     * 验证手机号格式是否正确
-     * @param str
-     * @return
-     */
-    public static boolean isPhone(String str) {
-        try{
-            String reg = "^1\\d{10}$";
-            boolean flag = str.matches(reg);
-            return flag;
-        }catch(NumberFormatException e) {
-            System.out.println("异常:\"" + str + "\"...");
-            return false;
-        }
-    }
-    /**
-     * 验证密码长度是否正确
-     * @param str
-     * @return
-     */
-    public static boolean isPassword(String str) {
-        try{
-            String reg = "^.{6,18}$";
-            boolean flag = str.matches(reg);
-            return flag;
-        }catch(NumberFormatException e) {
-            System.out.println("异常:\"" + str + "\"...");
-            return false;
-        }
-    }
-
-    /**
-     *  导出司机信息
-     */
-    @RequestMapping(value = "/outDriver")
-    public void outDriver(HttpServletRequest request, HttpServletResponse response) {
-        List<Map<String,Object>> listMap = tDriverService.getDriverListNoPage(ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId());
-
-        // 表格数据【封装】
-        List<List<String>> dataList = new ArrayList<>();
-
-        //第一行显示【封装】
-        List<String> twoList = new ArrayList<String>();
-        twoList.add("总计:");
-        twoList.add(String.valueOf(listMap.size())+"条");
-        dataList.add(twoList);
-
-        // 列【封装】
-        List<String> shellList = new ArrayList<String>();
-        shellList.add("添加时间");
-        shellList.add("姓名");
-        shellList.add("登录账号【手机号】");
-        shellList.add("性别");
-        shellList.add("司机来源");
-        shellList.add("所属分公司");
-        shellList.add("所属加盟商");
-        shellList.add("当前车辆");
-        shellList.add("服务模式");
-        shellList.add("关联线路");
-        shellList.add("评分");
-        shellList.add("历史接单数");
-        shellList.add("历史订单总金额");
-        shellList.add("当前钱包余额");
-        shellList.add("钱包活动余额");
-        shellList.add("钱包收入余额");
-        shellList.add("状态");
-        dataList.add(shellList);
-
-        for (Map<String,Object> object : listMap){
-            // 详细数据列【封装】
-            shellList = new ArrayList<String>();
-            if(SinataUtil.isNotEmpty(object.get("insertTime"))){
-                shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("insertTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm:ss"));
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("name"))){
-                shellList.add(object.get("name").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("phone"))){
-                shellList.add(object.get("phone").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("sex"))){
-                shellList.add(object.get("sex").toString() == "1"?"男":"女");
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("addType"))){
-
-                shellList.add(object.get("addType").toString().equals("1")?"司机注册":(object.get("addType").toString().equals("2")?"平台添加":(object.get("addType").toString().equals("3")?"分公司添加":(object.get("addType").toString().equals("4")?"加盟商添加":""))));
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("companyName"))){
-                shellList.add(object.get("companyName").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("franchiseeName"))){
-                shellList.add(object.get("franchiseeName").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("carLicensePlate"))){
-                shellList.add(object.get("carLicensePlate").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("serverStr"))){
-                shellList.add(object.get("serverStr").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("lineStr"))){
-                shellList.add(object.get("lineStr").toString());
-            }else{
-                shellList.add("-");
-            }
-            if(SinataUtil.isNotEmpty(object.get("evaluateNum"))){
-                shellList.add(object.get("evaluateNum").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("historyNum"))){
-                shellList.add(object.get("historyNum").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("historyMoney"))){
-                shellList.add(object.get("historyMoney").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("balance"))){
-                shellList.add(object.get("balance").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("laveActivityMoney"))){
-                shellList.add(object.get("laveActivityMoney").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("laveBusinessMoney"))){
-                shellList.add(object.get("laveBusinessMoney").toString());
-            }else{
-                shellList.add("0");
-            }
-            if(SinataUtil.isNotEmpty(object.get("authState"))){
-                shellList.add(object.get("authState").toString().equals("1")?"待审核":(object.get("authState").toString().equals("2")?"正常":(object.get("authState").toString().equals("3")?"冻结":(object.get("authState").toString().equals("4")?"已拒绝":""))));
-
-                shellList.add(object.get("authState").toString());
-            }else{
-                shellList.add("-");
-            }
-            dataList.add(shellList);
-        }
-        try {
-            // 调用工具类进行导出
-            ExcelExportUtil.easySheet("司机信息导出记录"+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "司机信息导出记录", dataList,request, response);
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
+    @ApiOperation(value = "导出司机异常列表",notes="导出司机异常列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    @RequestMapping(value = "/export-exception")
+    @ResponseBody
+    public void exportException(String createTime,String phone,Integer status,HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "DriverExceptionInfo"+time1+".xls";
+            String[] title = new String[] {"编号","姓名","手机号","性别","驾驶证号码","身份证号码",
+                    "身份证","累计订单量","当月订单量","积分","连续未上线(天)","状态","添加时间"};
+            EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status);
+            wrapper.eq("isException",2);
+            wrapper.orderBy("createTime",false);
+            List<TDriver> tDrivers = tDriverService.selectList(wrapper);
+            List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers);
+            for (TDriverResp driverResp : tDriverResp) {
+                TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
+                        .eq("driverId", driverResp.getId())
+                        .orderBy("workTime", false)
+                        .last("LIMIT 1"));
+                if(Objects.nonNull(tDriverWork)){
+                    // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0
+                    if(tDriverWork.getStatus() == 1){
+                        driverResp.setNotOnlineCount(0);
+                    }else {
+                        Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now());
+                        driverResp.setNotOnlineCount(Math.abs(period.getDays()));
+                    }
+                }else {
+                    // 没有上班记录,计算审核时间
+                    Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now());
+                    driverResp.setNotOnlineCount(Math.abs(period.getDays()));
+                }
+            }
+
+            String[][] values = new String[tDriverResp.size()][];
+            for (int i = 0; i < tDriverResp.size(); i++) {
+                TDriverResp d = tDriverResp.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = d.getCode();
+                values[i][1] = d.getName();
+                values[i][2] = d.getPhone();
+                Integer sex = d.getSex();
+                if(Objects.isNull(sex)){
+                    values[i][3] = "未知";
+                }else if(1 == sex){
+                    values[i][3] = "男";
+                }else if(2 == sex){
+                    values[i][3] = "女";
+                }
+                values[i][4] = d.getDriverLicenseNumber();
+                values[i][5] = d.getIdcard();
+                if(StringUtils.hasLength(d.getIdcardFront())){
+                    values[i][6] = "已上传";
+                }else {
+                    values[i][6] = "未上传";
+                }
+                values[i][7] = String.valueOf(d.getCumulativeOrderCount());
+                values[i][8] = String.valueOf(d.getMonthOrderCount());
+                values[i][9] = String.valueOf(d.getIntegral());
+                values[i][10] = String.valueOf(Objects.isNull(d.getNotOnlineCount())?0:d.getNotOnlineCount());
+                values[i][11] = "异常";
+                values[i][12] = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(d.getCreateTime());
+            }
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+    @ApiOperation(value = "导出司机佣金列表",notes="导出司机佣金列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    @RequestMapping(value = "/export-commission")
+    @ResponseBody
+    public void exportCommission(String name,String phone,Integer status,HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "CommissionInfo"+time1+".xls";
+            String[] title = new String[] {"姓名","手机号","所属代理商","推广人数","关联人数",
+                    "累计获得佣金","可提现佣金","已提现金额","状态"};
+            EntityWrapper<TDriver> wrapper = tDriverService.getCommissionPageList(name,phone,status);
+//            wrapper.ne("isException",2);
+            // 是否异常
+            List<TDriver> list = tDriverService.selectList(wrapper);
+
+            List<TDriverCommissionResp> commissionResp = tDriverService.getTDriverCommissionResp(list);
+
+            String[][] values = new String[commissionResp.size()][];
+            for (int i = 0; i < commissionResp.size(); i++) {
+                TDriverCommissionResp d = commissionResp.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = d.getName();
+                values[i][1] = d.getPhone();
+                values[i][2] = d.getAgentName();
+                values[i][3] = String.valueOf(Objects.isNull(d.getNumberPromoters()) ? 0:d.getNumberPromoters());
+                values[i][4] = String.valueOf(d.getConnectedPersons());
+                values[i][5] = String.valueOf(d.getAccumulatedCommission());
+                values[i][6] = String.valueOf(Objects.isNull(d.getCommission())?0:d.getCommission());
+                values[i][7] = String.valueOf(d.getWithdrawnAmount());
+                Integer status1 = d.getStatus();
+                if(1 == status1){
+                    values[i][8] = "正常";
+                }else if(2 == status1){
+                    values[i][8] = "冻结";
+                }else if(3 == status1){
+                    values[i][8] = "已删除";
+                }
+            }
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

--
Gitblit v1.7.1