liujie
6 天以前 60d755ccd24c740509562c59385578d601cd4e46
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -6,6 +6,7 @@
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.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
@@ -16,6 +17,7 @@
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.EnterpriseUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
@@ -29,11 +31,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 分公司管理控制器
@@ -67,7 +65,7 @@
   
   @Autowired
   private ISpellOrderRuleService spellOrderRuleService;
   @Resource
   @Autowired
   private ShiroExtUtil shiroExtUtil;
   
   @Value("${pushMinistryOfTransport}")
@@ -329,6 +327,7 @@
       return super.packForBT(page);
    }
    /**
     * 新增分公司管理
     */
@@ -343,54 +342,65 @@
       //调用中台接口创建企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
       String enterCode = "";
      Integer enterNew = null;
      Long empId = null;
       String principalName = tCompany.getPrincipalName();
       String principalPhone = tCompany.getPrincipalPhone();
       Integer empnew = null;
       ShiroUser user1 = shiroExtUtil.getUser();
       User user2 = userService.selectById(user1.getId());
       //企业未注册,进行注册
       if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
          CreateEnterpriseRequest request = new CreateEnterpriseRequest();
          request.setName(tCompany.getName());
          request.setNickName(tCompany.getName());
          request.setIndustry_code("123456");
          request.setMobile(principalPhone);
          request.setMobile(account);
          CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
          enterCode = enterprise.getIdCode();
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(principalPhone, enterCode);
          empId = userInfoByPhone.get(0).getEmpId();
          enterNew = 1;
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
          if(null != userInfoByPhone && userInfoByPhone.size() > 0){
             empId = userInfoByPhone.get(0).getEmpId();
             empnew = 0;
          }else{
             empId = 0L;
             empnew = 1;
          }
       }
       //企业已注册
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          String larName = checkEnterExist.getLarName();
          String mobile = checkEnterExist.getMobile();
          enterCode = checkEnterExist.getEnterCode();
          if(!mobile.equals(principalPhone)){
          enterNew = 0;
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
          if(null == userInfoByPhone ||userInfoByPhone.size() == 0){
            //负责人不匹配,则创建新的员工到中台
             SaveStaffNodeRequest request = new SaveStaffNodeRequest();
             request.setMobile(mobile);
             request.setMobile(checkEnterExist.getMobile());
             request.setEntercode(enterCode);
             request.setEmpName(principalName);
             request.setEmpNickname(principalName);
             request.setLoginNo(principalPhone);
             request.setEmpSex("女");
             request.setMphone(principalPhone);
             request.setEmail(principalPhone + "@qyt.com");
             request.setEmpName(tCompany.getName() + "管理员");
             request.setEmpNickname(tCompany.getName() + "管理员");
             request.setLoginNo(account);
             request.setEmpSex("男");
             request.setMphone(account);
             request.setEmail(account + "@qyt.com");
             request.setDeptId(0);
             request.setPositionId(1);
             request.setSuperLevel(0);
             request.setHideMobile(0);
             SaveStaffNode saveStaffNode = EmployeeUtil.saveStaffNode(request);
             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{
             List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(mobile, enterCode);
             empId = userInfoByPhone.get(0).getEmpId();
             empnew = 0;
          }
          tCompany.setPrincipalName(larName);
          tCompany.setPrincipalPhone(mobile);
       }
   
       tCompany.setEnterCode(enterCode);
       tCompany.setEnterNew(enterNew);
       tCompany.setType(2);  //2:分公司
       tCompany.setState(0); //0:正常
       tCompany.setFlag("1");
@@ -404,7 +414,8 @@
   
       //添加User对象
       User user = new User();
       user.setAccount(principalPhone);
       user.setAccount(account);
       user.setPhone(account);
       user.setSalt(ShiroKit.getRandomSalt(5));
       user.setPassword(ShiroKit.md5(password, user.getSalt()));
       user.setRoleid("2");
@@ -418,12 +429,30 @@
       user.setEmpId(empId);
       user.setEntercode(enterCode);
       user.setEnterId(Long.valueOf(enterCode));
       user.setEmpnew(empnew);
       userService.insert(user);
      //编写异步延迟处理中台账号延迟创建的问题
       if(0 == empId){
          Timer timer = new Timer();
          String finalEnterCode = enterCode;
          timer.schedule(new TimerTask() {
             @Override
             public void run() {
                List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, finalEnterCode);
                if(null != userInfoByPhone && userInfoByPhone.size() > 0){
                   Long empId1 = userInfoByPhone.get(0).getEmpId();
                   user.setEmpId(empId1);
                   userService.updateById(user);
                }
             }
          },120*1000);
       }
   
       //添加经营区域
       addSocpe(subArr, tCompany.getId());
       return SUCCESS_TIP;
    }
    //添加经营区域
    public void addSocpe(String subArr,Integer id){
        JSONArray jsonArray = JSON.parseArray(subArr);
@@ -460,98 +489,6 @@
    }
    /**
     * 新增加盟商管理
     */
    @RequestMapping(value = "/addFranchisee")
    @ResponseBody
    public Object addFranchisee(TCompany tCompany,String account,String password) {
       //判断账号是否已存在
       int count = userService.selectCount(new EntityWrapper<User>().eq("account", account));
       if (count > 0) {
          return "error";
       }
       //调用中台接口创建企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
       String enterCode = "";
       Long empId = null;
       String principalName = tCompany.getPrincipalName();
       String principalPhone = tCompany.getPrincipalPhone();
       //企业未注册,进行注册
       if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
          CreateEnterpriseRequest request = new CreateEnterpriseRequest();
          request.setName(tCompany.getName());
          request.setNickName(tCompany.getName());
          request.setIndustry_code("123456");
          request.setMobile(principalPhone);
          CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
          enterCode = enterprise.getIdCode();
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(principalPhone, enterCode);
          empId = userInfoByPhone.get(0).getEmpId();
       }
       //企业已注册
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          String larName = checkEnterExist.getLarName();
          String mobile = checkEnterExist.getMobile();
          enterCode = checkEnterExist.getEnterCode();
          if(!mobile.equals(principalPhone)){
             //负责人不匹配,则创建新的员工到中台
             SaveStaffNodeRequest request = new SaveStaffNodeRequest();
             request.setMobile(mobile);
             request.setEntercode(enterCode);
             request.setEmpName(principalName);
             request.setEmpNickname(principalName);
             request.setLoginNo(principalPhone);
             request.setEmpSex("女");
             request.setMphone(principalPhone);
             request.setEmail(principalPhone + "@qyt.com");
             request.setDeptId(0);
             request.setPositionId(1);
             request.setSuperLevel(0);
             request.setHideMobile(0);
             SaveStaffNode saveStaffNode = EmployeeUtil.saveStaffNode(request);
             empId = saveStaffNode.getEmpId();
          }else{
             List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(mobile, enterCode);
             empId = userInfoByPhone.get(0).getEmpId();
          }
          tCompany.setPrincipalName(larName);
          tCompany.setPrincipalPhone(mobile);
       }
       tCompany.setEnterCode(enterCode);
       tCompany.setType(3);  //2:分公司
       if (shiroExtUtil.getUser().getRoleType() == 2) {
          tCompany.setSuperiorId(shiroExtUtil.getUser().getObjectId());
       }
       tCompany.setState(0); //0:正常
       tCompany.setFlag("1");
       tCompany.setInsertTime(new Date());
       tCompanyService.insert(tCompany);
       //添加User对象
       User user = new User();
       user.setAccount(principalPhone);
       user.setSalt(ShiroKit.getRandomSalt(5));
       user.setPassword(ShiroKit.md5(password, user.getSalt()));
       user.setRoleid("3");
       user.setDeptid(26);
       user.setStatus(1);
       user.setCreatetime(new Date());
       user.setRoleType(3);
       user.setObjectId(tCompany.getId());
       user.setName(tCompany.getName());
       user.setSex(1);
       user.setEmpId(empId);
       user.setEntercode(enterCode);
       user.setEnterId(Long.valueOf(enterCode));
       userService.insert(user);
       return SUCCESS_TIP;
    }
    /**
     * 删除分公司管理
     */
    @RequestMapping(value = "/delete")
