From f63fff71fcd7a62ad73b0b9eda614f3b1fa3badf Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Fri, 22 Oct 2021 22:51:09 +0800
Subject: [PATCH] 考试成绩修改状态重置
---
src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java | 208 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 189 insertions(+), 19 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 db2a437..21d750c 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
@@ -5,16 +5,16 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springblade.common.utils.arg;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.apply.entity.Apply;
import org.springblade.modules.apply.service.ApplyService;
-import org.springblade.modules.exam.entity.ExamExaminationSubject;
-import org.springblade.modules.exam.entity.ExamPaper;
-import org.springblade.modules.exam.entity.ExamScore;
-import org.springblade.modules.exam.entity.ExamSubjectChoices;
+import org.springblade.modules.exam.entity.*;
import org.springblade.modules.exam.excel.ExamScoreExcel;
+import org.springblade.modules.exam.excel.ExportExamScoreExcel;
import org.springblade.modules.exam.mapper.ExamScoreMapper;
+import org.springblade.modules.exam.service.ExamAnswerRecordService;
import org.springblade.modules.exam.service.ExamPaperService;
import org.springblade.modules.exam.service.ExamScoreService;
import org.springblade.modules.exam.service.ExamSubjectChoicesService;
@@ -29,16 +29,14 @@
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.training.entity.TrainingRegistration;
import org.springblade.modules.training.service.TrainingRegistrationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import static com.bstek.ureport.expression.model.condition.Join.and;
@@ -47,20 +45,29 @@
* @author zhongrj
*/
@Service
-@AllArgsConstructor
public class ExamScoreServiceImpl extends ServiceImpl<ExamScoreMapper, ExamScore> implements ExamScoreService {
- private final IUserService userService;
+ @Autowired
+ private IUserService userService;
- private final ExamSubjectChoicesService examSubjectChoicesService;
+ @Autowired
+ private ExamSubjectChoicesService examSubjectChoicesService;
- private final ExamPaperService examPaperService;
+ @Autowired
+ private ExamPaperService examPaperService;
- private final ApplyService applyService;
+ @Autowired
+ private ApplyService applyService;
- private final TrainingRegistrationService trainingRegistrationService;
+ @Autowired
+ private TrainingRegistrationService trainingRegistrationService;
- private final IRoleService roleService;
+ @Autowired
+ private IRoleService roleService;
+
+
+ @Autowired
+ private ExamAnswerRecordService examAnswerRecordService;
/**
* 自定义分页数据
@@ -241,9 +248,19 @@
examScoreExcelList.forEach(examScoreExcel -> {
if (null!=examScoreExcel.getLearnGrade() && null!=examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo()!=""){
//使用考试名称匹配考试信息
- ExamPaper examPaper = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
+// ExamPaper examPaper = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
//查询出成绩数据
- ExamScore examScore = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(),examPaper.getId());
+// ExamScore examScore = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(),examPaper.getId());
+ //根据身份证号查询用户
+ User user0 = userService.getUserInfoByIdCardNo(examScoreExcel.getIdCardNo());
+ if (null==user0){
+ throw new ServiceException("用户:["+examScoreExcel.getIdCardNo()+"]不存在");
+ }
+ 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()));
@@ -252,7 +269,7 @@
//合格
examScore.setQualified(0);
//正式考试通过生成保安证编号
- if (examPaper.getExamType()==1) {
+// if (examPaper.getExamType()==1) {
//去生成保安证编号
String pre = SecurityPaperUtil.getSecurityPaper();
//查询当前年份已有的保安证编号
@@ -285,7 +302,7 @@
",paper_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(user.getPaperTime()) + "'" +
" " +"where id = " + "'" + user.getId() + "'";
FtpUtil.sqlFileUpload(s1);
- }
+// }
} else {
//不合格
examScore.setQualified(1);
@@ -446,4 +463,157 @@
}
return true;
}
+
+
+ /**
+ * 考试重置
+ * @param updateParamVo
+ * @return
+ */
+ @Override
+ public boolean refreshTrainExamInfo(UpdateParamVo updateParamVo) {
+ if (null!=updateParamVo.getScoreId()){
+ ExamScore examScore = this.getById(updateParamVo.getScoreId());
+ //获取成绩数据,准考证号,用户id,报名培训id,考试id
+ if (null!=examScore){
+ ExamPaper paper = examPaperService.getById(examScore.getExamId());
+ //判断考试类型
+ //考试
+ if (paper.getExamType()==1){
+ //1.修改培训报名信息
+ Apply apply = new Apply();
+ apply.setId(examScore.getApplyId());
+ apply.setIsExam(1);
+ //修改
+ applyService.updateById(apply);
+
+ //2.修改用户考试状态
+ User user = new User();
+ user.setIsTrain(1);
+ user.setId(Long.parseLong(examScore.getUserId()));
+ //修改
+ userService.updateById(user);
+
+ //3.删除当前考试成绩信息
+ this.removeById(updateParamVo.getScoreId());
+
+ //4.内网数据同步
+ String s1 =
+ "update sys_apply set is_exam = " + "'" + apply.getIsExam() + "'" +
+ " " + "where id = " + "'" + apply.getId() + "';"+
+ "update blade_user set is_train = " + "'" + user.getIsTrain() + "'" +
+ " " + "where id = " + "'" + user.getId() + "';"+
+ "delete from exam_score where id = " + "'" + updateParamVo.getScoreId() + "'";
+ FtpUtil.sqlFileUpload(s1);
+
+ return true;
+ }
+ //培训考试
+ if (paper.getExamType()==2){
+ //1.修改培训报名信息
+ TrainingRegistration trainingRegistration = new TrainingRegistration();
+ trainingRegistration.setId(examScore.getApplyId());
+ trainingRegistration.setIsExam(1);
+ //修改
+ trainingRegistrationService.updateById(trainingRegistration);
+
+ //2.修改用户考试状态
+ User user = new User();
+ user.setIsTrain(1);
+ user.setId(Long.parseLong(examScore.getUserId()));
+ //修改
+ userService.updateById(user);
+
+ //3.删除当前考试成绩信息
+ this.removeById(updateParamVo.getScoreId());
+
+ //4.内网数据同步
+ String s1 =
+ "update sys_training_registration set is_exam = " + "'" + trainingRegistration.getIsExam() + "'" +
+ " " + "where id = " + "'" + trainingRegistration.getId() + "';"+
+ "update blade_user set is_train = " + "'" + user.getIsTrain() + "'" +
+ " " + "where id = " + "'" + user.getId() + "';"+
+ "delete from exam_score where id = " + "'" + updateParamVo.getScoreId() + "'";
+ FtpUtil.sqlFileUpload(s1);
+
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 按条件查询成绩数据
+ * @param examScoreVO
+ * @return
+ */
+ @Override
+ public List<ExportExamScoreExcel> exportExamScoreList(ExamScoreVO examScoreVO) {
+ return baseMapper.getExamScoreList(examScoreVO);
+ }
+
+
+ /**
+ * 考试状态修改,考试成绩恢复
+ * @param
+ * @return
+ */
+ @Override
+ public Boolean refreshTrainExamScore() {
+ int a = 654;
+ List<Integer> list = new ArrayList<>();
+ list.add(a);
+ while (a>=654 && a<=702){
+ a++;
+ list.add(a);
+ }
+ //遍历集合
+ list.forEach(b->{
+ //查询考试记录
+ if (b!=698) {
+ ExamAnswerRecord examAnswerRecord = new ExamAnswerRecord();
+ examAnswerRecord.setScoreId(Long.parseLong(b.toString()));
+ //查询考试成绩
+ ExamScore examScore = this.getById(b);
+ //查询考试记录
+ List<ExamAnswerRecord> examAnswerRecords = examAnswerRecordService.list(Condition.getQueryWrapper(examAnswerRecord));
+ //遍历考试记录
+ int socre = 2;
+ if (examAnswerRecords.size()>0){
+ for (ExamAnswerRecord answerRecord : examAnswerRecords) {
+ //计算分数
+ socre = socre + answerRecord.getAnswerScore();
+ }
+ //修改考试成绩
+ examScore.setTheoryGrade(socre);
+ examScore.setAllGrade(socre/2);
+ String endDate = "2021-10-16 15:30:25";
+ try {
+ examScore.setExamEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endDate));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ if (socre>=60){
+ examScore.setQualified(2);
+ }else {
+ examScore.setQualified(1);
+ }
+ //更新数据
+ this.updateById(examScore);
+
+ //修改培训考试状态
+ User user = new User();
+ user.setId(Long.parseLong(examScore.getUserId()));
+ user.setIsTrain(3);
+ userService.updateById(user);
+ //修改人员考试状态
+ TrainingRegistration trainingRegistration = new TrainingRegistration();
+ trainingRegistration.setId(examScore.getApplyId());
+ trainingRegistration.setIsExam(2);
+ }
+ }
+ });
+ return false;
+ }
}
--
Gitblit v1.9.3