|
@@ -1,8 +1,9 @@
|
|
|
package cn.com.qmth.stmms.biz.exam.service.impl;
|
|
|
|
|
|
-import java.util.HashSet;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
|
import javax.persistence.EntityManager;
|
|
@@ -13,10 +14,6 @@ import javax.persistence.criteria.CriteriaQuery;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import javax.persistence.criteria.Root;
|
|
|
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.*;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.*;
|
|
|
-import cn.com.qmth.stmms.biz.file.enums.FormatType;
|
|
|
-import cn.com.qmth.stmms.common.enums.CardSource;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Page;
|
|
@@ -30,11 +27,24 @@ import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
import cn.com.qmth.stmms.biz.exam.bean.SubjectSplit;
|
|
|
import cn.com.qmth.stmms.biz.exam.dao.ExamStudentDao;
|
|
|
import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.AnswerCard;
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
+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.query.ExamStudentSearchQuery;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.AnswerCardService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.CheckStudentService;
|
|
|
+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.query.ExamSubjectSearchQuery;
|
|
|
import cn.com.qmth.stmms.biz.exception.StatusException;
|
|
|
+import cn.com.qmth.stmms.biz.file.enums.FormatType;
|
|
|
import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
|
|
|
import cn.com.qmth.stmms.biz.utils.DoubleUtil;
|
|
|
+import cn.com.qmth.stmms.common.enums.CardSource;
|
|
|
import cn.com.qmth.stmms.common.enums.ExamType;
|
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
|
|
|
@@ -444,16 +454,23 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
|
|
|
|
|
|
private void disposeSplit(Integer schoolId, Integer examId, List<SubjectSplit> list) {
|
|
|
int index = 0;
|
|
|
- Set<String> validSubjects = new HashSet<>();
|
|
|
+ Map<String,ExamSubject> validSubjects = new HashMap<>();
|
|
|
for (SubjectSplit vo : list) {
|
|
|
index++;
|
|
|
- long groupCount = markGroupService.countByExamAndSubject(examId, vo.getStudent().getSubjectCode());
|
|
|
- if (groupCount > 0) {
|
|
|
- throw new StatusException(
|
|
|
- " 第" + (index + 2) + "行 科目" + vo.getStudent().getSubjectCode() + "有分组,请先删除分组再执行");
|
|
|
+ if(validSubjects.get(vo.getStudent().getSubjectCode())==null) {
|
|
|
+ long groupCount = markGroupService.countByExamAndSubject(examId, vo.getStudent().getSubjectCode());
|
|
|
+ if (groupCount > 0) {
|
|
|
+ throw new StatusException(
|
|
|
+ " 第" + (index + 2) + "行 科目" + vo.getStudent().getSubjectCode() + "有分组,请先删除分组再执行");
|
|
|
+ }
|
|
|
+ ExamSubject es = subjectDao.findByExamIdAndCode(examId, vo.getStudent().getSubjectCode());
|
|
|
+ if(es==null) {
|
|
|
+ throw new StatusException(
|
|
|
+ " 第" + (index + 2) + "行 考生科目" + vo.getStudent().getSubjectCode() + "不存在");
|
|
|
+ }
|
|
|
+ validSubjects.put(vo.getStudent().getSubjectCode(),es);
|
|
|
}
|
|
|
- validSubjects.add(vo.getStudent().getSubjectCode());
|
|
|
- if (!validSubjects.contains(vo.getSubjectCode())) {
|
|
|
+ if (validSubjects.get(vo.getSubjectCode())==null) {
|
|
|
ExamSubject es = subjectDao.findByExamIdAndCode(examId, vo.getSubjectCode());
|
|
|
if (es == null) {
|
|
|
es = new ExamSubject();
|
|
@@ -474,10 +491,10 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
|
|
|
throw new StatusException(" 第" + (index + 2) + "行 科目" + vo.getSubjectCode() + "有分组,请先删除分组再执行");
|
|
|
}
|
|
|
}
|
|
|
- validSubjects.add(vo.getSubjectCode());
|
|
|
- vo.getStudent().setSubjectCode(es.getCode());
|
|
|
- vo.getStudent().setSubjectName(es.getName());
|
|
|
+ validSubjects.put(vo.getSubjectCode(),es);
|
|
|
}
|
|
|
+ vo.getStudent().setSubjectCode(validSubjects.get(vo.getSubjectCode()).getCode());
|
|
|
+ vo.getStudent().setSubjectName(validSubjects.get(vo.getSubjectCode()).getName());
|
|
|
examStudentDao.updateSubject(vo.getStudent().getId(),vo.getStudent().getSubjectCode(),vo.getStudent().getSubjectName());
|
|
|
}
|
|
|
subjectDao.updateUploadCountByExamId(examId);
|