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