1
0
xiatian 8 часов назад
Родитель
Сommit
3ac3135c4f

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

@@ -252,6 +252,11 @@ CREATE TABLE `eb_exam`
     `show_objective_score`  tinyint(1)  NOT NULL COMMENT '是否显示客观分',
     `show_objective_score`  tinyint(1)  NOT NULL COMMENT '是否显示客观分',
     `inspect_round_limit`   tinyint(1)  NOT NULL COMMENT '全卷复核进度100%时才能再次复核',
     `inspect_round_limit`   tinyint(1)  NOT NULL COMMENT '全卷复核进度100%时才能再次复核',
     `track_count_policy`    varchar(16) DEFAULT NULL COMMENT '轨迹次数规则',
     `track_count_policy`    varchar(16) DEFAULT NULL COMMENT '轨迹次数规则',
+    `mark_scroll_bottom` tinyint(1)  NOT NULL COMMENT '评卷时强制试卷拉到底部',
+    `min_mark_duration` int(11)  DEFAULT NULL  COMMENT '最小阅卷时长(秒)',
+    `re_mark_limit_count` int(11)  DEFAULT NULL  COMMENT '单卷回评次数',
+    `barcode_ai_check` tinyint(1)  NOT NULL COMMENT '启用条码粘贴AI检测',
+    `answer_ai_check` tinyint(1)  NOT NULL  COMMENT '启用题卡作答AI检测',
     PRIMARY KEY (`id`),
     PRIMARY KEY (`id`),
     UNIQUE KEY `index1` (`school_id`, `code`)
     UNIQUE KEY `index1` (`school_id`, `code`)
 ) ENGINE = InnoDB
 ) ENGINE = InnoDB

+ 7 - 0
install/mysql/upgrade/2.0.0.sql

@@ -2,6 +2,13 @@
 
 
 USE `stmms_ft`;
 USE `stmms_ft`;
 
 
+ALTER TABLE eb_exam ADD COLUMN `mark_scroll_bottom` tinyint(1)  NOT NULL DEFAULT 0 COMMENT '评卷时强制试卷拉到底部';
+ALTER TABLE eb_exam ADD COLUMN `min_mark_duration` int(11)  DEFAULT NULL  COMMENT '最小阅卷时长(秒)';
+ALTER TABLE eb_exam ADD COLUMN `re_mark_limit_count` int(11)  DEFAULT NULL  COMMENT '单卷回评次数';
+ALTER TABLE eb_exam ADD COLUMN `barcode_ai_check` tinyint(1)  NOT NULL DEFAULT 0 COMMENT '启用条码粘贴AI检测';
+ALTER TABLE eb_exam ADD COLUMN `answer_ai_check` tinyint(1)  NOT NULL DEFAULT 0 COMMENT '启用题卡作答AI检测';
+
+
 ALTER TABLE eb_marker ADD COLUMN `wait_arbitrate_count` int(11)     DEFAULT NULL COMMENT '待仲裁数';
 ALTER TABLE eb_marker ADD COLUMN `wait_arbitrate_count` int(11)     DEFAULT NULL COMMENT '待仲裁数';
 
 
 ALTER TABLE eb_exam_student ADD COLUMN   `inspect_tag_user`     int(11)      DEFAULT NULL COMMENT '全卷复核标记人ID';
 ALTER TABLE eb_exam_student ADD COLUMN   `inspect_tag_user`     int(11)      DEFAULT NULL COMMENT '全卷复核标记人ID';

+ 72 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/bean/ExamVo.java

