From 692f50074eb3a38dac2c8553969b568f2a166614 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 01 Dec 2023 20:14:45 +0800
Subject: [PATCH] 新增用户关联数据处理
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 204 ++++++++++++++++++++------------------------------
1 files changed, 83 insertions(+), 121 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 eb17904..316a45b 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
@@ -18,6 +18,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.zxing.WriterException;
@@ -98,6 +99,7 @@
private final IExperienceService experienceService;
private final MyAsyncService myAsyncService;
private final SecurityPaperService securityPaperService;
+ private final IUserDetailService userDetailService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -877,8 +879,8 @@
* @param isCovered
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public void importSecurity(List<SecurityExcel> data, Boolean isCovered, String deptId) {
- long time = System.currentTimeMillis();
//将不能导入的保安员账号存起来
List<String> errorList = new ArrayList<>();
//年龄不符的保安员信息存入集合
@@ -938,42 +940,9 @@
}
//性别
- if (null != userExcel.getSex()) {
- if (userExcel.getSex().equals("男")) {
- user.setSex(1);
- }
- if (userExcel.getSex().equals("女")) {
- user.setSex(2);
- }
- }
-
+ user.setSex(Integer.parseInt(userExcel.getSex()));
// 学历
- if (null != userExcel.getEducation()) {
- if (userExcel.getEducation().equals("初中及以下")
- || userExcel.getEducation().equals("初中")
- ) {
- user.setEducation("1");
- }
- if (userExcel.getEducation().equals("高中/中技/中专")
- || userExcel.getEducation().equals("高中")
- || userExcel.getEducation().equals("中技")
- || userExcel.getEducation().equals("中专")
- ) {
- user.setEducation("2");
- }
- if (userExcel.getEducation().equals("大专")) {
- user.setEducation("3");
- }
- if (userExcel.getEducation().equals("本科")) {
- user.setEducation("4");
- }
- if (userExcel.getEducation().equals("博士")) {
- user.setEducation("5");
- }
- if (userExcel.getEducation().equals("硕士")) {
- user.setEducation("6");
- }
- }
+ user.setEducation(userExcel.getEducation());
//判断当前用户是否已在本单位,如果是的更新数据
User user1 = new User();
@@ -989,38 +958,6 @@
user.setStatus(1);
user.setIsDeleted(0);
user.setHold("2");
- //判断是否持证
-// if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
-// user.setHold("1");
-// //校验保安员证编号是否合规
-// SecurityPaper securityPaper = new SecurityPaper();
-// securityPaper.setIdCardNo(userExcel.getCardid());
-// List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
-// if (securityPaperList.size()>0){
-// boolean state = false;
-// //遍历
-// for (SecurityPaper paper : securityPaperList) {
-// if (paper.getNumber().equals(user.getSecuritynumber())){
-// state = true;
-// }
-// }
-// if (!state){
-// user.setHold("2");
-// user.setSecuritynumber(null);
-// securityInvalidList.add(userExcel.getCardid());
-// securityInvalidStatus.set(false);
-// }
-// }else {
-// user.setHold("2");
-// user.setSecuritynumber(null);
-// securityInvalidList.add(userExcel.getCardid());
-// securityInvalidStatus.set(false);
-// }
-// }else {
-// user.setHold("2");
-// }
- //判断年龄,超过60岁的不入
-// if (AgeUtil.idCardToAge(user.getCardid())<60) {
//分配保安角色
Role role = new Role();
role.setRoleAlias("保安");
@@ -1043,20 +980,33 @@
user.setDispatch("1");
user.setExaminationType("0");
//新增
-// this.save(user);
+ boolean save = this.save(user);
+ //并更新详情数据
+ if(save){
+ UserDetailEntity detailEntity = new UserDetailEntity();
+ detailEntity.setUserId(user.getId());
+ detailEntity.setDwellAddress(userExcel.getDwellAddress());
+ detailEntity.setEducationExperience(userExcel.getEducationExperience());
+ detailEntity.setMemberOfFamily(userExcel.getMemberOfFamily());
+ detailEntity.setWorkExperience(userExcel.getWorkExperience());
+ detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
+ detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
+ detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
+ userDetailService.save(detailEntity);
+ }
//加入集合
- userList.add(user);
+// userList.add(user);
//从业记录新增
Experience experience = new Experience();
experience.setCardid(user.getCardid());
-// experience.setSecurityid(user.getId().toString());
experience.setCompanyname(userExcel.getDeptId());
experience.setName(user.getRealName());
experience.setPost("保安员");
experience.setEntrytime(new Date());
-// experienceService.save(experience);
+ // 新增
+ experienceService.save(experience);
//加入集合
- experienceList.add(experience);
+// experienceList.add(experience);
}else {
//匹配组织机构是否一致,如果不一致
@@ -1069,38 +1019,6 @@
continue;
}else {
//如果是一致,则更新用户数据
- //判断是否持证
-// if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
-// user2.setHold("1");
-// user2.setSecuritynumber(user.getSecuritynumber());
-// //校验保安员证编号是否合规
-// SecurityPaper securityPaper = new SecurityPaper();
-// securityPaper.setIdCardNo(userExcel.getCardid());
-// List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
-// if (securityPaperList.size()>0){
-// boolean state = false;
-// //遍历
-// for (SecurityPaper paper : securityPaperList) {
-// if (paper.getNumber().equals(user.getSecuritynumber())){
-// state = true;
-// }
-// }
-// if (!state){
-// user2.setHold("2");
-// user2.setSecuritynumber(null);
-// securityInvalidList.add(userExcel.getCardid());
-// securityInvalidStatus.set(false);
-// }
-// }else {
-// user2.setHold("2");
-// user2.setSecuritynumber(null);
-// securityInvalidList.add(userExcel.getCardid());
-// securityInvalidStatus.set(false);
-// }
-// }else {
-// user2.setHold("2");
-// }
-// user2.setHold("2");
if (null!=userExcel.getRegistered()){
user2.setRegistered(userExcel.getRegistered());
}else {
@@ -1137,27 +1055,54 @@
user2.setUpdateTime(new Date());
//更新用户数据
- this.updateById(user2);
+ boolean update = this.updateById(user2);
+ //并更新详情数据
+ if(update){
+ // 通过用户id 查询,如果存在则更新,不存在则更新
+ QueryWrapper<UserDetailEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("is_deleted",0).eq("user_id",user2.getId());
+ UserDetailEntity one = userDetailService.getOne(wrapper);
+ if (null!=one){
+ one.setDwellAddress(userExcel.getDwellAddress());
+ one.setEducationExperience(userExcel.getEducationExperience());
+ one.setMemberOfFamily(userExcel.getMemberOfFamily());
+ one.setWorkExperience(userExcel.getWorkExperience());
+ one.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
+ one.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
+ one.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
+ userDetailService.updateById(one);
+ }else {
+ UserDetailEntity detailEntity = new UserDetailEntity();
+ detailEntity.setUserId(user2.getId());
+ detailEntity.setDwellAddress(userExcel.getDwellAddress());
+ detailEntity.setEducationExperience(userExcel.getEducationExperience());
+ detailEntity.setMemberOfFamily(userExcel.getMemberOfFamily());
+ detailEntity.setWorkExperience(userExcel.getWorkExperience());
+ detailEntity.setPermanentResidenceAddress(userExcel.getPermanentResidenceAddress());
+ detailEntity.setMarriageStatus(Integer.parseInt(userExcel.getMarriageStatus()));
+ detailEntity.setSignLevel(Integer.parseInt(userExcel.getSignLevel()));
+ userDetailService.save(detailEntity);
+ }
+ }
}
}
}
//批量插入
//用户批量插入
- if (userList.size()>0) {
- baseMapper.batchUserList(userList);
- //装换成map
- Map<String, User> userMap = userList.stream().collect(Collectors.toMap(user -> user.getCardid(), user -> user));
- //匹配
- experienceList = experienceList.stream().map(experience -> {
- if (experience.getCardid().equals(userMap.get(experience.getCardid()).getCardid())) {
- experience.setSecurityid(userMap.get(experience.getCardid()).getId().toString());
- }
- return experience;
- }).collect(Collectors.toList());
- //批量插入从业记录
- baseMapper.batchExperienceList(experienceList);
- }
-// System.out.println("导入时间: = " + (System.currentTimeMillis()-time));
+// if (userList.size()>0) {
+// baseMapper.batchUserList(userList);
+// //装换成map
+// Map<String, User> userMap = userList.stream().collect(Collectors.toMap(user -> user.getCardid(), user -> user));
+// //匹配
+// experienceList = experienceList.stream().map(experience -> {
+// if (experience.getCardid().equals(userMap.get(experience.getCardid()).getCardid())) {
+// experience.setSecurityid(userMap.get(experience.getCardid()).getId().toString());
+// }
+// return experience;
+// }).collect(Collectors.toList());
+// //批量插入从业记录
+// baseMapper.batchExperienceList(experienceList);
+// }
//如果所有数据导入有一个异常
StringBuilder errorBuilder = new StringBuilder();
@@ -2071,4 +2016,21 @@
public UserVO getUserDetailById(Long id) {
return baseMapper.getUserDetailById(id);
}
+
+ /**
+ * 数据处理
+ * @return
+ */
+ @Override
+ public Object dataHandler() {
+ // 查询未关联的保安员
+ List<User> list = baseMapper.getNotGlList();
+ // 批量插入
+ for (User user : list) {
+ UserDetailEntity detailEntity = new UserDetailEntity();
+ detailEntity.setUserId(user.getId());
+ userDetailService.save(detailEntity);
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3