郑永安
2023-07-17 ff038b3eab83ae97c7952884aea13a340dab683d
update tree
14 files modified
1654 ■■■■ changed files
src/main/java/com/gk/hotwork/Controller/ElementManagementController.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Controller/UserController.java 1065 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Domain/ElementManagement.java 15 ●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Domain/ElementTree.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Domain/UserInfo.java 67 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java 15 ●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml 11 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml 211 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Service/ElementManagementService.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java 112 ●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java 84 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Service/UserService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/gk/hotwork/Controller/ElementManagementController.java
@@ -57,6 +57,33 @@
        List<ElementTree> elementTreeList = elementManagementService.getElementTree();
        return success(elementTreeList);
    }
    @ApiOperation("获取检查导则要素树")
    @PostMapping("/getMenuType1Tree")
    public Msg getMenuType1Tree() {
        List<ElementTree> elementTreeList = elementManagementService.getMenuType1Tree();
        return success(elementTreeList);
    }
    @ApiOperation("获取安全标准化要素树")
    @PostMapping("/getMenuType2Tree")
    public Msg getMenuType2Tree() {
        List<ElementTree> elementTreeList = elementManagementService.getMenuType2Tree();
        return success(elementTreeList);
    }
    @ApiOperation("根据所选要素级别获取上级要素列表")
    @ApiImplicitParams({ @ApiImplicitParam(name = "type",value = "当前要素级别")})
    @PostMapping("/getSuperElement")
    public Msg getSuperElement(@RequestBody JSONObject jsonObject) {
        Integer type = Integer.valueOf(jsonObject.get("type")==null?"0":jsonObject.get("type").toString());
        List<ElementManagement> list = elementManagementService.getSuperElement(type-1);
        return success(list);
    }
    @ApiOperation("/新增")
    @PostMapping("/add")
src/main/java/com/gk/hotwork/Controller/UserController.java
@@ -16,7 +16,6 @@
import com.gk.hotwork.Domain.Vo.WorkCertVo;
import com.gk.hotwork.Service.*;
import io.swagger.annotations.*;
import io.swagger.models.auth.In;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -61,8 +60,6 @@
    private BlackListService blackListService;
    @Autowired
    private DeviceLocationService deviceLocationService;
    @Autowired
    private SpecialityService specialityService;
    @Value("${workname}")
    private String workname;
    @Value("${workCert}")
@@ -137,148 +134,6 @@
        pageInfo.setCondition(condition);
        userService.selectUserDataGrid(pageInfo);
        msg.setResult(pageInfo);
        return msg;
    }
    @GetMapping("/company/user/list")
    @ApiOperation(value = "获取企业用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
            @ApiImplicitParam(name = "sort",value = "排序规则"),
            @ApiImplicitParam(name = "order",value = "排序字段"),
            @ApiImplicitParam(name = "username",value = "用户名"),
            @ApiImplicitParam(name = "company",value = "企业名称"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证号"),
            @ApiImplicitParam(name = "job",value = "身份证号"),
    })
    public Msg getCompanyUserInfo(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort,String order,
                           String username,String company,String realname, String idcard, String job){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order);
        HashMap<String, Object> condition = new HashMap<String, Object>();
        if (StringUtils.isNotBlank(username)) {
            condition.put("username", username.trim());
        }
        if (StringUtils.isNotBlank(company)) {
            condition.put("company", company.trim());
        }
        if (StringUtils.isNotBlank(realname)){
            condition.put("realname",realname.trim());
        }
        if (StringUtils.isNotBlank(idcard)){
            condition.put("idcard",idcard.trim());
        }
        if (StringUtils.isNotBlank(job)){
            condition.put("job",job.trim());
        }
        condition.put("roleId",35l);
        pageInfo.setCondition(condition);
        userService.selectCompanyUserDataGrid(pageInfo);
        msg.setResult(pageInfo);
        return msg;
    }
    @GetMapping("/supervise/user/list")
    @ApiOperation(value = "获取监管用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
            @ApiImplicitParam(name = "sort",value = "排序规则"),
            @ApiImplicitParam(name = "order",value = "排序字段"),
            @ApiImplicitParam(name = "username",value = "用户名"),
            @ApiImplicitParam(name = "company",value = "单位名称"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证号"),
    })
    public Msg getSuperviseUserInfo(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort,String order,
                                  String username,String company,String realname, String idcard){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfoCurrent = userService.selectByUser(getUser().getUsername());
        PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order);
        HashMap<String, Object> condition = new HashMap<String, Object>();
        if (StringUtils.isNotBlank(username)) {
            condition.put("username", username.trim());
        }
        if (StringUtils.isNotBlank(company)) {
            condition.put("company", company.trim());
        }
        if (StringUtils.isNotBlank(realname)){
            condition.put("realname",realname.trim());
        }
        if (StringUtils.isNotBlank(idcard)){
            condition.put("idcard",idcard.trim());
        }
        if(StringUtils.isNotBlank(userInfoCurrent.getProvince())){
            condition.put("province", userInfoCurrent.getProvince());
        }
        if(StringUtils.isNotBlank(userInfoCurrent.getCity())){
            condition.put("city", userInfoCurrent.getCity());
        }
        if(StringUtils.isNotBlank(userInfoCurrent.getCounty())){
            condition.put("county", userInfoCurrent.getCounty());
        }
        condition.put("roleId",38l);
        pageInfo.setCondition(condition);
        userService.selectSuperviseUserDataGrid(pageInfo);
        msg.setResult(pageInfo);
        return msg;
    }
    @GetMapping("/expert/user/list")
    @ApiOperation(value = "获取监管用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "pageIndex",value = "当前页码"),
            @ApiImplicitParam(name = "pageSize",value = "每页行数"),
            @ApiImplicitParam(name = "sort",value = "排序规则"),
            @ApiImplicitParam(name = "order",value = "排序字段"),
            @ApiImplicitParam(name = "username",value = "用户名"),
            @ApiImplicitParam(name = "company",value = "单位名称"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证号"),
    })
    public Msg getExpertUserInfo(@RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort,String order,
                                    String username,String company,String realname, String idcard){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order);
        HashMap<String, Object> condition = new HashMap<String, Object>();
        if (StringUtils.isNotBlank(username)) {
            condition.put("username", username.trim());
        }
        if (StringUtils.isNotBlank(company)) {
            condition.put("company", company.trim());
        }
        if (StringUtils.isNotBlank(realname)){
            condition.put("realname",realname.trim());
        }
        if (StringUtils.isNotBlank(idcard)){
            condition.put("idcard",idcard.trim());
        }
        condition.put("roleId",36l);
        pageInfo.setCondition(condition);
        userService.selectExpertUserDataGrid(pageInfo);
        msg.setResult(pageInfo);
        return msg;
    }
