gaoxing 8 سال پیش
والد
کامیت
f2215ed699

+ 30 - 27
cqb-paper/src/main/java/com/qmth/cqb/paper/model/PaperDetailUnit.java

@@ -1,15 +1,17 @@
 package com.qmth.cqb.paper.model;
 
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-import com.qmth.cqb.question.model.Question;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.mongodb.core.mapping.DBRef;
-
 import java.io.Serializable;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import com.qmth.cqb.question.model.Question;
+
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+
 public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit> {
 
     private static final long serialVersionUID = -8854150484922002075L;
@@ -26,7 +28,7 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
 
     private Double score;// 小题分数
 
-    private List<Double> subScoreList;//对应套题的情况下,各子题的分数分布
+    private List<Double> subScoreList;// 对应套题的情况下,各子题的分数分布
 
     @DBRef
     private PaperDetail paperDetail;// 关联的大题
@@ -35,11 +37,10 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
 
     @DBRef
     private Question question;// 关联试题
-    
+
     /**
-     * 选择题下option的排序,按照number排序
-     * 一般:4,2,3,1
-     * 套题下的选择题:1,2,3,4;2,3,4,1;3,2,1,4  题与题之间按分号";"分隔
+     * 选择题下option的排序,按照number排序 一般:4,2,3,1 套题下的选择题:1,2,3,4;2,3,4,1;3,2,1,4
+     * 题与题之间按分号";"分隔
      */
     private String optionOrder;
 
@@ -77,20 +78,20 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
 
     public void setScore(Double score) {
         this.score = score;
-        //非套题或试题未设置时,不做额外处理
+        // 非套题或试题未设置时,不做额外处理
         if (questionType != QuesStructType.NESTED_ANSWER_QUESTION || question == null) {
             return;
         }
-        //当前分数设置为空时,同时设置子题分数为空
+        // 当前分数设置为空时,同时设置子题分数为空
         if (score == null) {
             subScoreList = null;
             return;
         }
-        //总分与子题分数之和相同,则不做额外处理
+        // 总分与子题分数之和相同,则不做额外处理
         if (subScoreList != null && subScoreList.size() > 0 && getSubScoreSum() == score) {
             return;
         }
-        //根据试题与总分设置情况重置子题分数
+        // 根据试题与总分设置情况重置子题分数
         if (question.getSubQuestions() != null) {
             initSubScoreList(score, question.getSubQuestions());
         }
@@ -118,20 +119,20 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
 
     public void setQuestion(Question question) {
         this.question = question;
-        //非套题或总分未设置时,不做额外处理
+        // 非套题或总分未设置时,不做额外处理
         if (questionType != QuesStructType.NESTED_ANSWER_QUESTION || score == null) {
             return;
         }
-        //当前试题或子题列表为空时,同时设置子题分数为空
+        // 当前试题或子题列表为空时,同时设置子题分数为空
         if (question == null || question.getSubQuestions() == null) {
             subScoreList = null;
             return;
         }
-        //当前试题子题数量与子题分数数量相同,不做额外处理
+        // 当前试题子题数量与子题分数数量相同,不做额外处理
         if (subScoreList != null && subScoreList.size() == question.getSubQuestions().size()) {
             return;
         }
-        //根据试题与总分设置情况重置子题分数
+        // 根据试题与总分设置情况重置子题分数
         initSubScoreList(score, question.getSubQuestions());
     }
 
@@ -155,19 +156,22 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
         return subScoreList;
     }
 
-	public String getOptionOrder() {
-		return optionOrder;
-	}
+    public String getOptionOrder() {
+        return optionOrder;
+    }
 
-	public void setOptionOrder(String optionOrder) {
-		this.optionOrder = optionOrder;
-	}
+    public void setOptionOrder(String optionOrder) {
+        this.optionOrder = optionOrder;
+    }
 
-	public void setSubScoreList(List<Double> subScoreList) {
+    public void setSubScoreList(List<Double> subScoreList) {
         this.subScoreList = subScoreList;
         if (subScoreList != null) {
             double totalScore = 0;
             for (Double score : subScoreList) {
+                if (score == null) {
+                    score = 0d;
+                }
                 totalScore += score;
             }
             this.score = totalScore;
@@ -190,8 +194,7 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
     }
 
     /**
-     * 根据预设总分自动拆解套题子题的分数分布
-     * 目前采取均分后累加到最后一题的做法
+     * 根据预设总分自动拆解套题子题的分数分布 目前采取均分后累加到最后一题的做法
      *
      * @param totalScore
      * @param questionList

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

@@ -155,12 +155,12 @@ public class PaperService {
         Map<String, Object> msgMap = new HashMap<String, Object>();
         Paper oldPaper = paperRepo.findOne(paperExp.getId());
         if (oldPaper != null) {
-            String oldName = oldPaper.getName();
+            String oldName = oldPaper.getName().trim();
             oldPaper.setTitle(paperExp.getTitle());
-            oldPaper.setName(paperExp.getName());
+            oldPaper.setName(paperExp.getName().trim());
             oldPaper.setLastModifyName(user.getName());
-            if (!oldName.equals(paperExp.getName())) {// 假如改变了试卷名称 则要效验试卷名称唯一性
-                String msg = this.checkPaperName(paperExp.getName(), user.getOrgId().toString());
+            if (!oldName.equals(paperExp.getName().trim())) {// 假如改变了试卷名称 则要效验试卷名称唯一性
+                String msg = this.checkPaperName(paperExp.getName().trim(), user.getOrgId().toString());
                 if (msg == null) {
                     paperRepo.save(oldPaper);
                     msgMap.put("msg", "success");

+ 22 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -16,6 +16,7 @@ import com.qmth.cqb.question.service.QuesService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Example;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -38,7 +39,9 @@ import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.model.PaperSearchInfo;
 import com.qmth.cqb.paper.service.PaperService;
 import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.utils.BeanCopierUtil;
 import com.qmth.cqb.utils.StringSimilarityUtils;
+import com.qmth.cqb.utils.enums.PaperType;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
@@ -475,4 +478,23 @@ public class PaperController {
       
     }
 
+    
+    /**
+     * 
+     * @param request
+     * @param paperSearchInfo
+     * @return
+     */
+    @ApiOperation(value = "查询该课程的所有导入试卷", notes = "查询该课程的所有导入试卷")
+    @GetMapping(value = "/importPaper/course")
+    public ResponseEntity getImportPapersByCourseNo( HttpServletRequest request, 
+                                            @ModelAttribute PaperSearchInfo paperSearchInfo) {
+        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        paperSearchInfo.setOrgId(user.getOrgId().toString());
+        paperService.formatPaperSearchInfo(paperSearchInfo);
+        Paper importPaper = BeanCopierUtil.copyProperties(paperSearchInfo, Paper.class);
+        importPaper.setPaperType(PaperType.IMPORT);
+        return new ResponseEntity(paperRepo.findAll(Example.of(importPaper)), HttpStatus.OK);
+      
+    }
 }