|
@@ -43,6 +43,7 @@ import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
|
import cn.com.qmth.stmms.common.enums.ExamType;
|
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
+import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
|
import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
|
|
|
|
/**
|
|
@@ -321,13 +322,7 @@ public class TaskServiceImpl implements TaskService {
|
|
|
if (!list.isEmpty()) {
|
|
|
specialTags = new SpecialTagDTO[list.size()];
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
- SpecialTagDTO specialTagDTO = new SpecialTagDTO();
|
|
|
- specialTagDTO.setTagName(list.get(i).getTagName());
|
|
|
- specialTagDTO.setPositionX(list.get(i).getPositionX());
|
|
|
- specialTagDTO.setPositionY(list.get(i).getPositionY());
|
|
|
- specialTagDTO.setOffsetIndex(list.get(i).getOffsetIndex());
|
|
|
- specialTagDTO.setOffsetX(list.get(i).getOffsetX());
|
|
|
- specialTagDTO.setOffsetY(list.get(i).getOffsetY());
|
|
|
+ SpecialTagDTO specialTagDTO = new SpecialTagDTO(list.get(i));
|
|
|
specialTags[i] = specialTagDTO;
|
|
|
}
|
|
|
}
|
|
@@ -340,13 +335,7 @@ public class TaskServiceImpl implements TaskService {
|
|
|
if (!list.isEmpty()) {
|
|
|
specialTags = new SpecialTagDTO[list.size()];
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
- SpecialTagDTO specialTagDTO = new SpecialTagDTO();
|
|
|
- specialTagDTO.setTagName(list.get(i).getContent());
|
|
|
- specialTagDTO.setPositionX(list.get(i).getPositionX());
|
|
|
- specialTagDTO.setPositionY(list.get(i).getPositionY());
|
|
|
- specialTagDTO.setOffsetIndex(list.get(i).getOffsetIndex());
|
|
|
- specialTagDTO.setOffsetX(list.get(i).getOffsetX());
|
|
|
- specialTagDTO.setOffsetY(list.get(i).getOffsetY());
|
|
|
+ SpecialTagDTO specialTagDTO = new SpecialTagDTO(list.get(i));
|
|
|
specialTags[i] = specialTagDTO;
|
|
|
}
|
|
|
}
|
|
@@ -374,8 +363,10 @@ public class TaskServiceImpl implements TaskService {
|
|
|
student.getSheetCount()));
|
|
|
}
|
|
|
if (!student.getSubjectiveStatus().equals(SubjectiveStatus.UNMARK)) {
|
|
|
- task.setQuestionList(buildMarkStep(student));
|
|
|
- task.setSpecialTagList(getMarkSpecialTagList(student));
|
|
|
+ long trialGroupCount = groupService.countByExamAndSubjectAndStatus(student.getExamId(),
|
|
|
+ student.getSubjectCode(), MarkStatus.TRIAL);
|
|
|
+ task.setQuestionList(buildMarkStep(student, trialGroupCount));
|
|
|
+ task.setSpecialTagList(getMarkSpecialTagList(student, trialGroupCount));
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
|
|
|
task.setObjectiveScore(student.getObjectiveScore());
|
|
@@ -385,16 +376,24 @@ public class TaskServiceImpl implements TaskService {
|
|
|
return task;
|
|
|
}
|
|
|
|
|
|
- private SpecialTagDTO[] getMarkSpecialTagList(ExamStudent student) {
|
|
|
+ private SpecialTagDTO[] getMarkSpecialTagList(ExamStudent student, long trialGroupCount) {
|
|
|
List<SpecialTagDTO> list = new ArrayList<SpecialTagDTO>();
|
|
|
- List<MarkGroup> groups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
|
|
|
- for (MarkGroup group : groups) {
|
|
|
- List<MarkLibrary> libraryList = libraryService.findByStudentAndGroup(student.getId(), group.getNumber());
|
|
|
- if (libraryList.size() == 1) {
|
|
|
- SpecialTagDTO[] tags = getMarkSpecialTagList(libraryList.get(0).getId());
|
|
|
- if (tags != null) {
|
|
|
- for (SpecialTagDTO specialTagDTO : tags) {
|
|
|
- list.add(specialTagDTO);
|
|
|
+ if (trialGroupCount > 0) {
|
|
|
+ List<TrialTag> tags = trialService.findTagByStudentId(student.getId());
|
|
|
+ for (TrialTag trialTag : tags) {
|
|
|
+ list.add(new SpecialTagDTO(trialTag));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<MarkGroup> groups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
|
|
|
+ for (MarkGroup group : groups) {
|
|
|
+ List<MarkLibrary> libraryList = libraryService
|
|
|
+ .findByStudentAndGroup(student.getId(), group.getNumber());
|
|
|
+ if (libraryList.size() == 1) {
|
|
|
+ SpecialTagDTO[] tags = getMarkSpecialTagList(libraryList.get(0).getId());
|
|
|
+ if (tags != null) {
|
|
|
+ for (SpecialTagDTO specialTagDTO : tags) {
|
|
|
+ list.add(specialTagDTO);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -406,7 +405,7 @@ public class TaskServiceImpl implements TaskService {
|
|
|
return specialTags;
|
|
|
}
|
|
|
|
|
|
- private List<MarkStepDTO> buildMarkStep(ExamStudent student) {
|
|
|
+ private List<MarkStepDTO> buildMarkStep(ExamStudent student, long trialGroupCount) {
|
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
|
student.getSubjectCode(), false);
|
|
@@ -418,16 +417,26 @@ public class TaskServiceImpl implements TaskService {
|
|
|
step.setScore(sItems.get(i).getScore());
|
|
|
}
|
|
|
// 增加阅卷轨迹列表获取
|
|
|
- List<MarkLibrary> libraryList = libraryService.findByStudentAndGroup(student.getId(),
|
|
|
- question.getGroupNumber());
|
|
|
- if (libraryList.size() == 1) {
|
|
|
- List<MarkTrack> tracks = trackService.findByStudentId(student.getId());
|
|
|
+ if (trialGroupCount > 0) {
|
|
|
+ List<TrialTrack> tracks = trialService.findTrackByStudentId(student.getId());
|
|
|
String questionNumber = question.getQuestionNumber();
|
|
|
- for (MarkTrack track : tracks) {
|
|
|
+ for (TrialTrack track : tracks) {
|
|
|
if (track.getQuestionNumber().equals(questionNumber)) {
|
|
|
step.addTrack(new TrackDTO(track));
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ List<MarkLibrary> libraryList = libraryService.findByStudentAndGroup(student.getId(),
|
|
|
+ question.getGroupNumber());
|
|
|
+ if (libraryList.size() == 1) {
|
|
|
+ List<MarkTrack> tracks = trackService.findByStudentId(student.getId());
|
|
|
+ String questionNumber = question.getQuestionNumber();
|
|
|
+ for (MarkTrack track : tracks) {
|
|
|
+ if (track.getQuestionNumber().equals(questionNumber)) {
|
|
|
+ step.addTrack(new TrackDTO(track));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
list.add(step);
|
|
|
}
|