From fb2eb76b71b1a203ad226e802fc99a7a123acfc8 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 07 Mar 2022 17:18:44 +0800
Subject: [PATCH] 保安员新增/修改保安证编号校验逻辑调整

---
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java |  316 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 261 insertions(+), 55 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 cba4196..b2479ad 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
@@ -50,6 +50,8 @@
 import org.springblade.modules.information.service.IInformationService;
 import org.springblade.modules.jurisdiction.entity.Jurisdiction;
 import org.springblade.modules.jurisdiction.service.JurisdictionService;
+import org.springblade.modules.securitypaper.entity.SecurityPaper;
+import org.springblade.modules.securitypaper.service.SecurityPaperService;
 import org.springblade.modules.system.entity.*;
 import org.springblade.modules.system.excel.QrCodeExcel;
 import org.springblade.modules.system.excel.SecurityExcel;
@@ -91,6 +93,8 @@
 	private final IDeptService deptService;
 	private final JurisdictionService jurisdictionService;
 	private final IExperienceService experienceService;
+	private final MyAsyncService myAsyncService;
+	private final SecurityPaperService securityPaperService;
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -143,7 +147,8 @@
 			"," + "'" + user.getJurisdiction() + "'"+
 			"," + "'" + user.getIsDeleted() + "'"
 			+ ")";
-		FtpUtil.sqlFileUpload(s);
+		//FtpUtil.sqlFileUpload(s);
+		myAsyncService.FTP(s);
 		return b;
 	}
 
@@ -543,7 +548,8 @@
 					"," + "'" + user.getIsDeleted() + "'" +
 					"," + "'" + user.getJurisdiction() + "'"
 					+ ")";
-				FtpUtil.sqlFileUpload(s);
+				//FtpUtil.sqlFileUpload(s);
+				myAsyncService.FTP(s);
 			}else {
 				//匹配组织机构是否一致,如果不一致
 				if(!user2.getDeptId().equals(user.getDeptId())){
@@ -580,7 +586,8 @@
 							+ ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
 							+ ",cardid = " + "'" + user2.getCardid() + "'"
 							+ " " + "where id = " + "'" + user2.getId() + "'";
-					FtpUtil.sqlFileUpload(s1);
+					//FtpUtil.sqlFileUpload(s1);
+					myAsyncService.FTP(s1);
 				}
 			}
 		});
@@ -837,6 +844,8 @@
 		List<String> errorList = new ArrayList<>();
 		//年龄不符的保安员信息存入集合
 		List<String> ageErrorList = new ArrayList<>();
+		//保安员证编号不符的保安员信息存入集合
+		List<String> securityInvalidList = new ArrayList<>();
 		//将需要更新的保安员信息存入集合
 		List<User> updateList = new ArrayList<>();
 		//需要新增的保安员集合
@@ -846,6 +855,7 @@
 		//导入状态,默认为true ,如果有一个出现问题则为 false
 		AtomicBoolean status = new AtomicBoolean(true);
 		AtomicBoolean agetStatus = new AtomicBoolean(true);
+		AtomicBoolean securityInvalidStatus = new AtomicBoolean(true);
 		//遍历
 		for (SecurityExcel userExcel : data) {
 			User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
@@ -887,6 +897,7 @@
 					continue;
 				}
 			}
+
 			//判断当前用户是否已在本单位,如果是的更新数据
 			User user1 = new User();
 			user1.setAccount(user.getCardid());
@@ -903,6 +914,30 @@
 				//判断是否持证
 				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");
 				}
@@ -965,19 +1000,40 @@
 						user2.setDeptId(dept1.getId().toString());
 						//判断是否持证
 						if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
-							user.setHold("1");
-						}else {
-							user.setHold("2");
-						}
-						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.setUpdateTime(new Date());
 						this.updateById(user2);
+						//qfqk异步推送
+						myAsyncService.updateUserByQfqk(user2);
 						String s1 =
 							"update blade_user set hold = " + "'" + user2.getHold() + "'"
 								+ ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
@@ -985,7 +1041,8 @@
 								+ ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
 								+ ",registered = " + "'" + user2.getRegistered() + "'"
 								+ " " + "where id = " + "'" + user2.getId() + "'";
