From bd024f2081dd68ddd2289b3f8fcbacfae1a6d104 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 11 Jun 2022 21:31:33 +0800
Subject: [PATCH] 新增定时任务重新计算当天成绩

---
 src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java |  221 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 212 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 fddc494..77e4c90 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
@@ -317,13 +317,13 @@
 
 											//数据推送
 											Map<String, Object> map = new HashMap<>(1);
-											map.put(uuid,pre);
+											map.put(uuid, pre);
 											myAsyncService.FTPSecurityNumberBit(map);
 
 											int count = 0;
 											Result result0 = new Result();
 											//调用ftp获取返回数据
-											while (true){
+											while (true) {
 												try {
 													Thread.sleep(1000);
 												} catch (InterruptedException e) {
@@ -332,9 +332,9 @@
 												//调用ftp获取返回数据
 												result0 = Monitor.getSecurityNumberBit(uuid);
 												//如果返回true,就退处
-												if (result0.getCode()==200){
+												if (result0.getCode() == 200) {
 													break;
-												}else{
+												} else {
 													//计数
 													count++;
 													//如果超过100s 没有读取到,则退出
@@ -372,7 +372,7 @@
 											securityPaper.setApplyId(examScore.getApplyId());
 											securityPaper.setSource(1);
 											//内网对象
-											SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper,SecurityPaper.class));
+											SecurityPaper paper = Objects.requireNonNull(BeanUtil.copy(securityPaper, SecurityPaper.class));
 											//新增保安员证信息
 											securityPaper.setNumber(DesensitizedUtil.desensitizedSecurityNumber(result));
 											securityPaper.setIdCardNo("");
@@ -384,15 +384,15 @@
 											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.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() + "'" +
+													+ "," + "'" + 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() + "'" +
@@ -449,6 +449,200 @@
 			}
 		}
 	}
+
+
+//	/**
+//	 * 导入实操成绩
+//	 *
+//	 * @param examScoreExcelList
+//	 * @param isCovered          是否覆盖
+//	 */
+//	@Override
+//	public void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered) {
+//		if (examScoreExcelList.size() > 0) {
+//			List<Object> errorList = new ArrayList<>();
+//			//导入状态,默认为true ,如果有一个出现问题则为 false
+//			AtomicBoolean status = new AtomicBoolean(true);
+//			//遍历
+//			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) {
+//						//取第一个
+//						List<ExamScore> examScoreList = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(), new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime()));
+//						if (examScoreList.size() == 0) {
+//							//根据身份证号查询用户
+//							User user0 = userService.getUserInfoByIdCardNo(examScoreExcel.getIdCardNo());
+//							if (null == user0) {
+//								throw new ServiceException("没有找到用户:[" + examScoreExcel.getIdCardNo() + "]相关考试成绩信息,请检查身份证是否有误!");
+////								throw new ServiceException("用户:["+examScoreExcel.getIdCardNo()+"]不存在");
+//							}
+//						}
+//						//遍历集合
+//						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()));
+//								//设置实操成绩
+//								examScore.setLearnGrade(examScoreExcel.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 = 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 (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 {
+//									//不合格
+//									examScore.setQualified(1);
+//								}
+//								//总成绩
+//								if (user.getAge() <= 50) {
+//									if (null != examScore.getTheoryGrade()) {
+//										examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScoreExcel.getLearnGrade()) / 2));
+//									} else {
+//										examScore.setAllGrade(Math.round(examScoreExcel.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(examScoreExcel.getLearnGrade() * 0.5))));
+//									} else {
+//										examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
+//									}
+//								}
+//
+//								//内网同步
+//								String s1 =
+//									"update exam_score set learn_grade = " + "'" + examScore.getLearnGrade() + "'" +
+//										",all_grade = " + "'" + examScore.getAllGrade() + "'" +
+//										",qualified = " + "'" + examScore.getQualified() + "'" +
+//										" " + "where id = " + "'" + examScore.getId() + "'";
+//								//FtpUtil.sqlFileUpload(s1);
+//								myAsyncService.FTP(s1);
+//								//更新成绩数据
+//								baseMapper.updateById(examScore);
+//							} else {
+//								errorList.add(examScoreExcel.getName());
+//								status.set(false);
+//							}
+//						});
+//
+//					} else {
+//						throw new ServiceException("导入失败!考试名称:[" + examScoreExcel.getExamName() + "]不存在!请核对!");
+//					}
+//				}
+//			});
+//			//如果所有数据导入有一个异常
+//			if (!status.get()) {
+//				String errorAccount = StringUtils.join(errorList, "\\\n");
+//				throw new ServiceException("用户:[" + errorAccount + "]实操成绩导入失败!账号与准考证号不匹配!");
+//			}
+//		}
+//	}
 
 
 //	/**
@@ -945,4 +1139,13 @@
 		//返回数据
 		return objectList;
 	}
+
+	/**
+	 * 查询考试成绩
+	 * @return
+	 */
+	@Override
+	public List<ExamScore> getExamScoreList() {
+		return baseMapper.getExamScoreLists();
+	}
 }

--
Gitblit v1.9.3