Преглед на файлове

新增客观题按比例给分

yin преди 9 месеца
родител
ревизия
f04c011b09

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/ScoreCalculateUtil.java

@@ -68,6 +68,16 @@ public class ScoreCalculateUtil {
             // 任选给分
             // 任选给分
             if (ObjectivePolicy.ALL.equals(question.getObjectivePolicy())) {
             if (ObjectivePolicy.ALL.equals(question.getObjectivePolicy())) {
                 score = answer.length() == 0 || answer.equals("#") ? 0 : question.getTotalScore();
                 score = answer.length() == 0 || answer.equals("#") ? 0 : question.getTotalScore();
+            } else if(ObjectivePolicy.PROPORTION.equals(question.getObjectivePolicy())){
+                for (int i = 0; i < answer.length(); i++) {
+                    if (!question.getAnswer().contains(String.valueOf(answer.charAt(i)))) {
+                        correct = false;
+                        break;
+                    }
+                }
+                if (correct) {
+                    score = DoubleUtil.div(DoubleUtil.mul(question.getTotalScore(),answer.length()),question.getAnswer().length(),2);
+                }
             } else if(ObjectivePolicy.CUSTOMIZE.equals(question.getObjectivePolicy())){
             } else if(ObjectivePolicy.CUSTOMIZE.equals(question.getObjectivePolicy())){
             	for (int i = 0; i < answer.length(); i++) {
             	for (int i = 0; i < answer.length(); i++) {
                     if (!question.getAnswer().contains(String.valueOf(answer.charAt(i)))) {
                     if (!question.getAnswer().contains(String.valueOf(answer.charAt(i)))) {

+ 1 - 1
stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/ObjectivePolicy.java

@@ -5,7 +5,7 @@ package cn.com.qmth.stmms.common.enums;
  * 
  * 
  */
  */
 public enum ObjectivePolicy {
 public enum ObjectivePolicy {
-    NONE("无", 1), ALL("任选给分", 2), LEAK("漏选给分", 3), CUSTOMIZE("自定义", 4);
+    NONE("无", 1), ALL("任选给分", 2), LEAK("漏选给分", 3), CUSTOMIZE("自定义", 4), PROPORTION("按比例给分", 5);
 
 
     private String name;
     private String name;
 
 

+ 1 - 1
stmms-common/src/main/java/cn/com/qmth/stmms/common/utils/VersionInfo.java

@@ -7,5 +7,5 @@ public class VersionInfo {
 
 
     public static final String NAME = "1.3.16";
     public static final String NAME = "1.3.16";
 
 
-    public static final String DATE = "20240513";
+    public static final String DATE = "20240830";
 }
 }

+ 4 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ObjectiveQuestionDTO.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.stmms.admin.dto;
 package cn.com.qmth.stmms.admin.dto;
 
 
+import cn.com.qmth.stmms.common.enums.ObjectivePolicy;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 
 
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
@@ -77,6 +78,9 @@ public class ObjectiveQuestionDTO implements QuestionDTO {
         question.setTotalScore(totalScore);
         question.setTotalScore(totalScore);
         question.setIntervalScore(1d);
         question.setIntervalScore(1d);
         question.setType(QuestionType.findByValue(type));
         question.setType(QuestionType.findByValue(type));
+        if(QuestionType.MULTIPLE.equals(question.getType())){
+            question.setObjectivePolicy(ObjectivePolicy.PROPORTION);
+        }
         return question;
         return question;
     }
     }