From f6eeb01e5a77965facfb0ae9a517b09681b3f69f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 13 Jun 2022 14:45:29 +0800
Subject: [PATCH] 实操成绩修改申请,成绩修改申请修改,保安员证编号由内网处理

---
 src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java |  156 ++++++++++++++++------------------------------------
 1 files changed, 48 insertions(+), 108 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 20ff85c..e53148a 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
@@ -1,6 +1,7 @@
 
 package org.springblade.modules.exam.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
@@ -257,8 +258,43 @@
 		return false;
 	}
 
+//	/**
+//	 * 导入实操成绩
+//	 *
+//	 * @param examScoreExcelList
+//	 * @param isCovered          是否覆盖
+//	 */
+//	@Override
+//	public void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered) {
+//		if (examScoreExcelList.size() > 0) {
+//			//遍历
+//			examScoreExcelList.forEach(examScoreExcel -> {
+//				if (null != examScoreExcel.getLearnGrade() && null != examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo() != "") {
+//					//使用考试名称匹配考试信息
+//					List<ExamPaper> examPaperList = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
+//					ExamPaper examPaper = examPaperList.get(0);
+//					//查询出成绩数据
+//					if (examPaperList.size() > 0) {
+//						ExamScore score = new ExamScore();
+//						score.setCandidateNo(examScoreExcel.getIdCardNo());
+//						score.setLearnGrade(examScoreExcel.getLearnGrade());
+//						score.setExamTime(examPaper.getStartTime());
+//						//生成随机数
+//						String uuid = UUID.randomUUID().toString();
+//						//数据推送
+//						Map<String, Object> map = new HashMap<>(1);
+//						map.put(uuid, score);
+//						myAsyncService.FTPObjectExamScore(map);
+//					} else {
+//						throw new ServiceException("导入失败!考试名称:[" + examScoreExcel.getExamName() + "]不存在!请核对!");
+//					}
+//				}
+//			});
+//		}
+//	}
+
 	/**
-	 * 导入实操成绩
+	 * 导入实操成绩(按准考证编号导入版)
 	 *
 	 * @param examScoreExcelList
 	 * @param isCovered          是否覆盖
@@ -270,30 +306,22 @@
 			//导入状态,默认为true ,如果有一个出现问题则为 false
 			AtomicBoolean status = new AtomicBoolean(true);
 			//遍历
-			examScoreExcelList.forEach(examScoreExcel -> {
-				if (null != examScoreExcel.getLearnGrade() && null != examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo() != "") {
+			for (ExamScoreExcel examScoreExcel : examScoreExcelList) {
+				if (null != examScoreExcel.getLearnGrade() && null != examScoreExcel.getCandidateNo() && examScoreExcel.getCandidateNo() != "") {
 					//使用考试名称匹配考试信息
 					List<ExamPaper> examPaperList = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
-					ExamPaper examPaper = examPaperList.get(0);
 					//查询出成绩数据
 					if (examPaperList.size() > 0) {
-						//取第一个
-						List<ExamScore> examScoreList = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(), new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime()));
+						ExamScore score = new ExamScore();
+						score.setCandidateNo(examScoreExcel.getCandidateNo());
+						List<ExamScore> examScoreList = this.list(new QueryWrapper<>(score));
 						if (examScoreList.size() == 0) {
-							//根据身份证号查询用户
-							User user0 = userService.getUserInfoByIdCardNo(examScoreExcel.getIdCardNo());
-							if (null == user0) {
-								throw new ServiceException("没有找到用户:[" + examScoreExcel.getIdCardNo() + "]相关考试成绩信息,请检查身份证是否有误!");
-//								throw new ServiceException("用户:["+examScoreExcel.getIdCardNo()+"]不存在");
-							}
+							errorList.add(examScoreExcel.getName());
+							status.set(false);
+							break;
 						}
 						//遍历集合
 						examScoreList.forEach(examScore -> {
-//							ExamScore examScore1 = new ExamScore();
-//							examScore1.setCandidateNo(examScoreExcel.getCandidateNo());
-//							examScore1.setUserId(user0.getId().toString());
-//							//根据准考证号和用户id查询考试成绩
-//							ExamScore examScore = this.getOne(Condition.getQueryWrapper(examScore1));
 							if (null != examScore) {
 								//查询当前保安信息
 								UserVO user = userService.getUserAgeById(Long.parseLong(examScore.getUserId()));
@@ -307,97 +335,11 @@
 										user.setUserType(7);
 										//如果已有保安证编号,不更新用户信息
 										if (null == user.getSecuritynumber() || user.getSecuritynumber().equals("")) {
-											//去生成保安证编号
-											String pre = SecurityPaperUtil.getSecurityPaper();
-											//查询当前年份已有的保安证编号
-//											int count = userService.getSecurityPaperCount(pre);
-											//需调用内网查询
-											//生成随机数
-											String uuid = UUID.randomUUID().toString();
-
+											//去内网生成保安证编号,由内网生成,无需返回
 											//数据推送
 											Map<String, Object> map = new HashMap<>(1);
-											map.put(uuid, pre);
+											map.put("key",examScore);
 											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 (max == 0) {
-												result = pre + "00001";
-											} else {
-												//格式化
-												DecimalFormat decimalFormat = new DecimalFormat("00000");
-												max++;
-												result = pre + (decimalFormat.format(max));
-											}
-											//脱敏处理
-											user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result));
-											//修改为持证保安
-											user.setHold("1");
-											user.setUpdateTime(new Date());
-											//更新保安数据
-											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);
-											//内网对象
-											SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper, SecurityPaper.class));
-											//新增保安员证信息
-											securityPaper.setNumber(DesensitizedUtil.desensitizedSecurityNumber(result));
-											securityPaper.setIdCardNo("");
-											securityPaperService.save(securityPaper);
-
-											//设置id
-											paper.setId(securityPaper.getId());
-											//内网同步
-											String s1 =
-												"insert into sys_security_paper(id,number,create_time,people_name,id_card_no,user_id,apply_id,exam_id,source) " +
-													"values(" + "'" + paper.getId() + "'"
-													+ "," + "'" + paper.getNumber() + "'"
-													+ "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(paper.getCreateTime()) + "'"
-													+ "," + "'" + paper.getPeopleName() + "'"
-													+ "," + "'" + paper.getIdCardNo() + "'"
-													+ "," + "'" + paper.getUserId() + "'"
-													+ "," + "'" + paper.getApplyId() + "'"
-													+ "," + "'" + paper.getExamId() + "'"
-													+ "," + "'" + paper.getSource() + "'" + ");" +
-													"update blade_user set hold = " + "'" + user.getHold() + "'" +
-													",securitynumber = " + "'" + result + "'" +
-													",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
-													",user_type = " + "'" + user.getUserType() + "'" +
-													" " + "where id = " + "'" + user.getId() + "'";
-											myAsyncService.FTP(s1);
 										}
 									}
 								} else {
@@ -427,7 +369,6 @@
 										",all_grade = " + "'" + examScore.getAllGrade() + "'" +
 										",qualified = " + "'" + examScore.getQualified() + "'" +
 										" " + "where id = " + "'" + examScore.getId() + "'";
-								//FtpUtil.sqlFileUpload(s1);
 								myAsyncService.FTP(s1);
 								//更新成绩数据
 								baseMapper.updateById(examScore);
@@ -436,12 +377,11 @@
 								status.set(false);
 							}
 						});
-
 					} else {
 						throw new ServiceException("导入失败!考试名称:[" + examScoreExcel.getExamName() + "]不存在!请核对!");
 					}
 				}
-			});
+			}
 			//如果所有数据导入有一个异常
 			if (!status.get()) {
 				String errorAccount = StringUtils.join(errorList, "\\\n");

--
Gitblit v1.9.3