Explorar o código

提交优化方案和陕西模板

weiwenhai %!s(int64=6) %!d(string=hai) anos
pai
achega
620d7f710d

+ 1 - 1
examcloud-core-questions-base/src/main/resources/sxsf_outline_paper_template.ftl

@@ -47,7 +47,7 @@
 								<w:sz w:val="48"/>
 								<w:szCs w:val="48"/>
 							</w:rPr>
-							<w:t>天津大学网络教育学院试卷</w:t>
+							<w:t>陕西师范大学网络教育学院试卷</w:t>
 						</w:r>
 					</w:p>
 					<w:tbl>

+ 12 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SxsfExportPaperService.java

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.core.questions.service.export;
 import java.io.File;
 import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.stereotype.Service;
 
@@ -12,6 +13,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
+import cn.com.qmth.examcloud.core.questions.base.ImageUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
@@ -31,15 +33,22 @@ public class SxsfExportPaperService extends ExportPaperAbstractService {
 		if(paperExp!=null){
 			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
 			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
+			List<WordprocessingMLPackage> wordPackages = getPkgList(paperId);
 			if(examType.equals("offLine")){
 				WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
-				paperExp.setExamRemarkWord(DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(paperExp.getExamRemark())));
+				if (StringUtils.isBlank(paperExp.getExamRemark())) {
+                    paperExp.setExamRemark("<p></p>");
+                }
+				String examRemark = ImageUtils.reSizeImg(paperExp.getExamRemark());
+				paperExp.setExamRemarkWord(DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(examRemark)));
 				DocxProcessUtil.exportWordNew(paperExp, file,SXSF_OUTLINE_TEMPLATE_PAPER);
+				if (DocxProcessUtil.hasImage(examRemark)) {
+                    wordPackages.add(wordMLPackage);
+                }
 			}else{
-				//DocxProcessUtil.exportWordNew(paperExp, file,BJSF_TMPLATE_PAPER);
 				DocxProcessUtil.exportWordNew(paperExp, file,SXSF_TEMPLATE_PAPER);
 			}
-			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
+			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,wordPackages);
 			//下载音频
 			super.downloadAudio(paperExp, zipFileName);
 		}

+ 7 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/GenPaperService.java

@@ -125,17 +125,20 @@ public class GenPaperService {
     	for (PaperDetailUnit unit : spareUnits) {
     		oIds.add(unit.getQuestion().getId());
     	}
+    	log.debug("total2.....--------实际原题数量:"+oIds.size());
     	long start2 = System.currentTimeMillis();
     	List<PaperDetailUnit> oDetailUnits = paperDetailUnitService.findByQuestionsAndPaperType(oIds, PaperType.IMPORT);
     	long total2 = (System.currentTimeMillis() - start2) / 1000;
-    	log.debug("total2....."+total2+"--------获取原题数量:"+oDetailUnits.size());
+    	log.debug("total2....."+total2+"--------查询原题数量:"+oDetailUnits.size());
     	long start4 = System.currentTimeMillis();
     	for(PaperDetailUnit oldUnit:oDetailUnits){
-        	oldUnit.getQuestion().setQuesName(oldUnit.getPaperDetail().getName());
-        	questions.add(oldUnit.getQuestion());
+    		if(oldUnit.getPaper().getPaperType() == PaperType.IMPORT){
+    			oldUnit.getQuestion().setQuesName(oldUnit.getPaperDetail().getName());
+            	questions.add(oldUnit.getQuestion());
+    		}
         }
     	long total4 = (System.currentTimeMillis() - start4) / 1000;
-    	log.debug("循环耗时....."+total4);
+    	log.debug("循环耗时....."+total4+"--------最终原题数量:"+questions.size());
         Collections.shuffle(questions);
         int maxLoopCount = questions.size() * 2;
         int selectCount = 0;