|
@@ -11,8 +11,10 @@ import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkSettingDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkSettingDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkStatusDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkStatusDto;
|
|
|
|
+import com.qmth.teachcloud.mark.dto.mark.mark.MarkStepDTO;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.SubmitResult;
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.SubmitResult;
|
|
|
|
+import com.qmth.teachcloud.mark.dto.mark.mark.TrackDTO;
|
|
import com.qmth.teachcloud.mark.entity.*;
|
|
import com.qmth.teachcloud.mark.entity.*;
|
|
import com.qmth.teachcloud.mark.enums.ExamType;
|
|
import com.qmth.teachcloud.mark.enums.ExamType;
|
|
import com.qmth.teachcloud.mark.enums.LockType;
|
|
import com.qmth.teachcloud.mark.enums.LockType;
|
|
@@ -883,8 +885,7 @@ public class MarkServiceImpl implements MarkService {
|
|
secretNumber, markerScore);
|
|
secretNumber, markerScore);
|
|
List<MarkTaskDto> recordsDtos =new ArrayList<MarkTaskDto>();
|
|
List<MarkTaskDto> recordsDtos =new ArrayList<MarkTaskDto>();
|
|
for (MarkTask task : list.getRecords()) {
|
|
for (MarkTask task : list.getRecords()) {
|
|
- MarkTaskDto dto = toTaskDto(task);
|
|
|
|
- dto.setPrevious(true);
|
|
|
|
|
|
+ MarkTaskDto dto = this.getTaskDto(task);
|
|
recordsDtos.add(dto);
|
|
recordsDtos.add(dto);
|
|
}
|
|
}
|
|
IPage<MarkTaskDto> result = new Page<MarkTaskDto>();
|
|
IPage<MarkTaskDto> result = new Page<MarkTaskDto>();
|
|
@@ -922,7 +923,7 @@ public class MarkServiceImpl implements MarkService {
|
|
}
|
|
}
|
|
for (MarkTask t : list) {
|
|
for (MarkTask t : list) {
|
|
if (this.applyTask(t, userId)) {
|
|
if (this.applyTask(t, userId)) {
|
|
- task = toTaskDto(t);
|
|
|
|
|
|
+ task = this.getTaskDto(t);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -933,12 +934,6 @@ public class MarkServiceImpl implements MarkService {
|
|
return task;
|
|
return task;
|
|
}
|
|
}
|
|
|
|
|
|
- private MarkTaskDto toTaskDto(MarkTask t) {
|
|
|
|
- MarkTaskDto task = new MarkTaskDto(t);
|
|
|
|
-
|
|
|
|
- return task;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public boolean applyTask(MarkTask t, Long userId) {
|
|
public boolean applyTask(MarkTask t, Long userId) {
|
|
// 查询待领取任务时,已经做了多评同一studentId互斥处理
|
|
// 查询待领取任务时,已经做了多评同一studentId互斥处理
|
|
@@ -1142,4 +1137,77 @@ public class MarkServiceImpl implements MarkService {
|
|
history.setCreateTime(now);
|
|
history.setCreateTime(now);
|
|
return history;
|
|
return history;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public MarkTaskDto getTaskDto(MarkTask t) {
|
|
|
|
+ MarkTaskDto task = new MarkTaskDto(t);
|
|
|
|
+ task.setQuestionList(buildMarkStep(t));
|
|
|
|
+ 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 MarkStepDTO buildStep(MarkQuestion question) {
|
|
|
|
+ MarkStepDTO step = new MarkStepDTO();
|
|
|
|
+ step.setMainNumber(question.getMainNumber());
|
|
|
|
+ step.setSubNumber(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);
|
|
|
|
+// step.setSelectiveIndex(question.getSelectiveIndex());
|
|
|
|
+ return step;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public MarkTaskDto getTaskDto(MarkStudent student) {
|
|
|
|
+ MarkTaskDto task = new MarkTaskDto();
|
|
|
|
+
|
|
|
|
+ return task;
|
|
|
|
+ }
|
|
}
|
|
}
|