weiwenhai 6 anni fa
parent
commit
9e8bc6bddc

+ 0 - 9
examcloud-core-questions-base/src/main/resources/bjhk_paper_template.ftl

@@ -406,15 +406,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/bjjt_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 10
examcloud-core-questions-base/src/main/resources/cqdx_paper_template.ftl

@@ -495,16 +495,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="007B432D" w:rsidR="00E95977" w:rsidRDefault="00E95977" w:rsidRPr="007B432D">
-						<w:pPr>
-							<w:spacing w:after="20" w:before="20"/>
-							<w:rPr>
-								<w:rFonts w:hint="eastAsia"/>
-								<w:color w:val="000000"/>
-								<w:spacing w:val="20"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="00E95977" w:rsidRPr="007B432D" w:rsidSect="00A23208">
 						<w:headerReference r:id="rId7" w:type="default"/>
 						<w:footerReference r:id="rId8" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/dbsf_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/fjsf_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/hnsf_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 18
examcloud-core-questions-base/src/main/resources/hzkj_answer_template.ftl

@@ -324,24 +324,6 @@
                     </#if>
                     </#list>
                     </#if>
-					
-					<w:p w:rsidP="00F45143" w:rsidR="00426977" w:rsidRDefault="00426977">
-						<w:pPr>
-							<w:spacing w:afterLines="10" w:beforeLines="50"/>
-							<w:jc w:val="left"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体"/>
-								<w:color w:val="000000"/>
-								<w:sz w:val="20"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
-					<w:p w:rsidP="00DA37A9" w:rsidR="00426977" w:rsidRDefault="00426977">
-						<w:pPr>
-							<w:spacing w:afterLines="10" w:beforeLines="50"/>
-							<w:jc w:val="left"/>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="00426977" w:rsidSect="002647F0">
 						<w:footerReference r:id="rId7" w:type="even"/>
 						<w:footerReference r:id="rId8" w:type="default"/>

+ 0 - 17
examcloud-core-questions-base/src/main/resources/hzkj_paper_template.ftl

@@ -316,23 +316,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00F45143" w:rsidR="00426977" w:rsidRDefault="00426977">
-						<w:pPr>
-							<w:spacing w:afterLines="10" w:beforeLines="50"/>
-							<w:jc w:val="left"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体"/>
-								<w:color w:val="000000"/>
-								<w:sz w:val="20"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
-					<w:p w:rsidP="00DA37A9" w:rsidR="00426977" w:rsidRDefault="00426977">
-						<w:pPr>
-							<w:spacing w:afterLines="10" w:beforeLines="50"/>
-							<w:jc w:val="left"/>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="00426977" w:rsidSect="002647F0">
 						<w:footerReference r:id="rId7" w:type="even"/>
 						<w:footerReference r:id="rId8" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/nkdx_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

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

@@ -572,7 +572,6 @@
 		    			</#if>
 	    			</#list>
 	    			</#if>
-					<w:p w:rsidR="008C75CD" w:rsidRDefault="008C75CD"/>
 					<w:sectPr w:rsidR="008C75CD" w:rsidSect="001205CF">
 						<w:pgSz w:h="16838" w:w="11906"/>
 						<w:pgMar w:bottom="1440" w:footer="992" w:gutter="0" w:header="851" w:left="1800" w:right="1800" w:top="1440"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/ykdx_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/zgddb_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 0 - 9
examcloud-core-questions-base/src/main/resources/zgddw_paper_template.ftl

@@ -414,15 +414,6 @@
 	    </#if>
 	    </#list>
 	    </#if>
-					<w:p w:rsidP="00361123" w:rsidR="0093162E" w:rsidRDefault="0093162E" w:rsidRPr="003D4B52">
-						<w:pPr>
-							<w:spacing w:line="400" w:lineRule="exact"/>
-							<w:rPr>
-								<w:rFonts w:ascii="宋体" w:hAnsi="宋体" w:hint="eastAsia"/>
-								<w:szCs w:val="21"/>
-							</w:rPr>
-						</w:pPr>
-					</w:p>
 					<w:sectPr w:rsidR="0093162E" w:rsidRPr="003D4B52" w:rsidSect="00D61A1B">
 						<w:headerReference r:id="rId8" w:type="default"/>
 						<w:footerReference r:id="rId9" w:type="default"/>