@@ -127,13 +127,13 @@ public class ExamVo {
     /**
     /**
      * 自动跳转
      * 自动跳转
      */
      */
-    @ApiModelProperty(value = "自动跳转")
+    @ApiModelProperty(value = "评卷提交自动定位")
     private Boolean autoScroll;
     private Boolean autoScroll;
 
 
     /**
     /**
      * 是否裁切
      * 是否裁切
      */
      */
-    @ApiModelProperty(value = "是否裁切")
+    @ApiModelProperty(value = "自动对切题卡")
     private Boolean enableSplit;
     private Boolean enableSplit;
 
 
     /**
     /**
@@ -154,6 +154,10 @@ public class ExamVo {
     @ApiModelProperty(value = "全卷复核时强制试卷拉到底部")
     @ApiModelProperty(value = "全卷复核时强制试卷拉到底部")
     private Boolean inspectScrollBottom;
     private Boolean inspectScrollBottom;
 
 
+    // 评卷时强制试卷拉到底部
+    @ApiModelProperty(value = "评卷时强制试卷拉到底部")
+    private Boolean markScrollBottom;
+
     /**
     /**
      * 回评卷数
      * 回评卷数
      */
      */
@@ -187,6 +191,22 @@ public class ExamVo {
     @ApiModelProperty(value = "优秀分")
     @ApiModelProperty(value = "优秀分")
     private Double excellentScore;
     private Double excellentScore;
 
 
+    // 最小阅卷时长(秒)
+    @ApiModelProperty(value = "最小阅卷时长(秒)")
+    private Integer minMarkDuration;
+
+    // 单卷回评次数
+    @ApiModelProperty(value = "单卷回评次数")
+    private Integer reMarkLimitCount;
+
+    // 启用条码粘贴AI检测
+    @ApiModelProperty(value = "启用条码粘贴AI检测")
+    private Boolean barcodeAiCheck;
+
+    // 启用题卡作答AI检测
+    @ApiModelProperty(value = "启用题卡作答AI检测")
+    private Boolean answerAiCheck;
+
     public Integer getId() {
     public Integer getId() {
         return id;
         return id;
     }
     }
@@ -475,6 +495,46 @@ public class ExamVo {
         this.excellentScore = excellentScore;
         this.excellentScore = excellentScore;
     }
     }
 
 
+    public Boolean getMarkScrollBottom() {
+        return markScrollBottom;
+    }
+
+    public void setMarkScrollBottom(Boolean markScrollBottom) {
+        this.markScrollBottom = markScrollBottom;
+    }
+
+    public Integer getMinMarkDuration() {
+        return minMarkDuration;
+    }
+
+    public void setMinMarkDuration(Integer minMarkDuration) {
+        this.minMarkDuration = minMarkDuration;
+    }
+
+    public Integer getReMarkLimitCount() {
+        return reMarkLimitCount;
+    }
+
+    public void setReMarkLimitCount(Integer reMarkLimitCount) {
+        this.reMarkLimitCount = reMarkLimitCount;
+    }
+
+    public Boolean getBarcodeAiCheck() {
+        return barcodeAiCheck;
+    }
+
+    public void setBarcodeAiCheck(Boolean barcodeAiCheck) {
+        this.barcodeAiCheck = barcodeAiCheck;
+    }
+
+    public Boolean getAnswerAiCheck() {
+        return answerAiCheck;
+    }
+
+    public void setAnswerAiCheck(Boolean answerAiCheck) {
+        this.answerAiCheck = answerAiCheck;
+    }
+
     public static ExamVo of(Exam from) {
     public static ExamVo of(Exam from) {
         if (from == null) {
         if (from == null) {
             return null;
             return null;
@@ -515,6 +575,11 @@ public class ExamVo {
         ret.setTrackCountPolicy(from.getTrackCountPolicy());
         ret.setTrackCountPolicy(from.getTrackCountPolicy());
         ret.setPassScore(from.getPassScore());
         ret.setPassScore(from.getPassScore());
         ret.setExcellentScore(from.getExcellentScore());
         ret.setExcellentScore(from.getExcellentScore());
+        ret.setMarkScrollBottom(from.getMarkScrollBottom());
+        ret.setMinMarkDuration(from.getMinMarkDuration());
+        ret.setReMarkLimitCount(from.getReMarkLimitCount());
+        ret.setBarcodeAiCheck(from.getBarcodeAiCheck());
+        ret.setAnswerAiCheck(from.getAnswerAiCheck());
         return ret;
         return ret;
     }
     }
 
 
@@ -556,6 +621,11 @@ public class ExamVo {
         ret.setShowObjectiveScore(from.getShowObjectiveScore());
         ret.setShowObjectiveScore(from.getShowObjectiveScore());
         ret.setInspectRoundLimit(from.getInspectRoundLimit());
         ret.setInspectRoundLimit(from.getInspectRoundLimit());
         ret.setTrackCountPolicy(from.getTrackCountPolicy());
         ret.setTrackCountPolicy(from.getTrackCountPolicy());
+        ret.setMarkScrollBottom(from.getMarkScrollBottom());
+        ret.setMinMarkDuration(from.getMinMarkDuration());
+        ret.setReMarkLimitCount(from.getReMarkLimitCount());
+        ret.setBarcodeAiCheck(from.getBarcodeAiCheck());
+        ret.setAnswerAiCheck(from.getAnswerAiCheck());
         return ret;
         return ret;
     }
     }
 }
 }

+ 96 - 37
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/Exam.java

@@ -173,32 +173,31 @@ public class Exam implements Serializable {
      */
      */
     @Column(name = "show_reject", nullable = false)
     @Column(name = "show_reject", nullable = false)
     private boolean showReject;
     private boolean showReject;
-    
+
     /**
     /**
      * 全卷多次复核时不能为同一账号
      * 全卷多次复核时不能为同一账号
      */
      */
     @Column(name = "inspect_unrepeated", nullable = false)
     @Column(name = "inspect_unrepeated", nullable = false)
     private boolean inspectUnrepeated;
     private boolean inspectUnrepeated;
-    
+
     /**
     /**
      * 全卷复核时强制试卷拉到底部
      * 全卷复核时强制试卷拉到底部
      */
      */
     @Column(name = "inspect_scroll_bottom", nullable = false)
     @Column(name = "inspect_scroll_bottom", nullable = false)
     private boolean inspectScrollBottom;
     private boolean inspectScrollBottom;
-    
+
     /**
     /**
      * 回评卷数
      * 回评卷数
      */
      */
     @Column(name = "remark_count")
     @Column(name = "remark_count")
     private Integer remarkCount;
     private Integer remarkCount;
-    
+
     /**
     /**
      * 评卷端是否显示客观分
      * 评卷端是否显示客观分
      */
      */
     @Column(name = "show_objective_score", nullable = false)
     @Column(name = "show_objective_score", nullable = false)
     private boolean showObjectiveScore;
     private boolean showObjectiveScore;
-    
-    
+
     /**
     /**
      * 全卷复核进度100%时才能再次复核
      * 全卷复核进度100%时才能再次复核
      */
      */
@@ -212,7 +211,26 @@ public class Exam implements Serializable {
     @Enumerated(EnumType.STRING)
     @Enumerated(EnumType.STRING)
     private TrackCountPolicy trackCountPolicy;
     private TrackCountPolicy trackCountPolicy;
 
 
-    
+    // 评卷时强制试卷拉到底部
+    @Column(name = "mark_scroll_bottom", nullable = false)
+    private Boolean markScrollBottom;
+
+    // 最小阅卷时长(秒)
+    @Column(name = "min_mark_duration")
+    private Integer minMarkDuration;
+
+    // 单卷回评次数
+    @Column(name = "re_mark_limit_count")
+    private Integer reMarkLimitCount;
+
+    // 启用条码粘贴AI检测
+    @Column(name = "barcode_ai_check", nullable = false)
+    private Boolean barcodeAiCheck;
+
+    // 启用题卡作答AI检测
+    @Column(name = "answer_ai_check", nullable = false)
+    private Boolean answerAiCheck;
+
     public Integer getId() {
     public Integer getId() {
         return id;
         return id;
     }
     }
@@ -457,45 +475,45 @@ public class Exam implements Serializable {
         this.showReject = showReject;
         this.showReject = showReject;
     }
     }
 
 
-	public Boolean getInspectUnrepeated() {
-		return inspectUnrepeated;
-	}
+    public Boolean getInspectUnrepeated() {
+        return inspectUnrepeated;
+    }
 
 
-	public void setInspectUnrepeated(Boolean inspectUnrepeated) {
-		this.inspectUnrepeated = inspectUnrepeated;
-	}
+    public void setInspectUnrepeated(Boolean inspectUnrepeated) {
+        this.inspectUnrepeated = inspectUnrepeated;
+    }
 
 
-	public Boolean getInspectScrollBottom() {
-		return inspectScrollBottom;
-	}
+    public Boolean getInspectScrollBottom() {
+        return inspectScrollBottom;
+    }
 
 
-	public void setInspectScrollBottom(Boolean inspectScrollBottom) {
-		this.inspectScrollBottom = inspectScrollBottom;
-	}
+    public void setInspectScrollBottom(Boolean inspectScrollBottom) {
+        this.inspectScrollBottom = inspectScrollBottom;
+    }
 
 
-	public Integer getRemarkCount() {
-		return remarkCount;
-	}
+    public Integer getRemarkCount() {
+        return remarkCount;
+    }
 
 
-	public void setRemarkCount(Integer remarkCount) {
-		this.remarkCount = remarkCount;
-	}
+    public void setRemarkCount(Integer remarkCount) {
+        this.remarkCount = remarkCount;
+    }
 
 
-	public Boolean getShowObjectiveScore() {
-		return showObjectiveScore;
-	}
+    public Boolean getShowObjectiveScore() {
+        return showObjectiveScore;
+    }
 
 
-	public void setShowObjectiveScore(Boolean showObjectiveScore) {
-		this.showObjectiveScore = showObjectiveScore;
-	}
+    public void setShowObjectiveScore(Boolean showObjectiveScore) {
+        this.showObjectiveScore = showObjectiveScore;
+    }
 
 
-	public boolean getInspectRoundLimit() {
-		return inspectRoundLimit;
-	}
+    public boolean getInspectRoundLimit() {
+        return inspectRoundLimit;
+    }
 
 
-	public void setInspectRoundLimit(boolean inspectRoundLimit) {
-		this.inspectRoundLimit = inspectRoundLimit;
-	}
+    public void setInspectRoundLimit(boolean inspectRoundLimit) {
+        this.inspectRoundLimit = inspectRoundLimit;
+    }
 
 
     public TrackCountPolicy getTrackCountPolicy() {
     public TrackCountPolicy getTrackCountPolicy() {
         return trackCountPolicy;
         return trackCountPolicy;
@@ -504,4 +522,45 @@ public class Exam implements Serializable {
     public void setTrackCountPolicy(TrackCountPolicy trackCountPolicy) {
     public void setTrackCountPolicy(TrackCountPolicy trackCountPolicy) {
         this.trackCountPolicy = trackCountPolicy;
         this.trackCountPolicy = trackCountPolicy;
     }
     }
+
+    public Boolean getMarkScrollBottom() {
+        return markScrollBottom;
+    }
+
+    public void setMarkScrollBottom(Boolean markScrollBottom) {
+        this.markScrollBottom = markScrollBottom;
+    }
+
+    public Integer getMinMarkDuration() {
+        return minMarkDuration;
+    }
+
+    public void setMinMarkDuration(Integer minMarkDuration) {
+        this.minMarkDuration = minMarkDuration;
+    }
+
+    public Integer getReMarkLimitCount() {
+        return reMarkLimitCount;
+    }
+
+    public void setReMarkLimitCount(Integer reMarkLimitCount) {
+        this.reMarkLimitCount = reMarkLimitCount;
+    }
+
+    public Boolean getBarcodeAiCheck() {
+        return barcodeAiCheck;
+    }
+
+    public void setBarcodeAiCheck(Boolean barcodeAiCheck) {
+        this.barcodeAiCheck = barcodeAiCheck;
+    }
+
+    public Boolean getAnswerAiCheck() {
+        return answerAiCheck;
+    }
+
+    public void setAnswerAiCheck(Boolean answerAiCheck) {
+        this.answerAiCheck = answerAiCheck;
+    }
+
 }
 }

+ 5 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/ExamController.java

@@ -192,6 +192,11 @@ public class ExamController extends BaseApiController {
             oldExam.setRemarkCount(exam.getRemarkCount());
             oldExam.setRemarkCount(exam.getRemarkCount());
             oldExam.setInspectRoundLimit(exam.getInspectRoundLimit());
             oldExam.setInspectRoundLimit(exam.getInspectRoundLimit());
             oldExam.setTrackCountPolicy(exam.getTrackCountPolicy());
             oldExam.setTrackCountPolicy(exam.getTrackCountPolicy());
+            oldExam.setMarkScrollBottom(exam.getMarkScrollBottom());
+            oldExam.setMinMarkDuration(exam.getMinMarkDuration());
+            oldExam.setReMarkLimitCount(exam.getReMarkLimitCount());
+            oldExam.setBarcodeAiCheck(exam.getBarcodeAiCheck());
+            oldExam.setAnswerAiCheck(exam.getAnswerAiCheck());
             examService.save(oldExam);
             examService.save(oldExam);
         }
         }
         return resultOk();
         return resultOk();