From 2f3462ccabb710c89a656e34f81b64785ff0dfe2 Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Thu, 28 Apr 2022 11:57:53 +0800
Subject: [PATCH] 保安员批量导入ftp 配置修改

---
 src/main/java/org/springblade/modules/FTP/FtpUtil.java           |   20 ++++++
 src/main/java/org/springblade/modules/FTP/Result.java            |   10 +++
 src/main/java/org/springblade/common/utils/DesensitizedUtil.java |    2 
 src/main/java/org/springblade/modules/FTP/DataHanlder.java       |   84 ++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/FTP/Monitor.java           |   10 +++
 5 files changed, 124 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/DesensitizedUtil.java b/src/main/java/org/springblade/common/utils/DesensitizedUtil.java
index 1eb595d..a750bba 100644
--- a/src/main/java/org/springblade/common/utils/DesensitizedUtil.java
+++ b/src/main/java/org/springblade/common/utils/DesensitizedUtil.java
@@ -116,7 +116,7 @@
 		Map<String, Object> map = new HashMap<>(1);
 		String a = "sdafa-445sdaf-fsafdsaf";
 		map.put(a,"abc");
-		System.out.println("map = " + map);
+		System.out.println("map = " + map.keySet());
 		Object o = map.get(a);
 		System.out.println("o = " + o);
 	}
diff --git a/src/main/java/org/springblade/modules/FTP/DataHanlder.java b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
index f5cf8da..97826d7 100644
--- a/src/main/java/org/springblade/modules/FTP/DataHanlder.java
+++ b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -47,6 +47,7 @@
 	@Autowired
 	private IDeptService iDeptService;
 
+
 	/**
 	 * 初始化
 	 */
@@ -63,6 +64,89 @@
 
 
 	/**
+	 * 数据处理(集合)
+	 * @param json
+	 */
+	public static void handlerList(String json) {
+		Map map = JSON.parseObject(json, Map.class);
+		//取出 key(uuid)
+		String key = map.keySet().toArray()[0].toString();
+		Object users = map.get(key);
+		List<User> userList = JSON.parseArray(users.toString(), User.class);
+		//遍历
+		if (userList.size()>0) {
+			List<Result> resultList = new ArrayList<>();
+			//开始遍历
+			for (User user : userList) {
+				//取出 uuid
+				String uuid = user.getReasonForLeav();
+				//用户数据校验,是否已导入(本单位或其他单位)
+				Result result = userCheckOut(user);
+				//创建返回对象
+				Result result1 = new Result();
+				if (result.getCode() == 200) {
+					user.setReasonForLeav("");
+					//校验保安员证编号
+					Result result2 = hanlder.checkSecurityNumber(user);
+					User user1 = result2.getUser();
+					//去新增
+					boolean save = hanlder.userService.save(user1);
+					if (save) {
+						//异步新增从业记录
+						hanlder.myAsyncService.insertExperience(user1);
+						//异步审查
+						hanlder.myAsyncService.checkUserExamineByCardNo(user1);
+					}
+
+					if (result2.getCode() == 200) {
+						//设置返回结果
+						result1.setCode(200);
+						result1.setUserId(user1.getId());
+					} else {
+						//设置返回结果
+						result1.setCode(203);
+						result1.setUserId(user1.getId());
+					}
+				} else if (result.getCode() == 201) {
+					//去修改
+					user.setReasonForLeav("");
+					User data = result.getUser();
+					user.setId(data.getId());
+					//校验保安员证编号
+					Result result2 = hanlder.checkSecurityNumber(user);
+					User user2 = result2.getUser();
+					user2.setId(data.getId());
+
+					//修改
+					hanlder.userService.updateById(user2);
+					//设置返回结果
+					if (result2.getCode() == 200) {
+						result1.setCode(201);
+						result1.setUserId(user.getId());
+					} else {
+						//设置返回结果
+						result1.setCode(203);
+						result1.setUserId(user.getId());
+					}
+				} else {
+					//不新增,不修改
+					//设置返回结果,以在其他单位存在
+					result1.setCode(202);
+					result1.setUserId(null);
+				}
+				result1.setMsg(uuid);
+				//存入结果集
+				resultList.add(result1);
+			}
+			Result result = new Result(200, "", resultList);
+			Map<String, Object> map1 = new HashMap<>(1);
+			map1.put(key, result);
+			//向外网发送数据
+			FtpUtil.objectFileUploadList(map1);
+		}
+	}
+
+	/**
 	 * 数据处理
 	 * @param json
 	 */
