Ver código fonte

app团队添加

Qchen 1 ano atrás
pai
commit
0de986146b

+ 64 - 3
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.controller;
 
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -820,15 +821,15 @@ public class SysUserController extends BaseController {
         //by gws 21	团队长 20	代理人 必须归属团队
         //by gws 21	团队长 20	代理人 必须归属团队
         // 22	后线人员 必须归属部门
         // 22	后线人员 必须归属部门
         SysUser sysUser = sysUserVo.getSysUser();
         SysUser sysUser = sysUserVo.getSysUser();
-        SysUserInfo sysUserInfo = new SysUserInfo();
-        if (sysUserVo.getIsPartner().equals("1")) {
+        if (sysUserVo.getIsPartner() != null && sysUserVo.getIsPartner().equals("1")) {
+            SysUserInfo sysUserInfo = new SysUserInfo();
             SysUser partnerId = sysUserService.getById(sysUserVo.getSysUser().getReferrerId());
             SysUser partnerId = sysUserService.getById(sysUserVo.getSysUser().getReferrerId());
             sysUser.setDeptId(partnerId.getDeptId());
             sysUser.setDeptId(partnerId.getDeptId());
             sysUser.setStatus(2); //直接默认为入司待审核
             sysUser.setStatus(2); //直接默认为入司待审核
             LocalDate birthday = LocalDate.parse(sysUser.getIdentity().substring(6, 10) + "-" + sysUser.getIdentity().substring(10, 12) + "-" + sysUser.getIdentity().substring(12, 14));
             LocalDate birthday = LocalDate.parse(sysUser.getIdentity().substring(6, 10) + "-" + sysUser.getIdentity().substring(10, 12) + "-" + sysUser.getIdentity().substring(12, 14));
             sysUserInfo.setBirthday(birthday);
             sysUserInfo.setBirthday(birthday);
+            sysUserVo.setSysUserInfo(sysUserInfo);
         }
         }
-        sysUserVo.setSysUserInfo(sysUserInfo);
         if (StringUtils.isNullOrEmpty(sysUser)) {
         if (StringUtils.isNullOrEmpty(sysUser)) {
             return HttpResult.error("用户信息不能为空");
             return HttpResult.error("用户信息不能为空");
         }
         }
@@ -870,6 +871,66 @@ public class SysUserController extends BaseController {
         return sysUserService.saveUserInfo(sysUserVo);
         return sysUserService.saveUserInfo(sysUserVo);
     }
     }
 
 
+    @ApiOperation(value = "保存用户基本详情信息")
+    @PostMapping(value = "/saveTeamLeader")
+    public HttpResult saveTeamLeader(@RequestBody SysUser2Vo sysUserVo) {
+        SysUser sysUser = sysUserVo.getSysUser();
+        SysUserInfo sysUserInfo = new SysUserInfo();
+        LocalDate birthday = LocalDate.parse(sysUser.getIdentity().substring(6, 10) + "-" + sysUser.getIdentity().substring(10, 12) + "-" + sysUser.getIdentity().substring(12, 14));
+        sysUserInfo.setBirthday(birthday);
+        sysUserVo.setSysUserInfo(sysUserInfo);
+        // 先创建工作室下的团队
+        SysDept sysDept = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getLeaderId, sysUser.getReferrerId()));
+        SysDeptVo sysDeptVo = new SysDeptVo();
+        sysDeptVo.setName(sysUser.getName() + "团队"); // 以人名设置工作室名称
+        sysDeptVo.setDeptType("D"); // 默认为子公司
+        sysDeptVo.setParentId(sysDept.getId());
+        sysDeptVo.setManagementSource(sysDept.getManagementSource()); //机构来源
+        sysDeptVo.setOrderNum(0);
+        sysDeptService.addDept(sysDeptVo);
+
+
+        if (StringUtils.isNullOrEmpty(sysUser)) {
+            return HttpResult.error("用户信息不能为空");
+        }
+        if (StringUtils.isNullOrEmpty(sysDeptVo.getId())) {
+            return HttpResult.error("机构ID不能为空");
+        }
+        if (StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
+            throw new SystemException("角色id不能为空");
+        }
+        //获取机构层级
+        int deptLevel = sysUserService.getDeptLevel1(sysDeptVo.getId());
+        if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
+            if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())
+                    || RoleConstants.R20.getCode().equals(sysUser.getRoleId())
+                    || RoleConstants.R19.getCode().equals(sysUser.getRoleId())) {//19 出单员 21	团队长 20	代理人
+
+                if (deptLevel != 6) {
+                    throw new SystemException("团队长、代理人、出单员只能归属团队中");
+                }
+                //如果为团队长,判断是否已经存在团队长,存在不允许添加   add by  hxl  2024-05-07  ============begin
+                if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())) {
+                    int count = sysUserService.getCountByDeptAndRoleId(sysUser);
+                    if (count > 0) {
+                        throw new SystemException("该机构已存在团队长,不允许再添加!!");
+                    }
+                }
+                // =========================add by hxl   end ====================
+            } else if (RoleConstants.R18.getCode().equals(sysUser.getRoleId())) { // 42 门店长
+                if (deptLevel != 5) {
+                    throw new SystemException("机构管理员只能归属机构中");
+                }
+            } else if (RoleConstants.R17.getCode().equals(sysUser.getRoleId())) {
+                if (deptLevel != 4) {
+                    throw new SystemException("部长只能归属于4级");
+                }
+            }
+
+        }
+        return sysUserService.saveUserInfo1(sysUserVo, sysDeptVo);
+    }
+
 
 
     @ApiOperation(value = "修改用户详情信息")
     @ApiOperation(value = "修改用户详情信息")
     @PostMapping(value = "/updateUserInfo/{userId}")
     @PostMapping(value = "/updateUserInfo/{userId}")

