|
@@ -1,170 +1,297 @@
|
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
import com.qmth.teachcloud.common.entity.MarkQuestion;
|
|
|
import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
|
|
|
import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
|
|
|
+import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.MarkStepDTO;
|
|
|
+import com.qmth.teachcloud.mark.dto.mark.manage.MarkerSpecialTagDTO;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.MarkerTrackDTO;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.Task;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
|
|
|
-import com.qmth.teachcloud.mark.entity.*;
|
|
|
-import com.qmth.teachcloud.mark.service.*;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.LinkedList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkGroup;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkHeaderTag;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkSpecialTag;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkStudent;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkSubjectiveScore;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkTask;
|
|
|
+import com.qmth.teachcloud.mark.entity.MarkTrack;
|
|
|
+import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkGroupService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkHeaderTagService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkHeaderTrackService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkPaperService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkQuestionService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkSpecialTagService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkStudentService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkSubjectiveScoreService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkTaskService;
|
|
|
+import com.qmth.teachcloud.mark.service.MarkTrackService;
|
|
|
+import com.qmth.teachcloud.mark.service.TaskService;
|
|
|
|
|
|
@Service
|
|
|
public class TaskServiceImpl implements TaskService {
|
|
|
|
|
|
- @Resource
|
|
|
- private MarkPaperService markPaperService;
|
|
|
- @Resource
|
|
|
- private MarkTaskService markTaskService;
|
|
|
- @Resource
|
|
|
- private MarkStudentService markStudentService;
|
|
|
- @Resource
|
|
|
- private MarkQuestionService markQuestionService;
|
|
|
- @Resource
|
|
|
- private MarkHeaderTrackService markHeaderTrackService;
|
|
|
- @Resource
|
|
|
- private MarkTrackService markTrackService;
|
|
|
- @Resource
|
|
|
- private MarkSubjectiveScoreService markSubjectiveScoreService;
|
|
|
- @Resource
|
|
|
- private TeachcloudCommonService teachcloudCommonService;
|
|
|
-
|
|
|
- @Override
|
|
|
- public Task build(MarkArbitrateHistory markArbitrateHistory, MarkGroup markGroup) {
|
|
|
- MarkStudent markStudent = markStudentService.getById(markArbitrateHistory.getStudentId());
|
|
|
- Task task = new Task();
|
|
|
- task.setStudentId(markArbitrateHistory.getStudentId());
|
|
|
- task.setTaskId(markArbitrateHistory.getId());
|
|
|
- task.setSecretNumber(markArbitrateHistory.getSecretNumber());
|
|
|
- task.setQuestionList(buildArbitrateStep(markGroup, markArbitrateHistory));
|
|
|
+ @Resource
|
|
|
+ private MarkPaperService markPaperService;
|
|
|
+ @Resource
|
|
|
+ private MarkTaskService markTaskService;
|
|
|
+ @Resource
|
|
|
+ private MarkStudentService markStudentService;
|
|
|
+ @Resource
|
|
|
+ private MarkQuestionService markQuestionService;
|
|
|
+ @Resource
|
|
|
+ private MarkHeaderTrackService markHeaderTrackService;
|
|
|
+ @Resource
|
|
|
+ private MarkTrackService markTrackService;
|
|
|
+ @Resource
|
|
|
+ private MarkSubjectiveScoreService markSubjectiveScoreService;
|
|
|
+ @Resource
|
|
|
+ private TeachcloudCommonService teachcloudCommonService;
|
|
|
+ @Resource
|
|
|
+ private MarkGroupService markGroupService;
|
|
|
+ @Resource
|
|
|
+ private MarkHeaderTagService markHeaderTagService;
|
|
|
+ @Resource
|
|
|
+ private MarkSpecialTagService markSpecialTagService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Task build(MarkArbitrateHistory markArbitrateHistory, MarkGroup markGroup) {
|
|
|
+ MarkStudent markStudent = markStudentService.getById(markArbitrateHistory.getStudentId());
|
|
|
+ Task task = new Task();
|
|
|
+ task.setStudentId(markArbitrateHistory.getStudentId());
|
|
|
+ task.setTaskId(markArbitrateHistory.getId());
|
|
|
+ task.setSecretNumber(markArbitrateHistory.getSecretNumber());
|
|
|
+ task.setQuestionList(buildArbitrateStep(markGroup, markArbitrateHistory));
|
|
|
// task.setSpecialTagList(getHeaderTagList(history.getStudentId(), group.getNumber()));
|
|
|
- // todo jsonurl xf
|
|
|
+ // todo jsonurl xf
|
|
|
// task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));
|
|
|
- if (StringUtils.isNotBlank(markStudent.getObjectiveScoreList())) {
|
|
|
- task.setObjectiveScore(markStudent.getObjectiveScore());
|
|
|
- }
|
|
|
- task.setMarkerTime(markArbitrateHistory.getUpdateTime());
|
|
|
- if (markArbitrateHistory.getTotalScore() != null) {
|
|
|
- task.setMarkerScore(markArbitrateHistory.getTotalScore());
|
|
|
- }
|
|
|
- return task;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Task build(Long studentId) {
|
|
|
- MarkStudent markStudent = markStudentService.getById(studentId);
|
|
|
- Task task = new Task();
|
|
|
- if (markStudent != null) {
|
|
|
- MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(markStudent.getExamId(), markStudent.getPaperNumber());
|
|
|
-
|
|
|
- task.setStudentId(markStudent.getId());
|
|
|
- task.setSecretNumber(markStudent.getSecretNumber());
|
|
|
- task.setStudentCode(markStudent.getStudentCode());
|
|
|
- task.setStudentName(markStudent.getStudentName());
|
|
|
- task.setMarkPaper(markPaper);
|
|
|
-
|
|
|
- // 原图
|
|
|
- task.setSheetUrls(markStudentService.buildSheetUrls(studentId));
|
|
|
-
|
|
|
- if (!markStudent.getSubjectiveStatus().equals(SubjectiveStatus.UNMARK)) {
|
|
|
- task.setQuestionList(buildMarkStep(markStudent));
|
|
|
-// task.setSpecialTagList(getMarkSpecialTagList(student, trialGroupCount));
|
|
|
-// task.setHeaderTagList(getHeaderTagList(student));
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(markStudent.getObjectiveScoreList())) {
|
|
|
- task.setObjectiveScore(markStudent.getObjectiveScore());
|
|
|
- }
|
|
|
- task.setMarkerScore(markStudent.getTotalScore());
|
|
|
- return task;
|
|
|
- }
|
|
|
- return task;
|
|
|
- }
|
|
|
-
|
|
|
- private List<MarkStepDTO> buildMarkStep(MarkStudent markStudent) {
|
|
|
- Long examId = markStudent.getExamId();
|
|
|
- String paperNumber = markStudent.getPaperNumber();
|
|
|
- List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
|
- List<MarkQuestion> sList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, null, false);
|
|
|
- Set<Integer> mainList = markSubjectiveScoreService.listMainNumberByStudentIdAndUncalculate(markStudent.getId(), true);
|
|
|
- List<MarkSubjectiveScore> scoreList = markSubjectiveScoreService.listByStudentIdAndGroupNumber(markStudent.getId(), null);
|
|
|
- for (int i = 0; i < scoreList.size(); i++) {
|
|
|
- MarkQuestion question = sList.get(i);
|
|
|
- String questionNumber = question.getQuestionNumber();
|
|
|
- MarkStepDTO step = buildStep(question);
|
|
|
- if (!scoreList.isEmpty() && scoreList.size() == sList.size()) {
|
|
|
- step.setScore(scoreList.get(i).getScore());
|
|
|
- if (mainList.contains(step.getMainNumber())) {
|
|
|
- step.setUncalculate(true);
|
|
|
- }
|
|
|
- }
|
|
|
- // 增加阅卷轨迹列表获取
|
|
|
- List<MarkTask> markTaskList = markTaskService.listByStudentIdAndGroupNumber(markStudent.getId(), question.getGroupNumber());
|
|
|
- // 不管单评还是多评显示所有评卷员给分轨迹
|
|
|
- for (MarkTask markTask : markTaskList) {
|
|
|
- List<MarkTrack> tracks = markTrackService.listByTaskIdAndQuestionNumber(markTask.getId(), questionNumber);
|
|
|
- for (MarkTrack track : tracks) {
|
|
|
- step.addTrack(new MarkerTrackDTO(track));
|
|
|
- }
|
|
|
- }
|
|
|
- // 仲裁轨迹
|
|
|
- List<MarkHeaderTrack> headerTracks = markHeaderTrackService.listByStudentIdAndQuestionNumber(markStudent.getId(), questionNumber);
|
|
|
- for (MarkHeaderTrack headerTrack : headerTracks) {
|
|
|
- step.addHeaderTrack(new TrackDTO(headerTrack));
|
|
|
- }
|
|
|
- list.add(step);
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
- private List<MarkStepDTO> buildArbitrateStep(MarkGroup group, MarkArbitrateHistory markArbitrateHistory) {
|
|
|
- List<MarkStepDTO> list = new LinkedList<>();
|
|
|
- List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(group.getExamId(), group.getPaperNumber(), group.getNumber(), false);
|
|
|
- List<MarkHeaderTrack> tracks = markHeaderTrackService.listByExamAndPaperNumberAndGroupNumberAndStudentId(group.getExamId(), group.getPaperNumber(), group.getNumber(), markArbitrateHistory.getStudentId());
|
|
|
- List<ScoreItem> sItems = new ArrayList<ScoreItem>();
|
|
|
- if (markArbitrateHistory != null) {
|
|
|
- sItems = markArbitrateHistory.getScoreItemList();
|
|
|
- }
|
|
|
- for (int i = 0; i < markQuestionList.size(); i++) {
|
|
|
- MarkQuestion question = markQuestionList.get(i);
|
|
|
- MarkStepDTO step = buildStep(question);
|
|
|
- if (markArbitrateHistory != null) {
|
|
|
- if (!sItems.isEmpty() && sItems.size() == markQuestionList.size()) {
|
|
|
- step.setScore(sItems.get(i).getScore());
|
|
|
- }
|
|
|
- // 增加阅卷轨迹列表获取
|
|
|
- String questionNumber = question.getQuestionNumber();
|
|
|
- for (MarkHeaderTrack track : tracks) {
|
|
|
- if (track.getQuestionNumber().equals(questionNumber)) {
|
|
|
- step.addTrack(new TrackDTO(track));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- list.add(step);
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
- private MarkStepDTO buildStep(MarkQuestion question) {
|
|
|
- MarkStepDTO step = new MarkStepDTO();
|
|
|
- step.setMainNumber(question.getMainNumber());
|
|
|
- step.setSubNumber(String.valueOf(question.getSubNumber()));
|
|
|
- step.setGroupNumber(question.getGroupNumber());
|
|
|
- step.setTitle(question.getMainTitle());
|
|
|
- step.setDefaultScore(0d);
|
|
|
- step.setMaxScore(question.getTotalScore());
|
|
|
- step.setMinScore(0d);
|
|
|
- step.setIntervalScore(question.getIntervalScore());
|
|
|
- step.setUncalculate(false);
|
|
|
- return step;
|
|
|
- }
|
|
|
+ if (StringUtils.isNotBlank(markStudent.getObjectiveScoreList())) {
|
|
|
+ task.setObjectiveScore(markStudent.getObjectiveScore());
|
|
|
+ }
|
|
|
+ task.setMarkerTime(markArbitrateHistory.getUpdateTime());
|
|
|
+ if (markArbitrateHistory.getTotalScore() != null) {
|
|
|
+ task.setMarkerScore(markArbitrateHistory.getTotalScore());
|
|
|
+ }
|
|
|
+ return task;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Task build(Long studentId) {
|
|
|
+ MarkStudent markStudent = markStudentService.getById(studentId);
|
|
|
+ Task task = new Task();
|
|
|
+ if (markStudent != null) {
|
|
|
+ task.setStudentId(markStudent.getId());
|
|
|
+ task.setSecretNumber(markStudent.getSecretNumber());
|
|
|
+ task.setStudentCode(markStudent.getStudentCode());
|
|
|
+ task.setStudentName(markStudent.getStudentName());
|
|
|
+
|
|
|
+ // 原图
|
|
|
+ task.setSheetUrls(teachcloudCommonService.filePreview(markStudent.getSheetPathList()));
|
|
|
+
|
|
|
+ if (!markStudent.getSubjectiveStatus().equals(SubjectiveStatus.UNMARK)) {
|
|
|
+ task.setQuestionList(buildMarkStep(markStudent));
|
|
|
+ task.setSpecialTagList(getMarkSpecialTagList(markStudent));
|
|
|
+ task.setHeaderTagList(getHeaderTagList(markStudent));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(markStudent.getObjectiveScoreList())) {
|
|
|
+ task.setObjectiveScore(markStudent.getObjectiveScore());
|
|
|
+ }
|
|
|
+ task.setMarkerScore(markStudent.getTotalScore());
|
|
|
+ return task;
|
|
|
+ }
|
|
|
+ return task;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<MarkStepDTO> buildMarkStep(MarkStudent markStudent) {
|
|
|
+ Long examId = markStudent.getExamId();
|
|
|
+ String paperNumber = markStudent.getPaperNumber();
|
|
|
+ List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
|
+ List<MarkQuestion> sList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId,
|
|
|
+ paperNumber, null, false);
|
|
|
+ Set<Integer> mainList = markSubjectiveScoreService.listMainNumberByStudentIdAndUncalculate(markStudent.getId(),
|
|
|
+ true);
|
|
|
+ List<MarkSubjectiveScore> scoreList = markSubjectiveScoreService
|
|
|
+ .listByStudentIdAndGroupNumber(markStudent.getId(), null);
|
|
|
+ for (int i = 0; i < scoreList.size(); i++) {
|
|
|
+ MarkQuestion question = sList.get(i);
|
|
|
+ String questionNumber = question.getQuestionNumber();
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
+ if (!scoreList.isEmpty() && scoreList.size() == sList.size()) {
|
|
|
+ step.setScore(scoreList.get(i).getScore());
|
|
|
+ if (mainList.contains(step.getMainNumber())) {
|
|
|
+ step.setUncalculate(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 增加阅卷轨迹列表获取
|
|
|
+ List<MarkTask> markTaskList = markTaskService.listByStudentIdAndGroupNumber(markStudent.getId(),
|
|
|
+ question.getGroupNumber());
|
|
|
+ // 不管单评还是多评显示所有评卷员给分轨迹
|
|
|
+ for (MarkTask markTask : markTaskList) {
|
|
|
+ List<MarkTrack> tracks = markTrackService.listByTaskIdAndQuestionNumber(markTask.getId(),
|
|
|
+ questionNumber);
|
|
|
+ for (MarkTrack track : tracks) {
|
|
|
+ step.addTrack(new MarkerTrackDTO(track));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 仲裁轨迹
|
|
|
+ List<MarkHeaderTrack> headerTracks = markHeaderTrackService
|
|
|
+ .listByStudentIdAndQuestionNumber(markStudent.getId(), questionNumber);
|
|
|
+ for (MarkHeaderTrack headerTrack : headerTracks) {
|
|
|
+ step.addHeaderTrack(new TrackDTO(headerTrack));
|
|
|
+ }
|
|
|
+ list.add(step);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<MarkStepDTO> buildArbitrateStep(MarkGroup group, MarkArbitrateHistory markArbitrateHistory) {
|
|
|
+ List<MarkStepDTO> list = new LinkedList<>();
|
|
|
+ List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(
|
|
|
+ group.getExamId(), group.getPaperNumber(), group.getNumber(), false);
|
|
|
+ List<MarkHeaderTrack> tracks = markHeaderTrackService.listByExamAndPaperNumberAndGroupNumberAndStudentId(
|
|
|
+ group.getExamId(), group.getPaperNumber(), group.getNumber(), markArbitrateHistory.getStudentId());
|
|
|
+ List<ScoreItem> sItems = new ArrayList<ScoreItem>();
|
|
|
+ if (markArbitrateHistory != null) {
|
|
|
+ sItems = markArbitrateHistory.getScoreItemList();
|
|
|
+ }
|
|
|
+ for (int i = 0; i < markQuestionList.size(); i++) {
|
|
|
+ MarkQuestion question = markQuestionList.get(i);
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
+ if (markArbitrateHistory != null) {
|
|
|
+ if (!sItems.isEmpty() && sItems.size() == markQuestionList.size()) {
|
|
|
+ step.setScore(sItems.get(i).getScore());
|
|
|
+ }
|
|
|
+ // 增加阅卷轨迹列表获取
|
|
|
+ String questionNumber = question.getQuestionNumber();
|
|
|
+ for (MarkHeaderTrack track : tracks) {
|
|
|
+ if (track.getQuestionNumber().equals(questionNumber)) {
|
|
|
+ step.addTrack(new TrackDTO(track));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.add(step);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ private MarkStepDTO buildStep(MarkQuestion question) {
|
|
|
+ MarkStepDTO step = new MarkStepDTO();
|
|
|
+ step.setMainNumber(question.getMainNumber());
|
|
|
+ step.setSubNumber(String.valueOf(question.getSubNumber()));
|
|
|
+ step.setGroupNumber(question.getGroupNumber());
|
|
|
+ step.setTitle(question.getMainTitle());
|
|
|
+ step.setDefaultScore(0d);
|
|
|
+ step.setMaxScore(question.getTotalScore());
|
|
|
+ step.setMinScore(0d);
|
|
|
+ step.setIntervalScore(question.getIntervalScore());
|
|
|
+ step.setUncalculate(false);
|
|
|
+ return step;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Task build(MarkTask t) {
|
|
|
+ Task task = new Task();
|
|
|
+ task.setTaskId(t.getId());
|
|
|
+ task.setGroupNumber(task.getGroupNumber());
|
|
|
+ task.setSecretNumber(t.getSecretNumber());
|
|
|
+ task.setMarkerTime(t.getMarkerTime());
|
|
|
+ task.setPaperNumber(t.getPaperNumber());
|
|
|
+ task.setMarkerScore(t.getMarkerScore());
|
|
|
+ task.setRejected(t.getStatus().equals(MarkTaskStatus.REJECTED));
|
|
|
+ task.setStudentId(t.getStudentId());
|
|
|
+ task.setStudentCode(t.getStudentCode());
|
|
|
+ task.setQuestionList(buildMarkStep(t));
|
|
|
+ MarkStudent student = markStudentService.getById(t.getStudentId());
|
|
|
+ task.setSheetUrls(teachcloudCommonService.filePreview(student.getSheetPathList()));
|
|
|
+ MarkGroup group = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(t.getExamId(), t.getPaperNumber(),
|
|
|
+ t.getGroupNumber());
|
|
|
+ task.setSliceConfig(group.getPictureConfigList());
|
|
|
+ return task;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<MarkStepDTO> buildMarkStep(MarkTask task) {
|
|
|
+ List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
|
+ List<MarkQuestion> sList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(
|
|
|
+ task.getExamId(), task.getPaperNumber(), task.getGroupNumber(), false);
|
|
|
+ List<MarkTrack> tracks = new ArrayList<MarkTrack>();
|
|
|
+ List<ScoreItem> sItems = new ArrayList<ScoreItem>();
|
|
|
+// List<ScoreItem> rItems = null;
|
|
|
+ if (task != null) {
|
|
|
+ tracks = markTrackService.listByTaskId(task.getId());
|
|
|
+ sItems = task.getMarkerScoreItem();
|
|
|
+ }
|
|
|
+ for (int i = 0; i < sList.size(); i++) {
|
|
|
+ MarkQuestion question = sList.get(i);
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
+ if (task != null) {
|
|
|
+ if (!sItems.isEmpty() && sItems.size() == sList.size()) {
|
|
|
+ step.setScore(sItems.get(i).getScore());
|
|
|
+ }
|
|
|
+// if (rItems == null) {
|
|
|
+// // 无打回记录
|
|
|
+// step.setRejected(false);
|
|
|
+// } else if (rItems != null && rItems.isEmpty()) {
|
|
|
+// // 全打回
|
|
|
+// step.setRejected(true);
|
|
|
+// } else if (rItems != null && !rItems.isEmpty() && rItems.size() == sList.size()) {
|
|
|
+// // 部分打回
|
|
|
+// step.setRejected(rItems.get(i).getScore() == null);
|
|
|
+// }
|
|
|
+ // 未选做
|
|
|
+// if (task.getMarkerScore() != null && task.getMarkerScore() == UN_SELECTIVE_SCORE) {
|
|
|
+// step.setScore(UN_SELECTIVE_SCORE);
|
|
|
+// }
|
|
|
+ // 增加阅卷轨迹列表获取
|
|
|
+ String questionNumber = question.getQuestionNumber();
|
|
|
+ for (MarkTrack track : tracks) {
|
|
|
+ if (track.getQuestionNumber().equals(questionNumber)) {
|
|
|
+ step.addTrack(new TrackDTO(track));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.add(step);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ private SpecialTagDTO[] getHeaderTagList(MarkStudent student) {
|
|
|
+ List<MarkHeaderTag> list = markHeaderTagService.findByStudentId(student.getId());
|
|
|
+ SpecialTagDTO[] specialTags = new SpecialTagDTO[list.size()];
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ specialTags[i] = new MarkerSpecialTagDTO(list.get(i).getUserId(), list.get(i).getGroupNumber(),
|
|
|
+ list.get(i));
|
|
|
+ }
|
|
|
+ return specialTags;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SpecialTagDTO[] getMarkSpecialTagList(MarkStudent student) {
|
|
|
+ List<SpecialTagDTO> list = new LinkedList<>();
|
|
|
+ List<MarkGroup> groups = markGroupService.listGroupByExamIdAndPaperNumber(student.getExamId(),
|
|
|
+ student.getPaperNumber());
|
|
|
+ for (MarkGroup group : groups) {
|
|
|
+ List<MarkTask> libraryList = markTaskService.listByStudentIdAndGroupNumber(student.getId(),
|
|
|
+ group.getNumber());
|
|
|
+ // 不管单评还是多评显示所有评卷员特殊标记
|
|
|
+ for (MarkTask library : libraryList) {
|
|
|
+ List<MarkSpecialTag> tagList = markSpecialTagService.findByTaskId(library.getId());
|
|
|
+ for (MarkSpecialTag specialTag : tagList) {
|
|
|
+ list.add(new MarkerSpecialTagDTO(library.getUserId(), library.getGroupNumber(), specialTag));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list.toArray(new SpecialTagDTO[0]);
|
|
|
+ }
|
|
|
}
|