@@ -474,804 +329,6 @@
        userService.save(userInfo);
        return msg;
    }
    /**
     * 专家用户-新增
     * @param jsonObject
     * @return
     */
    @PostMapping("/add/expert/user")
    @ApiOperation(value = "添加专家用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "company",value = "单位"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
            @ApiImplicitParam(name = "specialityId",value = "专业方向id"),
            @ApiImplicitParam(name = "professionalLevel",value = "职称"),
    })
    public Msg addExpertUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (!password.matches(PW_PATTERN)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
            return msg;
        }else {
            userInfo.setPassword(MD5Utils.encode(password));
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(null,idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        Integer professionalLevel = jsonObject.getInteger("professionalLevel");
        if (professionalLevel == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("职称参数为空");
            return msg;
        }
        Long specialityId = jsonObject.getLong("specialityId");
        if (specialityId == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("专业参数为空");
            return msg;
        }
        SpecialityInfo specialityInfo = specialityService.getById(specialityId);
        if (specialityInfo == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("专业不存在");
            return msg;
        }
        userInfo.setCompany(jsonObject.getString("company"));
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setSpecialityId(specialityId);
        userInfo.setProfessionalLevel(professionalLevel);
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setStatus((byte)1);
        userInfo.setType(3);
        userInfo.setCreatedby(getUser().getRealname());
        userInfo.setRealname(realname);
        userInfo.setCreateddate(new Date());
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setIsupload((byte)0);
        List<UserInfo> userInfoExist = userService.selectUserInfo(null,userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        int userSize = userService.selectUserSize();
        int sli = (userSize + 1) % sliceSize;
        userInfo.setSlice(sli + "");
        if (sli == 0)
            userInfo.setSlice(sliceSize + "");
        userService.save(userInfo);
        UserInfo user = userService.selectByUser(userInfo.getUsername());
        //默认配置企业用户角色
        UserRolesInfo userRolesInfo = new UserRolesInfo();
        userRolesInfo.setRoleid(36l);
        userRolesInfo.setUserid(user.getId());
        userRolesService.save(userRolesInfo);
        return msg;
    }
    /**
     * 专家用户-修改
     * @param jsonObject
     * @return
     */
    @PostMapping("/put/expert/user")
    @ApiOperation(value = "修改专家用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "主键",required = true),
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "company",value = "单位"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
            @ApiImplicitParam(name = "specialityId",value = "专业方向id"),
            @ApiImplicitParam(name = "professionalLevel",value = "职称"),
    })
    public Msg putExpertUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        Long id = jsonObject.getLong("id");
        if (id == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("主键参数为空");
            return msg;
        }else {
            userInfo.setId(id);
        }
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (!password.matches(PW_PATTERN)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
            return msg;
        }else {
            userInfo.setPassword(MD5Utils.encode(password));
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(id,idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        Integer professionalLevel = jsonObject.getInteger("professionalLevel");
        if (professionalLevel == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("职称参数为空");
            return msg;
        }
        Long specialityId = jsonObject.getLong("specialityId");
        if (specialityId == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("专业参数为空");
            return msg;
        }
        SpecialityInfo specialityInfo = specialityService.getById(specialityId);
        if (specialityInfo == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("专业不存在");
            return msg;
        }
        userInfo.setCompany(jsonObject.getString("company"));
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setSpecialityId(specialityId);
        userInfo.setProfessionalLevel(professionalLevel);
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setStatus((byte)1);
        userInfo.setType(3);
        userInfo.setCreatedby(getUser().getRealname());
        userInfo.setRealname(realname);
        userInfo.setCreateddate(new Date());
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setIsupload((byte)0);
        List<UserInfo> userInfoExist = userService.selectUserInfo(null,userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        int userSize = userService.selectUserSize();
        int sli = (userSize + 1) % sliceSize;
        userInfo.setSlice(sli + "");
        if (sli == 0)
            userInfo.setSlice(sliceSize + "");
        userService.save(userInfo);
        return msg;
    }
    /**
     * 企业用户-新增
     * @param jsonObject
     * @return
     */
    @PostMapping("/add/company/user")
    @ApiOperation(value = "添加企业用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "companyid",value = "单位"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
    })
    public Msg addCompanyUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (!password.matches(PW_PATTERN)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
            return msg;
        }else {
            userInfo.setPassword(MD5Utils.encode(password));
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(null,idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        Long companyid = jsonObject.getLong("companyid");
        if (companyid == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位参数为空");
            return msg;
        }
        CompanyInfo companyInfo = companyService.getById(companyid);
        if (companyInfo == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位不存在");
            return msg;
        }
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setCompany(companyInfo.getCompany());
        userInfo.setCompanyid(companyid);
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setStatus((byte)1);
        userInfo.setType(3);
        userInfo.setCreatedby(getUser().getRealname());
        userInfo.setRealname(realname);
        userInfo.setCreateddate(new Date());
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setIsupload((byte)0);
        List<UserInfo> userInfoExist = userService.selectUserInfo(null,userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        int userSize = userService.selectUserSize();
        int sli = (userSize + 1) % sliceSize;
        userInfo.setSlice(sli + "");
        if (sli == 0)
            userInfo.setSlice(sliceSize + "");
        userService.save(userInfo);
        UserInfo user = userService.selectByUser(userInfo.getUsername());
        //默认配置企业用户角色
        UserRolesInfo userRolesInfo = new UserRolesInfo();
        userRolesInfo.setRoleid(35l);
        userRolesInfo.setUserid(user.getId());
        userRolesService.save(userRolesInfo);
        return msg;
    }
    /**
     * 企业用户-修改
     * @param jsonObject
     * @return
     */
    @PostMapping("/put/company/user")
    @ApiOperation(value = "修改企业用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "用户id",required = true),
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "companyid",value = "单位"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
    })
    public Msg putCompanyUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        Long id = jsonObject.getLong("id");
        if (id == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("主键参数为空");
            return msg;
        }else {
            userInfo.setId(id);
        }
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (StringUtils.isNotBlank(password)){
            if (!password.matches(PW_PATTERN)){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
                return msg;
            }else {
                userInfo.setPassword(MD5Utils.encode(password));
            }
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(userInfo.getId(),idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        Long companyid = jsonObject.getLong("companyid");
        if (companyid == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位参数为空");
            return msg;
        }
        CompanyInfo companyInfo = companyService.getById(companyid);
        if (companyInfo == null) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位不存在");
            return msg;
        }
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setCompany(companyInfo.getCompany());
        userInfo.setCompanyid(companyInfo.getId());
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setRealname(realname);
        List<UserInfo> userInfoExist = userService.selectUserInfo(userInfo.getId(),userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        userService.updateById(userInfo);
        return msg;
    }
    /**
     * 监管用户-新增
     * @param jsonObject
     * @return
     */
    @PostMapping("/add/supervise/user")
    @ApiOperation(value = "添加企业用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
            @ApiImplicitParam(name = "executiveLevel",value = "行政级别 "),
            @ApiImplicitParam(name = "province",value = "省(自治区)"),
            @ApiImplicitParam(name = "city",value = "地(市、州)"),
            @ApiImplicitParam(name = "county",value = "区/县"),
    })
    public Msg addSuperviseUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        UserInfo userInfoCurrent = userService.selectByUser(getUser().getUsername());
        Integer executiveLevel = jsonObject.getInteger("executiveLevel");
        if (executiveLevel == null){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("行政级别不能为空");
            return msg;
        }
        String province = jsonObject.getString("province");
        if (StringUtils.isBlank(province)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("省(自治区)不能为空");
            return msg;
        }
        String city = jsonObject.getString("city");
        if (executiveLevel == 2 && StringUtils.isBlank(city)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("地(市、州)不能为空");
            return msg;
        }else {
            userInfo.setCity(city);
        }
        String county = jsonObject.getString("county");
        if (executiveLevel == 3 && (StringUtils.isBlank(city) || StringUtils.isBlank(county))){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("区/县不能为空");
            return msg;
        }else {
            userInfo.setCounty(county);
        }
        //非超管 或者 管理员
        if(!userInfoCurrent.getType().equals(1) && !userInfoCurrent.getType().equals(2)){
            //判断当前用户是否有权限新增其管辖下监管机构用户
            Integer currentUserExLevl = userInfoCurrent.getExecutiveLevel();
            if(currentUserExLevl < executiveLevel){
                if(currentUserExLevl == 1){
                    if(!userInfoCurrent.getProvince().equals(province)){
                        msg.setCode(ErrorCode.ERROR_10004.getCode());
                        msg.setMessage("无权新增非自己管辖地区");
                        return msg;
                    }
                }
                if(currentUserExLevl == 2){
                    if(!userInfoCurrent.getProvince().equals(province) || !userInfoCurrent.getCity().equals(city)){
                        msg.setCode(ErrorCode.ERROR_10004.getCode());
                        msg.setMessage("无权新增非自己管辖地区");
                        return msg;
                    }
                }
                if(currentUserExLevl == 3){
                    msg.setCode(ErrorCode.ERROR_10004.getCode());
                    msg.setMessage("当前用户是区县级,无法再新增下一级监管部门");
                    return msg;
                }
            }else {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("当前用户是无权限新增同级、上一级监管部门");
                return msg;
            }
        }
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (!password.matches(PW_PATTERN)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
            return msg;
        }else {
            userInfo.setPassword(MD5Utils.encode(password));
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(null,idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        String companyName = province + (StringUtils.isBlank(city) ? "" : city) + (StringUtils.isBlank(county) ? "" : county) + "应急管理局";
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setProvince(province);
        userInfo.setExecutiveLevel(executiveLevel);
        userInfo.setCompany(companyName);
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setStatus((byte)1);
        userInfo.setType(3);
        userInfo.setCreatedby(getUser().getRealname());
        userInfo.setRealname(realname);
        userInfo.setCreateddate(new Date());
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setIsupload((byte)0);
        List<UserInfo> userInfoExist = userService.selectUserInfo(null,userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        int userSize = userService.selectUserSize();
        int sli = (userSize + 1) % sliceSize;
        userInfo.setSlice(sli + "");
        if (sli == 0)
            userInfo.setSlice(sliceSize + "");
        userService.save(userInfo);
        UserInfo user = userService.selectByUser(userInfo.getUsername());
        //默认配置企业用户角色
        UserRolesInfo userRolesInfo = new UserRolesInfo();
        userRolesInfo.setRoleid(38l);
        userRolesInfo.setUserid(user.getId());
        userRolesService.save(userRolesInfo);
        return msg;
    }
    /**
     * 监管用户-修改
     * @param jsonObject
     * @return
     */
    @PostMapping("/put/supervise/user")
    @ApiOperation(value = "修改企业用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "用户id",required = true),
            @ApiImplicitParam(name = "username",value = "手机号",required = true),
            @ApiImplicitParam(name = "password",value = "密码",required = true),
            @ApiImplicitParam(name = "email",value = "邮箱"),
            @ApiImplicitParam(name = "job",value = "职务"),
            @ApiImplicitParam(name = "realname",value = "姓名"),
            @ApiImplicitParam(name = "idcard",value = "身份证"),
            @ApiImplicitParam(name = "executiveLevel",value = "行政级别"),
            @ApiImplicitParam(name = "province",value = "省(自治区)"),
            @ApiImplicitParam(name = "city",value = "地(市、州)"),
            @ApiImplicitParam(name = "county",value = "区/县"),
    })
    public Msg putSuperviseUserInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        UserInfo userInfo = new UserInfo();
        UserInfo userInfoCurrent = userService.selectByUser(getUser().getUsername());
        Integer executiveLevel = jsonObject.getInteger("executiveLevel");
        if (executiveLevel == null){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("行政级别不能为空");
            return msg;
        }
        String province = jsonObject.getString("province");
        if (StringUtils.isBlank(province)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("省(自治区)不能为空");
            return msg;
        }
        String city = jsonObject.getString("city");
        if (executiveLevel == 2 && StringUtils.isBlank(city)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("地(市、州)不能为空");
            return msg;
        }
        String county = jsonObject.getString("county");
        if (executiveLevel == 3 && (StringUtils.isBlank(city) || StringUtils.isBlank(county))){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("区/县不能为空");
            return msg;
        }else {
            userInfo.setCounty(county);
        }
        Long id = jsonObject.getLong("id");
        if(id == null){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户主键id不能为空");
            return msg;
        }
        userInfo.setId(id);
        //非超管、 管理员 、自己可以修改
        if((!userInfoCurrent.getType().equals(1)) && (!userInfoCurrent.getType().equals(2)) && (!id .equals(userInfoCurrent.getId()))){
            //判断当前用户是否有权限新增其管辖下监管机构用户
            Integer currentUserExLevl = userInfoCurrent.getExecutiveLevel();
            if(currentUserExLevl < executiveLevel){
                if(currentUserExLevl == 1){
                    if(!userInfoCurrent.getProvince().equals(province)){
                        msg.setCode(ErrorCode.ERROR_10004.getCode());
                        msg.setMessage("无权新增非自己管辖地区");
                        return msg;
                    }
                }
                if(currentUserExLevl == 2){
                    if(!userInfoCurrent.getProvince().equals(province) || !userInfoCurrent.getCity().equals(city)){
                        msg.setCode(ErrorCode.ERROR_10004.getCode());
                        msg.setMessage("无权新增非自己管辖地区");
                        return msg;
                    }
                }
                if(currentUserExLevl == 3){
                    msg.setCode(ErrorCode.ERROR_10004.getCode());
                    msg.setMessage("当前用户是区县级,无权修改监管部门");
                    return msg;
                }
            }else {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("当前用户是无权限修改同级、上一级监管部门");
                return msg;
            }
        }
        String password = jsonObject.getString("password");
        String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
        if (StringUtils.isNotBlank(password)){
            if (!password.matches(PW_PATTERN)){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
                return msg;
            }else {
                userInfo.setPassword(MD5Utils.encode(password));
            }
        }
        String username = jsonObject.getString("username");
        if (StringUtils.isNotBlank(username) && username.length() == 11){
            userInfo.setUsername(username);
        }else{
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("手机号必须为11位数");
            return msg;
        }
        String realname = jsonObject.getString("realname");
        if (StringUtils.isBlank(realname)){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("姓名不能为空");
            return msg;
        }
        String idcard = jsonObject.getString("idcard");
        if (StringUtils.isNotBlank(idcard)){
            UserInfo idCardExist = userService.selectByIdCard(userInfo.getId(),idcard);
            if (null != idCardExist){
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证重复");
                return msg;
            }else{
                userInfo.setIdcard(idcard);
            }
            if (!IdCardUtil.strongVerifyIdNumber(idcard)) {
                msg.setCode(ErrorCode.ERROR_10004.getCode());
                msg.setMessage("身份证非法");
                return msg;
            }
        }
        //自己无法修改行政级别
        if (userInfoCurrent.getId().equals(id) && !userInfoCurrent.getExecutiveLevel().equals(executiveLevel)) {
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("自己无法修改行政级别");
            return msg;
        }else{
            userInfo.setExecutiveLevel(executiveLevel);
        }
        String companyName = province + (StringUtils.isBlank(city) ? "" : city) + (StringUtils.isBlank(county) ? "" : county) + "应急管理局";
        userInfo.setEmail(jsonObject.getString("email"));
        userInfo.setProvince(province);
        userInfo.setCity(StringUtils.isBlank(city) ? "" :city);
        userInfo.setCounty(StringUtils.isBlank(county) ? "" :county);
        userInfo.setCompany(companyName);
        userInfo.setJob(jsonObject.getString("job"));
        userInfo.setLastmodifiedby(getUser().getRealname());
        userInfo.setLastmodifieddate(new Date());
        userInfo.setIsdel((byte)0);
        userInfo.setRealname(realname);
        List<UserInfo> userInfoExist = userService.selectUserInfo(userInfo.getId(),userInfo.getUsername());
        if (userInfoExist.size() > 0){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("用户名重复");
            return msg;
        }
        userService.updateById(userInfo);
        return msg;
    }
    @PostMapping("/importUser")
    @ApiOperation(value = "导入用户数据",response = Msg.class)
@@ -1794,106 +851,7 @@
        return msg;
    }
    /**
     * 企业-新增
     * @param jsonObject
     * @return
     */
    @PostMapping("/addCompany")
    @ApiOperation(value = "添加企业信息",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "code",value = "单位代码"),
            @ApiImplicitParam(name = "company",value = "单位名称"),
            @ApiImplicitParam(name = "contactname",value = "联系人"),
            @ApiImplicitParam(name = "contactphone",value = "联系电话"),
            @ApiImplicitParam(name = "province",value = "省份"),
            @ApiImplicitParam(name = "city",value = "城市"),
            @ApiImplicitParam(name = "area",value = "区县"),
            @ApiImplicitParam(name = "town",value = "街道"),
            @ApiImplicitParam(name = "community",value = "社区"),
    })
    public Msg addCompanyInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        CompanyInfo companyInfo = new CompanyInfo();
        companyInfo.setCode(jsonObject.getString("code"));
        companyInfo.setCompany(jsonObject.getString("company"));
        companyInfo.setContactname(jsonObject.getString("contactname"));
        companyInfo.setContactphone(jsonObject.getString("contactphone"));
        companyInfo.setProvince(jsonObject.getString("province"));
        companyInfo.setCity(jsonObject.getString("city"));
        companyInfo.setArea(jsonObject.getString("area"));
        companyInfo.setTown(jsonObject.getString("town"));
        companyInfo.setCommunity(jsonObject.getString("community"));
        companyInfo.setCreatedby(getUser().getRealname());
        companyInfo.setCreateddate(new Date());
        companyInfo.setLastmodifiedby(getUser().getRealname());
        companyInfo.setLastmodifieddate(new Date());
        companyInfo.setIsdel((byte)0);
        CompanyInfo companyInfoExist = companyService.selectExistByName(null,companyInfo.getCompany());
        if (null != companyInfoExist){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位名称重复");
            return msg;
        }else {
            companyService.save(companyInfo);
        }
        return msg;
    }
    /**
     * 企业-修改
     * @param jsonObject
     * @return
     */
    @PostMapping("/putCompany")
    @ApiOperation(value = "修改企业信息",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value = "单位主键"),
            @ApiImplicitParam(name = "code",value = "单位代码"),
            @ApiImplicitParam(name = "company",value = "单位名称"),
            @ApiImplicitParam(name = "contactname",value = "联系人"),
            @ApiImplicitParam(name = "contactphone",value = "联系电话"),
            @ApiImplicitParam(name = "province",value = "省份"),
            @ApiImplicitParam(name = "city",value = "城市"),
            @ApiImplicitParam(name = "area",value = "区县"),
            @ApiImplicitParam(name = "town",value = "街道"),
            @ApiImplicitParam(name = "community",value = "社区"),
    })
    public Msg putCompanyInfo(@RequestBody JSONObject jsonObject){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        CompanyInfo companyInfo = new CompanyInfo();
        companyInfo.setId(jsonObject.getLong("id"));
        companyInfo.setCode(jsonObject.getString("code"));
        companyInfo.setCompany(jsonObject.getString("company"));
        companyInfo.setContactname(jsonObject.getString("contactname"));
        companyInfo.setContactphone(jsonObject.getString("contactphone"));
        companyInfo.setProvince(jsonObject.getString("province"));
        companyInfo.setCity(jsonObject.getString("city"));
        companyInfo.setArea(jsonObject.getString("area"));
        companyInfo.setTown(jsonObject.getString("town"));
        companyInfo.setCommunity(jsonObject.getString("community"));
        companyInfo.setLastmodifiedby(getUser().getRealname());
        companyInfo.setLastmodifieddate(new Date());
        companyInfo.setIsdel((byte)0);
        CompanyInfo companyInfoExist = companyService.selectExistByName(companyInfo.getId(),companyInfo.getCompany());
        if (null != companyInfoExist){
            msg.setCode(ErrorCode.ERROR_10004.getCode());
            msg.setMessage("单位名称重复");
            return msg;
        }else {
            companyService.updateById(companyInfo);
        }
        return msg;
    }
    /*@PostMapping("/addCompany")
    @ApiOperation(value = "添加单位信息",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "code",value = "单位代码"),
@@ -2013,7 +971,6 @@
        }
        return msg;
    }
     */
    @PostMapping("/delCompany")
    @ApiOperation(value = "删除单位信息", notes = "删除单位信息", response = Msg.class)
