소스 검색

update BigDecimal & equals

deason 5 년 전
부모
커밋
6b1875c034
13개의 변경된 파일171개의 추가작업 그리고 121개의 파일을 삭제
  1. 4 3
      examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/converter/model/QuesStructType.java
  2. 1 1
      examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/question/enums/QuesStructType.java
  3. 4 1
      examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/word/DocxProcessUtil.java
  4. 2 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java
  5. 17 15
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java
  6. 11 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java
  7. 28 36
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SydxExportPaperService.java
  8. 28 44
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/GenPaperService.java
  9. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java
  10. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperProviderServiceImpl.java
  11. 5 5
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java
  12. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/CqdxService.java
  13. 64 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/DdCollegeUtilService.java

+ 4 - 3
examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/converter/model/QuesStructType.java

@@ -35,7 +35,7 @@ public enum QuesStructType {
             return null;
         }
         for (QuesStructType type : QuesStructType.values()) {
-            if (type.getId() == id) {
+            if (id.equals(type.getId())) {
                 return type;
             }
         }
@@ -65,7 +65,7 @@ public enum QuesStructType {
             return false;
         }
         for (QuesStructType type : QuesStructType.values()) {
-            if (type.getId() == id) {
+            if (id.equals(type.getId())) {
                 return type.objective;
             }
         }
@@ -94,8 +94,9 @@ public enum QuesStructType {
         if (id == null) {
             return false;
         }
+
         for (QuesStructType type : QuesStructType.values()) {
-            if (type.getId() == id) {
+            if (id.equals(type.getId())) {
                 return type.combine;
             }
         }

+ 1 - 1
examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/question/enums/QuesStructType.java

@@ -48,7 +48,7 @@ public enum QuesStructType {
      */
     public static QuesStructType getQuesStructTypeById(Long id) {
         for (QuesStructType type : QuesStructType.values()) {
-            if (type.getId() == id) {
+            if (id.equals(type.getId())) {
                 return type;
             }
         }

+ 4 - 1
examcloud-core-questions-base/src/main/java/cn/com/qmth/examcloud/core/questions/base/word/DocxProcessUtil.java

@@ -204,7 +204,10 @@ public final class DocxProcessUtil {
     public static void initTmpPackage(WordprocessingMLPackage wordMLPackage) throws Exception {
         // 移除所有段落
         List<Object> contentList = wordMLPackage.getMainDocumentPart().getContent();
-        contentList.removeAll(contentList);
+        if (contentList == null) {
+            return;
+        }
+        contentList.clear();
     }
 
     /**

+ 2 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java

@@ -1320,7 +1320,8 @@ public class ImportPaperService {
                 sum = subQuestion.getDifficultyDegree() * subQuestion.getScore() + sum;
                 totalDouble = subQuestion.getScore() + totalDouble;
             }
-            BigDecimal b = new BigDecimal(sum / totalDouble);
+
+            BigDecimal b = BigDecimal.valueOf(sum / totalDouble);
             Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             //给属性去重
             Set<QuesProperty> ts = new HashSet<QuesProperty>();

+ 17 - 15
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java

@@ -1,34 +1,35 @@
 package cn.com.qmth.examcloud.core.questions.service;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.core.basic.api.CourseCloudService;
 import cn.com.qmth.examcloud.core.basic.api.request.GetCourseReq;
 import cn.com.qmth.examcloud.core.basic.api.response.GetCourseResp;
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.Model;
+import cn.com.qmth.examcloud.core.questions.base.enums.PaperStructType;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.core.questions.dao.PaperStructRepo;
 import cn.com.qmth.examcloud.core.questions.dao.QuesTypeNameRepo;
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.CoursePropertyNumberDto;
+import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PaperDetailUnitStructDto;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.QuesNameDto;
-import cn.com.qmth.examcloud.core.questions.dao.entity.*;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.*;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.core.questions.dao.PaperStructRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PaperDetailUnitStructDto;
-import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
-import cn.com.qmth.examcloud.core.questions.base.enums.PaperStructType;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * Created by songyue on 16/12/28.
@@ -367,8 +368,9 @@ public class PaperStructService {
                 difficultyCount = paperDetailStruct.getPublicDifficultyCount() + paperDetailStruct.getNoPublicDifficultyCount();
                 sum = simpleCount * paperDetailStruct.getScore() * 0.8 + mediumCount * paperDetailStruct.getScore() * 0.5 + difficultyCount * paperDetailStruct.getScore() * 0.2 + sum;
             }
+
             Double dif = sum / totalScore;
-            BigDecimal b = new BigDecimal(dif);
+            BigDecimal b = BigDecimal.valueOf(dif);
             Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             return difficulty;
         }

+ 11 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java

@@ -1168,9 +1168,10 @@ public abstract class ExportPaperAbstractService {
          * 该大题中,如果有套题,要将该套题下的小题拆出来,添加到大题中,并删除原套题
          */
         for (PaperDetailExp paperDetailExp : objectiveDetails) {
-            if (paperDetailExp.getSortNumber() == quesStructType.getId()) {
+            if (paperDetailExp.getSortNumber().equals(quesStructType.getId())) {
                 PaperDetailExp newPaperDetailExp = new PaperDetailExp();
-                List<PaperDetailUnitExp> newPaperDetailUnits = new ArrayList<PaperDetailUnitExp>();
+                List<PaperDetailUnitExp> newPaperDetailUnits = new ArrayList<>();
+
                 //得到大题下的所有小题
                 List<PaperDetailUnitExp> paperDetailUnits = paperDetailExp.getPaperDetailUnits();
                 for (PaperDetailUnitExp paperDetailUnitExp : paperDetailUnits) {
@@ -1199,8 +1200,10 @@ public abstract class ExportPaperAbstractService {
         //刷一遍number
         int num = 0;
         for (int i = 0; i < paperDetailExps.size(); i++) {
-            if (paperDetailExps.get(i).getSortNumber() == quesStructType.getId()) {
-                List<PaperDetailUnitExp> exps = paperDetailExps.get(i).getPaperDetailUnits();
+            PaperDetailExp detailExp = paperDetailExps.get(i);
+
+            if (detailExp.getSortNumber().equals(quesStructType.getId())) {
+                List<PaperDetailUnitExp> exps = detailExp.getPaperDetailUnits();
                 for (int j = 0; j < exps.size(); j++) {
                     num++;
                     exps.get(j).setNumber(num);
@@ -1211,7 +1214,7 @@ public abstract class ExportPaperAbstractService {
         //计算差额、补齐试题
         int quantity = getQuantity(questionTypeNums, quesStructType) - currentSize;
         PaperDetailExp paperDetailExp = new PaperDetailExp();
-        List<PaperDetailUnitExp> paperDetailUnits = new ArrayList<PaperDetailUnitExp>();
+        List<PaperDetailUnitExp> paperDetailUnits = new ArrayList<>();
         for (int i = 0; i < quantity; i++) {
             int number = currentSize + (i + 1);
             paperDetailUnits.add(new PaperDetailUnitExp(quesStructType, number));
@@ -1281,12 +1284,13 @@ public abstract class ExportPaperAbstractService {
     protected void checkObjectiveDetailsNum(PaperExp paperExp, List<QuestionTypeNum> questionTypeNums) {
         List<PaperDetailExp> objectiveDetails = getAllObjectiveDetails(paperExp);
         for (QuestionTypeNum typeNum : questionTypeNums) {
-            List<PaperDetailUnitExp> paperDetailUnits = new ArrayList<PaperDetailUnitExp>();
+            List<PaperDetailUnitExp> paperDetailUnits = new ArrayList<>();
             for (PaperDetailExp paperDetailExp : objectiveDetails) {
-                if (paperDetailExp.getSortNumber() == typeNum.getQuestionType().getId()) {
+                if (paperDetailExp.getSortNumber().equals(typeNum.getQuestionType().getId())) {
                     paperDetailUnits.addAll(paperDetailExp.getPaperDetailUnits());
                 }
             }
+
             int currentSize = 0;
             for (PaperDetailUnitExp paperDetailUnitExp : paperDetailUnits) {
                 if (paperDetailUnitExp.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {

+ 28 - 36
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SydxExportPaperService.java

@@ -1,11 +1,26 @@
 package cn.com.qmth.examcloud.core.questions.service.export;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.Model;
+import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
+import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
+import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
+import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
+import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
+import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
+import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
+import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
+import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
+import cn.com.qmth.examcloud.core.questions.service.PaperService;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import com.google.gson.Gson;
 import org.apache.commons.lang3.StringUtils;
 import org.docx4j.XmlUtils;
 import org.docx4j.jaxb.Context;
@@ -17,36 +32,10 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
-
-import com.google.gson.Gson;
-
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
-import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
-import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
-import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
-import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuesOption;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
-import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
-import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
-import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
-import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
-import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * @author chenken
@@ -198,8 +187,10 @@ public class SydxExportPaperService extends ExportPaperAbstractService {
                 break;
             }
             P p = (P) pObj;
+
             List<Object> pContent = p.getContent();
-            pContent.removeAll(pContent);
+            pContent.clear();
+
             R run = new R();
             Text text = new Text();
             text.setValue("[答案]:" + answer);
@@ -207,6 +198,7 @@ public class SydxExportPaperService extends ExportPaperAbstractService {
             pContent.add(0, run);
             index++;
         }
+
         StringBuffer pWordMl = new StringBuffer();
         for (Object pObj : pList) {
             if (pObj instanceof P) {

+ 28 - 44
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/GenPaperService.java

@@ -1,47 +1,31 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.Model;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperStructType;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
-import cn.com.qmth.examcloud.core.questions.service.bean.context.DetailContext;
-import cn.com.qmth.examcloud.core.questions.service.bean.context.PaperContext;
-import cn.com.qmth.examcloud.core.questions.service.bean.context.UnitContext;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.GenPaperDto;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.NumberDto;
+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.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperStructRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStruct;
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuesProperty;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
-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.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import cn.com.qmth.examcloud.core.questions.service.bean.context.DetailContext;
+import cn.com.qmth.examcloud.core.questions.service.bean.context.PaperContext;
+import cn.com.qmth.examcloud.core.questions.service.bean.context.UnitContext;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.GenPaperDto;
+import cn.com.qmth.examcloud.core.questions.service.bean.dto.NumberDto;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 public class GenPaperService {
@@ -233,8 +217,8 @@ public class GenPaperService {
      * 按分数在选定的试卷中随机抽取题,组成一套新的试卷
      *
      * @param genPaperDto
-     * @author weiwenhai
      * @return Map<String, Object>
+     * @author weiwenhai
      */
     public Map<String, Object> genPaperByScore(GenPaperDto genPaperDto, User user) {
         Map<String, Object> paperMsgMap = extractByQuestioScore(genPaperDto, user);
@@ -398,8 +382,8 @@ public class GenPaperService {
      * 按每套试卷需要抽取的题目数量随机抽取题,组成一套新的试卷
      *
      * @param genPaperDto
-     * @author weiwenhai
      * @return Map<String, Object>
+     * @author weiwenhai
      */
     public Map<String, Object> genPaperByQuestionNum(GenPaperDto genPaperDto, User user) {
         Map<String, Object> paperMsgMap = extractByQuestionNum(genPaperDto, user);
@@ -676,7 +660,7 @@ public class GenPaperService {
         if (paper.getTotalScore() < 0.1) {
             paper.setDifficultyDegree(0d);
         } else {
-            BigDecimal b = new BigDecimal(sum / paper.getTotalScore());
+            BigDecimal b = BigDecimal.valueOf(sum / paper.getTotalScore());
             Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             //赋值难度
             paper.setDifficultyDegree(difficulty);
@@ -717,10 +701,10 @@ public class GenPaperService {
     //构建新的大题
     private List<PaperDetail> buildPaperDetail(Map<String, List<PaperDetailUnit>> map, GenPaperDto genPaperDto) {
         //定义新的大题集合
-        List<PaperDetail> paperDetails = new ArrayList<PaperDetail>();
+        List<PaperDetail> paperDetails = new ArrayList<>();
         for (String name : map.keySet()) {
             Double score = 0d;
-            BigDecimal b1 = new BigDecimal(Double.toString(score));
+            BigDecimal b1 = BigDecimal.valueOf(score);
             PaperDetail paperDetail = new PaperDetail();
             paperDetail.setName(name);
             paperDetail.setCreateTime(CommonUtils.getCurDateTime());
@@ -731,7 +715,7 @@ public class GenPaperService {
                 if (unit.getScore() == null) {
                     unit.setScore(0d);
                 }
-                BigDecimal b2 = new BigDecimal(Double.toString(unit.getScore()));
+                BigDecimal b2 = BigDecimal.valueOf(unit.getScore());
                 b1 = b1.add(b2);
             }
             paperDetail.setScore(b1.doubleValue());
@@ -786,9 +770,9 @@ public class GenPaperService {
         Paper paper = new Paper();
         if (details != null && details.size() > 0) {
             Double score = 0d;
-            BigDecimal b1 = new BigDecimal(Double.toString(score));
+            BigDecimal b1 = BigDecimal.valueOf(score);
             for (PaperDetail pd : details) {
-                BigDecimal b2 = new BigDecimal(Double.toString(pd.getScore() == null ? 0 : pd.getScore()));
+                BigDecimal b2 = BigDecimal.valueOf(pd.getScore() == null ? 0d : pd.getScore());
                 b1 = b1.add(b2);
             }
             paper.setId(UUID.randomUUID().toString());
@@ -855,8 +839,8 @@ public class GenPaperService {
                                 //向下取整,包含0.5
                                 double formatScore = CommonUtils.formatDoubleFloor(avgScore);
                                 if (j == subQuesLen - 1) {
-                                    BigDecimal b1 = new BigDecimal(Double.toString(subTotalScore));
-                                    BigDecimal b2 = new BigDecimal(Double.toString(formatScore * j));
+                                    BigDecimal b1 = BigDecimal.valueOf(subTotalScore);
+                                    BigDecimal b2 = BigDecimal.valueOf(formatScore * j);
                                     subScoreList.add(b1.subtract(b2).doubleValue());
                                 } else {
                                     subScoreList.add(formatScore);

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java

@@ -127,9 +127,9 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService {
 
                         BigDecimal b;
                         if (totalDou != 0d) {
-                            b = new BigDecimal(totalSum / totalDou);
+                            b = BigDecimal.valueOf(totalSum / totalDou);
                         } else {
-                            b = new BigDecimal(0d);
+                            b = BigDecimal.valueOf(0d);
                         }
 
                         Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperProviderServiceImpl.java

@@ -162,9 +162,9 @@ public class PaperProviderServiceImpl implements PaperProviderService {
 
         BigDecimal b;
         if (score != 0d) {
-            b = new BigDecimal(sum / score);
+            b = BigDecimal.valueOf(sum / score);
         } else {
-            b = new BigDecimal(0d);
+            b = BigDecimal.valueOf(0d);
         }
 
         Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

+ 5 - 5
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java

@@ -691,9 +691,9 @@ public class PaperServiceImpl implements PaperService {
 
                             BigDecimal b;
                             if (totalDou != 0d) {
-                                b = new BigDecimal(totalSum / totalDou);
+                                b = BigDecimal.valueOf(totalSum / totalDou);
                             } else {
-                                b = new BigDecimal(0d);
+                                b = BigDecimal.valueOf(0d);
                             }
 
                             Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
@@ -714,7 +714,7 @@ public class PaperServiceImpl implements PaperService {
             if (paperTotalScore < 0.1) {
                 return 0.0;
             }
-            BigDecimal b = new BigDecimal(sum / paperTotalScore);
+            BigDecimal b = BigDecimal.valueOf(sum / paperTotalScore);
             Double difficulty = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             return difficulty;
         }
@@ -1785,7 +1785,7 @@ public class PaperServiceImpl implements PaperService {
         List<PaperDetailUnit> units = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
         if (units != null && units.size() > 0) {
             double total = 0;
-            BigDecimal b1 = new BigDecimal(Double.toString(total));
+            BigDecimal b1 = BigDecimal.valueOf(total);
             for (PaperDetailUnit unit : units) {
                 if (unit.getQuestion().getPublicity() == null) {
                     unit.getQuestion().setPublicity(true);
@@ -1795,7 +1795,7 @@ public class PaperServiceImpl implements PaperService {
                 }
                 String factType = unit.getQuestion().getPublicity() + "-" + unit.getQuestion().getDifficulty();
                 if (needType.equals(factType)) {
-                    BigDecimal b2 = new BigDecimal(Double.toString(unit.getScore()));
+                    BigDecimal b2 = BigDecimal.valueOf(unit.getScore());
                     b1 = b1.add(b2);
                 }
             }

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

@@ -439,10 +439,10 @@ public class CqdxService {
                 }
                 // 存在子题
                 if (question.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
-                    List<Question> subQuestions = new ArrayList<Question>();
+                    List<Question> subQuestions = new ArrayList<>();
                     int subQuesCount = quesTemp.getSubQues().size();
-                    BigDecimal totalScore = new BigDecimal(question.getScore());
-                    BigDecimal sum = new BigDecimal(subQuesCount);
+                    BigDecimal totalScore = BigDecimal.valueOf(question.getScore());
+                    BigDecimal sum = BigDecimal.valueOf(subQuesCount);
                     double score = totalScore.divide(sum).doubleValue();
                     for (int s = 0; s < subQuesCount; s++) {
                         QuestionsTemp subQuesTmp = (QuestionsTemp) quesTemp.getSubQues().get(String.valueOf(s + 1));

+ 64 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/DdCollegeUtilService.java

@@ -121,6 +121,69 @@ import cn.com.qmth.examcloud.core.questions.service.temp.vo.TestQuestionInfo;
  * @param str
  * @return
  * @throws UnsupportedEncodingException
+ * <p>
+ * 根据课程代码查询所有试卷
+ * @param codeName
+ * @return
+ * @throws UnsupportedEncodingException
+ * <p>
+ * 根据考试id查询所有试题
+ * @param testPaperContentId
+ * @return 根据父ID查询子题
+ * @param parentId
+ * @return 初始化试卷对象
+ * @param paper
+ * @param paperName
+ * @param user
+ * <p>
+ * 初始化大题对象
+ * @param testQuestion
+ * @return 初始化试题对象
+ * @param testQuestionInfo
+ * @param testQuestion
+ * @param course
+ * @param map
+ * @return
+ * @throws Exception
+ * <p>
+ * 初始化题干,答案,选项,资源
+ * @param question
+ * @param testQuestionInfo
+ * @param map
+ * @throws Exception
+ * <p>
+ * 初始化选项
+ * @param testOption
+ * @param number
+ * @param isCorrect
+ * @param wordMLPackage
+ * @return
+ * @throws Exception
+ * <p>
+ * 完形填空初始化所有子题
+ * @param blanks
+ * @param wordMLPackage
+ * @return
+ * @throws Exception
+ * <p>
+ * 初始化小题对象
+ * @param question
+ * @return 将大题和小题分类
+ * @param questions
+ * @return 去除图片中有下划线的图片,并补全图片下载地址
+ * @param str
+ * @return
+ * @throws Exception
+ * <p>
+ * 去除<span>标签中lang=EN-US
+ * @param str
+ * @return 替换img标签,补全图片
+ * @param imgList
+ * @param str
+ * @return 將url路徑中的中文转码
+ * @param str
+ * @return
+ * @throws UnsupportedEncodingException
  *//*
 @Service("ddCollegeUtilService")
 public class DdCollegeUtilService {
@@ -211,7 +274,7 @@ public class DdCollegeUtilService {
 						entry.getKey().setQuesPkgPathId(entry.getValue().getId());
 					}
 					//计算试卷难度
-					BigDecimal b = new BigDecimal(difficulty / paper.getTotalScore());
+					BigDecimal b = BigDecimal.valueOf(difficulty / paper.getTotalScore());
 					Double difficultyDegree = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
 					paper.setDifficultyDegree(0.5);
 					//重新计算试题序号