diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 56c1f8f..df05b04 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -158,7 +158,13 @@ public class SysUserController extends BaseController HashSet accounts = new HashSet<>(); while (accounts.size() < num) { String randomUserName = RandomStringUtils.randomAlphanumeric(8); - accounts.add(randomUserName); + //查询是否有相同账号 + SysUser param = new SysUser(); + param.setUserName(randomUserName); + if(!userService.checkUserNameUnique(param)){ + }else{ + accounts.add(randomUserName); + } } for(String account : accounts) { SysUser nuser = new SysUser(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java index 8dc7faa..66e1001 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java @@ -70,7 +70,7 @@ public class UserConstants /** * 用户名长度限制 */ - public static final int USERNAME_MIN_LENGTH = 2; + public static final int USERNAME_MIN_LENGTH = 1; public static final int USERNAME_MAX_LENGTH = 20; /** diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java index a1f058a..f8c30c2 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java @@ -68,7 +68,7 @@ public class KhEmployeeController extends BaseController @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { - ExcelUtil util = new ExcelUtil(KhEmployee.class); + ExcelUtil util = new ExcelUtil<>(KhEmployee.class); List empList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = khEmployeeService.importEmp(empList, updateSupport, operName); @@ -100,7 +100,7 @@ public class KhEmployeeController extends BaseController @PostMapping public AjaxResult add(@RequestBody KhEmployee khEmployee) { - return toAjax(khEmployeeService.insertKhEmployee(khEmployee)); + return khEmployeeService.insertKhEmployee(khEmployee); } /** diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java index 64c83a3..9ec16d3 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java @@ -28,7 +28,7 @@ public class KhEmployee extends BaseEntity { /** * 部门ID */ - @Excel(name = "部门ID") + @Excel(name = "*部门ID") private Long deptId; /** @@ -40,13 +40,13 @@ public class KhEmployee extends BaseEntity { /** * 职工姓名 */ - @Excel(name = "职工姓名") + @Excel(name = "*职工姓名") private String empName; /** * 工号 */ - @Excel(name = "工号") + @Excel(name = "*工号") private String wordId; /** diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java index 76ffa37..5f28641 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java @@ -1,6 +1,8 @@ package com.ruoyi.kaohe.service; import java.util.List; + +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.kaohe.domain.KhEmployee; /** @@ -33,7 +35,7 @@ public interface IKhEmployeeService * @param khEmployee 职工信息 * @return 结果 */ - public int insertKhEmployee(KhEmployee khEmployee); + public AjaxResult insertKhEmployee(KhEmployee khEmployee); /** * 修改职工信息 diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java index f36a839..b42cdfe 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java @@ -1,7 +1,9 @@ package com.ruoyi.kaohe.service.impl; +import java.util.ArrayList; import java.util.List; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.ServiceException; @@ -10,6 +12,7 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanValidators; import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.system.service.ISysUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,9 +20,12 @@ import org.springframework.stereotype.Service; import com.ruoyi.kaohe.mapper.KhEmployeeMapper; import com.ruoyi.kaohe.domain.KhEmployee; import com.ruoyi.kaohe.service.IKhEmployeeService; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + /** * 职工信息Service业务层处理 * @@ -32,6 +38,8 @@ public class KhEmployeeServiceImpl implements IKhEmployeeService { private KhEmployeeMapper khEmployeeMapper; @Resource private SysDeptMapper deptMapper; + @Autowired + private ISysUserService userService; private static final Logger log = LoggerFactory.getLogger(KhEmployeeServiceImpl.class); @@ -64,9 +72,33 @@ public class KhEmployeeServiceImpl implements IKhEmployeeService { * @return 结果 */ @Override - public int insertKhEmployee(KhEmployee khEmployee) { + @Transactional + public AjaxResult insertKhEmployee(KhEmployee khEmployee) { khEmployee.setCreateTime(DateUtils.getNowDate()); - return khEmployeeMapper.insertKhEmployee(khEmployee); + // 验证是否存在这个职工 工号唯一性 + KhEmployee param = new KhEmployee(); + param.setWordId(khEmployee.getWordId()); + List e = khEmployeeMapper.selectKhEmployeeList(param); + if (StringUtils.isNull(e) || e.size() == 0) { + int r = khEmployeeMapper.insertKhEmployee(khEmployee); + ///生成对应的用户账号,工号为账号 + SysUser user= new SysUser(); + user.setUserName(khEmployee.getWordId()); + if (userService.checkUserNameUnique(user)) + { + user.setCreateBy(getUsername()); + user.setNickName(khEmployee.getEmpName()); + user.setPassword(SecurityUtils.encryptPassword("111111")); + user.setDeptId(khEmployee.getDeptId()); + Long[] roleIds = {102L}; //固定的评分账号角色id + user.setRoleIds(roleIds); + userService.insertUser(user); + } + return r>0 ? AjaxResult.success() : AjaxResult.error(); + }else{ + return AjaxResult.error("工号已存在!"); + } + } /** @@ -104,40 +136,57 @@ public class KhEmployeeServiceImpl implements IKhEmployeeService { } @Override + @Transactional public String importEmp(List empList, boolean updateSupport, String operName) { if (StringUtils.isNull(empList) || empList.size() == 0) { throw new ServiceException("导入职工数据不能为空!"); } + List userEmp = new ArrayList();//存放需要生成用户的 int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); for (KhEmployee employee : empList) { try { + if(StringUtils.isEmpty(employee.getSex())){ + employee.setSex("2"); + } //根据deptId查询deptName SysDept sysDept = deptMapper.selectDeptById(employee.getDeptId()); employee.setDeptName(sysDept.getDeptName()); - // 验证是否存在这个职工 + // 验证是否存在这个职工 工号唯一性 KhEmployee param = new KhEmployee(); - param.setEmpName(employee.getEmpName()); - param.setDeptId(employee.getDeptId()); + param.setWordId(employee.getWordId()); List e = khEmployeeMapper.selectKhEmployeeList(param); if (StringUtils.isNull(e) || e.size() == 0) { khEmployeeMapper.insertKhEmployee(employee); successNum++; - successMsg.append("
" + successNum + "、账号 " + employee.getEmpName() + " 导入成功"); + successMsg.append("
" + successNum + "、工号 " + employee.getWordId() + " 导入成功"); + ///生成对应的用户账号,工号为账号 + SysUser user= new SysUser(); + user.setUserName(employee.getWordId()); + if (userService.checkUserNameUnique(user)) + { + user.setCreateBy(getUsername()); + user.setNickName(employee.getEmpName()); + user.setPassword(SecurityUtils.encryptPassword("111111")); + user.setDeptId(employee.getDeptId()); + Long[] roleIds = {102L}; //固定的评分账号角色id + user.setRoleIds(roleIds); + userService.insertUser(user); + } } else if (updateSupport) { employee.setId(e.get(0).getId()); khEmployeeMapper.updateKhEmployee(employee); successNum++; - successMsg.append("
" + successNum + "、账号 " + employee.getEmpName() + " 更新成功"); + successMsg.append("
" + successNum + "、工号 " + employee.getWordId() + " 更新成功"); } else { failureNum++; - failureMsg.append("
" + failureNum + "、账号 " + employee.getEmpName() + " 已存在"); + failureMsg.append("
" + failureNum + "、工号 " + employee.getWordId() + " 已存在"); } } catch (Exception e) { failureNum++; - String msg = "
" + failureNum + "、账号 " + employee.getEmpName() + " 导入失败:"; + String msg = "
" + failureNum + "、工号 " + employee.getWordId() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); }