@@ -2639,27 +1596,5 @@
        String username = accountBody.getString("username");
        String password = accountBody.getString("department");
        return success(userService.getAccount(username, password));
    }
    /**
     * 获取专家用户列表
     */
    @GetMapping("/expert/list")
    @ApiOperation(value = "获取监管用户数据",response = Msg.class)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "realname",value = "姓名"),
    })
    public Msg getExpertUserList(String realname){
        Msg msg = new Msg();
        msg.setCode("200");
        msg.setMessage("success");
        HashMap<String, Object> condition = new HashMap<String, Object>();
        if (StringUtils.isNotBlank(realname)){
            condition.put("realname",realname.trim());
        }
        condition.put("roleId",36l);
        msg.setResult(userService.selectExpertList(realname));
        return msg;
    }
}
src/main/java/com/gk/hotwork/Domain/ElementManagement.java
@@ -7,7 +7,6 @@
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@TableName("element_management")
public class ElementManagement implements Serializable {
@@ -17,8 +16,12 @@
    /** 要素名称  name **/
    private String name;
    /** 要素级别  type  0:A级要素 1:B级要素**/
    /** 要素级别  type  0:一级要素,1:二级要素,2:三级要素**/
    private Integer type;
    /** 导则类型  menu_type(1:检查导则(标准)管理;2: 安全标准化管理) **/
    private Integer menuType;
    /** 父要素id  parent_id **/
    private Long parentId;
@@ -117,6 +120,14 @@
    }
    public Integer getMenuType() {
        return menuType;
    }
    public void setMenuType(Integer menuType) {
        this.menuType = menuType;
    }
    public String getName() {
        return name;
    }
