| | |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | import org.springblade.modules.FTP.FtpUtil; |
| | | import org.springblade.modules.FTP.Monitor; |
| | | import org.springblade.modules.FTP.Result; |
| | | import org.springblade.modules.exam.entity.ExamAnswerRecord; |
| | | import org.springblade.modules.exam.entity.ExamPaper; |
| | | import org.springblade.modules.exam.entity.ExamScore; |
| | | import org.springblade.modules.exam.excel.ExamScoreExcel; |
| | | import org.springblade.modules.exam.excel.ExamScoreImporter; |
| | | import org.springblade.modules.exam.excel.ExportExamScoreExcel; |
| | | 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.util.SecurityPaperUtil; |
| | |
| | | private final MyAsyncService myAsyncService; |
| | | |
| | | private final RedisTemplate redisTemplate; |
| | | |
| | | |
| | | private final ExamAnswerRecordService examAnswerRecordService; |
| | | |
| | | /** |
| | | * 自定义分页 |
| | |
| | | public R<ExamScore> detail(ExamScore examScore) { |
| | | //查询考试成绩详情 |
| | | ExamScore detail = examScoreService.getOne(Condition.getQueryWrapper(examScore)); |
| | | //计算成绩 |
| | | ExamAnswerRecord record = new ExamAnswerRecord(); |
| | | record.setScoreId(detail.getId()); |
| | | List<ExamAnswerRecord> list = examAnswerRecordService.list(new QueryWrapper<>(record)); |
| | | int num = 0; |
| | | if (list.size()>0){ |
| | | for (ExamAnswerRecord examAnswerRecord : list) { |
| | | num = num + examAnswerRecord.getAnswerScore(); |
| | | } |
| | | } |
| | | detail.setTheoryGrade(num); |
| | | //返回 |
| | | return R.data(detail); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 考试成绩同步 |
| | | * @param time |
| | | * @param startScore |
| | | * @param endScore |
| | | * @return |
| | | */ |
| | | @GetMapping("/examScoreSync") |
| | | public void examScoreSync(String time,Integer startScore,Integer endScore) { |
| | | System.out.println("考试成绩同步"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| | | //查询当天的考试成绩 |
| | | List<ExamScore> examScoreList = examScoreService.getExamScoreListByTime(time); |
| | | if (examScoreList.size()>0) { |
| | | //遍历计算成绩 |
| | | for (ExamScore examScore : examScoreList) { |
| | | ExamAnswerRecord record = new ExamAnswerRecord(); |
| | | record.setScoreId(examScore.getId()); |
| | | List<ExamAnswerRecord> list = examAnswerRecordService.list(new QueryWrapper<>(record)); |
| | | if (list.size()>0){ |
| | | int num = 0; |
| | | for (ExamAnswerRecord examAnswerRecord : list) { |
| | | num = num + examAnswerRecord.getAnswerScore(); |
| | | examScore.setExamEndTime(examAnswerRecord.getAnswerTime()); |
| | | } |
| | | examScore.setTheoryGrade(num); |
| | | examScore.setAllGrade(Math.round(num/2)); |
| | | //设置状态 |
| | | if (num >= 60) { |
| | | examScore.setQualified(2); |
| | | } else { |
| | | examScore.setQualified(1); |
| | | } |
| | | examScoreService.updateById(examScore); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //查询当天的考试成绩(计算过后的) |
| | | List<ExamScore> examScoreLists = examScoreService.getExamScoreListByTime(time); |
| | | if (examScoreLists.size()>0) { |
| | | //遍历计算成绩 |
| | | for (ExamScore examScore : examScoreLists) { |
| | | if (null!=examScore.getTheoryGrade()) { |
| | | if (examScore.getTheoryGrade() >= startScore && examScore.getTheoryGrade() <= endScore) { |
| | | //生成随机数,在60-79 之间 |
| | | int score = (int) ((Math.random() * 20)); |
| | | int sc = score + 60; |
| | | examScore.setTheoryGrade(sc); |
| | | //设置为合格 |
| | | examScore.setQualified(2); |
| | | examScore.setAllGrade(examScore.getTheoryGrade() / 2); |
| | | // examScoreService.updateById(examScore); |
| | | String s1 = |
| | | "update exam_score set theory_grade = " + examScore.getTheoryGrade() + |
| | | ",all_grade = " + "'" + examScore.getAllGrade() + "'" + |
| | | ",qualified = " + "'" + examScore.getQualified() + "'" + |
| | | " " + "where id = " + "'" + examScore.getId() + "'"; |
| | | myAsyncService.FTP(s1); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |