|
@@ -376,7 +376,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (calculateQuestion(markQuestion, studentId)) {
|
|
|
//更新考生分组分数
|
|
|
updateStudentQuestionScore(studentId, markQuestion, markQuestion.getMarkScore());
|
|
|
- checkStudentSubjective(studentId, markQuestion.getExamId(), markQuestion.getPaperNumber(), markStudent.getVersion());
|
|
|
+ checkStudentSubjective(studentId, markQuestion.getExamId(), markQuestion.getPaperNumber(), markStudent.getVersion(), false);
|
|
|
} else {
|
|
|
markStudentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK);
|
|
|
}
|
|
@@ -384,14 +384,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void checkStudentSubjective(Long studentId, Long examId, String paperNumber, Integer version) {
|
|
|
+ public void checkStudentSubjective(Long studentId, Long examId, String paperNumber, Integer version, boolean autoCalc) {
|
|
|
try {
|
|
|
List<MarkQuestion> markQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(examId, paperNumber, false);
|
|
|
List<MarkSubjectiveScore> markSubjectiveScoreList = markSubjectiveScoreService.listByStudentIdAndExamIdAndPn(studentId, examId, paperNumber);
|
|
|
//校验阅卷题目和评分题目数量和题型是否一致
|
|
|
if (CollectionUtils.isNotEmpty(markQuestionList) && CollectionUtils.isNotEmpty(markSubjectiveScoreList)
|
|
|
&& this.megreQuestion(markQuestionList, markSubjectiveScoreList)) {
|
|
|
- scoreCalculate(studentId, version);
|
|
|
+ scoreCalculate(studentId, version, autoCalc);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
log.error(SystemConstant.LOG_ERROR, e);
|
|
@@ -427,11 +427,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
public void buildMarkTask(MarkPaper markPaper) {
|
|
|
try {
|
|
|
- if (markPaper.getPaperNumber().equals("1017")) {
|
|
|
- System.out.println(1);
|
|
|
- }
|
|
|
lockService.watch(LockType.EXAM_SUBJECT, markPaper.getExamId(), markPaper.getPaperNumber());
|
|
|
- log.info("start create library for examId=" + markPaper.getExamId() + ", paperNumber="
|
|
|
+ log.info("start create mark_task for examId=" + markPaper.getExamId() + ", paperNumber="
|
|
|
+ markPaper.getPaperNumber());
|
|
|
// 清除缺考考生和违纪考生(违纪考生参与阅卷,update by 2024-10-17)
|
|
|
List<MarkStudent> markStudentList = markStudentService
|
|
@@ -440,10 +437,10 @@ public class MarkServiceImpl implements MarkService {
|
|
|
for (MarkStudent student : markStudentList) {
|
|
|
try {
|
|
|
lockService.waitlock(LockType.STUDENT, student.getId());
|
|
|
- log.info("delete library for studentId=" + student.getId());
|
|
|
+ log.info("delete mark_task for studentId=" + student.getId());
|
|
|
this.deleteMarkTaskByStudent(student);
|
|
|
} catch (Exception e) {
|
|
|
- log.error("delete student library error", e);
|
|
|
+ log.error("delete student mark_task error", e);
|
|
|
} finally {
|
|
|
lockService.unlock(LockType.STUDENT, student.getId());
|
|
|
}
|
|
@@ -749,7 +746,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
markSubjectiveScoreService.saveOrUpdateByMultiId(ss);
|
|
|
}
|
|
|
|
|
|
- private void scoreCalculate(Long studentId, Integer version) {
|
|
|
+ private void scoreCalculate(Long studentId, Integer version, boolean autoCalc) {
|
|
|
List<ScoreItem> scoreList = new ArrayList<>();
|
|
|
Map<Integer, List<MarkSubjectiveScore>> mainScoreMap = new HashMap<>();
|
|
|
Map<Integer, Double> scoreMap = new HashMap<>();
|
|
@@ -788,7 +785,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
// 全部评完,更新考生主观题得分
|
|
|
// markStudentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.MARKED, totalScore.doubleValue(),
|
|
|
// MarkStudent.buildScoreList(scoreList));
|
|
|
- markStudentService.updateSubjectiveScoreByVersion(studentId, SubjectiveStatus.MARKED, totalScore.doubleValue(), MarkStudent.buildScoreList(scoreList), version);
|
|
|
+ if (autoCalc) {
|
|
|
+ markStudentService.updateSubjectiveScoreByVersion(studentId, SubjectiveStatus.MARKED, totalScore.doubleValue(), MarkStudent.buildScoreList(scoreList), version);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|