src/main/java/com/gk/hotwork/Domain/ElementTree.java
@@ -19,12 +19,33 @@
    /** 标签  label **/
    private String label;
    /** 是否是叶节点 **/
    private boolean isLeaf;
    /** 值  value **/
    private Long value;
    /** 父级ID **/
    private Long pid;
    /** 子节点 **/
    private List<ElementTree> children;
    public Long getPid() {
        return pid;
    }
    public void setPid(Long pid) {
        this.pid = pid;
    }
    public boolean isLeaf() {
        return isLeaf;
    }
    public void setLeaf(boolean isLeaf) {
        this.isLeaf = isLeaf;
    }
    public String getLabel() {
        return label;
src/main/java/com/gk/hotwork/Domain/UserInfo.java
@@ -178,73 +178,6 @@
    private String slice;
    private String province;
    private String city;
    private String county;
    /**
     * 行政级别 1-省(自治区) 2-地(市、州) 3-区/县
     */
    private Integer executiveLevel;
    /**
     * 专业方向id
     */
    private Long specialityId;
    /**
     * 专业等级(1初级,2中级,3高级,4其他)
     */
    private Integer professionalLevel;
    public Long getSpecialityId() {
        return specialityId;
    }
    public void setSpecialityId(Long specialityId) {
        this.specialityId = specialityId;
    }
    public Integer getProfessionalLevel() {
        return professionalLevel;
    }
    public void setProfessionalLevel(Integer professionalLevel) {
        this.professionalLevel = professionalLevel;
    }
    public Integer getExecutiveLevel() {
        return executiveLevel;
    }
    public void setExecutiveLevel(Integer executiveLevel) {
        this.executiveLevel = executiveLevel;
    }
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getCounty() {
        return county;
    }
    public void setCounty(String county) {
        this.county = county;
    }
    public Long getRoleid() {
        return roleid;
    }
src/main/java/com/gk/hotwork/Domain/Vo/UserVo.java
@@ -1,6 +1,9 @@
package com.gk.hotwork.Domain.Vo;
import com.gk.hotwork.Domain.*;
import com.gk.hotwork.Domain.AuthorizationInfo;
import com.gk.hotwork.Domain.CompanyInfo;
import com.gk.hotwork.Domain.ExamScoreInfo;
import com.gk.hotwork.Domain.UserInfo;
import java.util.Date;
import java.util.List;
@@ -40,16 +43,6 @@
    private String roleSign;
    private CompanyInfo companyInfo;
    private SpecialityInfo specialityInfo;
    public SpecialityInfo getSpecialityInfo() {
        return specialityInfo;
    }
    public void setSpecialityInfo(SpecialityInfo specialityInfo) {
        this.specialityInfo = specialityInfo;
    }
    public String getToken() {
        return token;
src/main/java/com/gk/hotwork/Mapper/ElementManagementMapper.java
@@ -13,10 +13,12 @@
@Repository
public interface ElementManagementMapper extends BaseMapper<ElementManagement> {
    IPage<ElementManagement> selectPages(Page<ElementManagement> page, Map<String, Object> params);
    IPage<ElementManagement> selectPages(Page<ElementManagement> page,@Param("params") Map<String, Object> params);
    List<ElementManagement> getParentElement();
    List<ElementManagement> getElementByType(@Param("type") Integer type);
    List<Map<String,Object>> getElementTree();
}
src/main/java/com/gk/hotwork/Mapper/UserInfoMapper.java
@@ -21,8 +21,6 @@
    UserInfo selectByPrimaryKey(Long id);
    List<UserVo> selectUserDataGrid(Page<UserVo> page, Map<String, Object> record);
    List<UserVo> selectCompanyUserDataList(Page<UserVo> page, Map<String, Object> record);
    List<UserVo> selectSuperviseUserDataList(Page<UserVo> page, Map<String, Object> record);
    List<UserInfo> selectUserInfo(@Param("id") Long id, @Param("username") String username);
@@ -60,9 +58,4 @@
     查询by Id
     */
    UserInfo getByUserId(Long userId);
    List<UserVo> selectExpertUserDataList(Page<UserVo> page, Map<String, Object> record);
    List<UserInfo> selectExpertList(String realname);
}
src/main/java/com/gk/hotwork/Mapper/mybatis/ElementManagementMapper.xml
@@ -17,7 +17,7 @@
    <result column="remark" property="remark" jdbcType="VARCHAR" />
    <result column="point" property="point" jdbcType="VARCHAR" />
    <result column="weight" property="weight" />
    <result column="menu_type" property="menuType" jdbcType="VARCHAR"/>
  </resultMap>
  <select id="selectPages" resultMap="BaseResultMap">
    select a.*,
@@ -38,4 +38,13 @@
    select *  from element_management where valid_flag = 1 and type = #{type}
  </select>
  <select id="getElementTree" resultType="java.util.Map">
      select DISTINCT t.label,t.mt,t.type,t.pid,t.value,(case when (t.keyw is null and t.type>0) then  1 else  0 end ) as isLeaf from(
    select t1.mt,t1.label,t1.type,t1.value,t1.pid,t2.label as keyw
    from (select name as label,menu_type as mt,type,id as value,parent_id as pid from element_management WHERE valid_flag=1) t1  left join (select name as label,type,id as value,      parent_id as pid from element_management WHERE valid_flag=1) t2
    on t1.value=t2.pid) t
  </select>
</mapper>
src/main/java/com/gk/hotwork/Mapper/mybatis/UserInfoMapper.xml
@@ -69,10 +69,6 @@
      <result column="company_id" property="id"  />
      <result column="company" property="company"  />
    </association>
    <association property="specialityInfo" javaType="com.gk.hotwork.Domain.SpecialityInfo">
      <result column="speciality_id" property="id"  />
      <result column="speciality_name" property="name"  />
    </association>
  </resultMap>
  <sql id="Base_Column_List" >
    <!--          -->
@@ -148,199 +144,6 @@
    </where>
  </select>
  <select id="selectCompanyUserDataList" resultMap="UserVo">
    SELECT
    user.id,
    user.username,
    user.email,
    c.company,
    c.id company_id,
    user.department,
    user.job,
    user.createdby,
    user.createddate,
    user.lastmodifiedby,
    user.lastmodifieddate,
    user.status,
    user.expiredate,
    user.isdel,
    user.type,
    user.realname,
    user.idcard,
    user.iscompany,
    user.isdepartment,
    user.isupload,
    user.empno,
    user.deviceno,
    user.cardid,
    user.crossx,
    user.crossy,
    user.updateat,
    user.issecurityofficer,
    user.province,
    user.city,
    user.county,
    user.executive_level
    FROM
    `user` as user
    left join company as c on c.id = user.companyid
    left join userroles as r on r.userid = `user`.id
    <where>
        `user`.status = 1
        and  user.type != 1
      <if test="record.username != null and record.username !=''">
        and user.username like concat ('%',#{record.username,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.realname != null and record.realname !=''">
        and user.realname like concat ('%',#{record.realname,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.company != null and record.company !=''">
        and c.company like concat ('%',#{record.company,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.job != null and record.job !=''">
        and user.job like concat ('%',#{record.job,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.roleId != null">
        and r.roleid = #{record.roleId}
      </if>
    </where>
  </select>
  <select id="selectSuperviseUserDataList" resultMap="UserVo">
    SELECT
    user.id,
    user.username,
    user.email,
    user.company,
    c.id company_id,
    user.department,
    user.job,
    user.createdby,
    user.createddate,
    user.lastmodifiedby,
    user.lastmodifieddate,
    user.status,
    user.expiredate,
    user.isdel,
    user.type,
    user.realname,
    user.idcard,
    user.iscompany,
    user.isdepartment,
    user.isupload,
    user.empno,
    user.deviceno,
    user.cardid,
    user.crossx,
    user.crossy,
    user.updateat,
    user.issecurityofficer,
    user.province,
    user.city,
    user.county,
    user.executive_level
    FROM
    `user` as user
    left join company as c on c.id = user.companyid
    left join userroles as r on r.userid = `user`.id
    <where>
      `user`.status = 1
      and  user.type != 1
      <if test="record.username != null and record.username !=''">
        and user.username like concat ('%',#{record.username,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.realname != null and record.realname !=''">
        and user.realname like concat ('%',#{record.realname,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.company != null and record.company !=''">
        and user.company like concat ('%',#{record.company,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.job != null and record.job !=''">
        and user.job like concat ('%',#{record.job,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.roleId != null">
        and r.roleid = #{record.roleId}
      </if>
      <if test="record.province != null and record.province !=''">
        and user.province = #{record.province}
      </if>
      <if test="record.city != null and record.city !=''">
        and user.city = #{record.city}
      </if>
      <if test="record.county != null and record.county !=''">
        and user.county = #{record.county}
      </if>
    </where>
  </select>
  <select id="selectExpertUserDataList" resultMap="UserVo">
    SELECT
    user.id,
    user.username,
    user.email,
    user.company,
    c.id company_id,
    user.department,
    user.job,
    user.createdby,
    user.createddate,
    user.lastmodifiedby,
    user.lastmodifieddate,
    user.status,
    user.expiredate,
    user.isdel,
    user.type,
    user.realname,
    user.idcard,
    user.iscompany,
    user.isdepartment,
    user.isupload,
    user.empno,
    user.deviceno,
    user.cardid,
    user.crossx,
    user.crossy,
    user.updateat,
    user.issecurityofficer,
    user.province,
    user.city,
    user.county,
    user.executive_level,
    user.professional_level,
    user.speciality_id,
    s.name as speciality_name
    FROM
    `user` as user
    left join company as c on c.id = user.companyid
    left join userroles as r on r.userid = `user`.id
    left join speciality as s on s.id = `user`.speciality_id
    <where>
      `user`.status = 1
      and  user.type != 1
      <if test="record.username != null and record.username !=''">
        and user.username like concat ('%',#{record.username,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.realname != null and record.realname !=''">
        and user.realname like concat ('%',#{record.realname,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.company != null and record.company !=''">
        and user.company like concat ('%',#{record.company,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.job != null and record.job !=''">
        and user.job like concat ('%',#{record.job,jdbcType=VARCHAR},'%')
      </if>
      <if test="record.roleId != null">
        and r.roleid = #{record.roleId}
      </if>
      <if test="record.province != null and record.province !=''">
        and user.province = #{record.province}
      </if>
      <if test="record.city != null and record.city !=''">
        and user.city = #{record.city}
      </if>
      <if test="record.county != null and record.county !=''">
        and user.county = #{record.county}
      </if>
    </where>
  </select>
  <select id="selectUserInfo" resultType="com.gk.hotwork.Domain.UserInfo">
    select user.*,d.department departmentname
    from user as user
@@ -543,20 +346,6 @@
  <!--UserInfo getByUserId(Long userId);-->
  <select id="getByUserId" resultMap="BaseResultMap">
    select * from user where id = #{userId}
  </select>
  <select id="selectExpertList" resultType="com.gk.hotwork.Domain.UserInfo">
    select u.id,u.realname
    from user u
    left join userroles r on r.userid = u.id
    where
        u.status = 1
      and u.type != 1
    and r.roleid = 36
    <if test="realname != null and realname != ''">
      u.realname  like concat("%",#{realname},"%")
    </if>
  </select>
</mapper>
src/main/java/com/gk/hotwork/Service/ElementManagementService.java
@@ -42,4 +42,12 @@
    List<ElementTree> getElementTree();
    List<ElementManagement> getSuperElement(Integer type);
    List<ElementTree> getMenuType1Tree();
    List<ElementTree> getMenuType2Tree();
}
src/main/java/com/gk/hotwork/Service/ServiceImpl/ElementManagementImpl.java
@@ -37,7 +37,6 @@
        return elementManagementMapper.selectPages(page,filter);
    }
    /**
    * @Description: 新增
    */
@@ -88,42 +87,93 @@
        return elementManagementMapper.getElementByType(0);
    }
    @Override
    public List<ElementTree> getElementTree() {
        List<ElementTree> elementTreeList = new ArrayList<>();
    public List<ElementTree> getChindrenTree(List<Map<String,Object>> list,Long pid){
        List<ElementTree> elementTreeList = new ArrayList<ElementTree>();
        for (Map<String,Object> e : list) {
            if(e.get("pid")!=null && pid.toString().equals(e.get("pid").toString())){
        List<ElementManagement> list1 = elementManagementMapper.getElementByType(0);
        List<ElementManagement> list2 = elementManagementMapper.getElementByType(1);
        if (CollectionUtils.isNotEmpty(list1)){
            for (ElementManagement elementManagement : list1){
                ElementTree elementTree=new ElementTree();
                elementTree.setType(0);
                elementTree.setLabel(elementManagement.getName());
                elementTree.setValue(elementManagement.getId());
                elementTree.setType(Integer.valueOf(e.get("type").toString()));
                elementTree.setLabel(e.get("label").toString());
                elementTree.setValue(Long.valueOf(e.get("value").toString()));
                elementTree.setLeaf(e.get("isLeaf").toString().equals("1")?true:false);
                if(elementTree.isLeaf()){
                    elementTree.setChildren(new ArrayList<ElementTree>());
                elementTreeList.add(elementTree);
            }
        }
        if (CollectionUtils.isNotEmpty(list2)) {
            for (int i = 0; i < list2.size(); i++) {
                for (int j = 0; j < elementTreeList.size(); j++) {
                    if (list2.get(i).getParentId().equals(elementTreeList.get(j).getValue())) {
                        if (CollectionUtils.isEmpty(elementTreeList.get(j).getChildren())) {
                            //如果为空 则new一个出来
                            elementTreeList.get(j).setChildren(new ArrayList<>());
                        }
                        ElementTree elementTree = new ElementTree();
                        elementTree.setType(1);
                        elementTree.setLabel(list2.get(i).getName());
                        elementTree.setValue(list2.get(i).getId());
                        elementTreeList.get(j).getChildren().add(elementTree);
                    }
                }else{
                    elementTree.setChildren(getChindrenTree(list,elementTree.getValue()));
                    elementTreeList.add(elementTree);
                }
            }
        }
        return elementTreeList;
    }
    @Override
    public List<ElementTree> getElementTree() {
        List<ElementTree> returnTree = new ArrayList<>();
        List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
        for (Map<String, Object> map : list) {
            if(map.get("pid")==null){ //一级要素
                ElementTree elementTree=new ElementTree();
                elementTree.setType(Integer.valueOf(map.get("type").toString()));
                elementTree.setLabel(map.get("label").toString());
                elementTree.setValue(Long.valueOf(map.get("value").toString()));
                elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
                elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
                returnTree.add(elementTree);
            }else{
                continue;
            }
        }
        return returnTree;
    }
    @Override
    public List<ElementTree> getMenuType1Tree() {
        List<ElementTree> returnTree = new ArrayList<>();
        List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
        for (Map<String, Object> map : list) {
            if(map.get("pid")==null && "1".equals(map.get("mt").toString())){ //一级要素,MenuType1
                ElementTree elementTree=new ElementTree();
                elementTree.setType(Integer.valueOf(map.get("type").toString()));
                elementTree.setLabel(map.get("label").toString());
                elementTree.setValue(Long.valueOf(map.get("value").toString()));
                elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
                elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
                returnTree.add(elementTree);
            }else{
                continue;
            }
        }
        return returnTree;
    }
    @Override
    public List<ElementTree> getMenuType2Tree() {
        List<ElementTree> returnTree = new ArrayList<>();
        List<Map<String,Object>> list = elementManagementMapper.getElementTree(); //读取元素配置
        for (Map<String, Object> map : list) {
            if(map.get("pid")==null && "2".equals(map.get("mt").toString())){ //一级要素,MenuType2
                ElementTree elementTree=new ElementTree();
                elementTree.setType(Integer.valueOf(map.get("type").toString()));
                elementTree.setLabel(map.get("label").toString());
                elementTree.setValue(Long.valueOf(map.get("value").toString()));
                elementTree.setLeaf(map.get("isLeaf").toString().equals("1")?true:false);
                elementTree.setChildren(getChindrenTree(list,Long.valueOf(map.get("value").toString())));
                returnTree.add(elementTree);
            }else{
                continue;
            }
        }
        return returnTree;
    }
    /**
     * 查询验证
@@ -163,4 +213,10 @@
            if (count > 0) throw new BusinessException("当前A级要素仍然有已绑定的B级要素,无法删除");
        }
    }
    @Override
    public List<ElementManagement> getSuperElement(Integer type) {
        return elementManagementMapper.getElementByType(type);
    }
}
src/main/java/com/gk/hotwork/Service/ServiceImpl/UserServiceImpl.java
@@ -75,86 +75,6 @@
    }
    @Override
    public void selectCompanyUserDataGrid(PageInfo pageInfo) {
        Page<UserVo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
        List<OrderItem> orderItems = new ArrayList<>();
        OrderItem orderItem = new OrderItem();
        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
            orderItem.setColumn(pageInfo.getSort());
        }else {
            orderItem.setAsc(false);
            orderItem.setColumn("createddate");
        }
        orderItems.add(orderItem);
        page.setOrders(orderItems);
        List<UserVo> list = userInfoMapper.selectCompanyUserDataList(page,pageInfo.getCondition());
        for (UserVo userVo : list) {
            List<RoleInfo> roleInfoList = roleService.selectRoleByUser(userVo.getId());
            userVo.setRoles(roleInfoList);
            UserFace userFace = userFaceService.selectByUserId(userVo.getId());
            if (userFace != null)
                userVo.setCode(userFace.getCode());
        }
        pageInfo.setResult(list);
        pageInfo.setTotalCount(page.getTotal());
    }
    @Override
    public void selectSuperviseUserDataGrid(PageInfo pageInfo) {
        Page<UserVo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
        List<OrderItem> orderItems = new ArrayList<>();
        OrderItem orderItem = new OrderItem();
        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
            orderItem.setColumn(pageInfo.getSort());
        }else {
            orderItem.setAsc(false);
            orderItem.setColumn("createddate");
        }
        orderItems.add(orderItem);
        page.setOrders(orderItems);
        List<UserVo> list = userInfoMapper.selectSuperviseUserDataList(page,pageInfo.getCondition());
        for (UserVo userVo : list) {
            List<RoleInfo> roleInfoList = roleService.selectRoleByUser(userVo.getId());
            userVo.setRoles(roleInfoList);
            UserFace userFace = userFaceService.selectByUserId(userVo.getId());
            if (userFace != null)
                userVo.setCode(userFace.getCode());
        }
        pageInfo.setResult(list);
        pageInfo.setTotalCount(page.getTotal());
    }
    @Override
    public void selectExpertUserDataGrid(PageInfo pageInfo) {
        Page<UserVo> page = new Page<>(pageInfo.getPageIndex(), pageInfo.getPageSize());
        List<OrderItem> orderItems = new ArrayList<>();
        OrderItem orderItem = new OrderItem();
        if (StringUtils.isNotBlank(pageInfo.getSort()) && StringUtils.isNotBlank(pageInfo.getOrder())) {
            orderItem.setAsc(pageInfo.getOrder().equalsIgnoreCase("ascending"));
            orderItem.setColumn(pageInfo.getSort());
        }else {
            orderItem.setAsc(false);
            orderItem.setColumn("createddate");
        }
        orderItems.add(orderItem);
        page.setOrders(orderItems);
        List<UserVo> list = userInfoMapper.selectExpertUserDataList(page,pageInfo.getCondition());
        for (UserVo userVo : list) {
            List<RoleInfo> roleInfoList = roleService.selectRoleByUser(userVo.getId());
            userVo.setRoles(roleInfoList);
        }
        pageInfo.setResult(list);
        pageInfo.setTotalCount(page.getTotal());
    }
    @Override
    public List<UserInfo> selectExpertList(String realname) {
        List<UserInfo> userInfos = userInfoMapper.selectExpertList(realname);
        return userInfos;
    }
    @Override
    public UserInfo selectByUser(String username) {
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername(username);
@@ -518,8 +438,4 @@
    public UserInfo getByUserId(Long userId) {
        return userInfoMapper.getByUserId(userId);
    }
}
src/main/java/com/gk/hotwork/Service/UserService.java
@@ -21,9 +21,6 @@
    void selectUserDataGrid(PageInfo pageInfo);
    void selectCompanyUserDataGrid(PageInfo pageInfo);
    void selectSuperviseUserDataGrid(PageInfo pageInfo);
    UserInfo selectByUser(String username);
    List<UserInfo> selectUserInfo(Long id, String username);
@@ -111,8 +108,4 @@
     */
    UserInfo getByUserId(Long userId);
    void selectExpertUserDataGrid(PageInfo pageInfo);
    List<UserInfo> selectExpertList(String realname);
}