From 61cfb19a3864e70cedaa8de38f4caf032f528455 Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Fri, 06 May 2022 09:35:54 +0800
Subject: [PATCH] 新增查询保安员证编号,新增 ftp 读取

---
 src/main/java/org/springblade/modules/FTP/MyAsyncService.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 95 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/FTP/MyAsyncService.java b/src/main/java/org/springblade/modules/FTP/MyAsyncService.java
index 5116204..e966821 100644
--- a/src/main/java/org/springblade/modules/FTP/MyAsyncService.java
+++ b/src/main/java/org/springblade/modules/FTP/MyAsyncService.java
@@ -2,14 +2,20 @@
 
 import org.json.JSONArray;
 import org.json.JSONObject;
+import org.springblade.common.utils.DesensitizedUtil;
 import org.springblade.common.utils.InvestigateUtil;
+import org.springblade.modules.experience.entity.Experience;
+import org.springblade.modules.experience.service.IExperienceService;
+import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -21,13 +27,49 @@
 	@Autowired
 	private IUserService userService;
 
+	@Autowired
+	private IDeptService iDeptService;
 
+	@Autowired
+	private IExperienceService experienceService;
 
 	/**
 	 * FTP
 	 * @param s sql语句
 	 */
+	@Async
 	public void FTP(String s) {
+		FtpUtil.sqlFileUpload(s);
+	}
+
+	/**
+	 * FTP 审查结果推送
+	 * @param s sql语句
+	 */
+	@Async
+	public void FTP1(String s) {
+		//为防止外网尚未更新完成,休眠2秒发送第一次
+		try {
+			Thread.sleep(2);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+		FtpUtil.sqlFileUpload(s);
+		FTP2(s);
+	}
+
+	/**
+	 * FTP 审查结果推送
+	 * @param s sql语句
+	 */
+	@Async
+	public void FTP2(String s) {
+		//休眠30s,再次发送一次
+		try {
+			Thread.sleep(30);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
 		FtpUtil.sqlFileUpload(s);
 	}
 
@@ -38,14 +80,11 @@
 	 */
 	@Async
 	public void checkUserExamineByCardNo(User user0){
-		User byId = userService.getById(user0.getId());
 		//如果是保安员
 		if (user0.getRoleId().equals("1412226235153731586")){
-			//读取身份证号
-			String cardid = user0.getCardid();
 			//创建用户对象
 			User user = new User();
-			user.setId(user.getId());
+			user.setId(user0.getId());
 			//远程调用接口
 			String body = InvestigateUtil.httpGetOne(user0.getCardid());
 			JSONObject jsonObject = new JSONObject(body);
@@ -54,6 +93,7 @@
 			JSONArray res = jsonData.getJSONArray("res");
 			//设置审核时间
 			user.setAuditTime(new Date());
+			//如果有结果返回
 			if (res.length() == 0) {
 				//没有数据正常
 				user.setExaminationType("0");
@@ -67,7 +107,7 @@
 					) {
 						user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString());
 						//更新用户数据
-						userService.updateById(user);
+//						userService.updateById(user);
 						break;
 					}
 					if (res.getJSONObject(i).get("zdryxlmc").toString() != null
@@ -76,7 +116,7 @@
 					) {
 						user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString());
 						//更新用户数据
-						userService.updateById(user);
+//						userService.updateById(user);
 						break;
 					}
 					if (res.getJSONObject(i).get("ztrylx").toString() != null
@@ -85,7 +125,7 @@
 					) {
 						user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString());
 						//更新用户数据
-						userService.updateById(user);
+//						userService.updateById(user);
 						break;
 					}
 					count++;
@@ -93,14 +133,61 @@
 					if (count==res.length()){
 						//更新用户数据,设为正常
 						user.setExaminationType("0");
-						userService.updateById(user);
+//						userService.updateById(user);
 					}
 				}
 			}
 			//更新用户数据
 			userService.updateById(user);
+			//同时更新外网用户信息
+			String s1 = "update blade_user set examination_type = " + user.getExaminationType() +
+				",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
+				" where id = " + "'" + user.getId() + "'";
+			FTP1(s1);
 		}
 
 	}
 
+	/**
+	 * 异步新增用户从业记录
+	 * @param user
+	 */
+	@Async
+	public void insertExperience(User user) {
+		//根据公司名查询单位
+		Dept dept = iDeptService.getById(user.getDeptId());
+		Experience experience = new Experience();
+		experience.setCompanyname(dept.getDeptName());
+		//新增
+		if (null != user.getRtime()) {
+			experience.setEntrytime(user.getRtime());
+		} else {
+			experience.setEntrytime(new Date());
+		}
+		experience.setDeparturetime(new Date());
+		experience.setName(user.getRealName());
+		if (null != user.getReasonForLeav() && !user.getReasonForLeav().equals("")) {
+			experience.setLeaving(user.getReasonForLeav());
+		}
+		experience.setCardid(user.getCardid());
+		experience.setSecurityid(user.getId().toString());
+		//新增
+		experienceService.save(experience);
+
+		// 身份证号脱敏
+		String cardid = DesensitizedUtil.desensitizedIdNumberBy4(user.getCardid());
+		//内网同步
+		String s = "insert into sys_experience(id,name,entryTime,departureTime,leaving,cardId,companyname,securityId) " +
+			"values(" + "'" + experience.getId() + "'" +
+			"," + "'" + experience.getName() + "'" +
+			"," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
+			"," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getDeparturetime()) + "'" +
+			"," + "'" + experience.getLeaving() + "'" +
+			"," + "'" + cardid + "'" +
+			"," + "'" + experience.getCompanyname() + "'" +
+			"," + "'" + experience.getSecurityid() + "'"
+			+ ")";
+		//向外网推送
+		FTP(s);
+	}
 }

--
Gitblit v1.9.3