From 345d17cf82e1bbc1fbfbeec10193c2bed59cd674 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 27 Sep 2021 22:21:21 +0800
Subject: [PATCH] 注册登录,车辆,装备,枪支,招聘,培训考试修改
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 446 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 395 insertions(+), 51 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 97380af..7b9fe05 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;
@@ -39,10 +40,18 @@
import org.springblade.core.tool.jackson.JsonUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
+import org.springblade.modules.FTP.FtpUtil;
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 +61,8 @@
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.text.SimpleDateFormat;
+import java.util.*;
import static org.springblade.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD;
@@ -73,6 +80,7 @@
private final IUserOauthService userOauthService;
private final IRoleService roleService;
private final BladeTenantProperties tenantProperties;
+ private final IInformationService iInformationService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -101,22 +109,50 @@
if (userCount > 0 && Func.isEmpty(user.getId())) {
throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
}
- return save(user) && submitUserDept(user);
+ boolean b = save(user) && submitUserDept(user);
+ String rtime = null;
+ if (null != user.getRtime()) {
+ rtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getRtime());
+ }
+ user.setIsDeleted(0);
+ String s = "insert into blade_user(id,tenant_id,account,password,real_name,email,phone,sex,role_id,dept_id,cardid,nativePlace,nation," +
+ "politicaloutlook,healstats,height,address,registered,securitynumber,hold,status,dispatch,jurisdiction,is_deleted) " +
+ "values(" + "'" + user.getId() + "'" + "," + "'" + user.getTenantId() + "'" + "," + "'" + user.getAccount() + "'" + "," +
+ "'" + user.getPassword() + "'" + "," + "'" + user.getRealName() + "'" + "," +
+ "'" + user.getEmail() + "'" + "," + "'" + user.getPhone() + "'" + "," + "'" + user.getSex() + "'" + "," + "'" + user.getRoleId() + "'" +
+ "," + "'" + user.getDeptId() + "'" +
+ "," + "'" + user.getCardid() + "'" +
+ "," + "'" + user.getNativeplace() + "'" +
+ "," + "'" + user.getNation() + "'" +
+ "," + "'" + user.getPoliticaloutlook() + "'" +
+ "," + "'" + user.getHealstats() + "'"
+ + "," + "'" + user.getHeight() + "'" +
+ "," + "'" + user.getAddress() + "'" +
+ "," + "'" + user.getRegistered() + "'" + "," +
+ "'" + user.getSecuritynumber() + "'" +
+ "," + "'" + user.getHold() + "'" +
+ "," + "'" + user.getStatus() + "'" +
+ "," + "'" + user.getDispatch() + "'"+
+ "," + "'" + user.getJurisdiction() + "'"+
+ "," + "'" + user.getIsDeleted() + "'"
+ + ")";
+ FtpUtil.sqlFileUpload(s);
+ return b;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateUser(User user) {
- String tenantId = user.getTenantId();
- Integer userCount = baseMapper.selectCount(
- Wrappers.<User>query().lambda()
- .eq(User::getTenantId, tenantId)
- .eq(User::getAccount, user.getAccount())
- .notIn(User::getId, user.getId())
- );
- if (userCount > 0) {
- throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
- }
+// String tenantId = user.getTenantId();
+// Integer userCount = baseMapper.selectCount(
+// Wrappers.<User>query().lambda()
+// .eq(User::getTenantId, tenantId)
+// .eq(User::getAccount, user.getAccount())
+// .notIn(User::getId, user.getId())
+// );
+// if (userCount > 0) {
+// throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
+// }
return updateUserInfo(user) && submitUserDept(user);
}
@@ -140,9 +176,58 @@
}
@Override
- public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
+ 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 IPage<UserVO> selectUserPage(IPage<UserVO> page, User user, Long deptId, String tenantId) {
List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
- return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
+ List<UserVO> users = baseMapper.selectUserPage(page, user, deptIdList, tenantId);
+ if(users.size()>0){
+ //遍历获取部门名称,角色名称
+ users.forEach(userVO -> {
+ //查询当前部门名称及父级部门名称
+ if (null!=userVO.getDeptId()) {
+ List<String> list = baseMapper.getDeptName(userVO.getDeptId());
+ if (list.size() > 1) {
+ if (null != list.get(1) && list.get(1) != "") {
+ userVO.setDeptName(list.get(1) + "," + list.get(0));
+ } else {
+ userVO.setDeptName(list.get(0));
+ }
+ }
+ if (list.size() == 1) {
+ userVO.setDeptName(list.get(0));
+ }
+ }
+ //查询角色名称
+ if (null!=userVO.getRoleId()) {
+ List<String> asList = Arrays.asList(userVO.getRoleId().split(","));
+ StringBuilder builder = new StringBuilder();
+ asList.forEach(roleIs -> {
+ Role role = roleService.getById(roleIs);
+ if (null != role) {
+ builder.append(role.getRoleName() + ",");
+ }
+ });
+ String substringRoleName = null;
+ if (builder.toString().length() > 0) {
+ substringRoleName = builder.toString().substring(0, builder.toString().length() - 1);
+ }
+ userVO.setRoleName(substringRoleName);
+ }
+ });
+ }
+ return page.setRecords(users);
}
@Override
@@ -297,49 +382,67 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void importUser(List<UserExcel> data, Boolean isCovered) {
+ public void importUser(List<UserExcel> data, Boolean isCovered,String deptId) {
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
+ String deptIds = userDeptService.selectIn(user.getDeptId());
+ if (null!=deptIds && !deptIds.equals("")) {
+ if (null != deptId && !deptId.equals("")) {
+ if (!deptId.equals(deptIds)) {
+ throw new ServiceException("不能导入不是本公司的保安员数据!");
+ }
+ }
+ user.setDeptId(deptIds);
+ }
+ //设置账号
+ 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 +527,7 @@
/**
* 通过 身份证号查询用户信息
+ *
* @param idCardNo 身份证号
* @return
*/
@@ -431,4 +535,244 @@
public User getUserInfoByIdCardNo(String idCardNo) {
return baseMapper.getUserInfoByIdCardNo(idCardNo);
}
+
+ @Override
+ 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);
+ user.setDispatch("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);
+ }
+
+ /**
+ * 查询用户表中未删除,未离职的用户信息
+ * @param username
+ * @return
+ */
+ @Override
+ public User getUserInfo(String username) {
+ return baseMapper.getUserInfo(username);
+ }
}
--
Gitblit v1.9.3