|
@@ -67,6 +67,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|
|
|
@Resource
|
|
|
private MarkUserGroupService markUserGroupService;
|
|
|
+ @Resource
|
|
|
+ private MarkUserClassService markUserClassService;
|
|
|
|
|
|
@Resource
|
|
|
private MarkTaskService markTaskService;
|
|
@@ -113,10 +115,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 释放某个评卷员已完成的评卷任务
|
|
|
*
|
|
|
- * @param submitResult
|
|
|
- * 评卷结果
|
|
|
- * @param markUserGroup
|
|
|
- * 评卷员
|
|
|
+ * @param submitResult 评卷结果
|
|
|
+ * @param markUserGroup 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
public void releaseTask(SubmitResult submitResult, MarkUserGroup markUserGroup) {
|
|
@@ -242,7 +242,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
|
|
|
private void updateStudentGroupStatus(Long studentId, Long examId, String paperNumber, Integer groupNumber,
|
|
|
- SubjectiveStatus status) {
|
|
|
+ SubjectiveStatus status) {
|
|
|
MarkGroupStudent gs = new MarkGroupStudent();
|
|
|
gs.setStudentId(studentId);
|
|
|
gs.setExamId(examId);
|
|
@@ -500,7 +500,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
// 实际双评任务数小于理论生成数 &&(剩余未生成双评的考生数量小于剩余应生成的数量)
|
|
|
needDouble = (doubleMarkTaskCount2 + doubleCount) < expectCount
|
|
|
&& ((studentCount - libraryCount + doubleCount) <= (expectCount
|
|
|
- - doubleMarkTaskCount2 - doubleCount));
|
|
|
+ - doubleMarkTaskCount2 - doubleCount));
|
|
|
}
|
|
|
if (needDouble) {
|
|
|
markTask = new MarkTask();
|
|
@@ -624,35 +624,35 @@ public class MarkServiceImpl implements MarkService {
|
|
|
detail = scores;
|
|
|
} else {
|
|
|
switch (policy) {
|
|
|
- case AVG:
|
|
|
- // 直接累加
|
|
|
- score = BigDecimalUtils.add(score, current);
|
|
|
- for (int i = 0; i < detail.size(); i++) {
|
|
|
- try {
|
|
|
- ScoreItem item = detail.get(i);
|
|
|
- ScoreItem other = scores.get(i);
|
|
|
- item.setScore(BigDecimalUtils.add(item.getScore(), other.getScore()));
|
|
|
- } catch (Exception e) {
|
|
|
- continue;
|
|
|
+ case AVG:
|
|
|
+ // 直接累加
|
|
|
+ score = BigDecimalUtils.add(score, current);
|
|
|
+ for (int i = 0; i < detail.size(); i++) {
|
|
|
+ try {
|
|
|
+ ScoreItem item = detail.get(i);
|
|
|
+ ScoreItem other = scores.get(i);
|
|
|
+ item.setScore(BigDecimalUtils.add(item.getScore(), other.getScore()));
|
|
|
+ } catch (Exception e) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
- case MAX:
|
|
|
- // 高分优先
|
|
|
- if (current > score) {
|
|
|
- score = current;
|
|
|
- detail = scores;
|
|
|
- }
|
|
|
- break;
|
|
|
- case MIN:
|
|
|
- // 低分优先
|
|
|
- if (current < score) {
|
|
|
- score = current;
|
|
|
- detail = scores;
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ break;
|
|
|
+ case MAX:
|
|
|
+ // 高分优先
|
|
|
+ if (current > score) {
|
|
|
+ score = current;
|
|
|
+ detail = scores;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case MIN:
|
|
|
+ // 低分优先
|
|
|
+ if (current < score) {
|
|
|
+ score = current;
|
|
|
+ detail = scores;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -669,7 +669,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
|
|
|
private void updateStudentGroupScore(Long studentId, Long examId, String paperNumber, MarkGroup group, double score,
|
|
|
- List<ScoreItem> scoreList) {
|
|
|
+ List<ScoreItem> scoreList) {
|
|
|
// scoreDao.deleteByStudentIdAndGroupNumber(studentId, groupNumber);
|
|
|
List<MarkQuestion> questions = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId,
|
|
|
paperNumber, group.getNumber(), false);
|
|
@@ -883,6 +883,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
markGroup.getPaperNumber(), markGroup.getNumber());
|
|
|
markGroupService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
|
|
|
markGroup.getPaperNumber(), markGroup.getNumber());
|
|
|
+ // 分班阅数据
|
|
|
+ markUserClassService.deleteByExamIdAndPaperNumberAndGroupNumberAndClassName(markGroup.getExamId(), markGroup.getPaperNumber(), markGroup.getNumber(), null);
|
|
|
// 更新MarkPaper中groupStatus
|
|
|
updateMarkGroupStatus(markGroup.getExamId(), markGroup.getPaperNumber());
|
|
|
}
|
|
@@ -1001,7 +1003,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
scoreList.add(markSubjectiveScore.getScore());
|
|
|
}
|
|
|
groupResult.setGroupScore(scoreList.stream().collect(Collectors.summingDouble(x -> x)));
|
|
|
- groupResult.setScoreList(scoreList.toArray(new Double[] {}));
|
|
|
+ groupResult.setScoreList(scoreList.toArray(new Double[]{}));
|
|
|
markSubjectiveScoreService.saveOrUpdateBatchByMultiId(markSubjectiveScoreList);
|
|
|
}
|
|
|
|
|
@@ -1011,7 +1013,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|
|
|
@Override
|
|
|
public IPage<Task> getHistory(Long userId, int pageNumber, int pageSize, Sort sort, String order, Long examId,
|
|
|
- String paperNumber, Integer groupNumber, String secretNumber, Double markerScore) {
|
|
|
+ String paperNumber, Integer groupNumber, String secretNumber, Double markerScore) {
|
|
|
if (!"marker_time".equals(order) && !"marker_score".equals(order)) {
|
|
|
order = "marker_time";
|
|
|
}
|