| | |
| | | import org.springblade.common.cache.ParamCache; |
| | | import org.springblade.common.cache.SysCache; |
| | | import org.springblade.common.cache.UserCache; |
| | | import org.springblade.common.constant.AgeUtil; |
| | | import org.springblade.common.constant.CommonConstant; |
| | | import org.springblade.common.constant.TenantConstant; |
| | | import org.springblade.common.enums.DictEnum; |
| | |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.*; |
| | | import org.springblade.modules.auth.enums.UserEnum; |
| | | import org.springblade.modules.dispatcher.service.IDispatcherService; |
| | | import org.springblade.modules.dispatcher.vo.DispatcherUnitVO; |
| | | import org.springblade.modules.dispatcher.vo.DispatcherVO; |
| | | import org.springblade.modules.information.entity.Information; |
| | | import org.springblade.modules.information.service.IInformationService; |
| | | import org.springblade.modules.jurisdiction.entity.Jurisdiction; |
| | | import org.springblade.modules.system.entity.*; |
| | | import org.springblade.modules.system.excel.UserExcel; |
| | | import org.springblade.modules.system.mapper.UserMapper; |
| | | import org.springblade.modules.system.node.TreeNode; |
| | | import org.springblade.modules.system.service.IRoleService; |
| | | import org.springblade.modules.system.service.IUserDeptService; |
| | | import org.springblade.modules.system.service.IUserOauthService; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | |
| | | import static org.springblade.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD; |
| | | |
| | |
| | | private final IUserOauthService userOauthService; |
| | | private final IRoleService roleService; |
| | | private final BladeTenantProperties tenantProperties; |
| | | private final IInformationService iInformationService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (Func.isNotEmpty(user.getPassword())) { |
| | | user.setPassword(DigestUtil.encrypt(user.getPassword())); |
| | | } |
| | | Integer userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount())); |
| | | if (userCount > 0 && Func.isEmpty(user.getId())) { |
| | | throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount())); |
| | | } |
| | | // Integer userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount())); |
| | | // if (userCount > 0 && Func.isEmpty(user.getId())) { |
| | | // throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount())); |
| | | // } |
| | | return save(user) && submitUserDept(user); |
| | | } |
| | | |
| | |
| | | }); |
| | | userDeptService.remove(Wrappers.<UserDept>update().lambda().eq(UserDept::getUserId, user.getId())); |
| | | return userDeptService.saveBatch(userDeptList); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<UserVO> selectUserPages(IPage<UserVO> page, UserVO user) { |
| | | List<UserVO> userVOS = baseMapper.selectUserPages(page, user); |
| | | userVOS.forEach(userVO -> { |
| | | if (null!=userVO.getCardid() && userVO.getCardid()!=""){ |
| | | userVO.setAge(AgeUtil.idCardToAge(userVO.getCardid())); |
| | | }else { |
| | | userVO.setAge(null); |
| | | } |
| | | }); |
| | | return page.setRecords(userVOS); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public void importUser(List<UserExcel> data, Boolean isCovered) { |
| | | data.forEach(userExcel -> { |
| | | User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class)); |
| | | // 设置用户平台 |
| | | user.setUserType(Func.toInt(DictCache.getKey(DictEnum.USER_TYPE, userExcel.getUserTypeName()), 1)); |
| | | // 设置部门ID |
| | | user.setDeptId(SysCache.getDeptIds(userExcel.getTenantId(), userExcel.getDeptName())); |
| | | // 设置岗位ID |
| | | user.setPostId(SysCache.getPostIds(userExcel.getTenantId(), userExcel.getPostName())); |
| | | // 设置角色ID |
| | | user.setRoleId(SysCache.getRoleIds(userExcel.getTenantId(), userExcel.getRoleName())); |
| | | // 设置租户ID |
| | | if (!AuthUtil.isAdministrator() || StringUtil.isBlank(user.getTenantId())) { |
| | | user.setTenantId(AuthUtil.getTenantId()); |
| | | } |
| | | // 覆盖数据 |
| | | if (isCovered) { |
| | | // 查询用户是否存在 |
| | | User oldUser = UserCache.getUser(userExcel.getTenantId(), userExcel.getAccount()); |
| | | if (oldUser != null && oldUser.getId() != null) { |
| | | user.setId(oldUser.getId()); |
| | | this.updateUser(user); |
| | | return; |
| | | user.setTenantId("000000"); |
| | | //默认在职 |
| | | user.setStatus(1); |
| | | //判断是否持证 |
| | | if (null != userExcel.getHold() && userExcel.getHold() != "") { |
| | | if (userExcel.getHold().equals("是")) { |
| | | user.setHold("1"); |
| | | } |
| | | if(userExcel.getHold().equals("否")) { |
| | | user.setHold("2"); |
| | | } |
| | | } |
| | | // 获取默认密码配置 |
| | | String initPassword = ParamCache.getValue(DEFAULT_PARAM_PASSWORD); |
| | | user.setPassword(initPassword); |
| | | //分配保安角色 |
| | | Role role = new Role(); |
| | | role.setRoleAlias("保安"); |
| | | Role oneRole = roleService.getOne(Condition.getQueryWrapper(role)); |
| | | user.setRoleId(oneRole.getId().toString()); |
| | | //性别 |
| | | if (null!=userExcel.getSex()) { |
| | | if (userExcel.getSex().equals("男")) { |
| | | user.setSex(1); |
| | | } |
| | | if (userExcel.getSex().equals("女")) { |
| | | user.setSex(2); |
| | | } |
| | | } |
| | | //设置部门id |
| | | user.setDeptId(userDeptService.selectIn(user.getDeptId())); |
| | | //设置账号 |
| | | user.setAccount(user.getCardid()); |
| | | //获取默认密码配置 |
| | | user.setPassword(user.getCardid().substring(user.getCardid().length()-6)); |
| | | // user.setPassword(ParamCache.getValue(DEFAULT_PARAM_PASSWORD)); |
| | | //新增 |
| | | this.submit(user); |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public List<UserExcel> exportUser(Wrapper<User> queryWrapper) { |
| | | List<UserExcel> userList = baseMapper.exportUser(queryWrapper); |
| | | userList.forEach(user -> { |
| | | user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); |
| | | user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId()))); |
| | | user.setDeptName(StringUtil.join(SysCache.getDeptNames(user.getDeptId()))); |
| | | user.setPostName(StringUtil.join(SysCache.getPostNames(user.getPostId()))); |
| | | }); |
| | | return userList; |
| | | } |
| | | // @Override |
| | | // public List<UserExcel> exportUser(Wrapper<User> queryWrapper) { |
| | | // List<UserExcel> userList = baseMapper.exportUser(queryWrapper); |
| | | // userList.forEach(user -> { |
| | | // user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); |
| | | // user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId()))); |
| | | // user.setDeptName(StringUtil.join(SysCache.getDeptNames(user.getDeptId()))); |
| | | // user.setPostName(StringUtil.join(SysCache.getPostNames(user.getPostId()))); |
| | | // }); |
| | | // return userList; |
| | | // } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | |
| | | /** |
| | | * 通过 身份证号查询用户信息 |
| | | * |
| | | * @param idCardNo 身份证号 |
| | | * @return |
| | | */ |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<User> selectUserPageSecurity(IPage<User> page, User user, Long deptId, String tenantId) { |
| | | List<Long> deptIdList = SysCache.getDeptChildIds(deptId); |
| | | return page.setRecords(baseMapper.selectUserPageSecurity(page, user, deptIdList, tenantId)); |
| | | public IPage<User> selectUserPageSecurity(IPage<User> page, User user) { |
| | | return page.setRecords(baseMapper.selectUserPageSecurity(page, user)); |
| | | } |
| | | |
| | | /** |
| | | * 自定义用户列表(只有保安员),根据保安员查 |
| | | */ |
| | | @Override |
| | | public List<User> selectUserPageSecurityUnit(IPage<User> page, User user) { |
| | | return baseMapper.selectUserPageSecurity(page, user); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保安员列表,帅选无保安证 |
| | | * |
| | | * @param page |
| | | * @param user |
| | | * @return |
| | | */ |
| | | @Override |
| | | public IPage<UserVO> selectUserPageSecurityApply(IPage<UserVO> page, UserVO user) { |
| | | return baseMapper.selectUserPageSecurityApply(page, user); |
| | | } |
| | | |
| | | /** |
| | | * 保安员列表树 安员列表树,帅选无保安证,下拉tree |
| | | * |
| | | * @param user 用户信息 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TreeNode> getSecurityApplyTree(UserVO user) { |
| | | Map<Long, TreeNode> map = baseMapper.getSecurityApplyTree(user); |
| | | List<TreeNode> tree = new ArrayList<>(); |
| | | if (map.size() > 1) { |
| | | map.forEach((id, treeNode) -> { |
| | | if (map.containsKey(treeNode.getParentId())) { |
| | | map.get(treeNode.getParentId()).getChildren().add(treeNode); |
| | | } else { |
| | | tree.add(treeNode); |
| | | } |
| | | }); |
| | | } |
| | | return tree; |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<Object, Object>> selectInr(String deptid) { |
| | | return baseMapper.selectInr(deptid); |
| | | } |
| | | |
| | | /** |
| | | * 查询当前年份已有的保安证编号 |
| | | * |
| | | * @param pre 前缀 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public int getSecurityPaperCount(String pre) { |
| | | return baseMapper.getSecurityPaperCount(pre); |
| | | } |
| | | |
| | | /** |
| | | * 查询当前公司未持证保安没有报名的人员 |
| | | * @param deptId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<User> getNotApplyIdList(String deptId) { |
| | | return baseMapper.getNotApplyIdList(deptId); |
| | | } |
| | | |
| | | /** |
| | | * 计算保安人员年龄 |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public UserVO getUserAgeById(Long userId) { |
| | | return baseMapper.getUserAgeById(userId); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectUser() { |
| | | return baseMapper.selectUser(); |
| | | } |
| | | |
| | | /** |
| | | * 导入保安员 |
| | | * @param data |
| | | * @param isCovered |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void importSecurity(List<UserExcel> data, Boolean isCovered) { |
| | | data.forEach(userExcel -> { |
| | | User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class)); |
| | | // 设置租户ID |
| | | user.setTenantId("000000"); |
| | | //默认在职 |
| | | user.setStatus(1); |
| | | //判断是否持证 |
| | | if (null != userExcel.getHold() && userExcel.getHold() != "") { |
| | | if (userExcel.getHold().equals("是")) { |
| | | user.setHold("1"); |
| | | } |
| | | if(userExcel.getHold().equals("否")) { |
| | | user.setHold("2"); |
| | | } |
| | | } |
| | | //分配保安角色 |
| | | Role role = new Role(); |
| | | role.setRoleAlias("保安"); |
| | | Role oneRole = roleService.getOne(Condition.getQueryWrapper(role)); |
| | | user.setRoleId(oneRole.getId().toString()); |
| | | |
| | | if (null!=userExcel.getSex()) { |
| | | if (userExcel.getSex().equals("男")) { |
| | | user.setSex(1); |
| | | } |
| | | if (userExcel.getSex().equals("女")) { |
| | | user.setSex(2); |
| | | } |
| | | } |
| | | //设置部门id |
| | | user.setDeptId(userDeptService.selectIn(user.getDeptId())); |
| | | //设置账号 |
| | | user.setAccount(user.getCardid()); |
| | | //获取默认密码配置 |
| | | user.setPassword(user.getCardid().substring(user.getCardid().length()-6)); |
| | | // user.setPassword(ParamCache.getValue(DEFAULT_PARAM_PASSWORD)); |
| | | //新增 |
| | | this.submit(user); |
| | | }); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据保安员编码查询保安信息 |
| | | * @param securityNumber 保安证编码 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public UserVO getUserInfoBySecurityNumber(String securityNumber) { |
| | | return baseMapper.getUserInfoBySecurityNumber(securityNumber); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保安员信息 |
| | | * @param user |
| | | * @return |
| | | */ |
| | | @Override |
| | | public UserVO getUserDetails(User user) { |
| | | return baseMapper.getUserDetails(user); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param type 1:派遣 2:保安向 |
| | | * @param deptid |
| | | * @param jurisdiction |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Map<String, Object>> seleL(String type,String deptid, String jurisdiction,Long userId) { |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | //派遣 |
| | | if (Integer.parseInt(type)==1){ |
| | | list = baseMapper.getDispaterInfo(deptid, jurisdiction); |
| | | } |
| | | //工作汇报 |
| | | //保安向保安 |
| | | if (Integer.parseInt(type)==2){ |
| | | list = baseMapper.getWorkReportInfo(type,deptid, jurisdiction); |
| | | } |
| | | //保安向民警 |
| | | if (Integer.parseInt(type)==3){ |
| | | //查询用户信息 |
| | | User user = this.getById(userId); |
| | | //判断用户是否被派遣 |
| | | if (null!=user.getDispatch()){ |
| | | if (user.getDispatch().equals("0")) { |
| | | //在派遣中,向派遣所在地辖区民警汇报 |
| | | //查询派遣信息 |
| | | DispatcherVO dispatcherVO = baseMapper.getDispatcherInfoByUserId(userId); |
| | | list = baseMapper.getWorkReportInfos(null, null, dispatcherVO.getJurisdiction()); |
| | | } |
| | | if (user.getDispatch().equals("1")){ |
| | | //未派遣或已派遣结束,向单位所在辖区民警汇报 |
| | | Information information = new Information(); |
| | | information.setDepartmentid(user.getDeptId()); |
| | | Information one = iInformationService.getOne(Condition.getQueryWrapper(information)); |
| | | list = baseMapper.getWorkReportInfos(type,null, one.getJurisdiction()); |
| | | } |
| | | }else { |
| | | //未派遣或已派遣结束,向单位所在辖区民警汇报 |
| | | Information information = new Information(); |
| | | information.setDepartmentid(user.getDeptId()); |
| | | Information one = iInformationService.getOne(Condition.getQueryWrapper(information)); |
| | | list = baseMapper.getWorkReportInfos(type,null, one.getJurisdiction()); |
| | | } |
| | | |
| | | } |
| | | //民警对民警 |
| | | if (Integer.parseInt(type)==4){ |
| | | list = baseMapper.getWorkReportInfo(type,deptid, jurisdiction); |
| | | } |
| | | return list; |
| | | } |
| | | } |