From dc2e7030b0312910dfa7e88229eae96cc80f4501 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 17 Jun 2022 17:29:22 +0800
Subject: [PATCH] 导入修改

---
 src/main/java/org/springblade/modules/FTP/DataHanlder.java |  224 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 205 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/springblade/modules/FTP/DataHanlder.java b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
index 4e03607..2624cab 100644
--- a/src/main/java/org/springblade/modules/FTP/DataHanlder.java
+++ b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -1,7 +1,10 @@
 package org.springblade.modules.FTP;
 
 import com.alibaba.fastjson.JSON;
+import org.json.JSONArray;
+import org.json.JSONObject;
 import org.springblade.common.utils.DesensitizedUtil;
+import org.springblade.common.utils.InvestigateUtil;
 import org.springblade.common.utils.SecurityPaperUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
@@ -21,6 +24,7 @@
 import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.system.vo.UserVO;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 import javax.annotation.PostConstruct;
 import java.text.DecimalFormat;
@@ -119,27 +123,29 @@
 				user.setUpdateTime(new Date());
 				user.setUserType(7);
 				//更新保安数据
-				hanlder.userService.updateById(user);
+				boolean flag = hanlder.userService.updateById(user);
 
-				//生成保安证的同时向保安证管理表中插入一条数据
-				SecurityPaper securityPaper = new SecurityPaper();
-				securityPaper.setUserId(user.getId());
-				securityPaper.setNumber(result);
-				securityPaper.setCreateTime(new Date());
-				securityPaper.setIdCardNo(user.getCardid());
-				securityPaper.setPeopleName(user.getRealName());
-				securityPaper.setExamId(Long.parseLong(examScore.getExamId()));
-				securityPaper.setApplyId(examScore.getApplyId());
-				securityPaper.setSource(1);
-				hanlder.securityPaperService.save(securityPaper);
+				if (flag) {
+					//生成保安证的同时向保安证管理表中插入一条数据
+					SecurityPaper securityPaper = new SecurityPaper();
+					securityPaper.setUserId(user.getId());
+					securityPaper.setNumber(result);
+					securityPaper.setCreateTime(new Date());
+					securityPaper.setIdCardNo(user.getCardid());
+					securityPaper.setPeopleName(user.getRealName());
+					securityPaper.setExamId(Long.parseLong(examScore.getExamId()));
+					securityPaper.setApplyId(examScore.getApplyId());
+					securityPaper.setSource(1);
+					hanlder.securityPaperService.save(securityPaper);
 
-				//内网同步
-				String s1 = "update blade_user set hold = " + "'" + user.getHold() + "'" +
-					",securitynumber = " + "'" + DesensitizedUtil.desensitizedSecurityNumber(result) + "'" +
-					",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
-					",user_type = " + "'" + user.getUserType() + "'" +
-					" " + "where id = " + "'" + user.getId() + "'";
-				hanlder.myAsyncService.FTP(s1);
+					//内网同步
+					String s1 = "update blade_user set hold = " + "'" + user.getHold() + "'" +
+						",securitynumber = " + "'" + DesensitizedUtil.desensitizedSecurityNumber(result) + "'" +
+						",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
+						",user_type = " + "'" + user.getUserType() + "'" +
+						" " + "where id = " + "'" + user.getId() + "'";
+					hanlder.myAsyncService.FTP(s1);
+				}
 			}
 		}
 	}
