Browse Source

修改组卷后手工选题的查询过滤bug

luoshi@qmth.com.cn 8 năm trước cách đây
mục cha
commit
78c205cc95

+ 32 - 44
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -1,21 +1,6 @@
 package com.qmth.cqb.paper.service;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Example;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.stereotype.Service;
-
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import com.google.gson.Gson;
 import com.qmth.cqb.paper.dao.ExamPaperRepo;
 import com.qmth.cqb.paper.dao.PaperDetailRepo;
@@ -24,11 +9,7 @@ import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.dto.PaperDetailExp;
 import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
 import com.qmth.cqb.paper.dto.PaperExp;
-import com.qmth.cqb.paper.model.ExamPaper;
-import com.qmth.cqb.paper.model.Paper;
-import com.qmth.cqb.paper.model.PaperDetail;
-import com.qmth.cqb.paper.model.PaperDetailUnit;
-import com.qmth.cqb.paper.model.PaperSearchInfo;
+import com.qmth.cqb.paper.model.*;
 import com.qmth.cqb.question.dao.QuesBakRepo;
 import com.qmth.cqb.question.dao.QuesRepo;
 import com.qmth.cqb.question.model.Question;
@@ -39,8 +20,14 @@ import com.qmth.cqb.utils.BeanCopierUtil;
 import com.qmth.cqb.utils.CommonUtils;
 import com.qmth.cqb.utils.enums.PaperStatus;
 import com.qmth.cqb.utils.enums.PaperType;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import java.util.*;
 
 /**
  * Created by songyue on 16/12/28.
@@ -80,7 +67,7 @@ public class PaperService {
 
     /**
      * 查询所有已导入试卷
-     * 
+     *
      * @param paperSearchInfo
      * @param curPage
      * @param pageSize
@@ -95,7 +82,7 @@ public class PaperService {
 
     /**
      * 保存试卷
-     * 
+     *
      * @param paperExp
      * @return
      */
@@ -107,7 +94,7 @@ public class PaperService {
 
     /**
      * 查询所有已组试卷
-     * 
+     *
      * @param paperSearchInfo
      * @param curPage
      * @param pageSize
@@ -122,7 +109,7 @@ public class PaperService {
 
     /**
      * 查询考试试卷
-     * 
+     *
      * @param id
      * @param courseCode
      * @param groupCode
@@ -145,7 +132,7 @@ public class PaperService {
 
     /**
      * 设置考试试卷
-     * 
+     *
      * @param examId
      * @param courseCode
      * @param groupCode
@@ -192,7 +179,7 @@ public class PaperService {
 
     /**
      * 根据试卷ID获取试卷下面的大题
-     * 
+     *
      * @param id
      * @return
      */
@@ -202,7 +189,7 @@ public class PaperService {
 
     /**
      * 批量删除试卷
-     * 
+     *
      * @param paperIds
      */
     public void deletePapers(List<String> paperIds) {
@@ -213,7 +200,7 @@ public class PaperService {
 
     /**
      * 批量通过试卷
-     * 
+     *
      * @param paperIds
      */
     public void passPapers(List<String> paperIds) {
@@ -226,7 +213,7 @@ public class PaperService {
 
     /**
      * 批量不通过试卷
-     * 
+     *
      * @param paperIds
      */
     public void noPassPapers(List<String> paperIds) {
@@ -239,7 +226,7 @@ public class PaperService {
 
     /**
      * 批量待审核试卷
-     * 
+     *
      * @param paperIds
      */
     public void backPapers(List<String> paperIds) {
@@ -252,7 +239,7 @@ public class PaperService {
 
     /**
      * 初始化导出试卷DTO
-     * 
+     *
      * @param id
      * @return
      */
@@ -271,8 +258,8 @@ public class PaperService {
         for (int i = 0; i < paperDetailExps.size(); i++) {
             List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
             if (paperDetailUnits != null && paperDetailUnits.size() > 0) {
-                List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
-                        PaperDetailUnitExp.class);
+                List<PaperDetailUnitExp> paperDetailUnitExps = BeanCopierUtil
+                        .copyPropertiesOfList(paperDetailUnits, PaperDetailUnitExp.class);
                 paperDetailExps.get(i).setPaperDetailUnits(paperDetailUnitExps);
             } else {
                 paperDetailExps.get(i).setUnitCount(0);
@@ -287,7 +274,7 @@ public class PaperService {
 
     /**
      * 初始化试卷内容(增加序号)
-     * 
+     *
      * @param paperExp
      */
     public void initPaper(PaperExp paperExp) {
@@ -327,7 +314,7 @@ public class PaperService {
 
     /**
      * 格式化查询条件
-     * 
+     *
      * @param paperSearchInfo
      */
     public void formatPaperSearchInfo(PaperSearchInfo paperSearchInfo) {
@@ -347,7 +334,7 @@ public class PaperService {
 
     /**
      * 填充大题小题数量与分数
-     * 
+     *
      * @param paper
      */
     public void formatPaper(Paper paper) {
@@ -398,7 +385,7 @@ public class PaperService {
 
     /**
      * 先备份准备删掉的试题,然后再删掉
-     * 
+     *
      * @param questionId
      * @return
      */
@@ -432,7 +419,7 @@ public class PaperService {
 
     /**
      * 向试卷中插入一个试题
-     * 
+     *
      * @param paperId
      * @param paperDetailId
      * @return
@@ -460,7 +447,7 @@ public class PaperService {
 
     /**
      * 获取试题所的试卷名称
-     * 
+     *
      * @param questionId
      * @return
      */
@@ -475,7 +462,7 @@ public class PaperService {
     }
 
     public Page<Question> listQuestionforSelect(String paperId, int curPage, int pageSize, QuesStructType quesType) {
-        List<Question> questions = new ArrayList<Question>();
+        Set<String> paperQuestions = new HashSet<>();
         Paper paper = paperRepo.findOne(paperId);
         QuestionSearchCondition ques = new QuestionSearchCondition();
         if (quesType != null) {
@@ -486,12 +473,13 @@ public class PaperService {
         // ques.setQuesParams(quesParams);
         List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaper(paper);
         for (PaperDetailUnit pdu : pdus) {
-            questions.add(pdu.getQuestion());
+            //questions.add(pdu.getQuestion());
+            paperQuestions.add(pdu.getQuestion().getId());
         }
         Page<Question> allQuestions = quesService.findAll(ques, curPage, pageSize);
         Iterator<Question> que = allQuestions.iterator();
         while (que.hasNext()) {
-            if (questions.contains(que.next())) {
+            if (paperQuestions.contains(que.next().getId())) {
                 que.remove();
             }
         }