@@ -559,9 +496,16 @@
    public Object delete(@RequestParam Integer tCompanyId) {
       TCompany tCompany = tCompanyService.selectById(tCompanyId);
       //调用中台接口创建企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          EnterpriseUtil.delEnterprise(checkEnterExist.getEnterCode(), tCompany.getPrincipalPhone());
       if(1 == tCompany.getEnterNew()){
          CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
          if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
             ShiroUser user1 = shiroExtUtil.getUser();
             User user = userService.selectById(user1.getId());
             ResultUtil resultUtil = EnterpriseUtil.delEnterprise(checkEnterExist.getEnterCode(), user.getPhone());
            if(resultUtil.getStatus() != 200){
               return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
            }
          }
       }
   
       tCompany.setFlag("3");
@@ -575,46 +519,13 @@
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(TCompany tCompany,@RequestParam String subArr,String account,String password,Integer userId) {
       //判断账号
       User user = userService.selectById(userId);
       TCompany company = tCompanyService.selectById(tCompany.getId());
       //调用中台接口创建企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(company.getName());
       String enterCode = null;
       //企业已存在,编辑企业
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          ModifyEnterpriseInfoRequest request = new ModifyEnterpriseInfoRequest();
          request.setEnter_code(company.getEnterCode());
          request.setOperator(company.getPrincipalPhone());
          request.setEnter_name(tCompany.getName());
          request.setEnter_nickname(tCompany.getName());
          EnterpriseUtil.modifyEnterpriseInfo(request);
          enterCode = checkEnterExist.getEnterCode();
       if(null != user && ToolUtil.isNotEmpty(password)){
          user.setPassword(ShiroKit.md5(password, user.getSalt()));
          userService.updateById(user);
       }
       //企业不存在,新增企业
       if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
          CreateEnterpriseRequest request = new CreateEnterpriseRequest();
          request.setName(tCompany.getName());
          request.setNickName(tCompany.getName());
          request.setIndustry_code("123456");
          request.setMobile(tCompany.getPrincipalPhone());
          CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
          enterCode = enterprise.getIdCode();
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tCompany.getPrincipalPhone(), enterCode);
          Long empId = userInfoByPhone.get(0).getEmpId();
          user.setEmpId(empId);
       }
       company.setEnterCode(enterCode);
       company.setUpdateTime(new Date());
       tCompany.setVersion(company.getVersion() + 1);
       tCompany.setUpdateTime(new Date());
       tCompanyService.updateById(tCompany);
       user.setEntercode(enterCode);
       user.setEnterId(Long.valueOf(enterCode));
       user.setName(tCompany.getName());
       userService.updateById(user);
       //添加经营区域
       addSocpe(subArr, tCompany.getId());
   
