deason 6 years ago
parent
commit
40c43be829

+ 18 - 18
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperController.java

@@ -591,24 +591,24 @@ public class PaperController extends ControllerSupport {
     @ApiOperation(value = "预览试卷页面")
     @GetMapping(value = "/paper/pdf/{paperId}")
     public String viewPaper(Model model, @PathVariable String paperId) {
-        Paper paperBase = cn.com.qmth.examcloud.core.questions.base.Model.of(paperRepo.findById(paperId));
-        if (paperBase == null) {
+        Paper paper = cn.com.qmth.examcloud.core.questions.base.Model.of(paperRepo.findById(paperId));
+        if (paper == null) {
             throw new StatusException("500", "试卷信息不存在!");
         }
 
-        ExportServiceManage manager = exportServiceManageRepo.findByOrgId(paperBase.getOrgId());
+        ExportServiceManage manager = exportServiceManageRepo.findByOrgId(paper.getOrgId());
         if (manager == null) {
             manager = exportServiceManageRepo.findByOrgName("山东大学");
         }
         ExportPaperAbstractService exportPaperAbstractService = SpringContextUtils.getBean(ExportPaperAbstractService.class, manager.getExportServiceName());
 
-        PaperExp paper = exportPaperAbstractService.previewPDF(paperId);
-        model.addAttribute("htmlList", JsonUtil.toJson(ParsePaper.convertPaperHtml(paper)));
-        model.addAttribute("courseName", paper.getCourseName());
-        model.addAttribute("courseNo", paper.getCourseNo());
-        model.addAttribute("courseLevel", paper.getCourseLevel());
+        PaperExp viewPaper = exportPaperAbstractService.previewPDF(paper);
+        model.addAttribute("htmlList", JsonUtil.toJson(ParsePaper.convertPaperHtml(viewPaper)));
+        model.addAttribute("courseName", viewPaper.getCourseName());
+        model.addAttribute("courseNo", viewPaper.getCourseNo());
+        model.addAttribute("courseLevel", viewPaper.getCourseLevel());
 
-        //String html = esm.getExportServiceName() + "_paper";
+        //String html = manager.getExportServiceName() + "_paper";
         String html = "sddxExportPaperService_paper";
         return html;
     }
@@ -617,24 +617,24 @@ public class PaperController extends ControllerSupport {
     @ApiOperation(value = "预览试卷答案页面")
     @GetMapping(value = "/paper/answer/pdf/{paperId}")
     public String viewPaperAnswer(Model model, @PathVariable String paperId) {
-        Paper paperBase = cn.com.qmth.examcloud.core.questions.base.Model.of(paperRepo.findById(paperId));
-        if (paperBase == null) {
+        Paper paper = cn.com.qmth.examcloud.core.questions.base.Model.of(paperRepo.findById(paperId));
+        if (paper == null) {
             throw new StatusException("500", "试卷答案信息不存在!");
         }
 
-        ExportServiceManage manager = exportServiceManageRepo.findByOrgId(paperBase.getOrgId());
+        ExportServiceManage manager = exportServiceManageRepo.findByOrgId(paper.getOrgId());
         if (manager == null) {
             manager = exportServiceManageRepo.findByOrgName("山东大学");
         }
         ExportPaperAbstractService exportPaperAbstractService = SpringContextUtils.getBean(ExportPaperAbstractService.class, manager.getExportServiceName());
 
-        PaperExp paper = exportPaperAbstractService.previewPDF(paperId);
-        model.addAttribute("htmlList", JsonUtil.toJson(ParsePaper.convertAnswerHtml(paper)));
-        model.addAttribute("courseNo", paper.getCourseNo());
-        model.addAttribute("courseName", paper.getCourseName());
-        model.addAttribute("courseLevel", paper.getCourseLevel());
+        PaperExp viewPaper = exportPaperAbstractService.previewPDF(paper);
+        model.addAttribute("htmlList", JsonUtil.toJson(ParsePaper.convertAnswerHtml(viewPaper)));
+        model.addAttribute("courseNo", viewPaper.getCourseNo());
+        model.addAttribute("courseName", viewPaper.getCourseName());
+        model.addAttribute("courseLevel", viewPaper.getCourseLevel());
 
-        //String html = esm.getExportServiceName() + "_answer";
+        //String html = manager.getExportServiceName() + "_answer";
         String html = "sddxExportPaperService_answer";
         return html;
     }

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java

@@ -346,8 +346,8 @@ public abstract class ExportPaperAbstractService {
         return paperExp;
     }
 
-    public PaperExp previewPDF(String paperId) {
-        PaperExp paperExp = initPaperExpService.initPaperExp(paperId);
+    public PaperExp previewPDF(Paper paper) {
+        PaperExp paperExp = initPaperExpService.initPaperExp(paper);
         //给新的大题下所有小题排序
         sortPaperDetailUnitExps(paperExp.getPaperDetails());
         //如果每个小题分数不一样,题干后面添加分数

+ 31 - 44
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/InitPaperExpService.java

@@ -1,19 +1,22 @@
 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.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.docx4j.XmlUtils;
 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.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
-     *
-     * @param paperId
-     * @return
-     * @throws Exception
      */
     public PaperExp initPaperExp(String paperId) {
-        //根据paperId取到paper对象
         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) {
-            throw new StatusException("Q-090133", "该试卷不存在");
+            throw new StatusException("090133", "该试卷不存在");
         }
+
         Course course = courseService.getCourse(Long.valueOf(paper.getOrgId()), paper.getCourse().getCode());
         //创建试卷导出的dto
         PaperExp paperExpDto = BeanCopierUtil.copyProperties(paper, PaperExp.class);
@@ -146,6 +131,7 @@ public class InitPaperExpService {
         } else {
             paperExpDto.setCourseLevel(CourseLevel.getCourseLevel(paper.getCourse().getLevel()).getName());
         }
+
         //获取原试卷所有大题
         List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
         //生成新的大题对象集合,加添对应的小题
@@ -154,6 +140,7 @@ public class InitPaperExpService {
         sortPaperDetailExps(paperDetailExps);
         //给新的大题添加分数
         scorePaperDetailExps(paperDetailExps);
+
         paperExpDto.setPaperDetails(paperDetailExps);
         paperExpDto.getCourse().setId(course.getId());
         return paperExpDto;