From df054296327ebca617a9c19bb01139b9c40bf232 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 07 Jun 2022 11:25:44 +0800
Subject: [PATCH] 培训报名,保安员头像导入新增修改

---
 src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
index 3b89fed..2ef6f1c 100644
--- a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
+++ b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -7,7 +7,10 @@
 import org.springblade.common.utils.DesensitizedUtil;
 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.FTP.FtpUtil;
+import org.springblade.modules.FTP.Monitor;
+import org.springblade.modules.FTP.Result;
 import org.springblade.modules.apply.entity.Apply;
 import org.springblade.modules.apply.service.ApplyService;
 import org.springblade.modules.exam.entity.*;
@@ -119,6 +122,7 @@
 	public Boolean saveExamScore(ExamScoreVO examScore) {
 		//取出考试结果
 		if (examScore.getExamResultVOS().size() > 0) {
+			ExamScore score = this.getById(examScore.getId());
 			List<ExamResultVO> examResultVOS = examScore.getExamResultVOS();
 			//获取试卷的内容(题号,答案)
 //			ExamPaper examPaper = new ExamPaper();
@@ -190,10 +194,11 @@
 			}
 			//培训考试
 			if (paper.getExamType() == 2) {
-				TrainingRegistration trainingRegistration = new TrainingRegistration();
-				trainingRegistration.setCandidateNo(examScore.getCandidateNo());
-				trainingRegistration.setCancel(1);
-				TrainingRegistration trainingRegistration1 = trainingRegistrationService.getOne(Condition.getQueryWrapper(trainingRegistration));
+//				TrainingRegistration trainingRegistration = new TrainingRegistration();
+//				trainingRegistration.setCandidateNo(examScore.getCandidateNo());
+//				trainingRegistration.setCancel(1);
+//				TrainingRegistration trainingRegistration1 = trainingRegistrationService.getOne(Condition.getQueryWrapper(trainingRegistration));
+				TrainingRegistration trainingRegistration1 = trainingRegistrationService.getById(score.getApplyId());
 				//查询用户年龄,根据年龄计算总分
 				user = userService.getUserAgeById(Long.parseLong(trainingRegistration1.getUserId()));
 				//修改用户的培训状态,理论考试结束
@@ -305,15 +310,48 @@
 											//去生成保安证编号
 											String pre = SecurityPaperUtil.getSecurityPaper();
 											//查询当前年份已有的保安证编号
-											int count = userService.getSecurityPaperCount(pre);
+//											int count = userService.getSecurityPaperCount(pre);
+											//需调用内网查询
+											//生成随机数
+											String uuid = UUID.randomUUID().toString();
+
+											//数据推送
+											Map<String, Object> map = new HashMap<>(1);
+											map.put(uuid,pre);
+											myAsyncService.FTPSecurityNumberBit(map);
+
+											int count = 0;
+											Result result0 = new Result();
+											//调用ftp获取返回数据
+											while (true){
+												try {
+													Thread.sleep(1000);
+												} catch (InterruptedException e) {
+													e.printStackTrace();
+												}
+												//调用ftp获取返回数据
+												result0 = Monitor.getSecurityNumberBit(uuid);
+												//如果返回true,就退处
+												if (result0.getCode()==200){
+													break;
+												}else{
+													//计数
+													count++;
+													//如果超过100s 没有读取到,则退出
+													if (count == 100) {
+														break;
+													}
+												}
+											}
+											int max = Integer.parseInt(result0.getMsg());
 											String result = null;
-											if (count == 0) {
+											if (max == 0) {
 												result = pre + "00001";
 											} else {
 												//格式化
 												DecimalFormat decimalFormat = new DecimalFormat("00000");
-												count++;
-												result = pre + (decimalFormat.format(count));
+												max++;
+												result = pre + (decimalFormat.format(max));
 											}
 											//脱敏处理
 											user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result));
@@ -334,7 +372,7 @@
 											securityPaper.setApplyId(examScore.getApplyId());
 											securityPaper.setSource(1);
 											//内网对象
-											SecurityPaper paper = securityPaper;
+											SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper,SecurityPaper.class));
 											//新增保安员证信息
 											securityPaper.setNumber(DesensitizedUtil.desensitizedSecurityNumber(result));
 											securityPaper.setIdCardNo("");

--
Gitblit v1.9.3