diff --git a/src/main/java/org/springblade/modules/FTP/FtpUtil.java b/src/main/java/org/springblade/modules/FTP/FtpUtil.java
index 52b8bbe..18c6cef 100644
--- a/src/main/java/org/springblade/modules/FTP/FtpUtil.java
+++ b/src/main/java/org/springblade/modules/FTP/FtpUtil.java
@@ -11,6 +11,8 @@
 import java.io.*;
 import java.net.SocketException;
 import java.util.Date;
+import java.util.Map;
+
 import net.lingala.zip4j.core.ZipFile;
 
 import static org.springblade.common.config.FtpConfig.*;
@@ -378,5 +380,21 @@
 	}
 
 
-
+	/**
+	 * 执行 对象数据(用户,报名对象信息等) 上传
+	 * @param obj 对象信息
+	 */
+	public static void objectFileUploadList(Object obj){
+		String json1 = JSON.toJSONString(obj);
+		String response1 = String.valueOf((new Date()).getTime());
+		OutJson.createJsonFile(json1, localPath, "nl"+response1);
+		FileInputStream in1 = null;
+		try {
+			in1 = new FileInputStream(new File(localPath + "nl"+response1+".json"));
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		FtpUtil.uploadFile(ftpHost, ftpPort, ftpUserName, ftpPassword, ftpPath, "/",  "nl"+response1+".json", in1);
+		MysqlCenlint.deletess("nl"+response1+".json");
+	}
 }
diff --git a/src/main/java/org/springblade/modules/FTP/Monitor.java b/src/main/java/org/springblade/modules/FTP/Monitor.java
index 1ce263e..4f48894 100644
--- a/src/main/java/org/springblade/modules/FTP/Monitor.java
+++ b/src/main/java/org/springblade/modules/FTP/Monitor.java
@@ -93,6 +93,16 @@
 							MysqlCenlint.deletess(fileName);
 							//删除 ftp 文件
 							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
+						}else if(substring1.equals("ol")){
+							//用户集合数据
+							//获取对象字符串
+							String json = OutJson.TestJson(fileName);
+							//数据处理
+							DataHanlder.handlerList(json);
+							//删除本地文件
+							MysqlCenlint.deletess(fileName);
+							//删除 ftp 文件
+							FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserName, ftpPassword, "anbao/", fileName);
 						}
 						//删除本地文件,ftp 文件没有对应读取的不删除
 						MysqlCenlint.deletess(fileName);
diff --git a/src/main/java/org/springblade/modules/FTP/Result.java b/src/main/java/org/springblade/modules/FTP/Result.java
index 343bd89..1cbb095 100644
--- a/src/main/java/org/springblade/modules/FTP/Result.java
+++ b/src/main/java/org/springblade/modules/FTP/Result.java
@@ -3,6 +3,8 @@
 import lombok.Data;
 import org.springblade.modules.system.entity.User;
 
+import java.util.List;
+
 /**
  * 响应对象
  * @author zhongrj
@@ -18,6 +20,14 @@
 
 	private User user;
 
+	public Result(Integer code, String msg, List<Result> data) {
+		this.code = code;
+		this.msg = msg;
+		this.data = data;
+	}
+
+	private List<Result> data;
+
 	public Result(Integer code, String msg, User user) {
 		this.code = code;
 		this.msg = msg;

--
Gitblit v1.9.3