package com.stylefeng.guns.modular.system.controller.general; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.base.tips.ErrorTip; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.*; import com.stylefeng.guns.modular.system.dao.DriverPunishMapper; import com.stylefeng.guns.modular.system.dao.DriverTrainMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.EmailUtil; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; 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.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; 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.io.File; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; /** * 司机审核列表控制器 * * @author fengshuonan * @Date 2020-06-04 17:35:28 */ @Controller @RequestMapping("/tDriver") public class TDriverController extends BaseController { private String PREFIX = "/system/tDriver/"; @Autowired private ITDriverService tDriverService; @Autowired private ITCompanyService tCompanyService; @Autowired private ITDriverServiceService tDriverServiceService; @Autowired private ITDriverLineService tDriverLineService; @Autowired private ITLineService itLineService; @Autowired private ITDriverTeamService itDriverTeamService; @Resource private DriverTrainMapper driverTrainMapper; @Resource private DriverPunishMapper driverPunishMapper; @Value("${spring.mail.template-path}") private String templatePath; @Autowired private RedisUtil redisUtil; @Autowired private IIncomeService incomeService; @Autowired private ITUserService userService; @Autowired private IUserActivityInviteService userActivityInviteService; @Autowired private IDriverActivityRegisteredService driverActivityRegisteredService; @Autowired private ITCompanyService itCompanyService; @Autowired private ITDriverServiceService itDriverServiceService; /** * 跳转到司机审核列表首页 */ @RequestMapping("") public String index() { return PREFIX + "tDriver.html"; } /** * 跳转到审核通过司机首页 */ @RequestMapping("/yesDriver") public String yesDriver(Model model) { List TDriverTeams=itDriverTeamService.findAllList(); model.addAttribute("TDriverTeams",TDriverTeams); return PREFIX + "yesDriver.html"; } /** * 跳转到添加司机 */ @RequestMapping("/tDriver_add") public String tDriverAdd(Model model) { List companyList = tCompanyService.selectList(new EntityWrapper().eq("type", 2) .eq("state", 0).ne("flag", 3)); model.addAttribute("companyList",companyList); Integer roleType = ShiroKit.getUser().getRoleType(); model.addAttribute("roleType",roleType); if (2 == roleType){ List franchiseeList = tCompanyService.selectList(new EntityWrapper() .eq("type", 3) .eq("superiorId",ShiroKit.getUser().getObjectId()) .notIn("state",1) .notIn("flag",3)); model.addAttribute("franchiseeList",franchiseeList); }else{ model.addAttribute("franchiseeList",null); } //查询当前用户所属分公司/加盟商 model.addAttribute("objectName",tCompanyService.selectById(ShiroKit.getUser().getObjectId()).getName()); //查询线路列表 List lineList = itLineService.selectList(new EntityWrapper().eq("state", 1)); model.addAttribute("lineList",lineList); return PREFIX + "tDriver_add.html"; } /** * 跳转到修改审核司机 */ @RequestMapping("/tDriver_immediately/{tDriverId}") public String tDriver_immediately(@PathVariable Integer tDriverId, Model model) { Map tDriver = tDriverService.getDriverById(tDriverId); model.addAttribute("item",tDriver); LogObjectHolder.me().set(tDriver); return PREFIX + "tDriver_immediately.html"; } /** * 跳转到选择车辆页面 */ @RequestMapping("/tDriver_changeCar/{tDriverId}") public String tDriver_changeCar(@PathVariable Integer tDriverId, Model model) { model.addAttribute("tDriverId",tDriverId); return PREFIX + "tDriver_changeCar.html"; } /** * 跳转到冻结/解冻司机页面 */ @RequestMapping("/tDriver_optDriver/{tDriverId}/{optType}") public String tDriver_optDriver(@PathVariable Integer tDriverId,@PathVariable Integer optType, Model model) { model.addAttribute("tDriverId",tDriverId); model.addAttribute("optType",optType); return PREFIX + "tDriver_optDriver.html"; } /** * 跳转到查看司机详情 */ @RequestMapping("/tDriver_look/{tDriverId}") public String tDriver_look(@PathVariable Integer tDriverId, Model model) { Map tDriver = tDriverService.getDriverById(tDriverId); model.addAttribute("item",tDriver); LogObjectHolder.me().set(tDriver); return PREFIX + "tDriver_look.html"; } /** * 跳转到修改司机 */ @RequestMapping("/tDriver_update/{tDriverId}") public String tDriverUpdate(@PathVariable Integer tDriverId, Model model) { TDriver tDriver = tDriverService.selectById(tDriverId); 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 companyList = tCompanyService.selectList(new EntityWrapper().eq("type", 2).eq("state", 0).ne("flag", 3)); model.addAttribute("companyList",companyList); List franchiseeList = tCompanyService.selectList(new EntityWrapper().eq("type", 3).eq("superiorId",tDriver.getCompanyId()).eq("state", 0).ne("flag", 3)); model.addAttribute("franchiseeList",franchiseeList); }else if (2 == roleType){ List franchiseeList = tCompanyService.selectList(new EntityWrapper().eq("type", 3).eq("superiorId",ShiroKit.getUser().getObjectId()).eq("state", 0).ne("flag", 3)); model.addAttribute("franchiseeList",franchiseeList); } //查询平台ID TCompany company = tCompanyService.selectOne(new EntityWrapper().eq("type", 1).eq("state", 0).ne("flag", 3)); //判断是平台司机还是加盟司机 if ((SinataUtil.isEmpty(tDriver.getCompanyId()) || tDriver.getCompanyId() == 0 || tDriver.getCompanyId() == company.getId()) && (SinataUtil.isEmpty(tDriver.getFranchiseeId()) || tDriver.getFranchiseeId() == 0)){ model.addAttribute("companyType",1); }else{ model.addAttribute("companyType",2); } //获取经营业务 List serviceList = tDriverServiceService.selectList(new EntityWrapper().eq("driverId", tDriverId)); Integer one = 1; Integer two = 1; Integer three = 1; Integer four = 1; Integer five = 1; Integer six = 1; for (TDriverService obj : serviceList){ if (obj.getType() == 1){ one = 2; } if (obj.getType() == 2){ two = 2; } if (obj.getType() == 3){ three = 2; } if (obj.getType() == 4){ four = 2; } if (obj.getType() == 5){ five = 2; } if (obj.getType() == 6){ six = 2; } } model.addAttribute("one",one); model.addAttribute("two",two); model.addAttribute("three",three); model.addAttribute("four",four); model.addAttribute("five",five); model.addAttribute("six",six); //查询线路列表 List lineList = itLineService.selectList(new EntityWrapper().eq("state", 1)); model.addAttribute("lineList",lineList); //查询驾驶员已添加的线路列表 List> driverLineList = tDriverLineService.getDriverLineListByDriverId(tDriverId); model.addAttribute("driverLineList",driverLineList); return PREFIX + "tDriver_edit.html"; } /** * 跳转到添加培训页 * @param id * @param model * @return */ @RequestMapping("/showTraining") public String showTraining(Integer id, Model model){ model.addAttribute("id", id); return PREFIX + "training.html"; } /** * 保存培训数据 * @param train * @param driverId * @return */ @ResponseBody @RequestMapping(value = "/saveTrain", method = RequestMethod.POST) public ResultUtil saveTrain(String train, Integer driverId){ if(ToolUtil.isEmpty(train)){ return ResultUtil.error("请添加有效的培训记录"); } String[] split = train.split(","); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { List update = new ArrayList<>(); List add = new ArrayList<>(); for(String s : split){ String[] s1 = s.split("_"); if(ToolUtil.isNotEmpty(s1[0])){//修改 DriverTrain driverTrain = driverTrainMapper.selectById(s1[0]); driverTrain.setDriverId(driverId); driverTrain.setCourseName(s1[1]); driverTrain.setCourseDate(sdf.parse(s1[2])); driverTrain.setStartTime(s1[3]); driverTrain.setStopTime(s1[4]); driverTrain.setDuration(Integer.valueOf(s1[5])); update.add(driverTrain); }else{//添加 DriverTrain driverTrain = new DriverTrain(); driverTrain.setDriverId(driverId); driverTrain.setCourseName(s1[1]); driverTrain.setCourseDate(sdf.parse(s1[2])); driverTrain.setStartTime(s1[3]); driverTrain.setStopTime(s1[4]); driverTrain.setDuration(Integer.valueOf(s1[5])); add.add(driverTrain); } } List driverTrains = driverTrainMapper.queryAllTrain(driverId); for(DriverTrain driverTrain : driverTrains){ for(String s : split){ String[] s1 = s.split("_"); if(ToolUtil.isNotEmpty(s1[0]) && driverTrain.getId() == Integer.valueOf(s1[0])){ break; } } } }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } return ResultUtil.success(); } /** * 获取司机的所有培训数据 * @param driverId * @return */ @ResponseBody @RequestMapping(value = "/queryAllTrain", method = RequestMethod.POST) public ResultUtil queryAllTrain(Integer driverId){ List driverTrains = driverTrainMapper.queryAllTrain(driverId); return ResultUtil.success(driverTrains); } /** * 跳转到处罚页 * @param id * @param model * @return */ @RequestMapping("/showPunish") public String showPunish(Integer id, Model model){ model.addAttribute("id", id); return PREFIX + "punish.html"; } /** * 保存处罚数据 * @param punish * @param driverId * @return */ @ResponseBody @RequestMapping(value = "/savePunish", method = RequestMethod.POST) public ResultUtil savePunish(String punish, Integer driverId){ if(ToolUtil.isEmpty(punish)){ return ResultUtil.error("请添加有效的培训记录"); } String[] split = punish.split(","); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { List update = new ArrayList<>(); List add = new ArrayList<>(); for(String s : split){ String[] s1 = s.split("_"); if(ToolUtil.isNotEmpty(s1[0])){//修改 DriverPunish driverPunish = driverPunishMapper.selectById(s1[0]); driverPunish.setDriverId(driverId); driverPunish.setPunishTime(sdf.parse(s1[1])); driverPunish.setPunishReason(s1[2]); driverPunish.setPunishReault(s1[3]); update.add(driverPunish); }else{//添加 DriverPunish driverPunish = new DriverPunish(); driverPunish.setDriverId(driverId); driverPunish.setPunishTime(sdf.parse(s1[1])); driverPunish.setPunishReason(s1[2]); driverPunish.setPunishReault(s1[3]); add.add(driverPunish); } } List driverPunishes = driverPunishMapper.queryAllPunish(driverId); for(DriverPunish driverTrain : driverPunishes){ boolean b = true; for(String s : split){ String[] s1 = s.split("_"); if(ToolUtil.isNotEmpty(s1[0]) && driverTrain.getId() == Integer.valueOf(s1[0])){ b = false; break; } } if(b){ driverTrainMapper.deleteById(driverTrain.getId()); } } if(update.size() > 0){ for(DriverPunish driverTrain : update){ driverPunishMapper.updateById(driverTrain); } } }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } return ResultUtil.success(); } /** * 获取所有处罚数据 * @param driverId * @return */ @ResponseBody @RequestMapping(value = "/queryAllPunish", method = RequestMethod.POST) public ResultUtil queryAllPunish(Integer driverId){ List driverPunishes = driverPunishMapper.queryAllPunish(driverId); return ResultUtil.success(driverPunishes); } /** * 根据分公司ID获取加盟商 * @param oneId * @return */ @RequestMapping(value = "/oneChange") @ResponseBody public Object oneChange(@RequestParam Integer oneId) { List list = new ArrayList<>(); if (SinataUtil.isNotEmpty(oneId)){ list = tCompanyService.selectList(new EntityWrapper() .eq("type", 3) .eq("superiorId", oneId) .notIn("flag",3) .notIn("state",1)); } return list; } /** * 获取司机审核列表列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String insertTime, String companyName, String phone, String account, Integer addType, Integer authState) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); if (ShiroKit.getUser().getRoleType() != 1){ page.setRecords(null); }else{ page.setRecords(tDriverService.getAuthDriverList(page,beginTime,endTime,companyName,phone,account,addType,authState)); } return super.packForBT(page); } /** * 获取审核通过的司机列表 */ @RequestMapping(value = "/listYesDriver") @ResponseBody public Object listYesDriver(String insertTime, String companyName, String phone, String lastName, String firstName, Integer addType, Integer authState, Integer state, Integer teamId) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(tDriverService.getDriverList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,companyName,phone,lastName,firstName,addType,authState,state,teamId)); return super.packForBT(page); } /** * 获取可被选择的车辆列表 */ @RequestMapping(value = "/selectCarList/{tDriverId}") @ResponseBody public Object selectCarList(@PathVariable Integer tDriverId, String carLicensePlate, String brandName, String modelName, String color, String serverStr) { TDriver driver = tDriverService.selectById(tDriverId); /*String useCarIdStr = null; //查询已被使用的车辆ID if (SinataUtil.isNotEmpty(driver.getCarId())){ useCarIdStr = tDriverService.getUseCarIdStr(driver.getCarId()); }else{ useCarIdStr = tDriverService.getUseCarIdStr(null); }*/ //2020-08-21:新需求,已被绑定的车辆可以被继续绑定 Page> page = new PageFactory>().defaultPage(); page.setRecords(tDriverService.getCanSelectCarList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),null,carLicensePlate,brandName,modelName,color,serverStr)); return super.packForBT(page); } /** * 审核操作 1=通过 2=不通过 */ @RequestMapping(value = "/authOpt") @ResponseBody public Object authOpt(Integer id,Integer authState) { if (SinataUtil.isNotEmpty(id) && SinataUtil.isNotEmpty(authState)){ TDriver tDriver = tDriverService.selectById(id); Integer type = 0; if (1 == authState){ type = 5; tDriver.setAuthState(2); if(tDriver.getUid()!=null && tDriver.getuType()!=null && tDriver.getuType() == 2){ TDriver driver = tDriverService.selectById(tDriver.getUid()); List> query = driverActivityRegisteredService.query(1, driver.getCompanyId()); BigDecimal bigDecimal = new BigDecimal("0"); for(Map map : query){ if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){ bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money")))); incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money")))); } } driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); driver.setBalance(bigDecimal.add(driver.getBalance()).setScale(2, BigDecimal.ROUND_HALF_EVEN)); tDriverService.updateById(driver); } if(tDriver.getUid()!=null && tDriver.getuType()!=null && tDriver.getuType() == 1){//用户分享 TUser userInfo = userService.selectById(tDriver.getUid()); List> query = userActivityInviteService.query(userInfo.getCompanyId()); Date date = new Date(); for(Map map : query){ for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){ UserCouponRecord userCouponRecord = new UserCouponRecord(); userCouponRecord.setActivityType(3); userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id")))); userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId")))); userCouponRecord.setState(1); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective")))); userCouponRecord.setExpirationTime(calendar.getTime()); userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType")))); userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType")))); userCouponRecord.setInsertTime(date); userCouponRecord.setFullMoney(new BigDecimal(String.valueOf(map.get("fullMoney")))); userCouponRecord.setMoney(new BigDecimal(String.valueOf(map.get("money")))); userCouponRecord.setCompanyId(userInfo.getCompanyId()); userCouponRecord.setUserId(tDriver.getUid()); userCouponRecord.insert(); } } } }else{ type = 6; tDriver.setAuthState(4); } new Thread(new Runnable() { @Override public void run() { try { String path = templatePath + "driver/index.html"; Document document = Jsoup.parse(new File(path), "UTF-8"); document.getElementById("chinese").remove(); document.getElementById("french").remove(); document.getElementById("invite1").remove(); document.getElementById("user1").remove(); document.getElementById("settle1").remove(); document.getElementById("pass1").remove(); document.getElementById("email1").remove(); document.getElementById("bill1").remove(); document.getElementById("reward1").remove(); document.getElementById("rewardToday1").remove(); document.getElementById("carAudit1").remove(); document.getElementsByTag("title").get(0).text(1 == authState ? "Driver is verified and qualified" : "Driver is not verified and qualified"); Element driver_audit1_user = document.getElementById("driver_audit1_user"); driver_audit1_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ","); Element driver_audit1_content = document.getElementById("driver_audit1_content"); if(1 == authState){ driver_audit1_content.text("Your application has been approved."); }else{ driver_audit1_content.text("We are sorry to inform you that your application was rejected. Please contact our service for relevant details, call 0577777767 or send e-mail to support@i-go.group"); } EmailUtil.send(tDriver.getEmail(), 1 == authState ? "Driver is verified and qualified" : "Driver is not verified and qualified", document.html()); }catch (Exception e){ e.printStackTrace(); } } }).start(); tDriverService.updateById(tDriver); } return SUCCESS_TIP; } /** * 更换车辆操作 */ @RequestMapping(value = "/selectCarOpt") @ResponseBody public Object selectCarOpt(Integer tDriverId,Integer carId) { if (SinataUtil.isNotEmpty(tDriverId) && SinataUtil.isNotEmpty(carId)){ TDriver tDriver = tDriverService.selectById(tDriverId); tDriver.setCarId(carId); tDriverService.updateById(tDriver); } return SUCCESS_TIP; } /** * 新增司机审核列表 */ @RequestMapping(value = "/add") @ResponseBody public Object add(TDriver tDriver,@RequestParam String serverBox,@RequestParam String lineStr,Integer roleType,Integer companyType,Integer oneId,Integer twoId,Integer franchiseeId) { //判断登录账户是否重复 int count = tDriverService.selectCount(new EntityWrapper().eq("phone", tDriver.getPhone()).in("authState", "1,2,3").ne("flag", 3)); if (count > 0){ return "error"; } if (1 == roleType){ //平台 if (2 == companyType.intValue()){ if (SinataUtil.isNotEmpty(oneId)){ tDriver.setCompanyId(oneId); } if (SinataUtil.isNotEmpty(twoId)){ tDriver.setFranchiseeId(twoId); } }else if (1 == companyType.intValue()){ TCompany company = tCompanyService.selectOne(new EntityWrapper().eq("type", 1)); tDriver.setCompanyId(company.getId()); tDriver.setFranchiseeId(franchiseeId); } tDriver.setAddType(2); tDriver.setIsPlatCar(1); tDriver.setAuthState(2); }else if (2 == roleType){ //分公司 if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); } if (SinataUtil.isNotEmpty(franchiseeId)){ tDriver.setFranchiseeId(franchiseeId); } tDriver.setAddType(3); tDriver.setIsPlatCar(2); tDriver.setAuthState(1); tDriver.setAddObjectId(ShiroKit.getUser().getObjectId()); }else if (3 == roleType){ //加盟商 TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId()); if (SinataUtil.isNotEmpty(tCompany)){ tDriver.setCompanyId(tCompany.getSuperiorId()); } if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId()); } tDriver.setAddType(4); tDriver.setIsPlatCar(2); tDriver.setAuthState(1); tDriver.setAddObjectId(ShiroKit.getUser().getObjectId()); } tDriver.setInsertTime(new Date()); tDriver.setInsertUser(ShiroKit.getUser().getId()); // tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword())); tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#")); String phone = tDriver.getPhone(); String substring = phone.substring(0, 1); if("0".equals(substring)){ phone = "233" + phone.substring(1); } if(phone.indexOf("233") < 0){ phone = "233" + phone; } tDriver.setPhone(phone); tDriver.setAccount(phone); tDriver.setBalance(new BigDecimal(0)); // tDriver.setCommission(new BigDecimal(0)); // tDriver.setCouponBalance(new BigDecimal(0)); // tDriver.setBackgroundBalance(new BigDecimal(0)); tDriverService.insert(tDriver); //添加经营业务 String[] serverArray = serverBox.split(","); for (int i=0;i().eq("phone", tDriver.getPhone()).in("authState", "1,2,3")); if (count > 0){ return "error"; } } if (1 == roleType){ //平台 if (2 == companyType.intValue()){ if (SinataUtil.isNotEmpty(oneId)){ tDriver.setCompanyId(oneId); } if (SinataUtil.isNotEmpty(twoId)){ tDriver.setFranchiseeId(twoId); } }else if (1 == companyType.intValue()){ TCompany company = tCompanyService.selectOne(new EntityWrapper().eq("type", 1)); tDriver.setCompanyId(company.getId()); tDriver.setFranchiseeId(franchiseeId); } }else if (2 == roleType){ //分公司 if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ tDriver.setCompanyId(ShiroKit.getUser().getObjectId()); } if (SinataUtil.isNotEmpty(franchiseeId)){ tDriver.setFranchiseeId(franchiseeId); } }else if (3 == roleType){ //加盟商 TCompany tCompany = tCompanyService.selectById(ShiroKit.getUser().getObjectId()); if (SinataUtil.isNotEmpty(tCompany)){ tDriver.setCompanyId(tCompany.getSuperiorId()); } if (SinataUtil.isNotEmpty(ShiroKit.getUser().getObjectId())){ tDriver.setFranchiseeId(ShiroKit.getUser().getObjectId()); } } tDriver.setUpdateTime(new Date()); tDriver.setUpdateUser(ShiroKit.getUser().getId()); // tDriver.setPassword(MD5Util.encrypt(tDriver.getPassword())); if(ToolUtil.isNotEmpty(tDriver.getPassword())){ tDriver.setPassword(ShiroKit.md5(tDriver.getPassword(), "SA;d5#")); }else{ tDriver.setPassword(obj.getPassword()); } String phone = tDriver.getPhone(); String substring = phone.substring(0, 1); if("0".equals(substring)){ phone = "233" + phone.substring(1); } if(phone.indexOf("233") < 0){ phone = "233" + phone; } tDriver.setPhone(phone); tDriver.setAccount(phone); tDriverService.updateById(tDriver); //删除业务 tDriverServiceService.delete(new EntityWrapper().eq("driverId",tDriver.getId())); //删除线路 tDriverLineService.delete(new EntityWrapper().eq("driverId",tDriver.getId())); //添加经营业务 String[] serverArray = serverBox.split(","); for (int i=0;i> dataList = new ArrayList>(); String title = ""; // 首行【封装】 List shellList = new ArrayList(); if (ShiroKit.getUser().getRoleType() == 1){ title = "平台导入司机模板"; shellList.add("司机姓"); shellList.add("司机名"); shellList.add("所属机构[平台司机/加盟司机]"); shellList.add("所属分公司[提示:加盟司机选填]"); shellList.add("所属加盟商[提示:加盟司机选填]"); shellList.add("性别[男/女]"); shellList.add("驾驶证号码"); shellList.add("驾龄"); shellList.add("身份证号"); shellList.add("居住地址"); shellList.add("出租车资格证号"); shellList.add("工号[选填]"); shellList.add("经营业务:专车[是/否]"); shellList.add("经营业务:出租车[是/否]"); shellList.add("经营业务:跨城出行[是/否]"); shellList.add("经营业务:小件同城物流[是/否]"); shellList.add("经营业务:小件跨城物流[是/否]"); shellList.add("经营业务:包车[是/否]"); shellList.add("登录账号[手机号]"); shellList.add("登录密码[密码长度为6-18]"); }else if (ShiroKit.getUser().getRoleType() == 2){ title = "分公司导入司机模板"; shellList.add("司机姓"); shellList.add("司机名"); shellList.add("所属加盟商[选填]"); shellList.add("性别[男/女]"); shellList.add("驾驶证号码"); shellList.add("驾龄"); shellList.add("身份证号"); shellList.add("居住地址"); shellList.add("出租车资格证号"); shellList.add("工号[选填]"); shellList.add("经营业务:专车[是/否]"); shellList.add("经营业务:出租车[是/否]"); shellList.add("经营业务:跨城出行[是/否]"); shellList.add("经营业务:小件同城物流[是/否]"); shellList.add("经营业务:小件跨城物流[是/否]"); shellList.add("经营业务:包车[是/否]"); shellList.add("登录账号[手机号]"); shellList.add("登录密码[密码长度为6-18]"); }else if (ShiroKit.getUser().getRoleType() == 3){ title = "加盟商导入司机模板"; shellList.add("司机姓"); shellList.add("司机名"); shellList.add("性别[男/女]"); shellList.add("驾驶证号码"); shellList.add("驾龄"); shellList.add("身份证号"); shellList.add("居住地址"); shellList.add("出租车资格证号"); shellList.add("工号[选填]"); shellList.add("经营业务:专车[是/否]"); shellList.add("经营业务:出租车[是/否]"); shellList.add("经营业务:跨城出行[是/否]"); shellList.add("经营业务:小件同城物流[是/否]"); shellList.add("经营业务:小件跨城物流[是/否]"); shellList.add("经营业务:包车[是/否]"); shellList.add("登录账号[手机号]"); shellList.add("登录密码[密码长度为6-18]"); } dataList.add(shellList); try { // 调用工具类进行导出 ExcelExportUtil.easySheet(title+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), title, dataList, request, response); } catch (Exception e) { e.printStackTrace(); } } /** * 导入操作 * @param request * @return */ @RequestMapping(value="/exportDriver",method = RequestMethod.POST) @ResponseBody public Object exportDriver(HttpServletRequest request){ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = (MultipartFile) multipartRequest.getFile("myfile"); try { if (ShiroKit.getUser().getRoleType() == 1){ Workbook book = WoUtil.ImportFile(file); Sheet sh = book.getSheetAt(0); //获取到第一个表 for (int i = 1; i <= sh.getLastRowNum(); i++) { Row row = sh.getRow(i); Cell cell0 = row.getCell(0); //司机名称 String zero = null; if (SinataUtil.isNotEmpty(cell0)){ zero = String.valueOf(cell0.getStringCellValue()).trim(); } Cell cell01 = row.getCell(1); //司机名称 String zero1 = null; if (SinataUtil.isNotEmpty(cell01)){ zero1 = String.valueOf(cell01.getStringCellValue()).trim(); } Cell cell1 = row.getCell(2); //所属机构[平台司机/加盟司机] String one = null; if (SinataUtil.isNotEmpty(cell1)){ one = String.valueOf(cell1.getStringCellValue()).trim(); } Cell cell2 = row.getCell(3); //所属分公司[提示:加盟司机选填] String two = null; if (SinataUtil.isNotEmpty(cell2)){ two = String.valueOf(cell2.getStringCellValue()).trim(); } Cell cell3 = row.getCell(4); //所属加盟商[提示:加盟司机选填] String three = null; if (SinataUtil.isNotEmpty(cell3)){ three = String.valueOf(cell3.getStringCellValue()).trim(); } Cell cell4 = row.getCell(5); //性别[男/女] String four = null; if (SinataUtil.isNotEmpty(cell4)){ four = String.valueOf(cell4.getStringCellValue()).trim(); } Cell cell5 = row.getCell(6); //驾驶证号码 String five = null; if (SinataUtil.isNotEmpty(cell5)){ five = String.valueOf(cell5.getStringCellValue()).trim(); } Cell cell6 = row.getCell(7); //驾龄 String six = null; if (SinataUtil.isNotEmpty(cell6)){ six = String.valueOf(cell6.getStringCellValue()).trim(); } Cell cell7 = row.getCell(8); //身份证号 String seven = null; if (SinataUtil.isNotEmpty(cell7)){ seven = String.valueOf(cell7.getStringCellValue()).trim(); } Cell cell8 = row.getCell(9); //居住地址 String eight = null; if (SinataUtil.isNotEmpty(cell8)){ eight = String.valueOf(cell8.getStringCellValue()).trim(); } Cell cell9 = row.getCell(10); //出租车资格证号 String nine = null; if (SinataUtil.isNotEmpty(cell9)){ nine = String.valueOf(cell9.getStringCellValue()).trim(); } Cell cell10 = row.getCell(11); //工号[选填] String ten = null; if (SinataUtil.isNotEmpty(cell10)){ ten = String.valueOf(cell10.getStringCellValue()).trim(); } Cell cell11 = row.getCell(12); //经营业务:专车[是/否] String eleven = null; if (SinataUtil.isNotEmpty(cell11)){ eleven = String.valueOf(cell11.getStringCellValue()).trim(); } Cell cell12 = row.getCell(13); //经营业务:专车[是/否] String twelve = null; if (SinataUtil.isNotEmpty(cell12)){ twelve = String.valueOf(cell12.getStringCellValue()).trim(); } Cell cell13 = row.getCell(14); //经营业务:跨城出行[是/否] String thirteen = null; if (SinataUtil.isNotEmpty(cell13)){ thirteen = String.valueOf(cell13.getStringCellValue()).trim(); } Cell cell14 = row.getCell(15); //经营业务:小件同城物流[是/否] String fourteen = null; if (SinataUtil.isNotEmpty(cell14)){ fourteen = String.valueOf(cell14.getStringCellValue()).trim(); } Cell cell15 = row.getCell(16); //经营业务:小件跨城物流[是/否] String fifteen = null; if (SinataUtil.isNotEmpty(cell15)){ fifteen = String.valueOf(cell15.getStringCellValue()).trim(); } Cell cell16 = row.getCell(17); //经营业务:包车[是/否] String sixteen = null; if (SinataUtil.isNotEmpty(cell16)){ sixteen = String.valueOf(cell16.getStringCellValue()).trim(); } Cell cell17 = row.getCell(18); //登录账号[手机号] String seventeen = null; if (SinataUtil.isNotEmpty(cell17)){ seventeen = String.valueOf(cell17.getStringCellValue()).trim(); String substring = seventeen.substring(0, 1); if("0".equals(substring)){ seventeen = "233" + seventeen.substring(1); } if(seventeen.indexOf("233") < 0){ seventeen = "233" + seventeen; } } Cell cell18 = row.getCell(19); //登录密码[密码长度为6-18] String eighteen = null; if (SinataUtil.isNotEmpty(cell18)){ eighteen = String.valueOf(cell18.getStringCellValue()).trim(); } if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(zero1) || SinataUtil.isEmpty(one) || SinataUtil.isEmpty(four) || SinataUtil.isEmpty(five) || SinataUtil.isEmpty(six) || SinataUtil.isEmpty(nine) || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen) || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) || SinataUtil.isEmpty(sixteen) || SinataUtil.isEmpty(seventeen)|| SinataUtil.isEmpty(eighteen)){ return new ErrorTip(500, "单元格不能为空"); }else{ //判断账号是否存在 int count = tDriverService.selectCount(new EntityWrapper().eq("phone", seventeen).in("authState", "1,2,3")); if (count > 0){ return new ErrorTip(500, "登录账号已存在"); } //判断所属机构 if (!one.equals("平台司机") && !one.equals("加盟司机")){ return new ErrorTip(500, "所属机构内容不正确"); } //判断性别 if (!four.equals("男") && !four.equals("女")){ return new ErrorTip(500, "性别内容不正确"); } //判断经营业务【专车】 if (!eleven.equals("是") && !eleven.equals("否")){ return new ErrorTip(500, "经营业务【专车】内容不正确"); } //判断经营业务【出租车】 if (!twelve.equals("是") && !twelve.equals("否")){ return new ErrorTip(500, "经营业务【出租车】内容不正确"); } //判断经营业务【跨城出行】 if (!thirteen.equals("是") && !thirteen.equals("否")){ return new ErrorTip(500, "经营业务【跨城出行】内容不正确"); } //判断经营业务【小件同城物流】 if (!fourteen.equals("是") && !fourteen.equals("否")){ return new ErrorTip(500, "经营业务【小件同城物流】内容不正确"); } //判断经营业务【小件跨城物流】 if (!fifteen.equals("是") && !fifteen.equals("否")){ return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确"); } //判断经营业务【包车】 if (!sixteen.equals("是") && !sixteen.equals("否")){ return new ErrorTip(500, "经营业务【包车】内容不正确"); } //判断驾龄 if (!isInteger(six)){ return new ErrorTip(500, "驾龄格式不正确"); } //判断手机号 if (!isPhone(seventeen)){ return new ErrorTip(500, "登录账号[手机号]格式不正确"); } //判断登录密码 if (!isPassword(eighteen)){ return new ErrorTip(500, "登录密码格式不正确"); } //查找平台公司 TCompany platCompany = itCompanyService.selectOne(new EntityWrapper().eq("type", 1).notIn("flag", "3").last(" limit 1")); Integer companyId = platCompany.getId(); Integer franchiseeId = 0; if ("加盟司机".equals(one)){ //判断所属分公司是否存在 if (SinataUtil.isNotEmpty(two)){ TCompany company = itCompanyService.selectOne(new EntityWrapper().eq("name", two).eq("type", 2).notIn("flag", "3").last(" limit 1")); if (SinataUtil.isNotEmpty(company)){ companyId = company.getId(); //判断加盟商是否存在 if (SinataUtil.isNotEmpty(three)){ TCompany franchisee = itCompanyService.selectOne(new EntityWrapper().eq("superiorId",company.getId()).eq("name", three).eq("type", 3).notIn("flag", "3").last(" limit 1")); if (SinataUtil.isNotEmpty(franchisee)){ franchiseeId = franchisee.getId(); } } } } } TDriver driver = new TDriver(); driver.setAccount(seventeen); driver.setJobNumber(ten); driver.setPhone(seventeen); driver.setPassword(ShiroKit.md5(eighteen, "SA;d5#")); driver.setLastName(zero); driver.setFirstName(zero1); if ("男".equals(four)){ driver.setSex(1); }else if ("女".equals(four)){ driver.setSex(2); } driver.setIdCard(seven); driver.setDriverAge(Integer.valueOf(six)); driver.setDriveCard(five); driver.setTaxiAptitudeCard(nine); if ("平台司机".equals(one)){ driver.setIsPlatCar(1); }else if ("加盟司机".equals(one)){ driver.setIsPlatCar(2); } driver.setCompanyId(companyId); driver.setFranchiseeId(franchiseeId); driver.setState(2); driver.setAuthState(2); driver.setFlag("1"); driver.setInsertUser(ShiroKit.getUser().getId()); driver.setInsertTime(new Date()); driver.setAddType(2); driver.setAddObjectId(ShiroKit.getUser().getObjectId()); if(SinataUtil.isNotEmpty(eight)){ driver.setDriverAddress(eight); } tDriverService.insert(driver); //添加专车服务模式 if ("是".equals(eleven)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(1); itDriverServiceService.insert(service); } //添加出租车服务模式 if ("是".equals(twelve)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(2); itDriverServiceService.insert(service); } //添加跨城出行服务模式 if ("是".equals(thirteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(3); itDriverServiceService.insert(service); } //添加小件同城物流服务模式 if ("是".equals(fourteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(4); itDriverServiceService.insert(service); } //添加小件跨城物流服务模式 if ("是".equals(fifteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(5); itDriverServiceService.insert(service); } //添加包车服务模式 if ("是".equals(sixteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(6); itDriverServiceService.insert(service); } } } }else if (ShiroKit.getUser().getRoleType() == 2){ Workbook book = WoUtil.ImportFile(file); Sheet sh = book.getSheetAt(0); //获取到第一个表 for (int i = 1; i <= sh.getLastRowNum(); i++) { Row row = sh.getRow(i); Cell cell0 = row.getCell(0); //司机名称 String zero = null; if (SinataUtil.isNotEmpty(cell0)){ zero = String.valueOf(cell0.getStringCellValue()).trim(); } Cell cell01 = row.getCell(1); //司机名称 String zero1 = null; if (SinataUtil.isNotEmpty(cell01)){ zero1 = String.valueOf(cell01.getStringCellValue()).trim(); } Cell cell1 = row.getCell(2); //所属加盟商[选填] String one = null; if (SinataUtil.isNotEmpty(cell1)){ one = String.valueOf(cell1.getStringCellValue()).trim(); } Cell cell2 = row.getCell(3); //性别[男/女] String two = null; if (SinataUtil.isNotEmpty(cell2)){ two = String.valueOf(cell2.getStringCellValue()).trim(); } Cell cell3 = row.getCell(4); //驾驶证号码 String three = null; if (SinataUtil.isNotEmpty(cell3)){ three = String.valueOf(cell3.getStringCellValue()).trim(); } Cell cell4 = row.getCell(5); //驾龄 String four = null; if (SinataUtil.isNotEmpty(cell4)){ four = String.valueOf(cell4.getStringCellValue()).trim(); } Cell cell5 = row.getCell(6); //身份证号 String five = null; if (SinataUtil.isNotEmpty(cell5)){ five = String.valueOf(cell5.getStringCellValue()).trim(); } Cell cell6 = row.getCell(7); //居住地址 String six = null; if (SinataUtil.isNotEmpty(cell6)){ six = String.valueOf(cell6.getStringCellValue()).trim(); } Cell cell7 = row.getCell(8); //出租车资格证号 String seven = null; if (SinataUtil.isNotEmpty(cell7)){ seven = String.valueOf(cell7.getStringCellValue()).trim(); } Cell cell8 = row.getCell(9); //工号[选填] String eight = null; if (SinataUtil.isNotEmpty(cell8)){ eight = String.valueOf(cell8.getStringCellValue()).trim(); } Cell cell9 = row.getCell(10); //经营业务:专车[是/否] String nine = null; if (SinataUtil.isNotEmpty(cell9)){ nine = String.valueOf(cell9.getStringCellValue()).trim(); } Cell cell10 = row.getCell(11); //经营业务:出租车[是/否] String ten = null; if (SinataUtil.isNotEmpty(cell10)){ ten = String.valueOf(cell10.getStringCellValue()).trim(); } Cell cell11 = row.getCell(12); //经营业务:跨城出行[是/否] String eleven = null; if (SinataUtil.isNotEmpty(cell11)){ eleven = String.valueOf(cell11.getStringCellValue()).trim(); } Cell cell12 = row.getCell(13); //经营业务:小件同城物流[是/否] String twelve = null; if (SinataUtil.isNotEmpty(cell12)){ twelve = String.valueOf(cell12.getStringCellValue()).trim(); } Cell cell13 = row.getCell(14); //经营业务:小件跨城物流[是/否] String thirteen = null; if (SinataUtil.isNotEmpty(cell13)){ thirteen = String.valueOf(cell13.getStringCellValue()).trim(); } Cell cell14 = row.getCell(15); //经营业务:包车[是/否] String fourteen = null; if (SinataUtil.isNotEmpty(cell14)){ fourteen = String.valueOf(cell14.getStringCellValue()).trim(); } Cell cell15 = row.getCell(16); //登录账号[手机号] String fifteen = null; if (SinataUtil.isNotEmpty(cell15)){ fifteen = String.valueOf(cell15.getStringCellValue()).trim(); String substring = fifteen.substring(0, 1); if("0".equals(substring)){ fifteen = "233" + fifteen.substring(1); } if(fifteen.indexOf("233") < 0){ fifteen = "233" + fifteen; } } Cell cell16 = row.getCell(17); //登录密码[密码长度为6-18] String sixteen = null; if (SinataUtil.isNotEmpty(cell16)){ sixteen = String.valueOf(cell16.getStringCellValue()).trim(); } if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(zero1) || SinataUtil.isEmpty(two) || SinataUtil.isEmpty(three) || SinataUtil.isEmpty(four) || SinataUtil.isEmpty(five) || SinataUtil.isEmpty(seven) || SinataUtil.isEmpty(nine) || SinataUtil.isEmpty(ten) || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen) || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) || SinataUtil.isEmpty(sixteen)){ return new ErrorTip(500, "单元格不能为空"); }else{ //判断账号是否存在 int count = tDriverService.selectCount(new EntityWrapper().eq("phone", fifteen).in("authState", "1,2,3")); if (count > 0){ return new ErrorTip(500, "登录账号已存在"); } //判断性别 if (!two.equals("男") && !two.equals("女")){ return new ErrorTip(500, "性别内容不正确"); } //判断经营业务【专车】 if (!nine.equals("是") && !nine.equals("否")){ return new ErrorTip(500, "经营业务【专车】内容不正确"); } //判断经营业务【出租车】 if (!ten.equals("是") && !ten.equals("否")){ return new ErrorTip(500, "经营业务【出租车】内容不正确"); } //判断经营业务【跨城出行】 if (!eleven.equals("是") && !eleven.equals("否")){ return new ErrorTip(500, "经营业务【跨城出行】内容不正确"); } //判断经营业务【小件同城物流】 if (!twelve.equals("是") && !twelve.equals("否")){ return new ErrorTip(500, "经营业务【小件同城物流】内容不正确"); } //判断经营业务【小件跨城物流】 if (!thirteen.equals("是") && !thirteen.equals("否")){ return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确"); } //判断经营业务【包车】 if (!fourteen.equals("是") && !fourteen.equals("否")){ return new ErrorTip(500, "经营业务【包车】内容不正确"); } //判断驾龄 if (!isInteger(four)){ return new ErrorTip(500, "驾龄格式不正确"); } //判断手机号 if (!isPhone(fifteen)){ return new ErrorTip(500, "登录账号[手机号]格式不正确"); } //判断登录密码 if (!isPassword(sixteen)){ return new ErrorTip(500, "登录密码格式不正确"); } //查找平台公司 Integer companyId = ShiroKit.getUser().getObjectId(); Integer franchiseeId = 0; //判断所属分公司是否存在 if (SinataUtil.isNotEmpty(one)){ TCompany franchisee = itCompanyService.selectOne(new EntityWrapper().eq("superiorId",companyId).eq("name", one).eq("type", 3).notIn("flag", "3").last(" limit 1")); if (SinataUtil.isNotEmpty(franchisee)){ franchiseeId = franchisee.getId(); } } TDriver driver = new TDriver(); driver.setAccount(fifteen); driver.setJobNumber(eight); driver.setPhone(fifteen); driver.setPassword(ShiroKit.md5(sixteen, "SA;d5#")); driver.setLastName(zero); driver.setFirstName(zero1); if ("男".equals(two)){ driver.setSex(1); }else if ("女".equals(two)){ driver.setSex(2); } driver.setIdCard(five); driver.setDriverAge(Integer.valueOf(four)); driver.setDriveCard(three); driver.setTaxiAptitudeCard(seven); driver.setIsPlatCar(2); driver.setCompanyId(companyId); driver.setFranchiseeId(franchiseeId); driver.setState(1); driver.setAuthState(1); driver.setFlag("1"); driver.setInsertUser(ShiroKit.getUser().getId()); driver.setInsertTime(new Date()); driver.setAddType(3); driver.setAddObjectId(ShiroKit.getUser().getObjectId()); if (SinataUtil.isNotEmpty(six)){ driver.setDriverAddress(six); } tDriverService.insert(driver); //添加专车服务模式 if ("是".equals(nine)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(1); itDriverServiceService.insert(service); } //添加出租车服务模式 if ("是".equals(ten)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(2); itDriverServiceService.insert(service); } //添加跨城出行服务模式 if ("是".equals(eleven)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(3); itDriverServiceService.insert(service); } //添加小件同城物流服务模式 if ("是".equals(twelve)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(4); itDriverServiceService.insert(service); } //添加小件跨城物流服务模式 if ("是".equals(thirteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(5); itDriverServiceService.insert(service); } //添加包车服务模式 if ("是".equals(fourteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(6); itDriverServiceService.insert(service); } } } }else if (ShiroKit.getUser().getRoleType() == 3){ Workbook book = WoUtil.ImportFile(file); Sheet sh = book.getSheetAt(0); //获取到第一个表 for (int i = 1; i <= sh.getLastRowNum(); i++) { Row row = sh.getRow(i); Cell cell0 = row.getCell(0); //司机名称 String zero = null; if (SinataUtil.isNotEmpty(cell0)){ zero = String.valueOf(cell0.getStringCellValue()).trim(); } Cell cell01 = row.getCell(1); //司机名称 String zero1 = null; if (SinataUtil.isNotEmpty(cell01)){ zero1 = String.valueOf(cell01.getStringCellValue()).trim(); } Cell cell2 = row.getCell(2); //性别[男/女] String one = null; if (SinataUtil.isNotEmpty(cell2)){ one = String.valueOf(cell2.getStringCellValue()).trim(); } Cell cell3 = row.getCell(3); //驾驶证号码 String two = null; if (SinataUtil.isNotEmpty(cell3)){ two = String.valueOf(cell3.getStringCellValue()).trim(); } Cell cell4 = row.getCell(4); //驾龄 String three = null; if (SinataUtil.isNotEmpty(cell4)){ three = String.valueOf(cell4.getStringCellValue()).trim(); } Cell cell5 = row.getCell(5); //身份证号 String four = null; if (SinataUtil.isNotEmpty(cell5)){ four = String.valueOf(cell5.getStringCellValue()).trim(); } Cell cell6 = row.getCell(6); //居住地址 String five = null; if (SinataUtil.isNotEmpty(cell6)){ five = String.valueOf(cell6.getStringCellValue()).trim(); } Cell cell7 = row.getCell(7); //出租车资格证号 String six = null; if (SinataUtil.isNotEmpty(cell7)){ six = String.valueOf(cell7.getStringCellValue()).trim(); } Cell cell8 = row.getCell(8); //工号[选填] String seven = null; if (SinataUtil.isNotEmpty(cell8)){ seven = String.valueOf(cell8.getStringCellValue()).trim(); } Cell cell9 = row.getCell(9); //经营业务:专车[是/否] String eight = null; if (SinataUtil.isNotEmpty(cell9)){ eight = String.valueOf(cell9.getStringCellValue()).trim(); } Cell cell10 = row.getCell(10); //经营业务:出租车[是/否] String nine = null; if (SinataUtil.isNotEmpty(cell10)){ nine = String.valueOf(cell10.getStringCellValue()).trim(); } Cell cell11 = row.getCell(11); //经营业务:跨城出行[是/否] String ten = null; if (SinataUtil.isNotEmpty(cell11)){ ten = String.valueOf(cell11.getStringCellValue()).trim(); } Cell cell12 = row.getCell(12); //经营业务:小件同城物流[是/否] String eleven = null; if (SinataUtil.isNotEmpty(cell12)){ eleven = String.valueOf(cell12.getStringCellValue()).trim(); } Cell cell13 = row.getCell(13); //经营业务:小件跨城物流[是/否] String twelve = null; if (SinataUtil.isNotEmpty(cell13)){ twelve = String.valueOf(cell13.getStringCellValue()).trim(); } Cell cell14 = row.getCell(14); //经营业务:包车[是/否] String thirteen = null; if (SinataUtil.isNotEmpty(cell14)){ thirteen = String.valueOf(cell14.getStringCellValue()).trim(); } Cell cell15 = row.getCell(15); //登录账号[手机号] String fourteen = null; if (SinataUtil.isNotEmpty(cell15)){ fourteen = String.valueOf(cell15.getStringCellValue()).trim(); String substring = fourteen.substring(0, 1); if("0".equals(substring)){ fourteen = "233" + fourteen.substring(1); } if(fourteen.indexOf("233") < 0){ fourteen = "233" + fourteen; } } Cell cell16 = row.getCell(16); //登录密码[密码长度为6-18] String fifteen = null; if (SinataUtil.isNotEmpty(cell16)){ fifteen = String.valueOf(cell16.getStringCellValue()).trim(); } if (SinataUtil.isEmpty(zero) || SinataUtil.isEmpty(zero1) || SinataUtil.isEmpty(one) || SinataUtil.isEmpty(two) || SinataUtil.isEmpty(three) || SinataUtil.isEmpty(four) || SinataUtil.isEmpty(six) || SinataUtil.isEmpty(eight) || SinataUtil.isEmpty(nine) || SinataUtil.isEmpty(ten) || SinataUtil.isEmpty(eleven) || SinataUtil.isEmpty(twelve) || SinataUtil.isEmpty(thirteen) || SinataUtil.isEmpty(fourteen) || SinataUtil.isEmpty(fifteen) ){ return new ErrorTip(500, "单元格不能为空"); }else{ //判断账号是否存在 int count = tDriverService.selectCount(new EntityWrapper().eq("phone", fourteen).in("authState", "1,2,3")); if (count > 0){ return new ErrorTip(500, "登录账号已存在"); } //判断性别 if (!one.equals("男") && !one.equals("女")){ return new ErrorTip(500, "性别内容不正确"); } //判断经营业务【专车】 if (!eight.equals("是") && !eight.equals("否")){ return new ErrorTip(500, "经营业务【专车】内容不正确"); } //判断经营业务【出租车】 if (!nine.equals("是") && !nine.equals("否")){ return new ErrorTip(500, "经营业务【出租车】内容不正确"); } //判断经营业务【跨城出行】 if (!ten.equals("是") && !ten.equals("否")){ return new ErrorTip(500, "经营业务【跨城出行】内容不正确"); } //判断经营业务【小件同城物流】 if (!eleven.equals("是") && !eleven.equals("否")){ return new ErrorTip(500, "经营业务【小件同城物流】内容不正确"); } //判断经营业务【小件跨城物流】 if (!twelve.equals("是") && !twelve.equals("否")){ return new ErrorTip(500, "经营业务【小件跨城物流】内容不正确"); } //判断经营业务【包车】 if (!thirteen.equals("是") && !thirteen.equals("否")){ return new ErrorTip(500, "经营业务【包车】内容不正确"); } //判断驾龄 if (!isInteger(three)){ return new ErrorTip(500, "驾龄格式不正确"); } //判断手机号 if (!isPhone(fourteen)){ return new ErrorTip(500, "登录账号[手机号]格式不正确"); } //判断登录密码 if (!isPassword(fifteen)){ return new ErrorTip(500, "登录密码格式不正确"); } //查找平台公司 Integer companyId = 0; Integer franchiseeId = 0; TCompany franchisee = itCompanyService.selectById(ShiroKit.getUser().getObjectId()); if (SinataUtil.isNotEmpty(franchisee)){ companyId = franchisee.getSuperiorId(); franchiseeId = franchisee.getId(); } if (companyId == 0 && franchiseeId == 0){ return new ErrorTip(500, "当前登录账户上级分公司不能为空"); } TDriver driver = new TDriver(); driver.setAccount(fourteen); driver.setJobNumber(seven); driver.setPhone(fourteen); driver.setPassword(ShiroKit.md5(fifteen, "SA;d5#")); driver.setLastName(zero); driver.setFirstName(zero1); if ("男".equals(one)){ driver.setSex(1); }else if ("女".equals(one)){ driver.setSex(2); } driver.setIdCard(four); driver.setDriverAge(Integer.valueOf(three)); driver.setDriveCard(two); driver.setTaxiAptitudeCard(six); driver.setIsPlatCar(2); driver.setCompanyId(companyId); driver.setFranchiseeId(franchiseeId); driver.setState(1); driver.setAuthState(1); driver.setFlag("1"); driver.setInsertUser(ShiroKit.getUser().getId()); driver.setInsertTime(new Date()); driver.setAddType(4); driver.setAddObjectId(ShiroKit.getUser().getObjectId()); if (SinataUtil.isNotEmpty(five)){ driver.setDriverAddress(five); } tDriverService.insert(driver); //添加专车服务模式 if ("是".equals(eight)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(1); itDriverServiceService.insert(service); } //添加出租车服务模式 if ("是".equals(nine)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(2); itDriverServiceService.insert(service); } //添加跨城出行服务模式 if ("是".equals(ten)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(3); itDriverServiceService.insert(service); } //添加小件同城物流服务模式 if ("是".equals(eleven)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(4); itDriverServiceService.insert(service); } //添加小件跨城物流服务模式 if ("是".equals(twelve)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(5); itDriverServiceService.insert(service); } //添加包车服务模式 if ("是".equals(thirteen)){ TDriverService service = new TDriverService(); service.setDriverId(driver.getId()); service.setType(6); itDriverServiceService.insert(service); } } } } } catch (Exception e) { e.printStackTrace(); } return SUCCESS_TIP; } /** * 验证是否可以字符转为整数 * @param str * @return */ public static boolean isInteger(String str) { try{ String reg = "^[0-9]\\d*$"; boolean flag = str.matches(reg); return flag; }catch(NumberFormatException e) { System.out.println("异常:\"" + str + "\"..."); return false; } } /** * 验证手机号格式是否正确 * @param str * @return */ public static boolean isPhone(String str) { try{ String reg = "^1\\d{10}$"; boolean flag = str.matches(reg); return flag; }catch(NumberFormatException e) { System.out.println("异常:\"" + str + "\"..."); return false; } } /** * 验证密码长度是否正确 * @param str * @return */ public static boolean isPassword(String str) { try{ String reg = "^.{6,18}$"; boolean flag = str.matches(reg); return flag; }catch(NumberFormatException e) { System.out.println("异常:\"" + str + "\"..."); return false; } } /** * 导出司机信息 */ @RequestMapping(value = "/outDriver") public void outDriver(HttpServletRequest request, HttpServletResponse response) { List> listMap = tDriverService.getDriverListNoPage(ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId()); // 表格数据【封装】 List> dataList = new ArrayList<>(); //第一行显示【封装】 List twoList = new ArrayList(); twoList.add("总计:"); twoList.add(String.valueOf(listMap.size())+"条"); dataList.add(twoList); // 列【封装】 List shellList = new ArrayList(); shellList.add("添加时间"); shellList.add("姓名"); shellList.add("登录账号【手机号】"); shellList.add("性别"); shellList.add("司机来源"); shellList.add("所属分公司"); shellList.add("所属加盟商"); shellList.add("当前车辆"); shellList.add("服务模式"); shellList.add("关联线路"); shellList.add("评分"); shellList.add("历史接单数"); shellList.add("历史订单总金额"); shellList.add("当前钱包余额"); shellList.add("钱包活动余额"); shellList.add("钱包收入余额"); shellList.add("状态"); dataList.add(shellList); for (Map object : listMap){ // 详细数据列【封装】 shellList = new ArrayList(); if(SinataUtil.isNotEmpty(object.get("insertTime"))){ shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("insertTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm:ss")); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("firstName"))){ shellList.add(object.get("firstName").toString() + " " + object.get("lastName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("phone"))){ shellList.add(object.get("phone").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("sex"))){ shellList.add(object.get("sex").toString().equals("1")?"男":"女"); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("addType"))){ shellList.add(object.get("addType").toString().equals("1")?"司机注册":(object.get("addType").toString().equals("2")?"平台添加":(object.get("addType").toString().equals("3")?"分公司添加":(object.get("addType").toString().equals("4")?"加盟商添加":"")))); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("companyName"))){ shellList.add(object.get("companyName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("franchiseeName"))){ shellList.add(object.get("franchiseeName").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("carLicensePlate"))){ shellList.add(object.get("carLicensePlate").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("serverStr"))){ shellList.add(object.get("serverStr").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("lineStr"))){ shellList.add(object.get("lineStr").toString()); }else{ shellList.add("-"); } if(SinataUtil.isNotEmpty(object.get("evaluateNum"))){ shellList.add(object.get("evaluateNum").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("historyNum"))){ shellList.add(object.get("historyNum").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("historyMoney"))){ shellList.add(object.get("historyMoney").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("balance"))){ shellList.add(object.get("balance").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("laveActivityMoney"))){ shellList.add(object.get("laveActivityMoney").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("laveBusinessMoney"))){ shellList.add(object.get("laveBusinessMoney").toString()); }else{ shellList.add("0"); } if(SinataUtil.isNotEmpty(object.get("authState"))){ shellList.add(object.get("authState").toString().equals("1")?"待审核":(object.get("authState").toString().equals("2")?"正常":(object.get("authState").toString().equals("3")?"冻结":(object.get("authState").toString().equals("4")?"已拒绝":"")))); }else{ shellList.add("-"); } dataList.add(shellList); } try { // 调用工具类进行导出 ExcelExportUtil.easySheet("司机信息导出记录"+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "司机信息导出记录", dataList,request, response); } catch (Exception e) { e.printStackTrace(); } } /** * 跳转到邀请信息页面 * @author yxh * @date 2021/3/25 15:11 * @param tDriverId * @param model */ @RequestMapping("/inviteInfo/{tDriverId}") public String inviteInfo(@PathVariable Integer tDriverId,Model model){ model.addAttribute("tDriverId",tDriverId); return PREFIX+"tDriver_inviteInfo.html"; } /** * 司机邀请信息列表 * @author yxh * @date 2021/3/25 15:31 * @param tDriverId * @return java.lang.Object */ @RequestMapping(value = "/InviteInfoList") @ResponseBody public Object inviteInfolist(Integer tDriverId,String time) { String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(tDriverService.getDriverInviteList(page,tDriverId,start, end)); return super.packForBT(page); } /** * 修改司机分组信息 * @author yxh * @date 2021/4/13 15:04 * @param id * @param teamId * @return java.lang.Object */ @RequestMapping("/updateDriverTeam") @ResponseBody public Object updateDriverTeam(Integer id,Integer teamId){ TDriver tDriver=tDriverService.selectById(id); tDriverService.updateTeamIdById(id,teamId); return SUCCESS_TIP; } }