|
@@ -711,9 +711,20 @@ public class MarkServiceImpl implements MarkService {
|
|
|
specialTagDao.deleteByLibraryId(library.getId());
|
|
|
resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
library.getGroupNumber());
|
|
|
- updateMarkedCount(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
|
problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
|
|
|
new Date());
|
|
|
+ // 开启三评时,打回1,2任务则删除第3条任务
|
|
|
+ long count = libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber());
|
|
|
+ if (library.getTaskNumber() != 3 && count == 3) {
|
|
|
+ MarkLibrary third = libraryDao.findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(),
|
|
|
+ library.getGroupNumber(), 3);
|
|
|
+ trackDao.deleteByLibraryId(third.getId());
|
|
|
+ specialTagDao.deleteByLibraryId(third.getId());
|
|
|
+ problemHistoryDao.deleteByLibraryId(third.getId());
|
|
|
+ libraryDao.delete(third);
|
|
|
+ updateLibraryCount(group);
|
|
|
+ }
|
|
|
+ updateMarkedCount(group);
|
|
|
return true;
|
|
|
} else {
|
|
|
return false;
|
|
@@ -1312,13 +1323,22 @@ public class MarkServiceImpl implements MarkService {
|
|
|
specialTagDao.deleteByLibraryId(library.getId());
|
|
|
problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
|
|
|
new Date());
|
|
|
+ if (library.getTaskNumber() == 3) {
|
|
|
+ // 出现三评时删除第三条任务
|
|
|
+ problemHistoryDao.deleteByLibraryId(library.getId());
|
|
|
+ libraryDao.delete(library);
|
|
|
+ updateLibraryCount(group);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (count > 0) {
|
|
|
- updateMarkedCount(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
+ updateMarkedCount(group);
|
|
|
resetStudentGroup(student.getId(), group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
+ studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK, null,
|
|
|
+ null);
|
|
|
+ return true;
|
|
|
}
|
|
|
- return true;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
}
|