From cc057177b2fb17aee9a173a6adbabdc578fd74c7 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 06 Dec 2021 10:30:44 +0800
Subject: [PATCH] 1.许可
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 334 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 290 insertions(+), 44 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index a75d1a8..c6cfa87 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -26,6 +26,7 @@
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;
@@ -40,9 +41,16 @@
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;
@@ -52,10 +60,7 @@
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;
@@ -73,6 +78,7 @@
private final IUserOauthService userOauthService;
private final IRoleService roleService;
private final BladeTenantProperties tenantProperties;
+ private final IInformationService iInformationService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -97,10 +103,10 @@
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);
}
@@ -137,6 +143,19 @@
});
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
@@ -300,46 +319,56 @@
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)
@@ -424,6 +453,7 @@
/**
* 通过 身份证号查询用户信息
+ *
* @param idCardNo 身份证号
* @return
*/
@@ -433,10 +463,226 @@
}
@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;
+ }
+
+ /**
+ * 查询账号相同的用户数量
+ * @param account
+ * @return
+ */
+ @Override
+ public Integer selectCount(String account) {
+ return baseMapper.selectCountAccount(account);
+ }
}
--
Gitblit v1.9.3