Pu Zhibing
2025-07-17 4918c9ad2c5807dd5b5dc3b2cc0a9a74031d4278
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -7,42 +7,42 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.base.tips.ErrorTip;
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.*;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.core.util.WoUtil;
import com.stylefeng.guns.modular.cloudPayment.example.AllocationExample;
import com.stylefeng.guns.modular.cloudPayment.req.AllocationReq;
import com.stylefeng.guns.modular.system.controller.util.Base64Util;
import com.stylefeng.guns.modular.system.dao.DriverPunishMapper;
import com.stylefeng.guns.modular.system.dao.DriverTrainMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.ExcelExportUtil;
import com.unionpay.upyzt.exception.UpyztException;
import com.unionpay.upyzt.resp.AllocationResp;
import org.apache.commons.lang.time.DateUtils;
import org.apache.poi.hdf.extractor.TC;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
import org.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.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.ui.Model;
import org.springframework.beans.factory.annotation.Autowired;
import com.stylefeng.guns.core.log.LogObjectHolder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
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.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -72,35 +72,46 @@
    @Autowired
    private ITLineService itLineService;
    @Autowired
    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
    @Resource
    private DriverTrainMapper driverTrainMapper;
    @Resource
    private DriverPunishMapper driverPunishMapper;
    @Autowired
    private RedisUtil redisUtil;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
    @Value("${pushMinistryOfTransport}")
    private boolean pushMinistryOfTransport;
    @Autowired
    private ITCompanyService itCompanyService;
    @Autowired
    private ITDriverServiceService itDriverServiceService;
    @Autowired
    private ITComplaintService tComplaintService;
    @Autowired
    private IUserService userService;
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    /**
     * 跳转投诉页面
     *
     * @return
     */
    @RequestMapping("complaint")
    public String complaint(Model model,Integer driverId) {
        model.addAttribute("id",driverId);
    public String complaint(Model model, Integer driverId) {
        model.addAttribute("id", driverId);
        return PREFIX + "tComplaint.html";
    }
@@ -129,7 +140,7 @@
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        page.setRecords(tComplaintService.getComplaintList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,userName,userPhone,driverPhone,isHandle,driverId));
        page.setRecords(tComplaintService.getComplaintList(page, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), beginTime, endTime, userName, userPhone, driverPhone, isHandle, driverId));
        return super.packForBT(page);
    }
    /**
@@ -154,22 +165,22 @@
    @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){
        model.addAttribute("companyList", companyList);
        Integer roleType = shiroExtUtil.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);
                    .eq("superiorId", shiroExtUtil.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());
        model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
        //查询线路列表
        List<TLine> lineList = itLineService.selectList(new EntityWrapper<TLine>().eq("state", 1));
@@ -220,8 +231,12 @@
    public String tDriver_look(@PathVariable Integer tDriverId, Model model) {
        Map<String, Object> tDriver = tDriverService.getDriverById(tDriverId);
        model.addAttribute("item",tDriver);
        String placeOfPractice = tDriver.get("placeOfPractice").toString().replaceAll(",", "-");
        model.addAttribute("placeOfPractice", placeOfPractice);
        Object placeOfPractice1 = tDriver.get("placeOfPractice");
        if(placeOfPractice1==null){
            model.addAttribute("placeOfPractice", "");
        }else {
            model.addAttribute("placeOfPractice", placeOfPractice1.toString().replaceAll(",", "-"));
        }
        LogObjectHolder.me().set(tDriver);
        return PREFIX + "tDriver_look.html";
    }
@@ -232,21 +247,21 @@
    @RequestMapping("/tDriver_update/{tDriverId}")
    public String tDriverUpdate(@PathVariable Integer tDriverId, Model model) {
        TDriver tDriver = tDriverService.selectById(tDriverId);
        model.addAttribute("item",tDriver);
        model.addAttribute("item", tDriver);
        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).ne("flag",3));
            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);
        Integer roleType = shiroExtUtil.getUser().getRoleType();
        model.addAttribute("roleType", roleType);
        model.addAttribute("objectName", tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getName());
        if (1 == roleType) {
            List<TCompany> companyList = tCompanyService.selectList(new EntityWrapper<TCompany>().eq("type", 2).ne("flag", 3));
            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", shiroExtUtil.getUser().getObjectId()));
            model.addAttribute("franchiseeList", franchiseeList);
        }
        //查询平台ID
@@ -566,16 +581,17 @@
                       Integer authState) {
        String beginTime = null;
        String endTime = null;
        if (SinataUtil.isNotEmpty(insertTime)){
        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));
        if (shiroExtUtil.getUser().getRoleType() != 1) {
            User user = userService.selectById(shiroExtUtil.getUser().getId());
            page.setRecords(tDriverService.getAuthDriverList(page, beginTime, endTime, companyName, phone, account, addType, authState, user.getObjectId()));
        } else {
            page.setRecords(tDriverService.getAuthDriverList(page, beginTime, endTime, companyName, phone, account, addType, authState, null));
        }
        return super.packForBT(page);
    }
@@ -599,7 +615,7 @@
            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));
        page.setRecords(tDriverService.getDriverList(page, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), beginTime, endTime, companyName, phone, name, addType, authState));
        return super.packForBT(page);
    }
@@ -624,7 +640,7 @@
        }*/
        //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));
        page.setRecords(tDriverService.getCanSelectCarList(page, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), null, carLicensePlate, brandName, modelName, color, serverStr));
        return super.packForBT(page);
    }