+ 40 - 9
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/CqdxService.java

@@ -72,10 +72,12 @@ public class CqdxService {
 	public void bulidPaper() throws Exception {
 		// 获取所有xml的路径
 		List<String> files = filePath();
+		int i = 1;
+		System.out.println("总文件个数:"+files.size());
 		for (String file : files) {
 			Map<Object, Object> paperInfoMap = readXml(file);
 			// 查询课程
-			Course course = courseService.getCourse(7l, "00004");
+			Course course = courseService.getCourse(1407l, paperInfoMap.get("courseCode").toString());
 			// 初始化试卷
 			Paper paper = initPaper(paperInfoMap, course);
 			// 大题集合
@@ -84,6 +86,17 @@ public class CqdxService {
 			Map<Question, QuestionPkgPath> map2 = new HashMap<Question, QuestionPkgPath>();
 			// 定义小题集合
 			List<PaperDetailUnit> paperDetailUnits = initpaperDetailUnits(paper, paperDetails, map2, paperInfoMap, course);
+			/*List<PaperDetailUnit> paperDetailUnits = new ArrayList<PaperDetailUnit>();
+			try {
+				paperDetailUnits = initpaperDetailUnits(paper, paperDetails, map2, paperInfoMap, course);
+				if(paperDetailUnits == null){
+					System.out.println("有问题的xml:"+file);
+					continue;
+				}
+			} catch (Exception e) {
+				System.out.println("有问题的xml:"+file);
+				continue;
+			}*/
 			// 保存试题资源
 			quesPkgPathRepo.save(map2.values());
 			for (Map.Entry<Question, QuestionPkgPath> entry : map2.entrySet()) {
@@ -93,6 +106,8 @@ public class CqdxService {
 			paperRepo.save(paper);
 			paperDetailRepo.save(paperDetails);
 			paperDetailUnitRepo.save(paperDetailUnits);
+			System.out.println("第"+i+"个xml文件已经处理完,文件名为:"+file);
+			i++;
 		}
 		System.out.println("保存成功...");
 	}
@@ -336,6 +351,7 @@ public class CqdxService {
 			Map<Object, Object> paperInfoMap, Course course) throws Exception {
 		List<PaperDetailUnit> paperDetailUnits = new ArrayList<PaperDetailUnit>();
 		int detailCount = paperDetails.size();
+		int nm = 0;
 		for (int i = 0; i < detailCount; i++) {
 			PaperDetail detail = paperDetails.get(i);
 			QuestionsTemp detailTemp = (QuestionsTemp) paperInfoMap.get(String
@@ -358,13 +374,22 @@ public class CqdxService {
 				question.setPublicity(true);
 				question.setQuestionType(quesTemp.getType());
 				question.setQuesBody(imgList(quesTemp.getBody()));
-				question.setQuesBodyWord(DocxProcessUtil.html2Docx(wordMLPackage,CommonUtils.formatHtml(question.getQuesBody())));
+				try {
+					question.setQuesBodyWord(DocxProcessUtil.html2Docx(wordMLPackage,CommonUtils.formatHtml(question.getQuesBody())));
+				} catch (Exception e) {
+					System.out.println("错误题干信息:"+question.getQuesBody());
+				}
 				if(question.getQuestionType() == QuesStructType.BOOL_ANSWER_QUESTION){
 					question.setQuesAnswer(quesTemp.getAnswer());
 					question.setQuesAnswerWord(DocxProcessUtil.html2Docx(wordMLPackage,CommonUtils.formatHtml("<p>"+question.getQuesAnswer()+"</p>")));
 				}else {
 					question.setQuesAnswer(imgList(quesTemp.getAnswer()));
-					question.setQuesAnswerWord(DocxProcessUtil.html2Docx(wordMLPackage,CommonUtils.formatHtml(question.getQuesAnswer())));
+					try {
+						question.setQuesAnswerWord(DocxProcessUtil.html2Docx(wordMLPackage,CommonUtils.formatHtml(question.getQuesAnswer())));
+					} catch (Exception e) {
+						System.out.println("错误题干信息:"+question.getQuesAnswer());
+						return null;
+					}
 				}
 				// 存在选项
 				if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
@@ -376,7 +401,11 @@ public class CqdxService {
 						QuesOption quesOption = new QuesOption();
 						quesOption.setNumber(String.valueOf(k + 1));
 						quesOption.setOptionBody(imgList((String) optionMap.get(String.valueOf(k + 1))));
-						quesOption.setOptionBodyWord(DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(quesOption.getOptionBody())));
+						try {
+							quesOption.setOptionBodyWord(DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(quesOption.getOptionBody())));
+						} catch (Exception e) {
+							System.out.println("错误的选项:"+quesOption.getOptionBody());
+						}
 						if (question.getQuesAnswer().contains(String.valueOf(k+1))) {
 							quesOption.setIsCorrect((short) 1);
 						} else {
@@ -466,7 +495,7 @@ public class CqdxService {
 				// 包装小题
 				PaperDetailUnit paperDetailUnit = new PaperDetailUnit();
 				paperDetailUnit.setPaper(paper);
-				paperDetailUnit.setNumber(j + 1);
+				paperDetailUnit.setNumber(nm + 1);
 				paperDetailUnit.setScore(question.getScore());
 				paperDetailUnit.setPaperDetail(detail);
 				paperDetailUnit.setQuestionType(question.getQuestionType());
@@ -474,6 +503,7 @@ public class CqdxService {
 				paperDetailUnit.setCreateTime(CommonUtils.getCurDateTime());
 				paperDetailUnit.setQuestion(question);
 				paperDetailUnits.add(paperDetailUnit);
+				nm++;
 			}
 		}
 		return paperDetailUnits;
@@ -483,17 +513,18 @@ public class CqdxService {
 		if (StringUtils.isBlank(str)) {
 			str = "<p></p>";
 		}
-		str = str.trim().replace("<br>", "");
-		if (!str.contains("<p>") && !str.contains("<P>")) {
+		str = str.trim().replace("<br>", "").replace("</br>", "");
+		if (!str.contains("<p>") && !str.contains("</P>")) {
 			str = "<p>" + str + "</p>";
 		}
 		//先处理span标签
 		List<String> spans = parseSpans(str);
 		if(spans != null && spans.size() > 0){
 			for(String span:spans){
-				str = str.replace(span, "").replace("</span>", "");
+				str = str.replace(span, "").replace("</span>", "").replace("</SPAN>", "");
 			}
 		}
+		str = str.replace("<o:p>", "").replace("</o:p>", "").replace("border=0", "").replace("class=MsoNormal", "").replace("&phiv;", "").replace("</SPAN>", "");
 		// 获取img标签
 		List<String> srcList = ImgDataUtils.parseImages(str);
 		if (srcList != null && srcList.size() > 0) {
@@ -504,7 +535,7 @@ public class CqdxService {
 				List<String> parseImageSrc = ImgDataUtils.parseImageSrc(img);
 				if (parseImageSrc != null && parseImageSrc.size() > 0) {
 					String src = parseImageSrc.get(0).replace("{ResourcePath}",
-							"http://file.5any.com/estudy");
+							"http://file.5any.com/UniversityV4.0");
 					String url = regexCH(src);
 					String base64 = ImgDataUtils.loadImageToBase64(url);
 					if (base64 == null) {

+ 4 - 2
examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/Application.java

@@ -100,6 +100,7 @@ public class Application {
 			e.printStackTrace();
 		}
 		**/
+		
 		/** 用来导出给定课程关联中的主观题信息的Excel
 		DdExcelService ddExcelService = SpringContextHolder.getBean(DdExcelService.class);
 		List<String> codes = new ArrayList<String>();
@@ -114,14 +115,15 @@ public class Application {
 			e.printStackTrace();
 		}
 		**/
-		/** 重庆大学xml转paper对象入库
+		
+		/** 重庆大学xml转paper对象入库*/
 			CqdxService cqdxService = SpringContextHolder.getBean(CqdxService.class);
 		try {
 			cqdxService.bulidPaper();
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-		**/
+		
 	}
 	
 	@Bean