Ver Fonte

fix bug

宋悦 há 7 anos atrás
pai
commit
9d9399f599

+ 20 - 2
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -13,6 +13,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
 
+import org.apache.commons.lang3.StringUtils;
 import org.dom4j.Attribute;
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
@@ -30,7 +31,7 @@ public final class CommonUtils {
 
     private static final String[] CN_SMALL_NUM = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
 
-    private static final String[] CN_BIG_NUM = { "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千" };
+    private static final String[] CN_BIG_NUM = { "十", "百", "千", "万", "十", "百", "千", "亿", "十亿", "百亿", "千亿" };
 
     public static final String PAPER_TITLE="中国石油大学";
     public static final String PAPER_SUB_TITLE="网络教育";
@@ -145,6 +146,21 @@ public final class CommonUtils {
                 resultNum += CN_SMALL_NUM[tmpNum];
             }
         }
+        if(resultNum.contains("零")){
+            resultNum = resultNum.replaceAll("零{1,}","零");
+        }
+        if(resultNum.endsWith("零")){
+            resultNum = resultNum.substring(0,resultNum.length()-1);
+        }
+        if(resultNum.startsWith("一十")){
+            resultNum = resultNum.replaceFirst("一十","十");
+        }
+        while(StringUtils.countMatches(resultNum,"万") > 1){
+            resultNum = resultNum.replaceFirst("万","");
+        }
+        while(StringUtils.countMatches(resultNum,"亿") > 1){
+            resultNum = resultNum.replaceFirst("亿","");
+        }
         return resultNum;
 
     }
@@ -257,6 +273,8 @@ public final class CommonUtils {
     public static void main(String[] args) {
         // QuesStructType quesStructType = getEnum(QuesStructType.class,"单选");
         // System.out.println(quesStructType.getName());
-        System.out.println(characterToNumber("A"));
+        // System.out.println(characterToNumber("A"));
+        System.out.println(toCHNum(111111));
+
     }
 }

+ 27 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ImportPaperService.java

@@ -673,12 +673,15 @@ public class ImportPaperService {
                 if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
                         || question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
                 	//校验单选多选答案
-                	checkAnswer(question,pList.get(i).toString(),importPaperCheck,subQuesNum);
+                	checkSelectAnswer(question,pList.get(i).toString(),importPaperCheck,subQuesNum);
                     answerWordML.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
                     answerHTML.append(getContent(tmpText, ImportPaperMsg.answer_word));
                 }else if(question.getQuestionType() == QuesStructType.BOOL_ANSWER_QUESTION){
+                    //校验判断题答案
+                    String answerText = getContent(tmpText, ImportPaperMsg.answer_word);
+                    checkBoolAnswer(answerText,importPaperCheck,subQuesNum);
                 	answerWordML.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
-                    answerHTML.append(getContent(tmpText, ImportPaperMsg.answer_word));
+                    answerHTML.append(answerText);
                 }else{
                     answerWordML.append(DocxProcessUtil.formatPWordMl(tmpWordMl));
                     answerHTML.append(DocxProcessUtil.docx2Html(tmpWordMl, wordMLPackage));
@@ -1019,7 +1022,7 @@ public class ImportPaperService {
      * @param importPaperCheck
      * @throws PaperException 
      */
-    private void checkAnswer(Question question,String answerWord,ImportPaperCheck importPaperCheck,int subQuesNum) throws PaperException{
+    private void checkSelectAnswer(Question question, String answerWord, ImportPaperCheck importPaperCheck, int subQuesNum) throws PaperException{
     	if(!StringUtils.isBlank(answerWord)){
     		String[] pAnswerArray = answerWord.split(",");
     		List<QuesOption> options = question.getQuesOptions();
@@ -1046,6 +1049,27 @@ public class ImportPaperService {
         	}
     	}
     }
+
+    /**
+     * 校验判断题答案
+     * @param tmpText
+     * @param importPaperCheck
+     * @param subQuesNum
+     * @throws Exception
+     */
+    private void checkBoolAnswer(String tmpText,ImportPaperCheck importPaperCheck,int subQuesNum)throws Exception{
+        if(!StringUtils.isBlank(tmpText)){
+            tmpText = tmpText.trim();
+            if(tmpText.equals("正确") || tmpText.equals("错误")){
+                return;
+            }else{
+                importPaperCheck.setErrorInfo(getQuesNumInfo(importPaperCheck.quesName, subQuesNum)+
+                        "中,答案格式不正确,应为:正确或错误");
+                throw new PaperException(importPaperCheck.errorInfo);
+            }
+        }
+    }
+
     /**
      * 校验客观题答案完整性
      * 客观题答案要么全有,要么全没有

+ 7 - 15
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -788,12 +788,8 @@ public class PaperServiceImpl implements PaperService{
 
     public String checkPaperName(String paperName, String orgId) {
         String msg = null;
-        Paper paperTemp = new Paper();
-        paperTemp.setCreateTime(null);
-        paperTemp.setName(paperName.trim());
-        paperTemp.setOrgId(orgId);
-        Paper paper = paperRepo.findOne(Example.of(paperTemp));
-        if (paper != null) {
+        List<Paper> paperList= paperRepo.findByNameAndOrgId(paperName,orgId);
+        if (paperList != null && paperList.size() > 0) {
             msg = "试卷名称重复,请重新命名";
         }
         return msg;
@@ -801,12 +797,8 @@ public class PaperServiceImpl implements PaperService{
     }
 
     public void checkPaperNameNew(String paperName, String orgId)throws Exception{
-        Paper paperTemp = new Paper();
-        paperTemp.setCreateTime(null);
-        paperTemp.setName(paperName.trim());
-        paperTemp.setOrgId(orgId);
-        Paper paper = paperRepo.findOne(Example.of(paperTemp));
-        if (paper != null) {
+        List<Paper> paperList= paperRepo.findByNameAndOrgId(paperName,orgId);
+        if (paperList != null && paperList.size() > 0) {
             throw new PaperException("试卷名称重复,请重新命名");
         }
     }
@@ -1080,11 +1072,11 @@ public class PaperServiceImpl implements PaperService{
 			e.printStackTrace();
 		}
     }
-    
+
     /**
      * 音频文件插入到标签
-     * @param files
-     * @param paperId
+     * @param fileName
+     * @param questionId
      */
     public void appendAudioTag(String fileName,String questionId){
 		QuestionAudio questionAudio = questionAudioService.findByQuestionIdAndFileName(questionId,fileName);