|
@@ -1,23 +1,51 @@
|
|
package cn.com.qmth.stmms.biz.mark.service.Impl;
|
|
package cn.com.qmth.stmms.biz.mark.service.Impl;
|
|
|
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.*;
|
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.*;
|
|
|
|
-import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.*;
|
|
|
|
-import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
|
|
-import cn.com.qmth.stmms.biz.mark.service.*;
|
|
|
|
-import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
|
|
-import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
|
-import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.LinkedList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.LinkedList;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
|
|
+import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.ArbitrateHistory;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.ArbitrationDTO;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkStepDTO;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.SpecialTagDTO;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.Task;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrackDTO;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrialHistory;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrialTag;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrialTrack;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.TaskService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.service.TrialService;
|
|
|
|
+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;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 评卷任务服务实现
|
|
* 评卷任务服务实现
|
|
@@ -62,6 +90,9 @@ public class TaskServiceImpl implements TaskService {
|
|
@Autowired
|
|
@Autowired
|
|
private FileService fileService;
|
|
private FileService fileService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamService examService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<Task> findByQuery(MarkLibrarySearchQuery query) {
|
|
public List<Task> findByQuery(MarkLibrarySearchQuery query) {
|
|
List<Task> list = new LinkedList<Task>();
|
|
List<Task> list = new LinkedList<Task>();
|
|
@@ -76,26 +107,17 @@ public class TaskServiceImpl implements TaskService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Task build(ArbitrateHistory history, MarkGroup group) {
|
|
public Task build(ArbitrateHistory history, MarkGroup group) {
|
|
- ExamSubject subject = subjectService.find(group.getExamId(), group.getSubjectCode());
|
|
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(history.getExamId(), history.getExamNumber());
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(history.getExamId(), history.getExamNumber());
|
|
List<MarkLibrary> libraryList = libraryService.findByStudentAndGroup(student.getId(), group.getNumber());
|
|
List<MarkLibrary> libraryList = libraryService.findByStudentAndGroup(student.getId(), group.getNumber());
|
|
Task task = new Task();
|
|
Task task = new Task();
|
|
- task.setExist(true);
|
|
|
|
task.setStudentId(history.getStudentId());
|
|
task.setStudentId(history.getStudentId());
|
|
task.setLibraryId(history.getId());
|
|
task.setLibraryId(history.getId());
|
|
- task.setStudentNumber(history.getSecretNumber());
|
|
|
|
- task.setMarkStepList(buildMarkStep(group, null));
|
|
|
|
- task.setPictureUrls(fileService.getSliceUris(student.getExamId(), student.getSecretNumber(), 1,
|
|
|
|
|
|
+ task.setSecretNumber(history.getSecretNumber());
|
|
|
|
+ task.setQuestionList(buildMarkStep(group, null));
|
|
|
|
+ task.setSliceUrls(fileService.getSliceUris(student.getExamId(), student.getSecretNumber(), 1,
|
|
student.getSliceCount()));
|
|
student.getSliceCount()));
|
|
- task.setPictureConfig(group.getPictureConfigList());
|
|
|
|
|
|
+ task.setSliceConfig(group.getPictureConfigList());
|
|
task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));
|
|
task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));
|
|
- if (subject.getPaperFileType() != null) {
|
|
|
|
- task.setPaperUrl(fileService.getPaperUri(subject.getExamId(), subject.getCode(), subject.getPaperFileType()));
|
|
|
|
- }
|
|
|
|
- if (subject.getAnswerFileType() != null) {
|
|
|
|
- task.setAnswerUrl(fileService.getAnswerUri(subject.getExamId(), subject.getCode(),
|
|
|
|
- subject.getAnswerFileType()));
|
|
|
|
- }
|
|
|
|
task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
task.setMarkTime(history.getUpdateTime());
|
|
task.setMarkTime(history.getUpdateTime());
|
|
// 构造仲裁信息
|
|
// 构造仲裁信息
|
|
@@ -107,105 +129,103 @@ public class TaskServiceImpl implements TaskService {
|
|
list.add(new ArbitrationDTO(library, marker));
|
|
list.add(new ArbitrationDTO(library, marker));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- task.setArbitrationList(list);
|
|
|
|
|
|
+ // task.setArbitrationList(list);
|
|
// 回评状态下的打分信息
|
|
// 回评状态下的打分信息
|
|
- if (history.getTotalScore() != null) {
|
|
|
|
- task.setTotalScore(history.getTotalScore());
|
|
|
|
- }
|
|
|
|
- if (history.getScoreList() != null) {
|
|
|
|
- task.setScoreList(history.getScoreList());
|
|
|
|
- }
|
|
|
|
|
|
+ // if (history.getTotalScore() != null) {
|
|
|
|
+ // task.setTotalScore(history.getTotalScore());
|
|
|
|
+ // }
|
|
|
|
+ // if (history.getScoreList() != null) {
|
|
|
|
+ // task.setScoreList(history.getScoreList());
|
|
|
|
+ // }
|
|
return task;
|
|
return task;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Task build(MarkLibrary library) {
|
|
public Task build(MarkLibrary library) {
|
|
|
|
+ Exam exam = examService.findById(library.getExamId());
|
|
ExamSubject subject = subjectService.find(library.getExamId(), library.getSubjectCode());
|
|
ExamSubject subject = subjectService.find(library.getExamId(), library.getSubjectCode());
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(library.getExamId(), library.getExamNumber());
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(library.getExamId(), library.getExamNumber());
|
|
MarkGroup group = groupService.findOne(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
MarkGroup group = groupService.findOne(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
|
|
|
|
Task task = new Task();
|
|
Task task = new Task();
|
|
- task.setExist(true);
|
|
|
|
- task.setStatusValue(MarkStatus.FORMAL.getValue());
|
|
|
|
- task.setStudentId(library.getStudentId());
|
|
|
|
task.setLibraryId(library.getId());
|
|
task.setLibraryId(library.getId());
|
|
- // 正评显示考生密号
|
|
|
|
- task.setStudentNumber(library.getSecretNumber());
|
|
|
|
- task.setMarkStepList(buildMarkStep(group, library.getId()));
|
|
|
|
- task.setPictureUrls(fileService.getSliceUris(library.getExamId(), library.getSecretNumber(), 1,
|
|
|
|
- student.getSliceCount()));
|
|
|
|
- task.setPictureConfig(group.getPictureConfigList());
|
|
|
|
- task.setJsonUrl(fileService.getJsonUri(library.getExamId(), library.getSecretNumber()));
|
|
|
|
- if (subject.getPaperFileType() != null) {
|
|
|
|
- task.setPaperUrl(fileService.getPaperUri(subject.getExamId(), subject.getCode(), subject.getPaperFileType()));
|
|
|
|
- }
|
|
|
|
- if (subject.getAnswerFileType() != null) {
|
|
|
|
- task.setAnswerUrl(fileService.getAnswerUri(subject.getExamId(), subject.getCode(),
|
|
|
|
- subject.getAnswerFileType()));
|
|
|
|
|
|
+ task.setStudentId(library.getStudentId());
|
|
|
|
+ task.setSecretNumber(library.getSecretNumber());
|
|
|
|
+ task.setStudentCode(student.getStudentCode());
|
|
|
|
+ task.setStudentName(student.getName());
|
|
|
|
+ task.setExamNumber(library.getExamNumber());
|
|
|
|
+ task.setSubject(subject);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ task.setJsonUrl(fileService.getJsonUri(library.getExamId(), library.getSecretNumber()));
|
|
|
|
+ } else {
|
|
|
|
+ task.setSliceUrls(fileService.getSliceUris(library.getExamId(), library.getSecretNumber(), 1,
|
|
|
|
+ student.getSliceCount()));
|
|
|
|
+ task.setSliceConfig(group.getPictureConfigList());
|
|
|
|
+ task.setSheetUrls(fileService.getSheetUris(library.getExamId(), library.getExamNumber(), 1,
|
|
|
|
+ student.getSheetCount()));
|
|
}
|
|
}
|
|
|
|
+ task.setQuestionList(buildMarkStep(group, library));
|
|
|
|
+ task.setSpecialTagList(getMarkSpecialTagList(library.getId()));
|
|
task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
task.setMarkTime(library.getMarkerTime());
|
|
task.setMarkTime(library.getMarkerTime());
|
|
- task.setTagList(getMarkSpecialTagList(library.getId()));
|
|
|
|
- if (library.getMarkerScore() != null) {
|
|
|
|
- task.setTotalScore(library.getMarkerScore());
|
|
|
|
|
|
+ if (library.getStatus() == LibraryStatus.REJECTED && library.getMarkerId() != null) {
|
|
|
|
+ task.setRejected(true);
|
|
}
|
|
}
|
|
- if (library.getMarkerScoreList() != null) {
|
|
|
|
- task.setScoreList(library.getMarkerScoreList());
|
|
|
|
|
|
+ if (library.getStatus() == LibraryStatus.MARKED || library.getStatus() == LibraryStatus.INSPECTED) {
|
|
|
|
+ task.setMarkerScore(library.getMarkerScore());
|
|
|
|
+ task.setPrevious(true);
|
|
}
|
|
}
|
|
- // if (library.getStatus() == LibraryStatus.BACKED &&
|
|
|
|
- // library.getMarkerId() != null) {
|
|
|
|
- // task.setBack(true);
|
|
|
|
- // }
|
|
|
|
return task;
|
|
return task;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Task build(TrialLibrary library, TrialHistory history) {
|
|
public Task build(TrialLibrary library, TrialHistory history) {
|
|
|
|
+ Exam exam = examService.findById(library.getExamId());
|
|
ExamSubject subject = subjectService.find(library.getExamId(), library.getSubjectCode());
|
|
ExamSubject subject = subjectService.find(library.getExamId(), library.getSubjectCode());
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(library.getExamId(), library.getExamNumber());
|
|
ExamStudent student = studentService.findByExamIdAndExamNumber(library.getExamId(), library.getExamNumber());
|
|
MarkGroup group = groupService.findOne(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
MarkGroup group = groupService.findOne(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
|
|
|
|
Task task = new Task();
|
|
Task task = new Task();
|
|
- task.setExist(true);
|
|
|
|
- task.setStatusValue(MarkStatus.TRIAL.getValue());
|
|
|
|
- task.setStatusName(MarkStatus.TRIAL.getName());
|
|
|
|
- // 试评显示考生密号
|
|
|
|
- task.setStudentNumber(library.getSecretNumber());
|
|
|
|
- task.setStudentId(library.getStudentId());
|
|
|
|
task.setLibraryId(library.getId());
|
|
task.setLibraryId(library.getId());
|
|
- task.setMarkStepList(buildTrialStep(group, history));
|
|
|
|
- task.setPictureUrls(fileService.getSliceUris(library.getExamId(), library.getSecretNumber(), 1,
|
|
|
|
- student.getSliceCount()));
|
|
|
|
- task.setPictureConfig(group.getPictureConfigList());
|
|
|
|
- task.setJsonUrl(fileService.getJsonUri(library.getExamId(), library.getSecretNumber()));
|
|
|
|
- if (subject.getPaperFileType() != null) {
|
|
|
|
- task.setPaperUrl(fileService.getPaperUri(subject.getExamId(), subject.getCode(), subject.getPaperFileType()));
|
|
|
|
- }
|
|
|
|
- if (subject.getAnswerFileType() != null) {
|
|
|
|
- task.setAnswerUrl(fileService.getAnswerUri(subject.getExamId(), subject.getCode(),
|
|
|
|
- subject.getAnswerFileType()));
|
|
|
|
|
|
+ task.setStudentId(library.getStudentId());
|
|
|
|
+ task.setSecretNumber(library.getSecretNumber());
|
|
|
|
+ task.setStudentCode(student.getStudentCode());
|
|
|
|
+ task.setStudentName(student.getName());
|
|
|
|
+ task.setExamNumber(library.getExamNumber());
|
|
|
|
+ task.setSubject(subject);
|
|
|
|
+ task.setQuestionList(buildTrialStep(group, history));
|
|
|
|
+ task.setObjectiveScore(student.getObjectiveScore());
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ task.setJsonUrl(fileService.getJsonUri(library.getExamId(), library.getSecretNumber()));
|
|
|
|
+ } else {
|
|
|
|
+ task.setSliceUrls(fileService.getSliceUris(library.getExamId(), library.getSecretNumber(), 1,
|
|
|
|
+ student.getSliceCount()));
|
|
|
|
+ task.setSliceConfig(group.getPictureConfigList());
|
|
|
|
+ task.setSheetUrls(fileService.getSheetUris(library.getExamId(), library.getExamNumber(), 1,
|
|
|
|
+ student.getSheetCount()));
|
|
}
|
|
}
|
|
- task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
|
|
if (history != null) {
|
|
if (history != null) {
|
|
|
|
+ task.setSpecialTagList(getTrialTagList(history));
|
|
task.setMarkTime(history.getMarkerTime());
|
|
task.setMarkTime(history.getMarkerTime());
|
|
- task.setTotalScore(history.getMarkerScore());
|
|
|
|
- task.setScoreList(history.getMarkerScoreList());
|
|
|
|
- task.setTagList(getTrialTagList(history));
|
|
|
|
|
|
+ task.setMarkerScore(history.getMarkerScore());
|
|
|
|
+ task.setRejected(true);
|
|
}
|
|
}
|
|
return task;
|
|
return task;
|
|
}
|
|
}
|
|
|
|
|
|
- private List<MarkStepDTO> buildMarkStep(MarkGroup group, Integer libraryId) {
|
|
|
|
|
|
+ private List<MarkStepDTO> buildMarkStep(MarkGroup group, MarkLibrary library) {
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(group.getExamId(),
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(group.getExamId(),
|
|
group.getSubjectCode(), false, group.getNumber());
|
|
group.getSubjectCode(), false, group.getNumber());
|
|
- int number = 0;
|
|
|
|
- List<MarkTrack> tracks = trackService.findByLibraryId(libraryId);
|
|
|
|
- for (ExamQuestion question : sList) {
|
|
|
|
- number++;
|
|
|
|
-
|
|
|
|
- MarkStepDTO step = buildStep(number, question);
|
|
|
|
- if (libraryId != null) {
|
|
|
|
|
|
+ List<MarkTrack> tracks = trackService.findByLibraryId(library.getId());
|
|
|
|
+ List<ScoreItem> sItems = library.getScoreList();
|
|
|
|
+ for (int i = 0; i < sList.size(); i++) {
|
|
|
|
+ ExamQuestion question = sList.get(i);
|
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
|
+ if (!sItems.isEmpty() && sItems.size() == sList.size()) {
|
|
|
|
+ step.setScore(sItems.get(i).getScore());
|
|
|
|
+ }
|
|
|
|
+ if (library != null) {
|
|
// 增加阅卷轨迹列表获取
|
|
// 增加阅卷轨迹列表获取
|
|
String questionNumber = question.getQuestionNumber();
|
|
String questionNumber = question.getQuestionNumber();
|
|
for (MarkTrack track : tracks) {
|
|
for (MarkTrack track : tracks) {
|
|
@@ -223,14 +243,18 @@ public class TaskServiceImpl implements TaskService {
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(group.getExamId(),
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(group.getExamId(),
|
|
group.getSubjectCode(), false, group.getNumber());
|
|
group.getSubjectCode(), false, group.getNumber());
|
|
- int number = 0;
|
|
|
|
List<TrialTrack> tracks = new ArrayList<TrialTrack>();
|
|
List<TrialTrack> tracks = new ArrayList<TrialTrack>();
|
|
|
|
+ List<ScoreItem> sItems = new ArrayList<ScoreItem>();
|
|
if (history != null) {
|
|
if (history != null) {
|
|
tracks = trialService.findTrack(history.getLibraryId(), history.getMarkerId());
|
|
tracks = trialService.findTrack(history.getLibraryId(), history.getMarkerId());
|
|
|
|
+ sItems = history.getScoreList();
|
|
}
|
|
}
|
|
- for (ExamQuestion question : sList) {
|
|
|
|
- number++;
|
|
|
|
- MarkStepDTO step = buildStep(number, question);
|
|
|
|
|
|
+ for (int i = 0; i < sList.size(); i++) {
|
|
|
|
+ ExamQuestion question = sList.get(i);
|
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
|
+ if (!sItems.isEmpty() && sItems.size() == sList.size()) {
|
|
|
|
+ step.setScore(sItems.get(i).getScore());
|
|
|
|
+ }
|
|
// 增加阅卷轨迹列表获取
|
|
// 增加阅卷轨迹列表获取
|
|
String questionNumber = question.getQuestionNumber();
|
|
String questionNumber = question.getQuestionNumber();
|
|
for (TrialTrack track : tracks) {
|
|
for (TrialTrack track : tracks) {
|
|
@@ -243,19 +267,16 @@ public class TaskServiceImpl implements TaskService {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
- private MarkStepDTO buildStep(int number, ExamQuestion question) {
|
|
|
|
|
|
+ private MarkStepDTO buildStep(ExamQuestion question) {
|
|
MarkStepDTO step = new MarkStepDTO();
|
|
MarkStepDTO step = new MarkStepDTO();
|
|
- step.setQuestionNumber(question.getQuestionNumber());
|
|
|
|
step.setMainNumber(question.getMainNumber());
|
|
step.setMainNumber(question.getMainNumber());
|
|
step.setSubNumber(question.getSubNumber());
|
|
step.setSubNumber(question.getSubNumber());
|
|
- step.setNumber(number);
|
|
|
|
- step.setTitle(question.getMainTitle() + "-" + question.getSubNumber());
|
|
|
|
- step.setTotalScore(question.getTotalScore());
|
|
|
|
|
|
+ step.setGroupNumber(question.getGroupNumber());
|
|
|
|
+ step.setTitle(question.getMainTitle());
|
|
step.setDefaultScore(0d);
|
|
step.setDefaultScore(0d);
|
|
step.setMax(question.getTotalScore());
|
|
step.setMax(question.getTotalScore());
|
|
step.setMin(0d);
|
|
step.setMin(0d);
|
|
step.setInterval(question.getIntervalScore());
|
|
step.setInterval(question.getIntervalScore());
|
|
- step.setScoreList(question.getScoreListArray());
|
|
|
|
return step;
|
|
return step;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -301,23 +322,27 @@ public class TaskServiceImpl implements TaskService {
|
|
public Task build(Integer studentId) {
|
|
public Task build(Integer studentId) {
|
|
ExamStudent student = studentService.findById(studentId);
|
|
ExamStudent student = studentService.findById(studentId);
|
|
ExamSubject subject = subjectService.find(student.getExamId(), student.getSubjectCode());
|
|
ExamSubject subject = subjectService.find(student.getExamId(), student.getSubjectCode());
|
|
|
|
+ Exam exam = examService.findById(student.getExamId());
|
|
|
|
+
|
|
Task task = new Task();
|
|
Task task = new Task();
|
|
- task.setExist(true);
|
|
|
|
task.setStudentId(studentId);
|
|
task.setStudentId(studentId);
|
|
- task.setStudentNumber(student.getSecretNumber());
|
|
|
|
- task.setMarkStepList(buildMarkStep(student));
|
|
|
|
- task.setPictureUrls(fileService.getSliceUris(student.getExamId(), student.getSecretNumber(), 1,
|
|
|
|
- student.getSliceCount()));
|
|
|
|
- task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));
|
|
|
|
- if (subject.getPaperFileType() != null) {
|
|
|
|
- task.setPaperUrl(fileService.getPaperUri(subject.getExamId(), subject.getCode(), subject.getPaperFileType()));
|
|
|
|
|
|
+ task.setSecretNumber(student.getSecretNumber());
|
|
|
|
+ task.setStudentCode(student.getStudentCode());
|
|
|
|
+ task.setStudentName(student.getName());
|
|
|
|
+ task.setExamNumber(student.getExamNumber());
|
|
|
|
+ task.setSubject(subject);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ task.setJsonUrl(fileService.getJsonUri(student.getExamId(), student.getSecretNumber()));
|
|
|
|
+ } else {
|
|
|
|
+ task.setSliceUrls(fileService.getSliceUris(student.getExamId(), student.getSecretNumber(), 1,
|
|
|
|
+ student.getSliceCount()));
|
|
|
|
+ task.setSheetUrls(fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1,
|
|
|
|
+ student.getSheetCount()));
|
|
}
|
|
}
|
|
- if (subject.getAnswerFileType() != null) {
|
|
|
|
- task.setAnswerUrl(fileService.getAnswerUri(subject.getExamId(), subject.getCode(),
|
|
|
|
- subject.getAnswerFileType()));
|
|
|
|
- }
|
|
|
|
- task.setObjectiveScore(student.getObjectiveScore());
|
|
|
|
- task.setBack(true);
|
|
|
|
|
|
+ task.setQuestionList(buildMarkStep(student));
|
|
|
|
+ // task.setSpecialTagList(getMarkSpecialTagList(library.getId()));
|
|
|
|
+ task.setObjectiveScore(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0);
|
|
|
|
+ task.setMarkerScore(student.getTotalScore());
|
|
return task;
|
|
return task;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -333,11 +358,13 @@ public class TaskServiceImpl implements TaskService {
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<MarkStepDTO> list = new LinkedList<MarkStepDTO>();
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
student.getSubjectCode(), false);
|
|
student.getSubjectCode(), false);
|
|
- int number = 0;
|
|
|
|
- for (ExamQuestion question : sList) {
|
|
|
|
- number++;
|
|
|
|
-
|
|
|
|
- MarkStepDTO step = buildStep(number, question);
|
|
|
|
|
|
+ List<ScoreItem> sItems = student.getScoreList(false);
|
|
|
|
+ for (int i = 0; i < sList.size(); i++) {
|
|
|
|
+ ExamQuestion question = sList.get(i);
|
|
|
|
+ MarkStepDTO step = buildStep(question);
|
|
|
|
+ if (!sItems.isEmpty() && sItems.size() == sList.size()) {
|
|
|
|
+ step.setScore(sItems.get(i).getScore());
|
|
|
|
+ }
|
|
// 增加阅卷轨迹列表获取
|
|
// 增加阅卷轨迹列表获取
|
|
List<MarkTrack> tracks = trackService.findByStudentId(student.getId());
|
|
List<MarkTrack> tracks = trackService.findByStudentId(student.getId());
|
|
String questionNumber = question.getQuestionNumber();
|
|
String questionNumber = question.getQuestionNumber();
|
|
@@ -351,46 +378,4 @@ public class TaskServiceImpl implements TaskService {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
- @Transactional
|
|
|
|
- @Override
|
|
|
|
- public boolean submitByStudent(Task task) {
|
|
|
|
- if (task == null) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- List<MarkLibrary> libraries = libraryService.findByStudentId(task.getLibraryId());
|
|
|
|
- int start = 0;
|
|
|
|
- int end = 0;
|
|
|
|
- for (int i = 0; i < libraries.size(); i++) {
|
|
|
|
- MarkLibrary library = libraries.get(i);
|
|
|
|
- Task stepTask = new Task();
|
|
|
|
- stepTask.setProblem(task.isProblem());
|
|
|
|
- stepTask.setBack(task.isBack());
|
|
|
|
- stepTask.setLibraryId(library.getId());
|
|
|
|
- stepTask.setHeaderId(task.getHeaderId());
|
|
|
|
- List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
|
|
|
|
- library.getExamId(), library.getSubjectCode(), false, library.getGroupNumber());
|
|
|
|
- if (start == end) {
|
|
|
|
- end = end + sList.size() * 2 - 1;
|
|
|
|
- } else {
|
|
|
|
- start = end + 1;
|
|
|
|
- end = start + sList.size() * 2 - 1;
|
|
|
|
- }
|
|
|
|
- String scoreList = task.getScoreList().substring(start, end);
|
|
|
|
- stepTask.setHeaderScoreList(scoreList);
|
|
|
|
- String[] scores = scoreList.split(",");
|
|
|
|
- double totalScore = 0;
|
|
|
|
- for (String score : scores) {
|
|
|
|
- totalScore = totalScore + Double.parseDouble(score);
|
|
|
|
- }
|
|
|
|
- stepTask.setHeaderScore(totalScore);
|
|
|
|
- // submitTask(stepTask);
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("task submit faile", e);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|