|
|
@@ -106,13 +106,6 @@ public class ExamService {
|
|
|
return answerSheet;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 临时保存
|
|
|
- */
|
|
|
- public void updateAnswerSheet(AnswerSheet answer) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 交卷
|
|
|
* @param answerSheet
|
|
|
@@ -132,16 +125,16 @@ public class ExamService {
|
|
|
List<LearnAnswer> updateList = Lists.newArrayList();
|
|
|
Integer wrongCount = 0;
|
|
|
for(PaperVO.QuestionAnswer question : answerSheet.getQuestions()) {
|
|
|
- if(CollectionUtils.isEmpty(question.getSubQuestions())) {
|
|
|
+ if(CollectionUtils.isNotEmpty(question.getSubQuestions())) {
|
|
|
for(PaperVO.QuestionAnswer sq : question.getSubQuestions()) {
|
|
|
LearnAnswer answer = buildAnswer(answerSheet, questionMap, sq, addList, updateList);
|
|
|
- if(!answer.getState().equals(1L)) {
|
|
|
+ if(answerSheet.getIsDone() && !answer.getState().equals(1L)) {
|
|
|
wrongCount++;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
LearnAnswer answer = buildAnswer(answerSheet, questionMap, question, addList, updateList);
|
|
|
- if(!answer.getState().equals(1L)) {
|
|
|
+ if(answerSheet.getIsDone() && !answer.getState().equals(1L)) {
|
|
|
wrongCount++;
|
|
|
}
|
|
|
}
|
|
|
@@ -159,16 +152,19 @@ public class ExamService {
|
|
|
LearnExaminee upExaminee = new LearnExaminee();
|
|
|
upExaminee.setExamineeId(answerSheet.getExamineeId());
|
|
|
upExaminee.setDuration(answerSheet.getDuration());
|
|
|
- upExaminee.setEndTime(new Date());
|
|
|
- upExaminee.setState(ExamineeStatus.Commit.getVal());
|
|
|
- upExaminee.setWrongCount(wrongCount);
|
|
|
+ if(answerSheet.getIsDone()) {
|
|
|
+ upExaminee.setEndTime(new Date());
|
|
|
+ upExaminee.setState(ExamineeStatus.Commit.getVal());
|
|
|
+ upExaminee.setWrongCount(wrongCount);
|
|
|
+ }
|
|
|
learnExamineeMapper.updateLearnExaminee(upExaminee);
|
|
|
-
|
|
|
- // 关闭试卷
|
|
|
- LearnPaper up = new LearnPaper();
|
|
|
- up.setId(answerSheet.getPaperId());
|
|
|
- up.setStatus(PaperStatus.Valid.getVal());
|
|
|
- paperMapper.updateLearnPaper(up);
|
|
|
+ if(answerSheet.getIsDone()) {
|
|
|
+ // 关闭试卷
|
|
|
+ LearnPaper up = new LearnPaper();
|
|
|
+ up.setId(answerSheet.getPaperId());
|
|
|
+ up.setStatus(PaperStatus.Valid.getVal());
|
|
|
+ paperMapper.updateLearnPaper(up);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private LearnAnswer buildAnswer(AnswerSheet answerSheet, Map<Long, PaperVO.QuestionAnswer> questionMap, PaperVO.QuestionAnswer question,
|
|
|
@@ -187,7 +183,7 @@ public class ExamService {
|
|
|
updateList.add(answer);
|
|
|
}
|
|
|
answer.setAnswer(StringUtils.join(question.getAnswers(), ","));
|
|
|
- answer.setState(question.getState());
|
|
|
+ answer.setState(question.calcState(answerSheet.getIsDone()));
|
|
|
return answer;
|
|
|
}
|
|
|
|
|
|
@@ -254,7 +250,7 @@ public class ExamService {
|
|
|
paper.setRelateId(knowledgeId);
|
|
|
paper.setYear(Calendar.getInstance().get(Calendar.YEAR));
|
|
|
paper.setStatus(PaperStatus.TmpValid.getVal());
|
|
|
- paper.setDirectKey(StringUtils.trimToEmpty(directKey));
|
|
|
+ paper.setDirectKey(studentId + "_" + StringUtils.trimToEmpty(directKey));
|
|
|
List<LearnPaper> paperList = paperMapper.selectLearnPaperList(paper);
|
|
|
if (CollectionUtils.isNotEmpty(paperList)) { // 有未做完的
|
|
|
LearnPaper existPaper = paperList.get(0);
|