|
@@ -1,8 +1,10 @@
|
|
|
package cn.com.qmth.stmms.biz.mark.service.Impl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -16,12 +18,14 @@ 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.SelectiveGroup;
|
|
|
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.exam.service.SelectiveGroupService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectiveScoreService;
|
|
|
import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
|
import cn.com.qmth.stmms.biz.mark.model.ArbitrateHistory;
|
|
@@ -99,6 +103,9 @@ public class TaskServiceImpl implements TaskService {
|
|
|
@Autowired
|
|
|
private SubjectiveScoreService scoreService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SelectiveGroupService selectiveGroupService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<Task> findByQuery(MarkLibrarySearchQuery query) {
|
|
|
List<Task> list = new LinkedList<Task>();
|
|
@@ -320,6 +327,7 @@ public class TaskServiceImpl implements TaskService {
|
|
|
step.setMinScore(0d);
|
|
|
step.setIntervalScore(question.getIntervalScore());
|
|
|
step.setUncalculate(false);
|
|
|
+ step.setSelectiveIndex(question.getSelectiveIndex());
|
|
|
return step;
|
|
|
}
|
|
|
|
|
@@ -417,9 +425,18 @@ public class TaskServiceImpl implements TaskService {
|
|
|
List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
|
|
|
student.getSubjectCode(), false);
|
|
|
Set<Integer> mainList = scoreService.findMainNumberByStudentIdAndUncalculate(student.getId(), true);
|
|
|
+ List<SelectiveGroup> selectiveGroups = selectiveGroupService.findByExamIdAndSubjectCode(student.getExamId(),
|
|
|
+ student.getSubjectCode());
|
|
|
+ Map<Integer, SelectiveGroup> map = new HashMap<Integer, SelectiveGroup>();
|
|
|
+ for (SelectiveGroup selectiveGroup : selectiveGroups) {
|
|
|
+ map.put(selectiveGroup.getMainNumber(), selectiveGroup);
|
|
|
+ }
|
|
|
List<ScoreItem> sItems = student.getScoreList(false);
|
|
|
for (int i = 0; i < sList.size(); i++) {
|
|
|
ExamQuestion question = sList.get(i);
|
|
|
+ if (map.containsKey(question.getMainNumber())) {
|
|
|
+ question.setSelectiveIndex(map.get(question.getMainNumber()).getSelectiveIndex());
|
|
|
+ }
|
|
|
MarkStepDTO step = buildStep(question);
|
|
|
if (!sItems.isEmpty() && sItems.size() == sList.size()) {
|
|
|
step.setScore(sItems.get(i).getScore());
|