智慧保安后台管理-外网
Administrator
2022-06-12 a7e45ce0968fa999e834ddb6daf6f43348a044a1
src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
@@ -2,6 +2,7 @@
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;
@@ -20,11 +21,13 @@
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;
@@ -70,6 +73,9 @@
   private final MyAsyncService myAsyncService;
   private final RedisTemplate redisTemplate;
   private final ExamAnswerRecordService examAnswerRecordService;
   /**
    * 自定义分页
@@ -377,6 +383,17 @@
   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);
   }
@@ -553,4 +570,68 @@
   }
   /**
    * 考试成绩同步
    * @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);
               }
            }
         }
      }
   }
}