@@ -641,52 +552,135 @@
    @RequestMapping(value = "/updateFranchisee")
    @ResponseBody
    public Object updateFranchisee(TCompany tCompany,String account,String password,Integer userId) {
       //判断账号
       tCompany.setUpdateTime(new Date());
       tCompany.setVersion(tCompany.getVersion() + 1);
       tCompanyService.updateById(tCompany);
       //修改账号密码
       User user = userService.selectById(userId);
       if (!user.getAccount().equals(account)) {
          //判断账号是否已存在
          int count = userService.selectCount(new EntityWrapper<User>().eq("account", account));
          if (count > 0) {
             return "error";
          }
       user.setPassword(ShiroKit.md5(password, user.getSalt()));
       userService.updateById(user);
       return SUCCESS_TIP;
    }
    /**
     * 新增加盟商管理
     */
    @RequestMapping(value = "/addFranchisee")
    @ResponseBody
    public Object addFranchisee(TCompany tCompany,String account,String password) {
       //判断账号是否已存在
       int count = userService.selectCount(new EntityWrapper<User>().eq("account", account));
       if (count > 0) {
          return "error";
       }
       TCompany company = tCompanyService.selectById(tCompany.getId());
       //调用中台接口创建企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(company.getName());
       String enterCode = null;
       //企业已存在,编辑企业
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          ModifyEnterpriseInfoRequest request = new ModifyEnterpriseInfoRequest();
          request.setEnter_code(company.getEnterCode());
          request.setOperator(tCompany.getPrincipalPhone());
          request.setEnter_name(tCompany.getName());
          request.setEnter_nickname(tCompany.getName());
          EnterpriseUtil.modifyEnterpriseInfo(request);
          enterCode = checkEnterExist.getEnterCode();
       }
       //企业不存在,添加企业
       CheckEnterExist checkEnterExist = EnterpriseUtil.checkEnterNameExist(tCompany.getName());
       String enterCode = "";
       Long empId = null;
       Integer empnew = null;
       Integer enterNew = null;
       ShiroUser user1 = shiroExtUtil.getUser();
       User user2 = userService.selectById(user1.getId());
       //企业未注册,进行注册
       if (null == checkEnterExist || "0".equals(checkEnterExist.getIsReg())) {
          CreateEnterpriseRequest request = new CreateEnterpriseRequest();
          request.setName(tCompany.getName());
          request.setNickName(tCompany.getName());
          request.setIndustry_code("123456");
          request.setMobile(tCompany.getPrincipalPhone());
          request.setMobile(account);
          CreateEnterprise enterprise = EnterpriseUtil.createEnterprise(request);
          enterCode = enterprise.getIdCode();
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tCompany.getPrincipalPhone(), enterCode);
          Long empId = userInfoByPhone.get(0).getEmpId();
          user.setEmpId(empId);
          enterNew = 1;
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
          if(null != userInfoByPhone && userInfoByPhone.size() > 0){
             empId = userInfoByPhone.get(0).getEmpId();
             empnew = 0;
          }else{
             empId = 0L;
             empnew = 1;
          }
       }
       tCompany.setEnterCode(enterCode);
       tCompanyService.updateById(tCompany);
       //企业已注册
       if (null != checkEnterExist && "1".equals(checkEnterExist.getIsReg())) {
          List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, enterCode);
          enterCode = checkEnterExist.getEnterCode();
          enterNew = 0;
          if(null == userInfoByPhone || userInfoByPhone.size() == 0){
             SaveStaffNodeRequest request = new SaveStaffNodeRequest();
             request.setMobile(checkEnterExist.getMobile());
             request.setEntercode(enterCode);
             request.setEmpName(tCompany.getName() + "管理员");
             request.setEmpNickname(tCompany.getName() + "管理员");
             request.setLoginNo(account);
             request.setEmpSex("女");
             request.setMphone(account);
             request.setEmail(account + "@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.setEnterCode(enterCode);
       tCompany.setEnterNew(enterNew);
       tCompany.setType(3);  //2:分公司
       if (shiroExtUtil.getUser().getRoleType() == 2) {
          tCompany.setSuperiorId(shiroExtUtil.getUser().getObjectId());
       }
       tCompany.setState(0); //0:正常
       tCompany.setFlag("1");
       tCompany.setInsertTime(new Date());
       tCompanyService.insert(tCompany);
       //添加User对象
       User user = new User();
       user.setAccount(account);
       user.setPhone(account);
       user.setSalt(ShiroKit.getRandomSalt(5));
       user.setPassword(ShiroKit.md5(password, user.getSalt()));
       user.setRoleid("3");
       user.setDeptid(26);
       user.setStatus(1);
       user.setCreatetime(new Date());
       user.setRoleType(3);
       user.setObjectId(tCompany.getId());
       user.setName(tCompany.getName());
       user.setSex(1);
       user.setEmpId(empId);
       user.setEntercode(enterCode);
       user.setEnterId(Long.valueOf(enterCode));
       userService.updateById(user);
       user.setEmpnew(empnew);
       userService.insert(user);
       //编写异步延迟处理中台账号延迟创建的问题
       if(0 == empId){
          Timer timer = new Timer();
          String finalEnterCode = enterCode;
          timer.schedule(new TimerTask() {
             @Override
             public void run() {
                List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(account, finalEnterCode);
                if(null != userInfoByPhone && userInfoByPhone.size() > 0){
                   Long empId1 = userInfoByPhone.get(0).getEmpId();
                   user.setEmpId(empId1);
                   userService.updateById(user);
                }
             }
          },120*1000);
       }
       return SUCCESS_TIP;
    }
}