@@ -636,33 +652,71 @@
    @ResponseBody
    public Object authOpt(Integer id,Integer authState) {
        if (SinataUtil.isNotEmpty(id) && SinataUtil.isNotEmpty(authState)){
            ShiroUser user1 = shiroExtUtil.getUser();
            User user2 = userService.selectById(user1.getId());
            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){//上传数据
                        if (pushMinistryOfTransport) {//上传数据
                            pushMinistryOfTransportUtil.baseInfoCompanyStat();
                            pushMinistryOfTransportUtil.baseInfoDriver(id);
                            pushMinistryOfTransportUtil.baseInfoDriverApp(id);
                        }
                    }
                }).start();
            }else{
            } else {
                type = 6;
                tDriver.setAuthState(4);
            }
            Map<String,String> map = new HashMap<>();
            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);
            System.out.println("司机注册审核发送短信 :【driverId=" + tDriver.getId().toString() + "】,调用接口:" + result);
            //审核通过,在中台添加司机账号
            if (2 == tDriver.getAuthState()) {
                Integer objectId = tDriver.getCompanyId();
                TCompany tCompany = itCompanyService.selectById(objectId);
                List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tCompany.getEnterCode());
                Long empId = null;
                Integer empnew = null;
                if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                    SaveStaffNodeRequest request = new SaveStaffNodeRequest();
                    request.setMobile(user2.getPhone());
                    request.setEntercode(tCompany.getEnterCode());
                    request.setEmpName(tDriver.getName());
                    request.setEmpNickname(tDriver.getName());
                    request.setLoginNo(tDriver.getPhone());
                    request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                    request.setMphone(tDriver.getPhone());
                    request.setEmail(tDriver.getPhone() + "@qyt.com");
                    request.setDeptId(0);
                    request.setPositionId(1);
                    request.setSuperLevel(0);
                    request.setHideMobile(0);
                    ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
                    if(200 != resultUtil.getStatus()){
                        return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                    }
                    SaveStaffNode saveStaffNode = resultUtil.getData();
                    empId = saveStaffNode.getEmpId();
                    empnew = 1;
                }else{
                    empId = userInfoByPhone.get(0).getEmpId();
                    empnew = 0;
                }
                tDriver.setEmpId(empId);
                tDriver.setEntercode(tCompany.getEnterCode());
                tDriver.setEnterId(Long.valueOf(tCompany.getEnterCode()));
                tDriver.setEmpnew(empnew);
            }
            tDriverService.updateById(tDriver);
        }
        return SUCCESS_TIP;
@@ -709,50 +763,90 @@
            tDriver.setAddType(2);
            tDriver.setIsPlatCar(1);
            tDriver.setAuthState(2);
        }else if (2 == roleType){  //分公司
            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
                tDriver.setCompanyId(ShiroKit.getUser().getObjectId());
        }else if (2 == roleType) {  //分公司
            if (SinataUtil.isNotEmpty(shiroExtUtil.getUser().getObjectId())) {
                tDriver.setCompanyId(shiroExtUtil.getUser().getObjectId());
            }
            if (SinataUtil.isNotEmpty(franchiseeId)){
            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.setAddObjectId(shiroExtUtil.getUser().getObjectId());
        }else if (3 == roleType) {  //加盟商
            TCompany tCompany = tCompanyService.selectById(shiroExtUtil.getUser().getObjectId());
            if (SinataUtil.isNotEmpty(tCompany)) {
                tDriver.setCompanyId(tCompany.getSuperiorId());
            }
            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
                tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId());
            if (SinataUtil.isNotEmpty(shiroExtUtil.getUser().getObjectId())) {
                tDriver.setFranchiseeId(shiroExtUtil.getUser().getObjectId());
            }
            tDriver.setAddType(4);
            tDriver.setIsPlatCar(2);
            tDriver.setAuthState(1);
            tDriver.setAddObjectId(ShiroKit.getUser().getObjectId());
            tDriver.setAddObjectId(shiroExtUtil.getUser().getObjectId());
        }
        tDriver.setInsertTime(new Date());
        tDriver.setInsertUser(ShiroKit.getUser().getId());
        tDriver.setInsertUser(shiroExtUtil.getUser().getId());
