Browse Source

按题新增轨迹给分次数

yin 6 months ago
parent
commit
e9783508b5

+ 1 - 0
install/mysql/init/stmms_ft.sql

@@ -278,6 +278,7 @@ CREATE TABLE `eb_exam_question`
     `name`                varchar(128)          DEFAULT NULL COMMENT '名称',
     `answer`              varchar(16)           DEFAULT NULL COMMENT '正确答案',
     `total_score`         double       NOT NULL COMMENT '满分',
+    `track_count`         int(11)      NOT NULL COMMENT '给分次数',
     `interval_score`      double       NOT NULL COMMENT '评卷间隔分',
     `objective_policy`    varchar(16)           DEFAULT NULL COMMENT '客观题判分策略',
     `question_type`       varchar(32)           DEFAULT NULL COMMENT '题型',

+ 3 - 0
install/mysql/upgrade/1.5.2.sql

@@ -0,0 +1,3 @@
+-- 1.5.2
+USE `stmms_ft`;
+ALTER TABLE eb_exam_question ADD COLUMN `track_count` int(11) NOT NULL COMMENT '给分次数';

+ 11 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ExamQuestion.java

@@ -77,6 +77,9 @@ public class ExamQuestion implements Serializable, QuestionNumberBean {
     @Column(name = "arbitrate_threshold", nullable = true)
     private Double arbitrateThreshold;
 
+    @Column(name = "track_count", nullable = true)
+    private Integer trackCount;
+
     @Transient
     private ExamSubject subject;
 
@@ -374,4 +377,12 @@ public class ExamQuestion implements Serializable, QuestionNumberBean {
     public void setArbitrateType(Integer arbitrateType) {
         this.arbitrateType = arbitrateType;
     }
+
+    public Integer getTrackCount() {
+        return trackCount;
+    }
+
+    public void setTrackCount(Integer trackCount) {
+        this.trackCount = trackCount;
+    }
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/MarkStepDTO.java

@@ -24,6 +24,8 @@ public class MarkStepDTO implements Serializable {
 
     private Double score;
 
+    private Integer trackCount;
+
     private double maxScore;
 
     private double minScore;
@@ -185,4 +187,12 @@ public class MarkStepDTO implements Serializable {
     public void setSelectivePart(Integer selectivePart) {
         this.selectivePart = selectivePart;
     }
+
+    public Integer getTrackCount() {
+        return trackCount;
+    }
+
+    public void setTrackCount(Integer trackCount) {
+        this.trackCount = trackCount;
+    }
 }

+ 1 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/TaskServiceImpl.java

@@ -340,6 +340,7 @@ public class TaskServiceImpl implements TaskService {
         step.setTitle(question.getMainTitle());
         step.setDefaultScore(0d);
         step.setMaxScore(question.getTotalScore());
+        step.setTrackCount(question.getTrackCount());
         step.setMinScore(0d);
         step.setIntervalScore(question.getIntervalScore());
         step.setUncalculate(false);

+ 25 - 10
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/SubjectiveQuestionDTO.java

@@ -9,6 +9,8 @@ import cn.com.qmth.stmms.common.annotation.ExcelField;
 import cn.com.qmth.stmms.common.enums.ArbitrateType;
 import cn.com.qmth.stmms.common.enums.ScorePolicy;
 
+import javax.persistence.Column;
+
 public class SubjectiveQuestionDTO implements QuestionDTO {
 
     private static final String NULL_PAPER_TYPE_PLACEHOLDER = "#";
@@ -34,34 +36,37 @@ public class SubjectiveQuestionDTO implements QuestionDTO {
     @ExcelField(title = "小题满分*", align = 2, sort = 70)
     private Double totalScore;
 
-    @ExcelField(title = "间隔分*", align = 2, sort = 80)
+    @ExcelField(title = "给分次数", align = 2, sort = 80)
+    private Integer trackCount;
+
+    @ExcelField(title = "间隔分*", align = 2, sort = 90)
     private Double intervalScore;
 
-    @ExcelField(title = "评卷分组(只能用小写数字)*", align = 2, sort = 90)
+    @ExcelField(title = "评卷分组(只能用小写数字)*", align = 2, sort = 100)
     private Integer groupNumber;
 
-    @ExcelField(title = "图片序号(用英文逗号分割)", align = 2, sort = 100)
+    @ExcelField(title = "图片序号(用英文逗号分割)", align = 2, sort = 110)
     private String picList;
 
-    @ExcelField(title = "仲裁方式(0-分组,1-小题)", align = 2, sort = 110)
+    @ExcelField(title = "仲裁方式(0-分组,1-小题)", align = 2, sort = 120)
     private Integer arbitrateType;
 
-    @ExcelField(title = "双评比例(0~1)", align = 2, sort = 120)
+    @ExcelField(title = "双评比例(0~1)", align = 2, sort = 130)
     private Double doubleRate;
 
-    @ExcelField(title = "仲裁阀值", align = 2, sort = 130)
+    @ExcelField(title = "仲裁阀值", align = 2, sort = 140)
     private Double arbitrateThreshold;
 
-    @ExcelField(title = "合分策略(1-平均,2-最高,3-最低)", align = 2, sort = 140)
+    @ExcelField(title = "合分策略(1-平均,2-最高,3-最低)", align = 2, sort = 150)
     private Integer scorePolicy;
 
-    @ExcelField(title = "评卷模式(common-普通,track-轨迹)", align = 2, sort = 150)
+    @ExcelField(title = "评卷模式(common-普通,track-轨迹)", align = 2, sort = 160)
     private String markMode;
 
-    @ExcelField(title = "试评数量(0-跳过试评)", align = 2, sort = 160)
+    @ExcelField(title = "试评数量(0-跳过试评)", align = 2, sort = 170)
     private Integer trialCount;
 
-    @ExcelField(title = "选做题数量", align = 2, sort = 170)
+    @ExcelField(title = "选做题数量", align = 2, sort = 180)
     private Integer selectiveCount;
 
     public SubjectiveQuestionDTO() {
@@ -93,6 +98,7 @@ public class SubjectiveQuestionDTO implements QuestionDTO {
                 : ArbitrateType.GROUP.getValue());
         setMarkMode(group != null && group.getMarkMode() != null ? group.getMarkMode().toString() : "");
         setTrialCount(subject != null && subject.getTrialCount() != null ? subject.getTrialCount() : 0);
+        setTrackCount(question.getTrackCount());
     }
 
     @Override
@@ -115,6 +121,7 @@ public class SubjectiveQuestionDTO implements QuestionDTO {
         question.setScorePolicy(scorePolicy);
         question.setMarkMode(markMode);
         question.setTrialCount(trialCount != null && trialCount > 0 ? trialCount : 0);
+        question.setTrackCount(trackCount != null && trackCount > 0 ? trackCount : 0);
         return question;
     }
 
@@ -267,4 +274,12 @@ public class SubjectiveQuestionDTO implements QuestionDTO {
     public void setArbitrateType(Integer arbitrateType) {
         this.arbitrateType = arbitrateType;
     }
+
+    public Integer getTrackCount() {
+        return trackCount;
+    }
+
+    public void setTrackCount(Integer trackCount) {
+        this.trackCount = trackCount;
+    }
 }

+ 7 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -65,8 +65,9 @@ public class PaperController extends BaseExamController {
     private static final String NULL_PAPER_TYPE_PLACEHOLDER = "#";
 
     private static final String[] SUBJECTIVE_EXCEL_HEADER = new String[] { "科目代码*", "科目名称", "大题名称*", "题目昵称",
-            "大题号(只能用小写数字)*", "小题号(只能用小写数字)*", "小题满分*", "间隔分*", "评卷分组(只能用小写数字)*", "图片序号(用英文逗号分割)", "仲裁方式(0-分组,1-小题)",
-            "双评比例(0~1)", "仲裁阀值", "合分策略(1-平均,2-最高,3-最低)", "评卷模式(common-普通,track-轨迹)", "试评数量(0-跳过试评)", "选做题数量" };
+            "大题号(只能用小写数字)*", "小题号(只能用小写数字)*", "小题满分*", "给分次数", "间隔分*", "评卷分组(只能用小写数字)*", "图片序号(用英文逗号分割)",
+            "仲裁方式(0-分组,1-小题)", "双评比例(0~1)", "仲裁阀值", "合分策略(1-平均,2-最高,3-最低)", "评卷模式(common-普通,track-轨迹)", "试评数量(0-跳过试评)",
+            "选做题数量" };
 
     private static final String[] OBJECTIVE_EXCEL_HEADER = new String[] { "科目代码", "科目名称", "试卷类型", "大题名称", "题目昵称",
             "大题号(只能用小写数字)", "小题号(只能用小写数字)", "标准答案", "小题满分", "题型(1-单选,2-多选,3-判断)" };
@@ -594,6 +595,7 @@ public class PaperController extends BaseExamController {
             old.setAnswer(question.getAnswer().toUpperCase());
             old.setPaperType(question.getPaperType());
             old.setType(question.getType());
+            old.setTrackCount(question.getTrackCount()==null?0:question.getTrackCount());
             questionService.saveAndFlush(old);
             questionService.updateMainTitle(examId, question.getSubjectCode(), question.isObjective(),
                     question.getMainNumber(), question.getMainTitle());
@@ -850,6 +852,9 @@ public class PaperController extends BaseExamController {
             question.setAnswer(null);
             question.setType(null);
         }
+        if(question.getTrackCount()==null ){
+            question.setTrackCount(0);
+        }
         Map<Integer, String> titleMap = new HashMap<>();
         List<ExamQuestion> current = questionService.findByExamAndSubjectAndObjective(examId, question.getSubjectCode(),
                 question.isObjective());

+ 6 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/questionAdd.jsp

@@ -94,6 +94,12 @@
 			 <input name="totalScore" value="${examQuestion.totalScore }" type="number" id="total-score-input" htmlEscape="false"  maxlength="10" class="required"/>
 			</div>
 		</div>
+		<div class="control-group">
+			<label class="control-label">给分次数</label>
+			<div class="controls">
+				<input name="trackCount" value="${examQuestion.trackCount }" type="number" htmlEscape="false"  maxlength="10" class="required"/>
+			</div>
+		</div>
 		<div class="control-group">
 	        <label class="control-label">是否客观题</label>
 	        <div class="controls">

+ 6 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/questionEdit.jsp

@@ -90,6 +90,12 @@
 			 <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> name="totalScore" value="${examQuestion.totalScore }" type="number" id="total-score-input" htmlEscape="false"  maxlength="10" class="required"/>
 			</div>
 		</div>
+		<div class="control-group">
+			<label class="control-label">给分次数</label>
+			<div class="controls">
+				<input name="trackCount" value="${examQuestion.trackCount }" type="number" htmlEscape="false"  maxlength="10" class="required"/>
+			</div>
+		</div>
 		<div class="control-group">
 	        <label class="control-label">是否客观题</label>
 	        <div class="controls">