From 2a76be6f05cf13453b69609aa36d8548a5bae119 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 29 Nov 2021 16:04:42 +0800
Subject: [PATCH] 保安员导入新增身份证号校验
---
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java | 174 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 124 insertions(+), 50 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 926be67..ae31613 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
@@ -27,6 +27,7 @@
import org.springblade.common.constant.AgeUtil;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.constant.TenantConstant;
+import org.springblade.common.utils.IdCardNoUtil;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
@@ -826,6 +827,26 @@
//如果deptIds 为空,则说明还没有改公司
throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
}
+
+ //身份证校验
+ if (null==user.getCardid() || user.getCardid().equals("")){
+ throw new ServiceException("导入失败!身份证号码不能为空!");
+ }
+ if (null!=user.getCardid() && !user.getCardid().equals("")){
+ //去除所有空格
+ String cardid = user.getCardid().replaceAll(" ", "");
+ //校验
+ boolean b = IdCardNoUtil.checkIdCardNo(cardid);
+ if(b){
+ user.setCardid(cardid);
+ }else {
+ agetStatus.set(false);
+ ageErrorList.add(user.getCardid());
+// throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
+ //forEach 只能使用 return 跳出本次循环
+ return;
+ }
+ }
//判断当前用户是否已在本单位,如果是的更新数据
User user1 = new User();
user1.setAccount(user.getCardid());
@@ -881,26 +902,6 @@
//新增
this.save(user);
//内网同步
-// String s = "insert into blade_user(" +
-// "id,tenant_id,account,password,real_name,phone,sex,role_id,dept_id," +
-// "cardid,nation,registered,securitynumber,hold,status,is_deleted) " +
-// "values(" + "'" + user.getId() + "'" + "," +
-// "'" + user.getTenantId() + "'" + "," +
-// "'" + user.getAccount() + "'" + "," +
-// "'" + user.getPassword() + "'" + "," +
-// "'" + user.getRealName() + "'" + "," +
-// "'" + user.getPhone() + "'" + "," +
-// "'" + user.getSex() + "'" + "," +
-// "'" + user.getRoleId() + "'" +
-// "," + "'" + user.getDeptId() + "'" +
-// "," + "'" + user.getCardid() + "'" +
-// "," + "'" + user.getNation() + "'" +
-// "," + "'" + user.getRegistered() + "'" +
-// "," + "'" + user.getSecuritynumber() + "'" +
-// "," + "'" + user.getHold() + "'" +
-// "," + "'" + user.getStatus() + "'" +
-// "," + "'" + user.getIsDeleted() + "'"
-// + ")";
String s = "insert into blade_user(" +
"id,tenant_id,account,password,name,real_name,avatar,email,phone,sex," +
"role_id,dept_id,cardid,nativePlace,nation,fingerprint,education," +
@@ -944,9 +945,7 @@
//匹配组织机构是否一致,如果不一致
if(!user2.getDeptId().equals(user.getDeptId())){
Dept dept = deptService.getById(user2.getDeptId());
- System.out.println("dept = " + dept);
Dept dept1 = deptService.getById(user.getDeptId());
- System.out.println("dept1 = " + dept1);
//如果是南昌总公司分公司导入的
if (dept.getId().equals(1432626178757275649L) && dept1.getParentId().equals(1432626178757275649L)){
user2.setDeptId(dept1.getId().toString());
@@ -1012,26 +1011,26 @@
}
});
//如果所有数据导入有一个异常
-// if (!status.get() || !agetStatus.get()){
-// if (!status.get() && agetStatus.get()) {
-// String errorAccount = StringUtils.join(errorList, "\\\n");
-// throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
-// }
-// if (!agetStatus.get() && status.get()) {
-// String errorAccount = StringUtils.join(ageErrorList, "\\\n");
-// throw new ServiceException("用户:[" + errorAccount + "]导入失败!年龄不符!");
-// }
-// if (!status.get() && !agetStatus.get()) {
-// String errorAccount = StringUtils.join(errorList, "\\\n");
-// String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
-// throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
-// "用户:[" + errorAgeAccount + "]导入失败!年龄不符!");
-// }
-// }
- if (!status.get()) {
- String errorAccount = StringUtils.join(errorList, "\\\n");
- throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+ if (!status.get() || !agetStatus.get()){
+ if (!status.get() && agetStatus.get()) {
+ String errorAccount = StringUtils.join(errorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+ }
+ if (!agetStatus.get() && status.get()) {
+ String errorAccount = StringUtils.join(ageErrorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
+ }
+ if (!status.get() && !agetStatus.get()) {
+ String errorAccount = StringUtils.join(errorList, "\\\n");
+ String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
+ "用户:[" + errorAgeAccount + "]导入失败!身份证号码不正确,请核对!");
+ }
}
+// if (!status.get()) {
+// String errorAccount = StringUtils.join(errorList, "\\\n");
+// throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+// }
}
@Override
@@ -1039,11 +1038,12 @@
//将不能导入的保安员账号存起来
List<String> errorList = new ArrayList<>();
//将需要新增的保安员信息存入集合
- List<User> insertList = new ArrayList<>();
+ List<String> ageErrorList = new ArrayList<>();
//将需要更新的保安员信息存入集合
List<User> updateList = new ArrayList<>();
//导入状态,默认为true ,如果有一个出现问题则为 false
AtomicBoolean status = new AtomicBoolean(true);
+ AtomicBoolean agetStatus = new AtomicBoolean(true);
data.forEach(userExcel -> {
User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
//设置部门id
@@ -1058,6 +1058,26 @@
}else {
//如果deptIds 为空,则说明还没有改公司
throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
+ }
+
+ //身份证校验
+ if (null==user.getCardid() || user.getCardid().equals("")){
+ throw new ServiceException("导入失败!身份证号码不能为空!");
+ }
+ if (null!=user.getCardid() && !user.getCardid().equals("")){
+ //去除所有空格
+ String cardid = user.getCardid().replaceAll(" ", "");
+ //校验
+ boolean b = IdCardNoUtil.checkIdCardNo(cardid);
+ if(b){
+ user.setCardid(cardid);
+ }else {
+ agetStatus.set(false);
+ ageErrorList.add(user.getCardid());
+// throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
+ //forEach 只能使用 return 跳出本次循环
+ return;
+ }
}
//判断当前用户是否已在本单位,如果是的更新数据
User user1 = new User();
@@ -1173,12 +1193,50 @@
else {
//匹配组织机构是否一致,如果不一致
if(!user2.getDeptId().equals(user.getDeptId())){
+// Dept dept = deptService.getById(user2.getDeptId());
+// status.set(false);
+// //加入集合
+// errorList.add(user.getCardid());
+// //forEach 只能使用 return 跳出本次循环
+// return;
+
Dept dept = deptService.getById(user2.getDeptId());
- status.set(false);
- //加入集合
- errorList.add(user.getCardid());
- //forEach 只能使用 return 跳出本次循环
- return;
+ Dept dept1 = deptService.getById(user.getDeptId());
+ //如果是南昌总公司分公司导入的
+ if (dept.getId().equals(1432626178757275649L) && dept1.getParentId().equals(1432626178757275649L)){
+ user2.setDeptId(dept1.getId().toString());
+ //判断是否持证
+ if (null != userExcel.getHold() && userExcel.getHold() != "") {
+ if (userExcel.getHold().equals("是") && userExcel.getSecuritynumber()!=null && !userExcel.getSecuritynumber().equals("")) {
+ user2.setHold("1");
+ //更新保安证编号
+ user2.setSecuritynumber(user.getSecuritynumber());
+ }
+ if (userExcel.getHold().equals("否")) {
+ user2.setHold("2");
+ }
+ }
+ if (null!=userExcel.getRegistered()){
+ user2.setRegistered(userExcel.getRegistered());
+ }else {
+ user2.setRegistered("");
+ }
+ //更新用户数据
+ this.updateById(user2);
+ String s1 =
+ "update blade_user set hold = " + "'" + user2.getHold() + "'"
+ + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
+ + ",dept_id = " + "'" + user2.getDeptId() + "'"
+ + ",registered = " + "'" + user2.getRegistered() + "'"
+ + " " + "where id = " + "'" + user2.getId() + "'";
+ FtpUtil.sqlFileUpload(s1);
+ }else {
+ status.set(false);
+ //加入集合
+ errorList.add(user.getCardid());
+ //forEach 只能使用 return 跳出本次循环
+ return;
+ }
}else {
//如果是一致,则更新用户数据
//判断是否持证
@@ -1209,9 +1267,25 @@
}
});
//如果所有数据导入有一个异常
- if (!status.get()){
- String errorAccount = StringUtils.join(errorList, "\\\n");
- throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
+// if (!status.get()){
+// String errorAccount = StringUtils.join(errorList, "\\\n");
+// throw new ServiceException("用户:["+errorAccount+"]导入失败!已在其他单位存在!");
+// }
+ if (!status.get() || !agetStatus.get()){
+ if (!status.get() && agetStatus.get()) {
+ String errorAccount = StringUtils.join(errorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+ }
+ if (!agetStatus.get() && status.get()) {
+ String errorAccount = StringUtils.join(ageErrorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
+ }
+ if (!status.get() && !agetStatus.get()) {
+ String errorAccount = StringUtils.join(errorList, "\\\n");
+ String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
+ throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
+ "用户:[" + errorAgeAccount + "]导入失败!身份证号码不正确,请核对!");
+ }
}
}
--
Gitblit v1.9.3