|
@@ -87,6 +87,8 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
|
|
|
@Resource
|
|
|
private MarkService markService;
|
|
|
@Resource
|
|
|
+ private MarkSyncService markSyncService;
|
|
|
+ @Resource
|
|
|
private FileStoreUtil fileStoreUtil;
|
|
|
@Resource
|
|
|
private LockService lockService;
|
|
@@ -756,8 +758,9 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
|
|
|
Double doubleRate = doubleMarkParam.getDoubleRate() != null ? doubleMarkParam.getDoubleRate() : 0;
|
|
|
|
|
|
MarkQuestion markQuestion = this.getById(questionId);
|
|
|
+ Double oldDoubleRate = markQuestion.getDoubleRate() != null ? markQuestion.getDoubleRate() : 0;
|
|
|
List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM, MarkTaskStatus.REJECTED, MarkTaskStatus.ARBITRATED);
|
|
|
- if (markQuestion.getDoubleRate() == 100 && doubleRate == 0 && markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndStatusIn(examId, paperNumber, questionId, markTaskStatuses) > 0) {
|
|
|
+ if (oldDoubleRate > 0 && doubleRate == 0 && markTaskService.countByExamIdAndPaperNumberAndQuestionIdAndStatusIn(examId, paperNumber, questionId, markTaskStatuses) > 0) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("该题已开始评卷,不允许双评改单评");
|
|
|
}
|
|
|
|
|
@@ -768,15 +771,15 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
|
|
|
.eq(MarkQuestion::getId, doubleMarkParam.getQuestionId());
|
|
|
this.update(updateWrapper);
|
|
|
|
|
|
- // 单、又评切换、双评比例修改,删除任务
|
|
|
- if (!markQuestion.getDoubleRate().equals(doubleRate)) {
|
|
|
+ // 单、双评切换、双评比例修改,删除任务
|
|
|
+ if (!oldDoubleRate.equals(doubleRate)) {
|
|
|
this.updateMarkedCount(questionId, 0);
|
|
|
this.updateTaskCount(questionId, 0);
|
|
|
if (lockService.trylock(LockType.QUESTION_UPDATE, questionId)) {
|
|
|
- markSubjectiveScoreService.deleteByExamIdAndPaperNumberAndQuestionId(examId, paperNumber, markQuestion.getId());
|
|
|
MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
|
|
|
// 考生主观题重新统分
|
|
|
markService.checkStudentSubjectiveScore(examId, markPaper.getCoursePaperId());
|
|
|
+ markSyncService.deleteMarkedByQuestion(markQuestion);
|
|
|
}
|
|
|
}
|
|
|
|