From 8b375fe00a241b3a769b82fe3dac8d1c9dce8a02 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 16 Jun 2022 14:36:07 +0800
Subject: [PATCH] 模拟考试修改
---
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java | 369 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 261 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 2ef6f1c..536904e 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");
@@ -449,6 +389,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 +1079,23 @@
//返回数据
return objectList;
}
+
+ /**
+ * 查询考试成绩
+ * @return
+ */
+ @Override
+ public List<ExamScore> getExamScoreList() {
+ return baseMapper.getExamScoreLists();
+ }
+
+ /**
+ * 查询考试成绩
+ * @param time
+ * @return
+ */
+ @Override
+ public List<ExamScore> getExamScoreListByTime(String time) {
+ return baseMapper.getExamScoreListByTime(time);
+ }
}
--
Gitblit v1.9.3