@@ -396,6 +402,174 @@
 	}
 
 	/**
+	 * 管理人员保安员导入并生成保安证编号
+	 * @param json
+	 */
+	public static void handlerSecurityPaperList(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();
+				result1.setMsg(uuid);
+				if (result.getCode() == 200) {
+					user.setReasonForLeav("");
+					//直接去审查,审查异常则不新增
+					//审查
+					User user1 = hanlder.checkUserExamineByCardNos(user);
+					if (null!=user1){
+						if (user1.getExaminationType().equals("0")){
+							//生成保安证编号和记录
+							//去生成保安证编号
+							String pre = SecurityPaperUtil.getSecurityPaper();
+							//查询当前年份已有的保安证编号
+							int count = hanlder.userService.getSecurityPaperCount(pre);
+							String result0 = null;
+							if (count == 0) {
+								result0 = pre + "00001";
+							} else {
+								//格式化
+								DecimalFormat decimalFormat = new DecimalFormat("00000");
+								count++;
+								result0 = pre + (decimalFormat.format(count));
+							}
+							//修改制证状态为未制证
+							user.setUserType(7);
+							user.setSecuritynumber(result0);
+							//修改为持证保安
+							user.setHold("1");
+							user.setUpdateTime(new Date());
+							//更新保安数据
+							boolean save = hanlder.userService.save(user);
+
+							if (save) {
+								//生成保安证的同时向保安证管理表中插入一条数据
+								SecurityPaper securityPaper = new SecurityPaper();
+								securityPaper.setUserId(user.getId());
+								securityPaper.setNumber(result0);
+								securityPaper.setCreateTime(new Date());
+								securityPaper.setIdCardNo(user.getCardid());
+								securityPaper.setPeopleName(user.getRealName());
+								securityPaper.setSource(3);
+								hanlder.securityPaperService.save(securityPaper);
+
+								//异步新增从业记录
+								hanlder.myAsyncService.insertExperience(user);
+
+								//设置返回结果
+								result1.setCode(200);
+								result1.setUserId(user.getId());
+								result1.setMsg(result1.getMsg()+","+DesensitizedUtil.desensitizedSecurityNumber(result0));
+							}
+						}else {
+							//不新增,审查异常
+							result1.setCode(205);
+							result1.setUserId(null);
+						}
+					}
+				} else if (result.getCode() == 201) {
+					User user1 = result.getUser();
+					//更新
+					result1.setCode(201);
+					result1.setUserId(user1.getId());
+				} else {
+					//不新增,不修改
+					//设置返回结果,以在其他单位存在
+					result1.setCode(202);
+					result1.setUserId(null);
+				}
+				//存入结果集
+				resultList.add(result1);
+			}
+			Result result = new Result(200, "", resultList);
+			Map<String, Object> map1 = new HashMap<>(1);
+			map1.put(key, result);
+			//向外网发送数据
+			FtpUtil.objectFileUploadPaperList(map1);
+		}
+	}
+
+
+	/**
+	 * 审查新增的保安员,审查通过并生成保安员证编号
+	 * @param user0
+	 */
+	public User checkUserExamineByCardNos(User user0){
+		//如果是保安员
+		if (user0.getRoleId().equals("1412226235153731586")){
+			//创建用户对象
+			User user = new User();
+			user.setId(user0.getId());
+			//远程调用接口
+			String body = InvestigateUtil.httpGetOne(user0.getCardid());
+			JSONObject jsonObject = new JSONObject(body);
+			Object data = jsonObject.get("data");
+			JSONObject jsonData = new JSONObject(data.toString());
+			JSONArray res = jsonData.getJSONArray("res");
+			//设置审核时间
+			user.setAuditTime(new Date());
+			//如果有结果返回
+			if (res.length() == 0) {
+				//没有数据正常
+				user.setExaminationType("0");
+			} else {
+				int count = 0;
+				user.setExaminationType("1");
+				for (int i = 0; i < res.length(); i++) {
+					if (res.getJSONObject(i).get("zdrylbjh").toString() != null
+						&& res.getJSONObject(i).get("zdrylbjh").toString() != ""
+						&& res.getJSONObject(i).get("zdrylbjh").toString() != "null"
+					) {
+						user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString());
+						//更新用户数据
+//						userService.updateById(user);
+						break;
+					}
+					if (res.getJSONObject(i).get("zdryxlmc").toString() != null
+						&& res.getJSONObject(i).get("zdryxlmc").toString() != ""
+						&& res.getJSONObject(i).get("zdryxlmc").toString() != "null"
+					) {
+						user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString());
+						//更新用户数据
+//						userService.updateById(user);
+						break;
+					}
+					if (res.getJSONObject(i).get("ztrylx").toString() != null
+						&& res.getJSONObject(i).get("ztrylx").toString() != ""
+						&& res.getJSONObject(i).get("ztrylx").toString() != "null"
+					) {
+						user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString());
+						//更新用户数据
+//						userService.updateById(user);
+						break;
+					}
+					count++;
+					//条件中的数据都为空,则审查为正常
+					if (count==res.length()){
+						//更新用户数据,设为正常
+						user.setExaminationType("0");
+//						userService.updateById(user);
+					}
+				}
+			}
+			//更新用户数据
+			return user;
+		}
+		return null;
+	}
+
+	/**
 	 * 数据处理(单个保安员新增)
 	 * @param json
 	 */
@@ -616,6 +790,16 @@
 			&& user.getHold().equals("1")
 			&& null!=user.getSecuritynumber()
 			&& !user.getSecuritynumber().equals("")){
+			//截取,这个范围的不校验
+//			String pre = user.getSecuritynumber().substring(0,6);
+//			String number = user.getSecuritynumber().substring(6);
+//			if (pre.equals("赣洪2022")){
+//				int num = Integer.parseInt(number);
+//				if (num>=21000 && num<=23000){
+//					user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(user.getSecuritynumber()));
+//					return new Result(200,null,"",user);
+//				}
+//			}
 			//持证,校验保安证编号是否合法
 			SecurityPaper securityPaper = new SecurityPaper();
 			securityPaper.setIdCardNo(user.getCardid());
@@ -629,10 +813,12 @@
 				}
 				if (!states){
 					user.setHold("2");
+					user.setSecuritynumber("");
 				}
 			}else {
 				states = false;
 				user.setHold("2");
+				user.setSecuritynumber("");
 			}
 		}else {
 			states = true;

--
Gitblit v1.9.3