-						FtpUtil.sqlFileUpload(s1);
+						//FtpUtil.sqlFileUpload(s1);
+						myAsyncService.FTP(s1);
 					}else {
 						status.set(false);
 						//加入集合
@@ -1000,6 +1057,30 @@
 					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");
 					}
@@ -1011,13 +1092,17 @@
 					user2.setUpdateTime(new Date());
 					//更新用户数据
 					this.updateById(user2);
+					//qfqk异步推送
+					myAsyncService.updateUserByQfqk(user2);
+					//内网数据sql
 					String s1 =
 						"update blade_user set hold = " + "'" + user2.getHold() + "'"
 							+ ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
 							+ ",registered = " + "'" + user2.getRegistered() + "'"
 							+ ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
 							+ " " + "where id = " + "'" + user2.getId() + "'";
-					FtpUtil.sqlFileUpload(s1);
+					//FtpUtil.sqlFileUpload(s1);
+					myAsyncService.FTP(s1);
 				}
 			}
 		}
@@ -1025,6 +1110,8 @@
 		//用户批量插入
 		if (userList.size()>0) {
 			baseMapper.batchUserList(userList);
+			//用户批量插入异步推送
+			myAsyncService.batchUserList(userList);
 			//sql 拼接
 			StringBuilder builder = new StringBuilder();
 			StringBuilder builder1 = new StringBuilder();
@@ -1072,7 +1159,8 @@
 				//判断list.size 大小
 				if (list.size()==1000){
 					//执行
-					FtpUtil.sqlFileUpload(builder.toString());
+					//FtpUtil.sqlFileUpload(builder.toString());
+					myAsyncService.FTP(builder.toString());
 					//清空
 					builder.delete(0,builder.length());
 				}
@@ -1105,38 +1193,38 @@
 				//判断list.size 大小
 				if (split1.length==1000){
 					//执行
-					FtpUtil.sqlFileUpload(builder1.toString());
+					//FtpUtil.sqlFileUpload(builder1.toString());
+					myAsyncService.FTP(builder1.toString());
 					//清空
 					builder1.delete(0,builder1.length());
 				}
 			}
 			//剩余的继续执行
-			FtpUtil.sqlFileUpload(builder.toString());
-			FtpUtil.sqlFileUpload(builder1.toString());
+			//FtpUtil.sqlFileUpload(builder.toString());
+			myAsyncService.FTP(builder.toString());
+			//FtpUtil.sqlFileUpload(builder1.toString());
+			myAsyncService.FTP(builder1.toString());
 		}
 //		System.out.println("导入时间: = " + (System.currentTimeMillis()-time));
 
 		//如果所有数据导入有一个异常
