From f70d9a7b19b8451532de026bf1e6b2a5770c16bd Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 13 Jun 2022 11:00:12 +0800
Subject: [PATCH] 新增实操成绩导入逻辑修改,ftp 处理文件逻辑修改

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

diff --git a/src/main/java/org/springblade/modules/FTP/DataHanlder.java b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
index 33fa6ed..8cdb11f 100644
--- a/src/main/java/org/springblade/modules/FTP/DataHanlder.java
+++ b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -2,9 +2,15 @@
 
 import com.alibaba.fastjson.JSON;
 import org.springblade.common.utils.DesensitizedUtil;
+import org.springblade.common.utils.SecurityPaperUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.dispatcher.entity.Dispatcher;
 import org.springblade.modules.dispatcher.service.IDispatcherService;
+import org.springblade.modules.exam.entity.ExamPaper;
+import org.springblade.modules.exam.entity.ExamScore;
+import org.springblade.modules.exam.service.ExamScoreService;
 import org.springblade.modules.experience.entity.Experience;
 import org.springblade.modules.experience.service.IExperienceService;
 import org.springblade.modules.securitypaper.entity.SecurityPaper;
@@ -13,9 +19,11 @@
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDeptService;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.vo.UserVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import javax.annotation.PostConstruct;
+import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -43,10 +51,13 @@
 	@Autowired
 	private IDeptService iDeptService;
 
+	@Autowired
+	private ExamScoreService examScoreService;
 
 
 
-	/**
+
+    /**
 	 * 初始化
 	 */
 	@PostConstruct
@@ -130,6 +141,133 @@
 	}
 
 	/**
+	 * 考试实操成绩处理
+	 * @param json
+	 */
+	public static void handlerUserExamScore(String json) {
+		Map map = JSON.parseObject(json, Map.class);
+		//取出 key(uuid)
+		String key = map.keySet().toArray()[0].toString();
+		Object value = map.get(key);
+		//得到考试成绩
+		ExamScore examScore = JSON.parseObject(value.toString(), ExamScore.class);
+		//处理实操考试成绩
+		examScoreHandler(examScore);
+	}
+
+	/**
+	 * 实操成绩处理
+	 * @param examScore0
+	 */
+	private static void examScoreHandler(ExamScore examScore0) {
+		//取第一个
+		List<ExamScore> examScoreList = hanlder.examScoreService.getExamScoreInfoByIdCardNo(examScore0.getCandidateNo(), new SimpleDateFormat("yyyy-MM-dd").format(examScore0.getExamTime()));
+		if (examScoreList.size()>0) {
+			//遍历集合
+			examScoreList.forEach(examScore -> {
+				if (null != examScore) {
+					//查询当前保安信息
+					UserVO user = hanlder.userService.getUserAgeById(Long.parseLong(examScore.getUserId()));
+					//设置实操成绩
+					examScore.setLearnGrade(examScore0.getLearnGrade());
+					if (null != examScore.getTheoryGrade()) {
+						if (examScore.getTheoryGrade() >= 60 && examScore.getLearnGrade() >= 60) {
+							//合格
+							examScore.setQualified(0);
+							//修改制证状态为未制证
+							user.setUserType(7);
+							//如果已有保安证编号,不更新用户信息
+							if (null == user.getSecuritynumber() || user.getSecuritynumber().equals("")) {
+								//去生成保安证编号
+								String pre = SecurityPaperUtil.getSecurityPaper();
+								//查询当前年份已有的保安证编号
+								int count = hanlder.userService.getSecurityPaperCount(pre);
+								String result = null;
+								if (count == 0) {
+									result = pre + "00001";
+								} else {
+									//格式化
+									DecimalFormat decimalFormat = new DecimalFormat("00000");
+									count++;
+									result = pre + (decimalFormat.format(count));
+								}
+								//脱敏处理
+								user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result));
+								//修改为持证保安
+								user.setHold("1");
+								user.setUpdateTime(new Date());
+								//更新保安数据
+								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);
+
+								//内网同步
+								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);
+							}
+						}
+					} else {
+						//不合格
+						examScore.setQualified(1);
+					}
+					//总成绩
+					if (user.getAge() <= 50) {
+						if (null != examScore.getTheoryGrade()) {
+							examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScore0.getLearnGrade()) / 2));
+						} else {
+							examScore.setAllGrade(Math.round(examScore0.getLearnGrade() / 2));
+						}
+					}
+					if (user.getAge() > 50) {
+						if (null != examScore.getTheoryGrade()) {
+							examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore.getTheoryGrade() * 0.5)))
+								+ Integer.parseInt(String.valueOf(Math.round(examScore0.getLearnGrade() * 0.5))));
+						} else {
+							examScore.setAllGrade(Math.round(examScore0.getLearnGrade() / 2));
+						}
+					}
+
+					//外网同步
+					String s1 =
+						"update exam_score set learn_grade = " + "'" + examScore.getLearnGrade() + "'" +
+							",all_grade = " + "'" + examScore.getAllGrade() + "'" +
+							",qualified = " + "'" + examScore.getQualified() + "'" +
+							" " + "where id = " + "'" + examScore.getId() + "'";
+					hanlder.myAsyncService.FTP(s1);
+					//更新成绩数据
+					hanlder.examScoreService.updateById(examScore);
+				}
+			});
+		}else {
+			//根据身份证号查询用户
+			User user0 = hanlder.userService.getUserInfoByIdCardNo(examScore0.getCandidateNo());
+			if (null == user0) {
+				String msg = "没有找到用户:[" + examScore0.getCandidateNo() + "]相关考试成绩信息,请检查身份证是否有误!";
+				//向外网推送
+				Result result = new Result(200,null,msg);
+				Map<String, Object> map = new HashMap<>(1);
+				map.put("key", result);
+				//向外网发送数据
+				FtpUtil.objectFileUploadExamScore(map);
+			}
+		}
+	}
+
+	/**
 	 * 数据处理(集合)
 	 * @param json
 	 */

--
Gitblit v1.9.3