|
@@ -1,19 +1,22 @@
|
|
package cn.com.qmth.examcloud.core.questions.service.export;
|
|
package cn.com.qmth.examcloud.core.questions.service.export;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Collections;
|
|
|
|
-import java.util.Comparator;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.HashSet;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Set;
|
|
|
|
-import java.util.regex.Matcher;
|
|
|
|
-import java.util.regex.Pattern;
|
|
|
|
-
|
|
|
|
-import javax.xml.bind.JAXBElement;
|
|
|
|
-
|
|
|
|
|
|
+import cn.com.qmth.examcloud.commons.exception.StatusException;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
|
|
import cn.com.qmth.examcloud.core.questions.base.Model;
|
|
import cn.com.qmth.examcloud.core.questions.base.Model;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.core.enums.CourseLevel;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.dao.*;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.ExamFileService;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.PaperService;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.QuestionAudioService;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
|
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.docx4j.XmlUtils;
|
|
import org.docx4j.XmlUtils;
|
|
import org.docx4j.jaxb.Context;
|
|
import org.docx4j.jaxb.Context;
|
|
@@ -25,30 +28,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import cn.com.qmth.examcloud.commons.exception.StatusException;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.core.enums.CourseLevel;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.ExamFileService;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.service.QuestionAudioService;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
|
|
|
|
-import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
|
|
|
|
|
|
+import javax.xml.bind.JAXBElement;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.regex.Matcher;
|
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -126,18 +109,20 @@ public class InitPaperExpService {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 根据paper得到导出试卷对象PaperExp
|
|
* 根据paper得到导出试卷对象PaperExp
|
|
- *
|
|
|
|
- * @param paperId
|
|
|
|
- * @return
|
|
|
|
- * @throws Exception
|
|
|
|
*/
|
|
*/
|
|
public PaperExp initPaperExp(String paperId) {
|
|
public PaperExp initPaperExp(String paperId) {
|
|
- //根据paperId取到paper对象
|
|
|
|
Paper paper = Model.of(paperRepo.findById(paperId));
|
|
Paper paper = Model.of(paperRepo.findById(paperId));
|
|
- //paperService.formatPaper(paper, null);
|
|
|
|
|
|
+ return this.initPaperExp(paper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据paper得到导出试卷对象PaperExp
|
|
|
|
+ */
|
|
|
|
+ public PaperExp initPaperExp(Paper paper) {
|
|
if (paper == null) {
|
|
if (paper == null) {
|
|
- throw new StatusException("Q-090133", "该试卷不存在");
|
|
|
|
|
|
+ throw new StatusException("090133", "该试卷不存在!");
|
|
}
|
|
}
|
|
|
|
+
|
|
Course course = courseService.getCourse(Long.valueOf(paper.getOrgId()), paper.getCourse().getCode());
|
|
Course course = courseService.getCourse(Long.valueOf(paper.getOrgId()), paper.getCourse().getCode());
|
|
//创建试卷导出的dto
|
|
//创建试卷导出的dto
|
|
PaperExp paperExpDto = BeanCopierUtil.copyProperties(paper, PaperExp.class);
|
|
PaperExp paperExpDto = BeanCopierUtil.copyProperties(paper, PaperExp.class);
|
|
@@ -146,6 +131,7 @@ public class InitPaperExpService {
|
|
} else {
|
|
} else {
|
|
paperExpDto.setCourseLevel(CourseLevel.getCourseLevel(paper.getCourse().getLevel()).getName());
|
|
paperExpDto.setCourseLevel(CourseLevel.getCourseLevel(paper.getCourse().getLevel()).getName());
|
|
}
|
|
}
|
|
|
|
+
|
|
//获取原试卷所有大题
|
|
//获取原试卷所有大题
|
|
List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
|
|
List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
|
|
//生成新的大题对象集合,加添对应的小题
|
|
//生成新的大题对象集合,加添对应的小题
|
|
@@ -154,6 +140,7 @@ public class InitPaperExpService {
|
|
sortPaperDetailExps(paperDetailExps);
|
|
sortPaperDetailExps(paperDetailExps);
|
|
//给新的大题添加分数
|
|
//给新的大题添加分数
|
|
scorePaperDetailExps(paperDetailExps);
|
|
scorePaperDetailExps(paperDetailExps);
|
|
|
|
+
|
|
paperExpDto.setPaperDetails(paperDetailExps);
|
|
paperExpDto.setPaperDetails(paperDetailExps);
|
|
paperExpDto.getCourse().setId(course.getId());
|
|
paperExpDto.getCourse().setId(course.getId());
|
|
return paperExpDto;
|
|
return paperExpDto;
|