//        tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword()));
        tDriver.setAccount(tDriver.getPhone());
        tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#"));
        //审核通过,在中台添加司机账号
        if (2 == tDriver.getAuthState()) {
            ShiroUser user = shiroExtUtil.getUser();
            User user2 = userService.selectById(user.getId());
            Integer objectId = user.getObjectId();
            TCompany tCompany = itCompanyService.selectById(objectId);
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tCompany.getEnterCode());
            Long empId = null;
            Integer empnew = null;
            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
                request.setMobile(user2.getPhone());
                request.setEntercode(tCompany.getEnterCode());
                request.setEmpName(tDriver.getName());
                request.setEmpNickname(tDriver.getName());
                request.setLoginNo(tDriver.getPhone());
                request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                request.setMphone(tDriver.getPhone());
                request.setEmail(tDriver.getPhone() + "@qyt.com");
                request.setDeptId(0);
                request.setPositionId(1);
                request.setSuperLevel(0);
                request.setHideMobile(0);
                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
                SaveStaffNode saveStaffNode = resultUtil.getData();
                empId = saveStaffNode.getEmpId();
                empnew = 1;
            }else{
                empId = userInfoByPhone.get(0).getEmpId();
                empnew = 0;
            }
            TCompany tCompany1 = itCompanyService.selectById(tDriver.getCompanyId());
            tDriver.setEmpId(empId);
            tDriver.setEntercode(tCompany1.getEnterCode());
            tDriver.setEnterId(Long.valueOf(tCompany1.getEnterCode()));
            tDriver.setEmpnew(empnew);
        }
        tDriverService.insert(tDriver);
        //添加经营业务
        String[] serverArray = serverBox.split(",");
        for (int i=0;i<serverArray.length;i++){
        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 (3 == Integer.valueOf(serverArray[i])) {
                //添加线路
                if (SinataUtil.isNotEmpty(lineStr)){
                    addLine(lineStr,tDriver.getId());
                if (SinataUtil.isNotEmpty(lineStr)) {
                    addLine(lineStr, tDriver.getId());
                }
            }
        }
@@ -788,11 +882,29 @@
    public Object delete(@RequestParam Integer tDriverId) {
        TDriver driver = tDriverService.selectById(tDriverId);
        driver.setFlag("3");
        ShiroUser user = shiroExtUtil.getUser();
        TCompany tCompany = itCompanyService.selectById(user.getObjectId());
        if (null != driver.getEmpId() && 1 == driver.getEmpnew()) {
            //中台先删除司机
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), tCompany.getEnterCode());
            if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == driver.getEmpnew()) {
                DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
                deleteStafNodeRequest.setEmpId(driver.getEmpId());
                deleteStafNodeRequest.setEntercode(tCompany.getEnterCode());
                deleteStafNodeRequest.setMobile(tCompany.getPrincipalPhone());
                ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
            }
        }
        tDriverService.updateById(driver);
        String value = redisUtil.getValue("DRIVER_" + driver.getPhone());
        redisUtil.remove(value);
        redisUtil.remove("DRIVER_" + driver.getId());
        redisUtil.remove("DRIVER_" + driver.getPhone());
        String value = (String) redisTemplate.opsForValue().get("DRIVER_" + driver.getPhone());
        if (ToolUtil.isNotEmpty(value)) {
            redisTemplate.delete(value);
        }
        redisTemplate.delete("DRIVER_" + driver.getId());
        redisTemplate.delete("DRIVER_" + driver.getPhone());
        return SUCCESS_TIP;
    }
    /**
@@ -819,19 +931,62 @@
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        if(pushMinistryOfTransport){//上传数据
                        if (pushMinistryOfTransport) {//上传数据
                            pushMinistryOfTransportUtil.baseInfoCompanyStat();
                            pushMinistryOfTransportUtil.baseInfoDriver(driverId);
                        }
                    }
                }).start();
                String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone());
                redisUtil.remove(value);
                redisUtil.remove("DRIVER_" + tDriver.getId());
                redisUtil.remove("DRIVER_" + tDriver.getPhone());
                String value = (String) redisTemplate.opsForValue().get("DRIVER_" + tDriver.getPhone());
                if (ToolUtil.isNotEmpty(value)) {
                    redisTemplate.delete(value);
                }
                redisTemplate.delete("DRIVER_" + tDriver.getId());
                redisTemplate.delete("DRIVER_" + tDriver.getPhone());
            }
            tDriver.setRemark(remark);
            //审核通过,在中台添加司机账号
            if (2 == tDriver.getAuthState() && tDriver.getEmpId() == null) {
                ShiroUser user = shiroExtUtil.getUser();
                User user2 = userService.selectById(user.getId());
                Integer objectId = tDriver.getCompanyId();
                TCompany tCompany = itCompanyService.selectById(objectId);
                List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tCompany.getEnterCode());
                Long empId = null;
                Integer empnew = null;
                if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                    SaveStaffNodeRequest request = new SaveStaffNodeRequest();
                    request.setMobile(user2.getPhone());
                    request.setEntercode(tCompany.getEnterCode());
                    request.setEmpName(tDriver.getName());
                    request.setEmpNickname(tDriver.getName());
                    request.setLoginNo(tDriver.getPhone());
                    request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                    request.setMphone(tDriver.getPhone());
                    request.setEmail(tDriver.getPhone() + "@qyt.com");
                    request.setDeptId(0);
                    request.setPositionId(1);
                    request.setSuperLevel(0);
                    request.setHideMobile(0);
                    ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
                    if(200 != resultUtil.getStatus()){
                        return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                    }
                    SaveStaffNode saveStaffNode = resultUtil.getData();
                    empId = saveStaffNode.getEmpId();
                    empnew = 1;
                }else{
                    empId = userInfoByPhone.get(0).getEmpId();
                    empnew = 0;
                }
                tDriver.setEmpId(empId);
                tDriver.setEntercode(tCompany.getEnterCode());
                tDriver.setEnterId(Long.valueOf(tCompany.getEnterCode()));
                tDriver.setEmpnew(empnew);
            }
            tDriverService.updateById(tDriver);
        }
        return SUCCESS_TIP;
@@ -864,28 +1019,28 @@
                tDriver.setCompanyId(company.getId());
                tDriver.setFranchiseeId(franchiseeId);
            }
        }else if (2 == roleType){  //分公司
            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
                tDriver.setCompanyId(ShiroKit.getUser().getObjectId());
        }else if (2 == roleType) {  //分公司
            if (SinataUtil.isNotEmpty(shiroExtUtil.getUser().getObjectId())) {
                tDriver.setCompanyId(shiroExtUtil.getUser().getObjectId());
            }
            if (SinataUtil.isNotEmpty(franchiseeId)){
            if (SinataUtil.isNotEmpty(franchiseeId)) {
                tDriver.setFranchiseeId(franchiseeId);
            }
        }else if (3 == roleType){  //加盟商
            TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId());
            if (SinataUtil.isNotEmpty(tCompany)){
        } else if (3 == roleType) {  //加盟商
            TCompany tCompany = tCompanyService.selectById(shiroExtUtil.getUser().getObjectId());
            if (SinataUtil.isNotEmpty(tCompany)) {
                tDriver.setCompanyId(tCompany.getSuperiorId());
            }
            if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){
                tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId());
            if (SinataUtil.isNotEmpty(shiroExtUtil.getUser().getObjectId())) {
                tDriver.setFranchiseeId(shiroExtUtil.getUser().getObjectId());
            }
        }
        tDriver.setUpdateTime(new Date());
        tDriver.setUpdateUser(ShiroKit.getUser().getId());
        tDriver.setUpdateUser(shiroExtUtil.getUser().getId());
//        tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword()));
        if(ToolUtil.isEmpty(tDriver.getPassword())){
        if (ToolUtil.isEmpty(tDriver.getPassword())) {
            tDriver.setPassword(obj.getPassword());
        }else{
        } else {
            tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#"));
        }
        obj.setCompanyId(tDriver.getCompanyId());
@@ -933,18 +1088,18 @@
        obj.setEmergencyContactPhone(tDriver.getEmergencyContactPhone());
        obj.setEmergencyContactAddress(tDriver.getEmergencyContactAddress());
        obj.setUpdateTime(new Date());
        obj.setUpdateUser(ShiroKit.getUser().getId());
        obj.setUpdateUser(shiroExtUtil.getUser().getId());
        tDriverService.updateAllColumnById(obj);
        //删除业务
        tDriverServiceService.delete(new EntityWrapper<TDriverService>().eq("driverId",tDriver.getId()));
        tDriverServiceService.delete(new EntityWrapper<TDriverService>().eq("driverId", tDriver.getId()));
        //删除线路
        tDriverLineService.delete(new EntityWrapper<TDriverLine>().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++){
        for (int i = 0; i < serverArray.length; i++) {
            TDriverService service = new TDriverService();
            service.setDriverId(tDriver.getId());
            service.setType(Integer.valueOf(serverArray[i]));
@@ -979,14 +1134,14 @@
    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){
        if (shiroExtUtil.getUser().getRoleType() == 1) {
            title = "平台导入司机模板";
            shellList.add("司机名称");
            shellList.add("所属机构[平台司机/加盟司机]");
            shellList.add("所属分公司[提示:加盟司机选填]");
@@ -1001,14 +1156,11 @@
            shellList.add("经营业务:快车[是/否]");
            shellList.add("经营业务:出租车[是/否]");
            shellList.add("经营业务:跨城出行[是/否]");
            shellList.add("经营业务:小件同城物流[是/否]");
            shellList.add("经营业务:小件跨城物流[是/否]");
            shellList.add("经营业务:包车[是/否]");
            shellList.add("登录账号[手机号]");
            shellList.add("登录密码[密码长度为6-18]");
        }else if (ShiroKit.getUser().getRoleType() == 2){
        } else if (shiroExtUtil.getUser().getRoleType() == 2) {
            title = "分公司导入司机模板";
            shellList.add("司机名称");
            shellList.add("所属加盟商[选填]");
            shellList.add("性别[男/女]");
@@ -1021,14 +1173,11 @@
            shellList.add("经营业务:快车[是/否]");
            shellList.add("经营业务:出租车[是/否]");
            shellList.add("经营业务:跨城出行[是/否]");
            shellList.add("经营业务:小件同城物流[是/否]");
            shellList.add("经营业务:小件跨城物流[是/否]");
            shellList.add("经营业务:包车[是/否]");
            shellList.add("登录账号[手机号]");
            shellList.add("登录密码[密码长度为6-18]");
        }else if (ShiroKit.getUser().getRoleType() == 3){
        } else if (shiroExtUtil.getUser().getRoleType() == 3) {
            title = "加盟商导入司机模板";
            shellList.add("司机名称");
            shellList.add("性别[男/女]");
            shellList.add("驾驶证号码");
@@ -1040,9 +1189,6 @@
            shellList.add("经营业务:快车[是/否]");
            shellList.add("经营业务:出租车[是/否]");
            shellList.add("经营业务:跨城出行[是/否]");
            shellList.add("经营业务:小件同城物流[是/否]");
            shellList.add("经营业务:小件跨城物流[是/否]");
            shellList.add("经营业务:包车[是/否]");
            shellList.add("登录账号[手机号]");
            shellList.add("登录密码[密码长度为6-18]");
        }
@@ -1064,133 +1210,244 @@
    @RequestMapping(value="/exportDriver",method = RequestMethod.POST)
    @ResponseBody
    public Object exportDriver(HttpServletRequest request){
        ShiroUser user = shiroExtUtil.getUser();
        User user2 = userService.selectById(user.getId());
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile");
        try {
            if (ShiroKit.getUser().getRoleType() == 1){
            if (shiroExtUtil.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);
                    Cell cell0 = row.getCell(0);  //司机名称
                    String zero = null;
                    if (SinataUtil.isNotEmpty(cell0)){
                        zero = String.valueOf(cell0.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell0)) {
                        int cellType = cell0.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                zero = cell0.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                zero = String.valueOf((long)cell0.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell1 = row.getCell(1);  //所属机构[平台司机/加盟司机]
                    String one = null;
                    if (SinataUtil.isNotEmpty(cell1)){
                        one = String.valueOf(cell1.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell1)) {
                        int cellType = cell1.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                one = cell1.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                one = String.valueOf((long)cell1.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell2 = row.getCell(2);  //所属分公司[提示:加盟司机选填]
                    String two = null;
                    if (SinataUtil.isNotEmpty(cell2)){
                        two = String.valueOf(cell2.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell2)) {
                        int cellType = cell2.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                two = cell2.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                two = String.valueOf((long)cell2.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell3 = row.getCell(3);  //所属加盟商[提示:加盟司机选填]
                    String three = null;
                    if (SinataUtil.isNotEmpty(cell3)){
                        three = String.valueOf(cell3.getStringCellValue()).trim();
                        int cellType = cell3.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                three = cell3.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                three = String.valueOf((long)cell3.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell4 = row.getCell(4);  //性别[男/女]
                    String four = null;
                    if (SinataUtil.isNotEmpty(cell4)){
                        four = String.valueOf(cell4.getStringCellValue()).trim();
                        int cellType = cell4.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                four = cell4.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                four = String.valueOf((long)cell4.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell5 = row.getCell(5);  //驾驶证号码
                    String five = null;
                    if (SinataUtil.isNotEmpty(cell5)){
                        five = String.valueOf(cell5.getStringCellValue()).trim();
                        int cellType = cell5.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                five = cell5.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                five = String.valueOf((long)cell5.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell6 = row.getCell(6);  //驾龄
                    String six = null;
                    if (SinataUtil.isNotEmpty(cell6)){
                        six = String.valueOf(cell6.getStringCellValue()).trim();
                        int cellType = cell6.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                six = cell6.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                six = String.valueOf((long)cell6.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell7 = row.getCell(7);  //身份证号
                    String seven = null;
                    if (SinataUtil.isNotEmpty(cell7)){
                        seven = String.valueOf(cell7.getStringCellValue()).trim();
                        int cellType = cell7.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                seven = cell7.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                seven = String.valueOf((long)cell7.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell8 = row.getCell(8);  //居住地址
                    String eight = null;
                    if (SinataUtil.isNotEmpty(cell8)){
                        eight = String.valueOf(cell8.getStringCellValue()).trim();
                        int cellType = cell8.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eight = cell8.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eight = String.valueOf((long)cell8.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell9 = row.getCell(9);  //出租车资格证号
                    String nine = null;
                    if (SinataUtil.isNotEmpty(cell9)){
                        nine = String.valueOf(cell9.getStringCellValue()).trim();
                        int cellType = cell9.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                nine = cell9.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                nine = String.valueOf((long)cell9.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell10 = row.getCell(10);  //工号[选填]
                    String ten = null;
                    if (SinataUtil.isNotEmpty(cell10)){
                        ten = String.valueOf(cell10.getStringCellValue()).trim();
                        int cellType = cell10.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                ten = cell10.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                ten = String.valueOf((long)cell10.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell11 = row.getCell(11);  //经营业务:快车[是/否]
                    String eleven = null;
                    if (SinataUtil.isNotEmpty(cell11)){
                        eleven = String.valueOf(cell11.getStringCellValue()).trim();
                        int cellType = cell11.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eleven = cell11.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eleven = String.valueOf((long)cell11.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell12 = row.getCell(12);  //经营业务:快车[是/否]
                    String twelve = null;
                    if (SinataUtil.isNotEmpty(cell12)){
                        twelve = String.valueOf(cell12.getStringCellValue()).trim();
                        int cellType = cell12.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                twelve = cell12.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                twelve = String.valueOf((long)cell12.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell13 = row.getCell(13);  //经营业务:跨城出行[是/否]
                    String thirteen = null;
                    if (SinataUtil.isNotEmpty(cell13)){
                        thirteen = String.valueOf(cell13.getStringCellValue()).trim();
                        int cellType = cell13.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                thirteen = cell13.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                thirteen = String.valueOf((long)cell13.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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);  //登录账号[手机号]
                    Cell cell17 = row.getCell(14);  //登录账号[手机号]
                    String seventeen = null;
                    if (SinataUtil.isNotEmpty(cell17)){
                        seventeen = String.valueOf(cell17.getStringCellValue()).trim();
                        int cellType = cell17.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                seventeen = cell17.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                seventeen = String.valueOf((long)cell17.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell18 = row.getCell(18);  //登录密码[密码长度为6-18]
                    Cell cell18 = row.getCell(15);  //登录密码[密码长度为6-18]
                    String eighteen = null;
                    if (SinataUtil.isNotEmpty(cell18)){
                        eighteen = String.valueOf(cell18.getStringCellValue()).trim();
                        int cellType = cell18.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eighteen = cell18.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eighteen = String.valueOf((long)cell18.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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{
@@ -1219,18 +1476,6 @@
                        //判断经营业务【跨城出行】
                        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)){
@@ -1280,9 +1525,9 @@
                        driver.setDriverAge(Integer.valueOf(six));
                        driver.setDriveCard(five);
                        driver.setTaxiAptitudeCard(nine);
                        if ("平台司机".equals(one)){
                        if ("平台司机".equals(one)) {
                            driver.setIsPlatCar(1);
                        }else if ("加盟司机".equals(one)){
                        } else if ("加盟司机".equals(one)) {
                            driver.setIsPlatCar(2);
                        }
                        driver.setCompanyId(companyId);
@@ -1290,18 +1535,57 @@
                        driver.setState(2);
                        driver.setAuthState(2);
                        driver.setFlag("1");
                        driver.setInsertUser(ShiroKit.getUser().getId());
                        driver.setInsertUser(shiroExtUtil.getUser().getId());
                        driver.setInsertTime(new Date());
                        driver.setAddType(2);
                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
                        if(SinataUtil.isNotEmpty(eight)){
                        driver.setAddObjectId(shiroExtUtil.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(eight)) {
                            driver.setDriverAddress(eight);
                        }
                        //审核通过,在中台添加司机账号
                        if (2 == driver.getAuthState()) {
                            Integer objectId = driver.getCompanyId();
                            TCompany tCompany = itCompanyService.selectById(objectId);
                            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), tCompany.getEnterCode());
                            Long empId = null;
                            Integer empnew = null;
                            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                                SaveStaffNodeRequest saveStaffNodeRequest = new SaveStaffNodeRequest();
                                saveStaffNodeRequest.setMobile(user2.getPhone());
                                saveStaffNodeRequest.setEntercode(tCompany.getEnterCode());
                                saveStaffNodeRequest.setEmpName(driver.getName());
                                saveStaffNodeRequest.setEmpNickname(driver.getName());
                                saveStaffNodeRequest.setLoginNo(driver.getPhone());
                                saveStaffNodeRequest.setEmpSex(driver.getSex() == 1 ? "男" : "女");
                                saveStaffNodeRequest.setMphone(driver.getPhone());
                                saveStaffNodeRequest.setEmail(driver.getPhone() + "@qyt.com");
                                saveStaffNodeRequest.setDeptId(0);
                                saveStaffNodeRequest.setPositionId(1);
                                saveStaffNodeRequest.setSuperLevel(0);
                                saveStaffNodeRequest.setHideMobile(0);
                                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(saveStaffNodeRequest);
                                if(200 != resultUtil.getStatus()){
                                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                                }
                                SaveStaffNode saveStaffNode = resultUtil.getData();
                                empId = saveStaffNode.getEmpId();
                                empnew = 1;
                            }else{
                                empId = userInfoByPhone.get(0).getEmpId();
                                empnew = 0;
                            }
                            driver.setEmpId(empId);
                            driver.setEntercode(tCompany.getEnterCode());
                            driver.setEnterId(Long.valueOf(tCompany.getEnterCode()));
                            driver.setEmpnew(empnew);
                        }
                        tDriverService.insert(driver);
                        //添加快车服务模式
                        if ("是".equals(eleven)){
                        if ("是".equals(eleven)) {
                            TDriverService service = new TDriverService();
                            service.setDriverId(driver.getId());
                            service.setType(1);
@@ -1321,141 +1605,213 @@
                            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);
                        }
                    }
                }
            }else if (ShiroKit.getUser().getRoleType() == 2){
            } else if (shiroExtUtil.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();
                    if (SinataUtil.isNotEmpty(cell0)) {
                        int cellType = cell0.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                zero = cell0.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                zero = String.valueOf((long)cell0.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell1 = row.getCell(1);  //所属加盟商[选填]
                    String one = null;
                    if (SinataUtil.isNotEmpty(cell1)){
                        one = String.valueOf(cell1.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell1)) {
                        int cellType = cell1.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                one = cell1.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                one = String.valueOf((long)cell1.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell2 = row.getCell(2);  //性别[男/女]
                    String two = null;
                    if (SinataUtil.isNotEmpty(cell2)){
                        two = String.valueOf(cell2.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell2)) {
                        int cellType = cell2.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                two = cell2.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                two = String.valueOf((long)cell2.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell3 = row.getCell(3);  //驾驶证号码
                    String three = null;
                    if (SinataUtil.isNotEmpty(cell3)){
                        three = String.valueOf(cell3.getStringCellValue()).trim();
                        int cellType = cell3.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                three = cell3.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                three = String.valueOf((long)cell3.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell4 = row.getCell(4);  //驾龄
                    String four = null;
                    if (SinataUtil.isNotEmpty(cell4)){
                        four = String.valueOf(cell4.getStringCellValue()).trim();
                        int cellType = cell4.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                four = cell4.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                four = String.valueOf((long)cell4.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell5 = row.getCell(5);  //身份证号
                    String five = null;
                    if (SinataUtil.isNotEmpty(cell5)){
                        five = String.valueOf(cell5.getStringCellValue()).trim();
                        int cellType = cell5.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                five = cell5.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                five = String.valueOf((long)cell5.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell6 = row.getCell(6);  //居住地址
                    String six = null;
                    if (SinataUtil.isNotEmpty(cell6)){
                        six = String.valueOf(cell6.getStringCellValue()).trim();
                        int cellType = cell6.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                six = cell6.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                six = String.valueOf((long)cell6.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell7 = row.getCell(7);  //出租车资格证号
                    String seven = null;
                    if (SinataUtil.isNotEmpty(cell7)){
                        seven = String.valueOf(cell7.getStringCellValue()).trim();
                        int cellType = cell7.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                seven = cell7.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                seven = String.valueOf((long)cell7.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell8 = row.getCell(8);  //工号[选填]
                    String eight = null;
                    if (SinataUtil.isNotEmpty(cell8)){
                        eight = String.valueOf(cell8.getStringCellValue()).trim();
                        int cellType = cell8.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eight = cell8.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eight = String.valueOf((long)cell8.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell9 = row.getCell(9);  //经营业务:快车[是/否]
                    String nine = null;
                    if (SinataUtil.isNotEmpty(cell9)){
                        nine = String.valueOf(cell9.getStringCellValue()).trim();
                        int cellType = cell9.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                nine = cell9.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                nine = String.valueOf((long)cell9.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell10 = row.getCell(10);  //经营业务:出租车[是/否]
                    String ten = null;
                    if (SinataUtil.isNotEmpty(cell10)){
                        ten = String.valueOf(cell10.getStringCellValue()).trim();
                        int cellType = cell10.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                ten = cell10.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                ten = String.valueOf((long)cell10.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell11 = row.getCell(11);  //经营业务:跨城出行[是/否]
                    String eleven = null;
                    if (SinataUtil.isNotEmpty(cell11)){
                        eleven = String.valueOf(cell11.getStringCellValue()).trim();
                        int cellType = cell11.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eleven = cell11.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eleven = String.valueOf((long)cell11.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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);  //登录账号[手机号]
                    Cell cell15 = row.getCell(12);  //登录账号[手机号]
                    String fifteen = null;
                    if (SinataUtil.isNotEmpty(cell15)){
                        fifteen = String.valueOf(cell15.getStringCellValue()).trim();
                        int cellType = cell15.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                fifteen = cell15.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                fifteen = String.valueOf((long)cell15.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell16 = row.getCell(16);  //登录密码[密码长度为6-18]
                    Cell cell16 = row.getCell(13);  //登录密码[密码长度为6-18]
                    String sixteen = null;
                    if (SinataUtil.isNotEmpty(cell16)){
                        sixteen = String.valueOf(cell16.getStringCellValue()).trim();
                        int cellType = cell16.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                sixteen = cell16.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                sixteen = String.valueOf((long)cell16.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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)){
                            || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(fifteen) || SinataUtil.isEmpty(sixteen)){
                        return new ErrorTip(500, "单元格不能为空");
                    }else{
                        //判断账号是否存在
@@ -1479,41 +1835,29 @@
                        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)){
                        if (!isPhone(fifteen)) {
                            return new ErrorTip(500, "登录账号[手机号]格式不正确");
                        }
                        //判断登录密码
                        if (!isPassword(sixteen)){
                        if (!isPassword(sixteen)) {
                            return new ErrorTip(500, "登录密码格式不正确");
                        }
                        //查找平台公司
                        Integer companyId = ShiroKit.getUser().getObjectId();
                        Integer companyId = shiroExtUtil.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)){
                        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);
@@ -1535,17 +1879,17 @@
                        driver.setState(1);
                        driver.setAuthState(1);
                        driver.setFlag("1");
                        driver.setInsertUser(ShiroKit.getUser().getId());
                        driver.setInsertUser(shiroExtUtil.getUser().getId());
                        driver.setInsertTime(new Date());
                        driver.setAddType(3);
                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(six)){
                        driver.setAddObjectId(shiroExtUtil.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(six)) {
                            driver.setDriverAddress(six);
                        }
                        tDriverService.insert(driver);
                        //添加快车服务模式
                        if ("是".equals(nine)){
                        if ("是".equals(nine)) {
                            TDriverService service = new TDriverService();
                            service.setDriverId(driver.getId());
                            service.setType(1);
@@ -1565,135 +1909,199 @@
                            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);
                        }
                    }
                }
            }else if (ShiroKit.getUser().getRoleType() == 3){
            } else if (shiroExtUtil.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();
                    if (SinataUtil.isNotEmpty(cell0)) {
                        int cellType = cell0.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                zero = cell0.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                zero = String.valueOf((long)cell0.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell2 = row.getCell(1);  //性别[男/女]
                    String one = null;
                    if (SinataUtil.isNotEmpty(cell2)){
                        one = String.valueOf(cell2.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell2)) {
                        int cellType = cell2.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                one = cell2.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                one = String.valueOf((long)cell2.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell3 = row.getCell(2);  //驾驶证号码
                    String two = null;
                    if (SinataUtil.isNotEmpty(cell3)){
                        two = String.valueOf(cell3.getStringCellValue()).trim();
                    if (SinataUtil.isNotEmpty(cell3)) {
                        int cellType = cell3.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                two = cell3.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                two = String.valueOf((long)cell3.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell4 = row.getCell(3);  //驾龄
                    String three = null;
                    if (SinataUtil.isNotEmpty(cell4)){
                        three = String.valueOf(cell4.getStringCellValue()).trim();
                        int cellType = cell4.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                three = cell4.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                three = String.valueOf((long)cell4.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell5 = row.getCell(4);  //身份证号
                    String four = null;
                    if (SinataUtil.isNotEmpty(cell5)){
                        four = String.valueOf(cell5.getStringCellValue()).trim();
                        int cellType = cell5.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                four = cell5.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                four = String.valueOf((long)cell5.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell6 = row.getCell(5);  //居住地址
                    String five = null;
                    if (SinataUtil.isNotEmpty(cell6)){
                        five = String.valueOf(cell6.getStringCellValue()).trim();
                        int cellType = cell6.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                five = cell6.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                five = String.valueOf((long)cell6.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell7 = row.getCell(6);  //出租车资格证号
                    String six = null;
                    if (SinataUtil.isNotEmpty(cell7)){
                        six = String.valueOf(cell7.getStringCellValue()).trim();
                        int cellType = cell7.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                six = cell7.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                six = String.valueOf((long)cell7.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell8 = row.getCell(7);  //工号[选填]
                    String seven = null;
                    if (SinataUtil.isNotEmpty(cell8)){
                        seven = String.valueOf(cell8.getStringCellValue()).trim();
                        int cellType = cell8.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                seven = cell8.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                seven = String.valueOf((long)cell8.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell9 = row.getCell(8);  //经营业务:快车[是/否]
                    String eight = null;
                    if (SinataUtil.isNotEmpty(cell9)){
                        eight = String.valueOf(cell9.getStringCellValue()).trim();
                        int cellType = cell9.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                eight = cell9.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                eight = String.valueOf((long)cell9.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell10 = row.getCell(9);  //经营业务:出租车[是/否]
                    String nine = null;
                    if (SinataUtil.isNotEmpty(cell10)){
                        nine = String.valueOf(cell10.getStringCellValue()).trim();
                        int cellType = cell10.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                nine = cell10.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                nine = String.valueOf((long)cell10.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell11 = row.getCell(10);  //经营业务:跨城出行[是/否]
                    String ten = null;
                    if (SinataUtil.isNotEmpty(cell11)){
                        ten = String.valueOf(cell11.getStringCellValue()).trim();
                        int cellType = cell11.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                ten = cell11.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                ten = String.valueOf((long)cell11.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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);  //登录账号[手机号]
                    Cell cell15 = row.getCell(11);  //登录账号[手机号]
                    String fourteen = null;
                    if (SinataUtil.isNotEmpty(cell15)){
                        fourteen = String.valueOf(cell15.getStringCellValue()).trim();
                        int cellType = cell15.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                fourteen = cell15.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                fourteen = String.valueOf((long)cell15.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    Cell cell16 = row.getCell(15);  //登录密码[密码长度为6-18]
                    Cell cell16 = row.getCell(12);  //登录密码[密码长度为6-18]
                    String fifteen = null;
                    if (SinataUtil.isNotEmpty(cell16)){
                        fifteen = String.valueOf(cell16.getStringCellValue()).trim();
                        int cellType = cell16.getCellType();
                        switch (cellType) {
                            case Cell.CELL_TYPE_STRING:
                                fifteen = cell16.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                fifteen = String.valueOf((long)cell16.getNumericCellValue()).trim();
                                break;
                        }
                    }
                    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{
@@ -1718,42 +2126,30 @@
                        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)){
                        if (!isPhone(fourteen)) {
                            return new ErrorTip(500, "登录账号[手机号]格式不正确");
                        }
                        //判断登录密码
                        if (!isPassword(fifteen)){
                        if (!isPassword(fifteen)) {
                            return new ErrorTip(500, "登录密码格式不正确");
                        }
                        //查找平台公司
                        Integer companyId = 0;
                        Integer franchiseeId = 0;
                        TCompany franchisee = itCompanyService.selectById(ShiroKit.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(franchisee)){
                        TCompany franchisee = itCompanyService.selectById(shiroExtUtil.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(franchisee)) {
                            companyId = franchisee.getSuperiorId();
                            franchiseeId = franchisee.getId();
                        }
                        if (companyId == 0 && franchiseeId == 0){
                        if (companyId == 0 && franchiseeId == 0) {
                            return new ErrorTip(500, "当前登录账户上级分公司不能为空");
                        }
                        TDriver driver = new TDriver();
                        driver.setAccount(fourteen);
                        driver.setJobNumber(seven);
@@ -1775,17 +2171,17 @@
                        driver.setState(1);
                        driver.setAuthState(1);
                        driver.setFlag("1");
                        driver.setInsertUser(ShiroKit.getUser().getId());
                        driver.setInsertUser(shiroExtUtil.getUser().getId());
                        driver.setInsertTime(new Date());
                        driver.setAddType(4);
                        driver.setAddObjectId(ShiroKit.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(five)){
                        driver.setAddObjectId(shiroExtUtil.getUser().getObjectId());
                        if (SinataUtil.isNotEmpty(five)) {
                            driver.setDriverAddress(five);
                        }
                        tDriverService.insert(driver);
                        //添加快车服务模式
                        if ("是".equals(eight)){
                        if ("是".equals(eight)) {
                            TDriverService service = new TDriverService();
                            service.setDriverId(driver.getId());
                            service.setType(1);
@@ -1805,27 +2201,6 @@
                            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);
                        }
                    }
                }
            }
@@ -1834,16 +2209,8 @@
        }
        return SUCCESS_TIP;
    }
    @Autowired
    private ITCompanyService itCompanyService;
    @Autowired
    private ITDriverServiceService itDriverServiceService;
    /**
     * 验证是否可以字符转为整数
     * @param str
@@ -1894,8 +2261,21 @@
     *  导出司机信息
     */
    @RequestMapping(value = "/outDriver")
    public void outDriver(HttpServletRequest request, HttpServletResponse response) {
        List<Map<String,Object>> listMap = tDriverService.getDriverListNoPage(ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId());
    public void outDriver(String insertTime,
                          String companyName,
                          String phone,
                          String name,
                          Integer addType,
                          Integer authState, HttpServletRequest request, HttpServletResponse response) {
        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 Page<>(0, 10000);
        List<Map<String, Object>> listMap = tDriverService.getDriverList(page, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(), beginTime, endTime, companyName, phone, name, addType, authState);
        // 表格数据【封装】
        List<List<String>> dataList = new ArrayList<>();
@@ -2053,14 +2433,6 @@
            income.setInsertTime(new Date());
            incomeService.insert(income);
            String allocationReq = createAllocationReq(1, tDriver.getId(), 2, complaintDeductmoney.getMoney().doubleValue());
            if("error".equals(allocationReq)){
                return ResultUtil.error("该司机未进件");
            }
            if(!"ok".equals(allocationReq)){
                return ResultUtil.error(allocationReq);
            }
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -2068,47 +2440,4 @@
        return ResultUtil.success();
    }
    @Autowired
    private ITEnterpriseWithdrawalService tEnterpriseWithdrawalService;
    @Autowired
    private IUserWithdrawalService userWithdrawalService;
    public String createAllocationReq(Integer companyId,Integer userId,int type,double money){
        List<TEnterpriseWithdrawal> tEnterpriseWithdrawals = tEnterpriseWithdrawalService.selectList(new EntityWrapper<TEnterpriseWithdrawal>().eq("companyId", companyId));
        TDriver tUser = tDriverService.selectById(userId);
        List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser.getPhone()));
        if(userWithdrawals.size()==0){
            return "error";
        }
        AllocationReq allocationReq= new AllocationReq();
        allocationReq.setOutOrderNo(ToolUtil.getRandomString(32));
        if(type==1){
            allocationReq.setPayBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
            allocationReq.setRecvBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
            allocationReq.setPassword(Base64Util.decode(tEnterpriseWithdrawals.get(0).getTransactionAuthorizationCode()));
        }else {
            allocationReq.setRecvBalanceAcctId(tEnterpriseWithdrawals.get(0).getBalanceAcctId());
            allocationReq.setPayBalanceAcctId(userWithdrawals.get(0).getBalanceAcctId());
            allocationReq.setPassword(Base64Util.decode(userWithdrawals.get(0).getTransactionAuthorizationCode()));
        }
        money=money*100;
        allocationReq.setAmount((int)money);
        allocationReq.setProductName("分账");
        allocationReq.setProductCount(1);
        allocationReq.setOrderNo(ToolUtil.getRandomString(32));
        allocationReq.setOrderAmount(1l);
        try {
            AllocationResp allocationResp = AllocationExample.create(allocationReq);
            System.out.println(allocationResp);
            return "ok";
        } catch (UpyztException e) {
            e.printStackTrace();
            return e.getMessage();
        }
    }
}