瀏覽代碼

后端提交。

weiwenhai 6 年之前
父節點
當前提交
34bef6833c

+ 11 - 0
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/QuestionSearchCondition.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.questions.dao.entity;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
@@ -35,6 +36,8 @@ public class QuestionSearchCondition {
     private String secondPropertyId;//二级属性
     
     private String difficulty;// 难度
+    
+    private String quesNames;//来源大题
 
     public String getId() {
         return id;
@@ -155,4 +158,12 @@ public class QuestionSearchCondition {
 		this.publicity = publicity;
 	}
 
+	public String getQuesNames() {
+		return quesNames;
+	}
+
+	public void setQuesNames(String quesNames) {
+		this.quesNames = quesNames;
+	}
+
 }

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

@@ -33,7 +33,7 @@ public class HzkjExportPaperService extends ExportPaperAbstractService {
 		PaperExp paperExp = initPaperExp(paperId);
 		setExpDtoTitle(paperExp.getPaperDetails());
 		if(paperExp!=null){
-			String paperfileName = paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
+			String paperfileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.PAPER.getName()+DOCX_SUFFIX;
 			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+paperfileName);
 			DocxProcessUtil.exportWordNew(paperExp, file,HZKJ_TEMPLATE_PAPER);
 			DocxProcessUtil.processImage(zipFileName+File.separator+paperfileName,getPkgList(paperId));
@@ -44,7 +44,7 @@ public class HzkjExportPaperService extends ExportPaperAbstractService {
 	public void downloadPaperAnswer(String paperId, String zipFileName)throws Exception {
 		PaperExp paperExp = initPaperExp(paperId);
 		if(paperExp!=null){
-			String answerFileName = paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
+			String answerFileName = paperExp.getName()+"_"+paperExp.getCourseNo()+"_"+ExamFileType.ANSWER.getName()+DOCX_SUFFIX;
 			File file = new File(TEMP_FILE_EXP+File.separator+zipFileName+File.separator+answerFileName);
 			DocxProcessUtil.exportWordNew(paperExp,file,HZKJ_TEMPLATE_ANSWER);
 			DocxProcessUtil.processImage(zipFileName+File.separator+answerFileName,getPkgList(paperId));

+ 25 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuesServiceImpl.java

@@ -12,6 +12,7 @@ import cn.com.qmth.examcloud.core.questions.dao.QuesPkgPathRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 
 import org.apache.commons.lang3.StringUtils;
+import org.bson.types.ObjectId;
 import org.docx4j.XmlUtils;
 import org.docx4j.dml.CTPositiveSize2D;
 import org.docx4j.dml.wordprocessingDrawing.Inline;
@@ -35,6 +36,7 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
+import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
@@ -607,7 +609,29 @@ public class QuesServiceImpl implements QuesService{
             	query.addCriteria(Criteria.where("quesProperties").elemMatch(Criteria.where("firstProperty.id").is(Long.valueOf(searchCondition.getFirstPropertyId()))));
             }
         }
-        long count = this.mongoTemplate.count(query, Question.class);
+        long count = 0;
+        List<Question> questionList = this.mongoTemplate.find(query,Question.class);
+        if(questionList == null || questionList.size()<1){
+        	return count;
+        }
+        List<String> oIds = new ArrayList<String>();
+    	for (Question unit : questionList) {
+    		oIds.add(unit.getId());
+    	}
+    	List<ObjectId> objectIds = new ArrayList<ObjectId>();
+		for(String id:oIds){
+			objectIds.add(new ObjectId(id));
+		}
+		Query query2=new Query();
+		query2.addCriteria(Criteria.where("question.$id").in(objectIds));
+		query2.addCriteria(Criteria.where("paperType").is(PaperType.IMPORT));
+		List<PaperDetailUnit> paperDetailUnits = this.mongoTemplate.find(query2, PaperDetailUnit.class);
+		for(PaperDetailUnit unit:paperDetailUnits){
+			String quesNames = searchCondition.getQuesNames();
+			if(quesNames.contains(unit.getPaperDetail().getName())){
+				count++;
+			}
+		}
 		return count;
 	}