From 7f36a55767f870937a473f9c0eebf0240300a5ef Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 08 Jun 2022 22:07:21 +0800
Subject: [PATCH] ftp 个人保安新增修改
---
src/main/java/org/springblade/modules/system/controller/UserController.java | 151 ++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 127 insertions(+), 24 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index e62ded0..ac732ac 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -33,6 +33,7 @@
import lombok.AllArgsConstructor;
import net.sf.json.JSONObject;
import org.apache.commons.codec.Charsets;
+import org.apache.commons.lang3.StringUtils;
import org.springblade.common.cache.DictCache;
import org.springblade.common.config.FtpConfig;
import org.springblade.common.enums.DictEnum;
@@ -107,11 +108,13 @@
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static org.springblade.common.config.FtpConfig.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
+import static org.springblade.modules.FTP.DataHandler.handlerUserInfo;
/**
* 控制器
@@ -318,7 +321,8 @@
//计数
count++;
//如果超过10s 没有读取到,则退出
- if (count == 30) {
+ if (count == 60) {
+ System.out.println("等待超时.....................");
break;
}
}
@@ -872,7 +876,7 @@
.headers(headers)
.build());
InputStream inputStream = new ByteArrayInputStream(b);
- FtpUtil.uploadFile(FtpConfig.ftpHost, ftpPort, FtpConfig.ftpUserName, ftpPassword, ftpPath, "/", split[2], inputStream);
+ FtpUtil.uploadFile(FtpConfig.ftpHost, ftpPort, FtpConfig.ftpUserName, ftpPassword, ftpPath, "/", "f"+split[2], inputStream);
in.close();
//外围url
String urls = "http://61.131.136.25:2081/zhba/" + newName;
@@ -1622,43 +1626,127 @@
Result result = new Result();
//调用ftp获取返回数据
while (true){
- Thread.sleep(1000);
+ System.out.println("用户新增开始接收消息......................");
+ Thread.sleep(2000);
//调用ftp获取返回数据
result = Monitor.isFTPFileExist(uuid);
//如果返回true,就退处
if (result.getCode()==200){
- flag = 1;
- break;
- }else if (result.getCode()==201){
- flag = 2;
- break;
- }else if (result.getCode()==202){
- flag = 3;
- break;
- }else if (result.getCode()==203){
- flag = 4;
break;
}else{
//计数
count++;
- //如果超过10s 没有读取到,则退出
- if (count == 30) {
+ //如果超过60s 没有读取到,则退出
+ if (count == 60) {
break;
}
}
}
- if (flag==1 || flag==2) {
- //返回
- return R.data(200, null, "新增成功!");
- }else if (flag==3){
- throw new ServiceException(result.getMsg());
- }else if (flag==4){
+
+ //将不能导入的保安员账号存起来
+ List<String> errorList = new ArrayList<>();
+ //保安员证编号不符的保安员信息存入集合
+ List<String> securityInvalidList = new ArrayList<>();
+ //导入状态,默认为true ,如果有一个出现问题则为 false
+ AtomicBoolean status = new AtomicBoolean(true);
+ AtomicBoolean securityInvalidStatus = new AtomicBoolean(true);
+ if (null!=result){
+ //用户数处理
+ User users = handlerUserInfo(uuid);
+ System.out.println("用户数据处理---------------");
+ System.out.println("用户数据 = " + users);
+ //判断结果
+ if (result.getCode()==200){
+ //新增
+ users.setId(result.getUserId());
+ users.setStatus(1);
+ //插入数据库
+ boolean save = userService.save(users);
+ if (save){
+ //异步同步到群防群控
+ myAsyncService.qfqkUserSave(users);
+ }
+ }else if (result.getCode()==201) {
+ //修改
+ users.setId(result.getUserId());
+ //先查询当前库是否有改用户?
+ User user2 = userService.getById(result.getUserId());
+ if (null!=user2) {
+ //数据修改
+ boolean b = userService.updateById(users);
+ if (b) {
+ //异步同步到群防群控
+ myAsyncService.updateUserByQfqk(user);
+ }
+ }else {
+ //新增
+ boolean save = userService.save(users);
+ if (save){
+ //异步同步到群防群控
+ myAsyncService.qfqkUserSave(users);
+ }
+ }
+ }else if (result.getCode()==203){
+ //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 用户为新增
+ //新增
+ users.setId(result.getUserId());
+ //插入数据库
+ boolean save = userService.save(users);
+ if (save) {
+ //异步同步到群防群控
+ myAsyncService.qfqkUserSave(users);
+ }
+ securityInvalidStatus.set(false);
+ //保安证编号不匹配
+ securityInvalidList.add(user.getCardid());
+ }else if (result.getCode()==204){
+ //保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请! 内网用户已存在情况
+ users.setId(result.getUserId());
+ //先查询当前库是否有改用户?
+ User user2 = userService.getById(result.getUserId());
+ //判断
+ if (null!=user2) {
+ //修改
+ //数据修改
+ boolean b = userService.updateById(users);
+ if (b){
+ //异步同步到群防群控
+ myAsyncService.updateUserByQfqk(users);
+ }
+ }else {
+ //新增
+ boolean save = userService.save(users);
+ if (save){
+ //异步同步到群防群控
+ myAsyncService.qfqkUserSave(users);
+ }
+ }
+ securityInvalidStatus.set(false);
+ //保安证编号不匹配
+ securityInvalidList.add(user.getCardid());
+ }else {
+ status.set(false);
+ //已在其他单位存在
+ errorList.add(user.getCardid());
+ }
+ }
+
+ //如果所有数据导入有一个异常
+ StringBuilder errorBuilder = new StringBuilder();
+ if (!status.get()){
+ String errorAccount = StringUtils.join(errorList, "\\\n");
+ errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
+ }
+ //抛出异常
+ if (errorBuilder.length()>0){
+ throw new org.springblade.core.log.exception.ServiceException(errorBuilder.toString());
+ }
+
+ if (!securityInvalidStatus.get()){
// return R.data(201, null, "保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!");
return R.data(201, null, "保安证编号不匹配,请核实!");
- }else{
- //返回
- return R.data(400, null, "新增失败!");
}
+ return R.data(200, null, "新增成功!");
}
/**
@@ -1858,4 +1946,19 @@
public R getNotUpdatePwdInfo() {
return R.data(userService.getNotUpdatePwdInfo());
}
+
+ /**
+ * 用户手动离职(用户数据未同步成功的)
+ * @param user
+ * @return
+ */
+ @GetMapping("/leave")
+ public void leave(User user){
+ user.setStatus(2);
+ String s1 =
+ "update blade_user set status = " + "'" + user.getStatus() + "'"
+ + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "'"
+ + " " + "where cardid = " + "'" + user.getCardid() + "'";
+ myAsyncService.FTP(s1);
+ }
}
--
Gitblit v1.9.3