|
@@ -512,14 +512,14 @@ public class MarkServiceImpl implements MarkService {
|
|
library.getStatus());
|
|
library.getStatus());
|
|
lockService.waitlock(LockType.STUDENT, library.getStudentId());
|
|
lockService.waitlock(LockType.STUDENT, library.getStudentId());
|
|
try {
|
|
try {
|
|
- updateStudentGroupStatus(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
|
- library.getGroupNumber(), SubjectiveStatus.UNMARK);
|
|
|
|
- studentService.updateSubjectiveStatusAndScore(library.getStudentId(), SubjectiveStatus.UNMARK, 0,
|
|
|
|
- null);
|
|
|
|
- inspectedService.cancelByStudent(library.getStudentId());
|
|
|
|
- } finally {
|
|
|
|
- lockService.unlock(LockType.STUDENT, library.getStudentId());
|
|
|
|
- }
|
|
|
|
|
|
+ updateStudentGroupStatus(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
|
+ library.getGroupNumber(), SubjectiveStatus.UNMARK);
|
|
|
|
+ studentService.updateSubjectiveStatusAndScore(library.getStudentId(), SubjectiveStatus.UNMARK, 0,
|
|
|
|
+ null);
|
|
|
|
+ inspectedService.cancelByStudent(library.getStudentId());
|
|
|
|
+ } finally {
|
|
|
|
+ lockService.unlock(LockType.STUDENT, library.getStudentId());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
markerDao.resetById(marker.getId());
|
|
markerDao.resetById(marker.getId());
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
@@ -595,7 +595,6 @@ public class MarkServiceImpl implements MarkService {
|
|
// 根据评卷状态选择读取不同的评卷任务
|
|
// 根据评卷状态选择读取不同的评卷任务
|
|
if (group.getStatus() == MarkStatus.FORMAL) {
|
|
if (group.getStatus() == MarkStatus.FORMAL) {
|
|
MarkLibrary library = libraryDao.findOne(result.getLibraryId());
|
|
MarkLibrary library = libraryDao.findOne(result.getLibraryId());
|
|
- inspectedService.cancelByStudent(library.getStudentId());
|
|
|
|
if (library != null && library.getExamId().equals(group.getExamId())
|
|
if (library != null && library.getExamId().equals(group.getExamId())
|
|
&& library.getSubjectCode().equals(group.getSubjectCode())
|
|
&& library.getSubjectCode().equals(group.getSubjectCode())
|
|
&& library.getGroupNumber().equals(group.getNumber())) {
|
|
&& library.getGroupNumber().equals(group.getNumber())) {
|
|
@@ -624,7 +623,6 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
|
|
TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
|
|
- inspectedService.cancelByStudent(library.getStudentId());
|
|
|
|
if (library != null && library.getExamId().equals(group.getExamId())
|
|
if (library != null && library.getExamId().equals(group.getExamId())
|
|
&& library.getSubjectCode().equals(group.getSubjectCode())
|
|
&& library.getSubjectCode().equals(group.getSubjectCode())
|
|
&& library.getGroupNumber().equals(group.getNumber())
|
|
&& library.getGroupNumber().equals(group.getNumber())
|
|
@@ -655,6 +653,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
checkStudentTrial(library, group);
|
|
checkStudentTrial(library, group);
|
|
updateMarkedCount(group);
|
|
updateMarkedCount(group);
|
|
|
|
+ inspectedService.cancelByStudent(library.getStudentId());
|
|
return SubmitResult.success(library);
|
|
return SubmitResult.success(library);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -723,6 +722,8 @@ public class MarkServiceImpl implements MarkService {
|
|
// 条件不符更新失败,直接返回
|
|
// 条件不符更新失败,直接返回
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+ // 取消复核
|
|
|
|
+ inspectedService.cancelByStudent(library.getStudentId());
|
|
// 保存阅卷轨迹
|
|
// 保存阅卷轨迹
|
|
int unansweredCount = 0;
|
|
int unansweredCount = 0;
|
|
if (result.getTrackList() != null && !result.isUnselective()) {
|
|
if (result.getTrackList() != null && !result.isUnselective()) {
|
|
@@ -1001,7 +1002,8 @@ public class MarkServiceImpl implements MarkService {
|
|
List<ScoreItem> scoreList = new ArrayList<>();
|
|
List<ScoreItem> scoreList = new ArrayList<>();
|
|
Map<Integer, List<SubjectiveScore>> mainScoreMap = new HashMap<Integer, List<SubjectiveScore>>();
|
|
Map<Integer, List<SubjectiveScore>> mainScoreMap = new HashMap<Integer, List<SubjectiveScore>>();
|
|
Map<Integer, Double> scoreMap = new HashMap<Integer, Double>();
|
|
Map<Integer, Double> scoreMap = new HashMap<Integer, Double>();
|
|
-
|
|
|
|
|
|
+ Integer examId = null;
|
|
|
|
+ String subjectCode = null;
|
|
// 循环所有主观得分明细
|
|
// 循环所有主观得分明细
|
|
List<SubjectiveScore> list = scoreDao.findByStudentId(studentId);
|
|
List<SubjectiveScore> list = scoreDao.findByStudentId(studentId);
|
|
list.sort(null);
|
|
list.sort(null);
|
|
@@ -1010,6 +1012,8 @@ public class MarkServiceImpl implements MarkService {
|
|
if (mainScoreList == null) {
|
|
if (mainScoreList == null) {
|
|
mainScoreList = new ArrayList<SubjectiveScore>();
|
|
mainScoreList = new ArrayList<SubjectiveScore>();
|
|
}
|
|
}
|
|
|
|
+ examId = ss.getExamId();
|
|
|
|
+ subjectCode = ss.getSubjectCode();
|
|
mainScoreList.add(ss);
|
|
mainScoreList.add(ss);
|
|
mainScoreMap.put(ss.getMainNumber(), mainScoreList);
|
|
mainScoreMap.put(ss.getMainNumber(), mainScoreList);
|
|
scoreList.add(new ScoreItem(ss));
|
|
scoreList.add(new ScoreItem(ss));
|
|
@@ -1030,7 +1034,6 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
for (SubjectiveScore subjectiveScore : mainScoreList) {
|
|
for (SubjectiveScore subjectiveScore : mainScoreList) {
|
|
subjectiveScore.setMainScore(mainScore.doubleValue());
|
|
subjectiveScore.setMainScore(mainScore.doubleValue());
|
|
- scoreDao.saveAndFlush(subjectiveScore);
|
|
|
|
}
|
|
}
|
|
scoreMap.put(mainNumber, mainScore.doubleValue());
|
|
scoreMap.put(mainNumber, mainScore.doubleValue());
|
|
}
|
|
}
|
|
@@ -1038,9 +1041,8 @@ public class MarkServiceImpl implements MarkService {
|
|
BigDecimal totalScore = BigDecimal.ZERO;
|
|
BigDecimal totalScore = BigDecimal.ZERO;
|
|
boolean lessSelective = false;
|
|
boolean lessSelective = false;
|
|
boolean mutiSelective = false;
|
|
boolean mutiSelective = false;
|
|
- ExamStudent student = studentService.findById(studentId);
|
|
|
|
- Map<Integer, List<SelectiveGroup>> indexMap = selectiveGroupService.findGroupByExamIdAndSubjectCode(
|
|
|
|
- student.getExamId(), student.getSubjectCode());
|
|
|
|
|
|
+ Map<Integer, List<SelectiveGroup>> indexMap = selectiveGroupService.findGroupByExamIdAndSubjectCode(examId,
|
|
|
|
+ subjectCode);
|
|
for (Integer index : indexMap.keySet()) {
|
|
for (Integer index : indexMap.keySet()) {
|
|
// 循环选做题组
|
|
// 循环选做题组
|
|
List<SelectiveGroup> indexGroup = indexMap.get(index);
|
|
List<SelectiveGroup> indexGroup = indexMap.get(index);
|
|
@@ -1083,7 +1085,6 @@ public class MarkServiceImpl implements MarkService {
|
|
List<SubjectiveScore> mainScoreList = mainScoreMap.get(selectiveGroup.getMainNumber());
|
|
List<SubjectiveScore> mainScoreList = mainScoreMap.get(selectiveGroup.getMainNumber());
|
|
for (SubjectiveScore ss : mainScoreList) {
|
|
for (SubjectiveScore ss : mainScoreList) {
|
|
ss.setUncalculate(true);
|
|
ss.setUncalculate(true);
|
|
- scoreDao.saveAndFlush(ss);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -1121,7 +1122,6 @@ public class MarkServiceImpl implements MarkService {
|
|
List<SubjectiveScore> mainScoreList = mainScoreMap.get(group.getMainNumber());
|
|
List<SubjectiveScore> mainScoreList = mainScoreMap.get(group.getMainNumber());
|
|
for (SubjectiveScore ss : mainScoreList) {
|
|
for (SubjectiveScore ss : mainScoreList) {
|
|
ss.setUncalculate(true);
|
|
ss.setUncalculate(true);
|
|
- scoreDao.saveAndFlush(ss);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1132,13 +1132,18 @@ public class MarkServiceImpl implements MarkService {
|
|
mutiSelective = true;
|
|
mutiSelective = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- SelectiveStudent selectiveStudent = selectiveStudentDao.findOne(studentId);
|
|
|
|
- if (selectiveStudent == null) {
|
|
|
|
- selectiveStudent = new SelectiveStudent();
|
|
|
|
- selectiveStudent.setExamId(student.getExamId());
|
|
|
|
- selectiveStudent.setSubjectCode(student.getSubjectCode());
|
|
|
|
- selectiveStudent.setStudentId(studentId);
|
|
|
|
|
|
+ // 统一更新得分详情
|
|
|
|
+ for (Integer mainNumber : mainScoreMap.keySet()) {
|
|
|
|
+ List<SubjectiveScore> mainScoreList = mainScoreMap.get(mainNumber);
|
|
|
|
+ for (SubjectiveScore ss : mainScoreList) {
|
|
|
|
+ scoreDao.saveAndFlush(ss);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ // 更新考生多选做少选做
|
|
|
|
+ SelectiveStudent selectiveStudent = new SelectiveStudent();
|
|
|
|
+ selectiveStudent.setExamId(examId);
|
|
|
|
+ selectiveStudent.setSubjectCode(subjectCode);
|
|
|
|
+ selectiveStudent.setStudentId(studentId);
|
|
selectiveStudent.setLessSelective(lessSelective);
|
|
selectiveStudent.setLessSelective(lessSelective);
|
|
selectiveStudent.setMutiSelective(mutiSelective);
|
|
selectiveStudent.setMutiSelective(mutiSelective);
|
|
selectiveStudentDao.saveAndFlush(selectiveStudent);
|
|
selectiveStudentDao.saveAndFlush(selectiveStudent);
|