-		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 + "]导入失败!身份证号码不正确,请核对!");
-			}
+		StringBuilder errorBuilder = new StringBuilder();
+		if (!status.get()){
+			String errorAccount = StringUtils.join(errorList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
 		}
-//		if (!status.get()) {
-//			String errorAccount = StringUtils.join(errorList, "\\\n");
-//			throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
-//		}
+		if (!agetStatus.get()){
+			String errorAccount = StringUtils.join(ageErrorList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+		}
+		if (!securityInvalidStatus.get()){
+			String errorAccount = StringUtils.join(securityInvalidList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!");
+		}
+		//抛出异常
+		if (errorBuilder.length()>0){
+			throw new ServiceException(errorBuilder.toString());
+		}
 	}
 
 	@Override
@@ -1145,11 +1233,14 @@
 		List<String> errorList = new ArrayList<>();
 		//将需要新增的保安员信息存入集合
 		List<String> ageErrorList = new ArrayList<>();
+		//保安员证编号不符的保安员信息存入集合
+		List<String> securityInvalidList = new ArrayList<>();
 		//将需要更新的保安员信息存入集合
 		List<User> updateList = new ArrayList<>();
 		//导入状态,默认为true ,如果有一个出现问题则为 false
 		AtomicBoolean status = new AtomicBoolean(true);
 		AtomicBoolean agetStatus = new AtomicBoolean(true);
+		AtomicBoolean securityInvalidStatus = new AtomicBoolean(true);
 		data.forEach(userExcel -> {
 			User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
 			//设置部门id
@@ -1206,6 +1297,30 @@
 				//判断是否持证
 				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");
 				}
@@ -1240,6 +1355,8 @@
 				user.setCreateTime(new Date());
 				//新增
 				this.save(user);
+				//qfqk 推送
+				myAsyncService.qfqkUserSave(user);
 
 				//从业记录新增
 				Experience experience = new Experience();
@@ -1298,7 +1415,8 @@
 					"," + "'" + experience.getCompanyname() + "'" +
 					"," + "'" + experience.getSecurityid() + "'"
 					+ ")";
-				FtpUtil.sqlFileUpload(s);
+				//FtpUtil.sqlFileUpload(s);
+				myAsyncService.FTP(s);
 			}
 			else {
 				//匹配组织机构是否一致,如果不一致
@@ -1329,6 +1447,30 @@
 						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");
 						}
@@ -1340,6 +1482,9 @@
 						user2.setUpdateTime(new Date());
 						//更新用户数据
 						this.updateById(user2);
+						//qfqk 推送
+						myAsyncService.updateUserByQfqk(user);
+
 						String s1 =
 							"update blade_user set hold = " + "'" + user2.getHold() + "'"
 								+ ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
@@ -1347,7 +1492,8 @@
 								+ ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
 								+ ",registered = " + "'" + user2.getRegistered() + "'"
 								+ " " + "where id = " + "'" + user2.getId() + "'";
-						FtpUtil.sqlFileUpload(s1);
+						//FtpUtil.sqlFileUpload(s1);
+						myAsyncService.FTP(s1);
 					}else {
 						status.set(false);
 						//加入集合
@@ -1371,6 +1517,30 @@
 					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");
 					}
@@ -1382,36 +1552,37 @@
 					user2.setUpdateTime(new Date());
 					//更新用户数据
 					this.updateById(user2);
+					//qfqk 推送
+					myAsyncService.updateUserByQfqk(user);
+
 					String s1 =
 						"update blade_user set hold = " + "'" + user2.getHold() + "'"
 							+ ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
 							+ ",registered = " + "'" + user2.getRegistered() + "'"
 							+ ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user2.getUpdateTime()) + "'"
 							+ " " + "where id = " + "'" + user2.getId() + "'";
-					FtpUtil.sqlFileUpload(s1);
+					//FtpUtil.sqlFileUpload(s1);
+					myAsyncService.FTP(s1);
 				}
 			}
 		});
 		//如果所有数据导入有一个异常
-//		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 + "]导入失败!身份证号码不正确,请核对!");
-			}
+		StringBuilder errorBuilder = new StringBuilder();
+		if (!status.get()){
+			String errorAccount = StringUtils.join(errorList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+		}
+		if (!agetStatus.get()){
+			String errorAccount = StringUtils.join(ageErrorList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+		}
+		if (!securityInvalidStatus.get()){
+			String errorAccount = StringUtils.join(securityInvalidList, "\\\n");
+			errorBuilder.append("用户:[" + errorAccount + "]保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!");
+		}
+		//抛出异常
+		if (errorBuilder.length()>0){
+			throw new ServiceException(errorBuilder.toString());
 		}
 	}
 
@@ -1743,4 +1914,39 @@
 		//返回
 		return list;
 	}
+
+	/**
+	 * 查询登录密码还是 123456 的单位信息
+	 * @return
+	 */
+	@Override
+	public Object getNotUpdatePwdInfo() {
+		//查询角色为保安公司管理员的用户信息
+		User user = new User();
+		user.setRoleId("1414575196264300546");
+		user.setStatus(1);
+		user.setIsDeleted(0);
+		List<User> list = this.list(Condition.getQueryWrapper(user));
+		List<User> list1 = new ArrayList<>();
+		//遍历
+		if (list.size()>0){
+			byte[] bytes = DigestUtil.decodeHex(list.get(0).getPassword());
+			try {
+				System.out.println("解密的密码 = " + new String(bytes));
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return list;
+	}
+
+	/**
+	 * 根据用户 id 查询用户信息
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public User getUserById(String id) {
+		return baseMapper.getUserById(Long.parseLong(id));
+	}
 }

--
Gitblit v1.9.3