Browse Source

BUG修改

gaoxing 8 years ago
parent
commit
fda049ddee

+ 26 - 25
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -316,25 +316,23 @@ public class PaperService {
             // 大题序号
             paperDetail.setCnNum(CommonUtils.toCHNum(paperDetail.getNumber()));
             paperDetail.setNumber(++mainNum);
-            if (paperDetail.getPaperDetailUnits() == null || paperDetail.getPaperDetailUnits().size() == 0) {
-                return;
-            }
             // 小题序号
-            for (PaperDetailUnitExp paperDetailUnit : paperDetail.getPaperDetailUnits()) {
-
-                quesService.formatQuesUnit(paperDetailUnit.getQuestion());
-
-                List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
-                // 套题序号
-                if (subQuesList != null && subQuesList.size() > 0) {
-                    for (Question subQues : subQuesList) {
-                        Map<String, String> params = new HashMap<String, String>();
-                        params.put("number", String.valueOf(++subNum));
-                        subQues.setQuesParams(params);
-                        quesService.formatQuesUnit(subQues);
+            if (paperDetail != null && paperDetail.getPaperDetailUnits() != null
+                    && paperDetail.getPaperDetailUnits().size() > 0) {
+                for (PaperDetailUnitExp paperDetailUnit : paperDetail.getPaperDetailUnits()) {
+                    quesService.formatQuesUnit(paperDetailUnit.getQuestion());
+                    List<Question> subQuesList = paperDetailUnit.getQuestion().getSubQuestions();
+                    // 套题序号
+                    if (subQuesList != null && subQuesList.size() > 0) {
+                        for (Question subQues : subQuesList) {
+                            Map<String, String> params = new HashMap<String, String>();
+                            params.put("number", String.valueOf(++subNum));
+                            subQues.setQuesParams(params);
+                            quesService.formatQuesUnit(subQues);
+                        }
+                    } else {
+                        paperDetailUnit.setNumber(++subNum);
                     }
-                } else {
-                    paperDetailUnit.setNumber(++subNum);
                 }
             }
         }
@@ -389,7 +387,7 @@ public class PaperService {
                     if (unit.getScore() != null) {
                         score += unit.getScore();
                     }
-                    if (unit.getQuestion().getSubQuestions() != null
+                    if (unit.getQuestion() != null && unit.getQuestion().getSubQuestions() != null
                             && unit.getQuestion().getSubQuestions().size() > 0) {
                         nestQusNum += unit.getQuestion().getSubQuestions().size() - 1;
                     }
@@ -426,15 +424,18 @@ public class PaperService {
         List<PaperDetailUnit> needPdus = new ArrayList<PaperDetailUnit>();// 需要删除的小题
         List<Paper> papers = new ArrayList<Paper>();
         for (PaperDetailUnit pdu : pdus) {
-            if (PaperType.GENERATE == pdu.getPaper().getPaperType()) {
-                paperNames.add(pdu.getPaper().getName());
-                needPdus.add(pdu);
-                if (!papers.contains(pdu.getPaper())) {
-                    papers.add(pdu.getPaper());
-                }
+            if (pdu.getPaper() != null) {
+                if (PaperType.GENERATE == pdu.getPaper().getPaperType()) {
+                    paperNames.add(pdu.getPaper().getName());
+                    needPdus.add(pdu);
+                    if (!papers.contains(pdu.getPaper())) {
+                        papers.add(pdu.getPaper());
+                    }
 
+                }
             }
         }
+
         if (paperNames.size() == 0) {// 此试题没有被组卷调用,则可以删除此试题
             paperDetailUnitRepo.delete(needPdus);
             quesBakRepo.save(BeanCopierUtil.copyProperties(ques, QuestionBak.class));
@@ -548,7 +549,7 @@ public class PaperService {
     public String checkPaperName(String paperName, String orgId) {
         String msg = null;
         Paper paperTemp = new Paper();
-        paperTemp.setName(paperName);
+        paperTemp.setName(paperName.trim());
         paperTemp.setOrgId(orgId);
         Paper paper = paperRepo.findOne(Example.of(paperTemp));
         if (paper != null) {

+ 14 - 11
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java

@@ -240,14 +240,16 @@ public class QuesService {
     }
 
     public void formatQuesUnit(Question question) {
-        question.setQuesBodyWord(null);
-        question.setQuesAnswerWord(null);
-        question.setQuesAnswerAnalysisWord(null);
-        question.setQuesPkg(new byte[0]);
-        if (question.getQuesOptions() != null && question.getQuesOptions().size() > 0) {
-            question.getQuesOptions().stream().forEach(quesOption -> {
-                quesOption.setOptionBodyWord(null);
-            });
+        if (question != null) {
+            question.setQuesBodyWord(null);
+            question.setQuesAnswerWord(null);
+            question.setQuesAnswerAnalysisWord(null);
+            question.setQuesPkg(new byte[0]);
+            if (question.getQuesOptions() != null && question.getQuesOptions().size() > 0) {
+                question.getQuesOptions().stream().forEach(quesOption -> {
+                    quesOption.setOptionBodyWord(null);
+                });
+            }
         }
     }
 
@@ -293,15 +295,16 @@ public class QuesService {
 
     /**
      * 获取试题有效文本
+     * 
      * @param question
      * @return
      */
-    public String getExtractText(Question question){
+    public String getExtractText(Question question) {
         StringBuilder quesText = new StringBuilder();
         quesText.append(DocxProcessUtil.getTextInHtml(question.getQuesBody()));
         List<QuesOption> quesOptionList = question.getQuesOptions();
-        if(quesOptionList!=null && quesOptionList.size() > 0){
-            for(QuesOption quesOption:quesOptionList){
+        if (quesOptionList != null && quesOptionList.size() > 0) {
+            for (QuesOption quesOption : quesOptionList) {
                 quesText.append(DocxProcessUtil.getTextInHtml(quesOption.getOptionBody()));
             }
         }