+ 2 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUser2Vo.java

@@ -32,6 +32,8 @@ public class SysUser2Vo {
     private List<EsmUserImageVo> esmUserImageVo;
     private List<EsmUserImageVo> esmUserImageVo;
 
 
 
 
+
+
     public List<EsmUserImageVo> getEsmUserImageVo() {
     public List<EsmUserImageVo> getEsmUserImageVo() {
         return ObjectUtils.isEmpty(esmUserImageVo) ? Collections.emptyList() : esmUserImageVo;
         return ObjectUtils.isEmpty(esmUserImageVo) ? Collections.emptyList() : esmUserImageVo;
     }
     }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -125,6 +125,8 @@ public interface SysUserService extends BaseIService<SysUser> {
 
 
     HttpResult saveUserInfo(SysUser2Vo sysUserVo);
     HttpResult saveUserInfo(SysUser2Vo sysUserVo);
 
 
+    HttpResult saveUserInfo1(SysUser2Vo sysUserVo,SysDeptVo sysDeptVo);
+
     /**
     /**
      * 人员修改
      * 人员修改
      *
      *
@@ -138,6 +140,8 @@ public interface SysUserService extends BaseIService<SysUser> {
 
 
     int getDeptLevel(SysUser2Vo sysUser2Vo);
     int getDeptLevel(SysUser2Vo sysUser2Vo);
 
 
+    int getDeptLevel1(String deptId);
+
     /**
     /**
      * 根据机构代码,查询所有人员
      * 根据机构代码,查询所有人员
      *
      *

+ 110 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -684,6 +684,103 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return HttpResult.ok("新增成功");
         return HttpResult.ok("新增成功");
     }
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult saveUserInfo1(SysUser2Vo sysUserVo, SysDeptVo sysDeptVo) {
+        SysUser sysUser = sysUserVo.getSysUser();
+        // 手机号
+        List<SysUser> mobileList = lambdaQuery().eq(SysUser::getMobile, sysUser.getMobile()).list();
+        if (!mobileList.isEmpty()) {
+            throw new SystemException("手机号已经注册请更换手机号。");
+        }
+        // 身份证号
+        List<SysUser> identityList = lambdaQuery().eq(SysUser::getIdentity, sysUser.getIdentity()).list();
+        if (!identityList.isEmpty()) {
+            throw new SystemException("身份证号已经注册请更换身份证号。");
+        }
+
+        //处理密码
+        if (StringUtils.isNotEmpty(sysUser.getPassword())) {
+            String salt = PasswordUtils.getSalt();
+            String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
+            sysUser.setPassword(pwd);
+            sysUser.setSalt(salt);
+        } else {
+            return HttpResult.error("密码不能为空");
+        }
+        String userId = "";
+        if ("19".equals(sysUser.getRoleId())) {//19 出单员 校验机构和业务员机构是否一致
+            // add by  hxl  2024-08-20
+            // return checkChuDanUser(sysUser);
+            if (StringUtils.isEmpty(sysUser.getReferrerId())) {
+                return HttpResult.error("业务员工号不能为空");
+            }
+            //归属业务员和出单员部门必须一致
+            SysUser user = getById(sysUser.getReferrerId());
+            if (user == null || !user.getDeptId().equals(sysUser.getDeptId())) {
+                return HttpResult.error("出单员机构必须和归属业务员机构一致");
+            }
+            sysUser.setOperatorCode(sysUser.getReferrerId());
+            if (StringUtils.isEmpty(sysUser.getId())) {
+                userId = gainNextUserId(sysUser.getDeptId());
+                sysUser.setId(userId);
+                save(sysUser);
+                //角色配置
+                SysUserRole userRole = new SysUserRole();
+                userRole.setUserId(sysUser.getId());
+                userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
+                sysUserRoleService.save(userRole);
+            } else {
+                userId = sysUser.getId();
+                updateById(sysUser);
+            }
+            SysUserInfo userInfo = sysUserVo.getSysUserInfo();
+            userInfo.setId(sysUser.getId());
+            sysUserInfoService.save(userInfo);
+        } else {
+            userId = gainNextUserId(sysDeptVo.getId());
+
+            if (RoleConstants.R22.getCode().equals(sysUser.getRoleId())) {//22	后线人员
+                if (!SysConstants.isAdministration(userId)) {
+                    throw new SystemException("后线人员只能公司部门中");
+                }
+            }
+
+            sysUser.setId(userId);
+            sysUser.setDeptId(sysDeptVo.getId());
+            sysUser.setStatus(2);
+            save(sysUser);
+
+            //角色配置
+            SysUserRole userRole = new SysUserRole();
+            userRole.setUserId(sysUser.getId());
+            userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
+            sysUserRoleService.save(userRole);
+            if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
+                //推荐人
+                esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
+            } else if ("20".equals(sysUser.getRoleId()) || "21".equals(sysUser.getRoleId())) {
+                //如果是 团队长或代码人 并且没有推荐人 则默认推荐人为自己
+                esmUserReferrerService.addReferrer(sysUser.getId(), userId);
+            }
+            SysUserInfo userInfo = sysUserVo.getSysUserInfo();
+            if (userInfo != null) {
+                if (null != userInfo.getLiveAddressString() && userInfo.getLiveAddressString().length > 0) {
+                    sysUserVo.getSysUserInfo().setLiveAddress(Arrays.stream(userInfo.getLiveAddressString()).map(item -> item.toString()).collect(Collectors.joining(",")));
+                }
+                userInfo.setId(sysUser.getId());
+            }
+//        userInfo.setId(sysUser.getId());
+            sysUserInfoService.save(userInfo);
+        }
+        List<EsmUserImageVo> esmUserImageVo = sysUserVo.getEsmUserImageVo();
+        String finalUserId = userId;
+        List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, finalUserId)).collect(Collectors.toList());
+        esmUserImageService.saveBatch(esmUserImages);
+        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId, BaseController.getUserName());
+        return HttpResult.ok("新增成功");
+    }
+
     /**
     /**
      * 新增修改出单员
      * 新增修改出单员
      *
      *
@@ -872,6 +969,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return level;
         return level;
     }
     }
 
 
+    @Override
+    public int getDeptLevel1(String deptId) {
+        int level = 0;
+        //1 2 3 4 5级 M 6级 D
+        if (deptId.length() > 8) {
+            String substring = deptId.substring(8);
+            return substring.length() / 3 + 4;
+        } else {
+            level = deptId.length() / 2;
+        }
+        return level;
+    }
+
     /**
     /**
      * 根据机构代码,查询所有人员
      * 根据机构代码,查询所有人员
      *
      *