xiatian 10 miesięcy temu
rodzic
commit
01c41f0d9c

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

@@ -234,6 +234,7 @@ CREATE TABLE `eb_exam`
 	`inspect_scroll_bottom`   	tinyint(1)  	NOT NULL COMMENT '全卷复核时强制试卷拉到底部',
 	`remark_count`   	int(11)  	DEFAULT NULL COMMENT '回评卷数',
 	`show_objective_score`   	tinyint(1)  	NOT NULL COMMENT '是否显示客观分',
+	`inspect_round_limit`   	tinyint(1)  	NOT NULL COMMENT '全卷复核进度100%时才能再次复核',
     PRIMARY KEY (`id`),
     UNIQUE KEY `index1` (`school_id`, `code`)
 ) ENGINE = InnoDB

+ 2 - 0
install/mysql/upgrade/1.5.1.sql

@@ -6,6 +6,8 @@ ALTER TABLE eb_marker ADD COLUMN `avg_score_na`    double      DEFAULT NULL COMM
 ALTER TABLE eb_marker ADD COLUMN `avg_speed_na`    double      DEFAULT NULL COMMENT '平均时长不含仲裁';
 ALTER TABLE eb_marker ADD COLUMN `stdev_score_na`  double      DEFAULT NULL COMMENT '标准差不含仲裁';
 
+ALTER TABLE eb_exam ADD COLUMN `inspect_round_limit`   	tinyint(1)  NOT NULL DEFAULT 1 COMMENT '全卷复核进度100%时才能再次复核';
+
 
 delete from b_privilege t where t.code in ('exam_report_subject','exam_report_subject_range');
 delete from b_role_privilege t where t.privilege_code in ('exam_report_subject','exam_report_subject_range');

+ 18 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/Exam.java

@@ -25,6 +25,9 @@ import cn.com.qmth.stmms.common.enums.ExamType;
 import cn.com.qmth.stmms.common.enums.MarkMode;
 import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
 
+/**
+ * 
+ */
 @Entity
 @Table(name = "eb_exam")
 public class Exam implements Serializable {
@@ -197,6 +200,13 @@ public class Exam implements Serializable {
      */
     @Column(name = "show_objective_score", nullable = false)
     private boolean showObjectiveScore;
+    
+    
+    /**
+     * 全卷复核进度100%时才能再次复核
+     */
+    @Column(name = "inspect_round_limit", nullable = false)
+    private boolean inspectRoundLimit;
 
     
     public Integer getId() {
@@ -475,4 +485,12 @@ public class Exam implements Serializable {
 		this.showObjectiveScore = showObjectiveScore;
 	}
 
+	public boolean getInspectRoundLimit() {
+		return inspectRoundLimit;
+	}
+
+	public void setInspectRoundLimit(boolean inspectRoundLimit) {
+		this.inspectRoundLimit = inspectRoundLimit;
+	}
+
 }

+ 12 - 11
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/InspectedServiceImpl.java

@@ -358,18 +358,19 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
         sQuery.setUpload(true);
         sQuery.setAbsent(false);
         sQuery.setBreach(false);
+        sQuery.setInspected(false);
         sQuery.setSubjectCode(subjectCode);
-        long totalPaperCount = studentService.countByQuery(sQuery);
-        StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s  where s.exam_id ="
-                + examId + " and s.subject_code ='" + subjectCode + "'");
-        countSql.append(" and s.inspected=1");
-        // countSql.append(" and exists(select 1 from eb_inspect_history h "
-        // +" left join eb_exam_subject sub on h.exam_id=sub.exam_id and h.subject_code=sub.code "
-        // +" where s.id=h.student_id and h.inspect_round="+inspectRound+") ");
-        Query countQuery = entityManager.createNativeQuery(countSql.toString());
-        Object singleResult = countQuery.getResultList().get(0);
-        Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
-        return totalPaperCount == count;
+        long needInspectCount = studentService.countByQuery(sQuery);
+//        StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s  where s.exam_id ="
+//                + examId + " and s.subject_code ='" + subjectCode + "'");
+//        countSql.append(" and s.inspected=1");
+//        // countSql.append(" and exists(select 1 from eb_inspect_history h "
+//        // +" left join eb_exam_subject sub on h.exam_id=sub.exam_id and h.subject_code=sub.code "
+//        // +" where s.id=h.student_id and h.inspect_round="+inspectRound+") ");
+//        Query countQuery = entityManager.createNativeQuery(countSql.toString());
+//        Object singleResult = countQuery.getResultList().get(0);
+//        Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
+        return needInspectCount == 0;
     }
 
     @Transactional

+ 4 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ExamController.java

@@ -7,10 +7,6 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-import net.sf.json.JsonConfig;
-
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -34,7 +30,6 @@ import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.file.service.FileService;
 import cn.com.qmth.stmms.biz.mark.model.PictureConfigItem;
 import cn.com.qmth.stmms.biz.school.model.School;
@@ -50,6 +45,9 @@ import cn.com.qmth.stmms.common.enums.MarkMode;
 import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import net.sf.json.JsonConfig;
 
 @Controller
 @RequestMapping("/admin/exam")
@@ -63,9 +61,6 @@ public class ExamController extends BaseExamController {
     @Autowired
     private ExamStudentService examStudentService;
 
-    @Autowired
-    private MarkerService markerService;
-
     @Autowired
     private ExamSubjectService examSubjectService;
 
@@ -187,6 +182,7 @@ public class ExamController extends BaseExamController {
             oldExam.setInspectUnrepeated(exam.getInspectUnrepeated());
             oldExam.setShowObjectiveScore(exam.getShowObjectiveScore());
             oldExam.setRemarkCount(exam.getRemarkCount());
+            oldExam.setInspectRoundLimit(exam.getInspectRoundLimit());
             examService.save(oldExam);
         }
         return "redirect:/admin/exam/list?pageNumber=" + query.getPageNumber() + "&type=" + queryType + "&status="

+ 112 - 13
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -59,6 +59,7 @@ import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.enums.SelectiveStatus;
 import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
+import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONObject;
@@ -168,10 +169,14 @@ public class InspectedController extends BaseExamController {
         model.addAttribute("collegeList", studentService.findDistinctCollege(examId));
         model.addAttribute("inspectRoundList", inspectHistoryService.findInspectRound(examId));
         if (StringUtils.isNotBlank(query.getSubjectCode())) {
-            ExamSubject es = subjectService.find(examId, query.getSubjectCode());
-            if (inspectedService.inspectFinish(examId, query.getSubjectCode(), es.getInspectRound())) {
-                model.addAttribute("showNextInspect", true);
-            }
+        	if(!exam.getInspectRoundLimit()) {
+        		model.addAttribute("showNextInspect", true);
+        	}else {
+	            ExamSubject es = subjectService.find(examId, query.getSubjectCode());
+	            if (inspectedService.inspectFinish(examId, query.getSubjectCode(), es.getInspectRound())) {
+	                model.addAttribute("showNextInspect", true);
+	            }
+        	}
         }
         return "modules/exam/inspectedList";
     }
@@ -346,21 +351,115 @@ public class InspectedController extends BaseExamController {
         }
         return obj;
     }
+    
+    @Logging(menu = "再次复核验证", type = LogType.UPDATE)
+    @RequestMapping(value = "nextround/check", method = RequestMethod.POST)
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
+    @ResponseBody
+    public JSONObject nextroundCheck(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
+    	JSONObject obj = new JSONObject();
+    	//status -1 错误,0需确认,1通过
+        int examId = getSessionExamId(request);
+        lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
+		try {
+			Exam exam = examService.findById(examId);
+			ExamSubject es = subjectService.find(examId, subjectCode);
+			if(exam.getInspectRoundLimit()) {
+				if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
+	                obj.put("status", -1);
+	                obj.put("message", "该科目第" + es.getInspectRound() + "次复核还未完成");
+	                return obj;
+	            }else {
+	            	obj.put("status", 1);
+	                return obj;
+	            }
+			}else {
+				ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
+		        sQuery.setExamId(examId);
+		        sQuery.setUpload(true);
+		        sQuery.setAbsent(false);
+		        sQuery.setBreach(false);
+		        sQuery.setSubjectCode(subjectCode);
+		        sQuery.setInspected(true);
+		        long inspectedCount = studentService.countByQuery(sQuery);
+		        if(inspectedCount==0) {
+		        	obj.put("status", -1);
+		            obj.put("message", "本轮无复核记录,无法开启再次复核");
+		            return obj;
+		        }
+		        sQuery.setInspected(null);
+		        long totalCount = studentService.countByQuery(sQuery);
+		        if(inspectedCount==totalCount) {
+		        	obj.put("status", 1);
+		            return obj;
+		        }else {
+			        String percent = totalCount > 0 ? (new DecimalFormat("####.###")
+		                    .format(inspectedCount * 100.0 / totalCount) + "%") : "0%";
+			        String msg="本轮复核进度为"+percent+",还有"+(totalCount-inspectedCount)+"份未完成复核,是否进入下一轮复核?";
+			        obj.put("status", 0);
+		            obj.put("message", msg);
+		            return obj;
+		        }
+			}
+        } finally {
+            lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
+        }
+    }
 
     @Logging(menu = "再次复核", type = LogType.UPDATE)
     @RequestMapping(value = "nextround", method = RequestMethod.POST)
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.COLLEGE_ADMIN })
     public String nextround(RedirectAttributes ra, HttpServletRequest request, @RequestParam String subjectCode) {
+    	WebUser wu = RequestUtils.getWebUser(request); 
+    	String url="redirect:/admin/exam/inspected/list?subjectCode="+subjectCode;
         int examId = getSessionExamId(request);
-        ExamSubject es = subjectService.find(examId, subjectCode);
         lockService.waitlock(LockType.EXAM_SUBJECT, examId, subjectCode);
         try {
-            if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
-                ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
-                return "redirect:/admin/exam/inspected/list";
-            }
-            subjectService.nextInspectRound(examId, subjectCode);
-            return "redirect:/admin/exam/inspected/list";
+        	Exam exam = examService.findById(examId);
+        	ExamSubject es = subjectService.find(examId, subjectCode);
+        	StringBuilder sb=new StringBuilder();
+            sb.append("开启人:"+wu.getUser().getName()+"("+wu.getUser().getLoginName()+")");
+            sb.append(" | 时间:"+DateUtils.getDateTime());
+            sb.append(" | 开启第"+(es.getInspectRound()+1)+"轮");
+            sb.append(" | 科目代码:"+subjectCode);
+        	ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
+	        sQuery.setExamId(examId);
+	        sQuery.setUpload(true);
+	        sQuery.setAbsent(false);
+	        sQuery.setBreach(false);
+	        sQuery.setSubjectCode(subjectCode);
+	        sQuery.setInspected(true);
+			if(exam.getInspectRoundLimit()) {
+				if (!inspectedService.inspectFinish(examId, subjectCode, es.getInspectRound())) {
+	                ra.addFlashAttribute("errmsg", "该科目第" + es.getInspectRound() + "次复核还未完成");
+	                return url;
+	            }else {
+	            	long inspectedCount = studentService.countByQuery(sQuery);
+	            	sQuery.setInspected(null);
+			        long totalCount = studentService.countByQuery(sQuery);
+			        sb.append(" | 总量:"+totalCount);
+			        sb.append(" | 已复核:"+inspectedCount);
+			        sb.append(" | 未复核:"+(totalCount-inspectedCount));
+	            	subjectService.nextInspectRound(examId, subjectCode);
+	            	
+	            	RequestUtils.setLog(request, sb.toString());
+	                return url;
+	            }
+			}else {
+		        long inspectedCount = studentService.countByQuery(sQuery);
+		        if(inspectedCount==0) {
+		            ra.addFlashAttribute("errmsg", "本轮无复核记录,无法开启再次复核");
+	                return url;
+		        }
+		        sQuery.setInspected(null);
+		        long totalCount = studentService.countByQuery(sQuery);
+		        sb.append(" | 总量:"+totalCount);
+		        sb.append(" | 已复核:"+inspectedCount);
+		        sb.append(" | 未复核:"+(totalCount-inspectedCount));
+		        subjectService.nextInspectRound(examId, subjectCode);
+		        RequestUtils.setLog(request, sb.toString());
+                return url;
+			}
         } finally {
             lockService.unlock(LockType.EXAM_SUBJECT, examId, subjectCode);
         }
@@ -602,8 +701,8 @@ public class InspectedController extends BaseExamController {
             if (vo.getLeftCount() < 0) {
                 vo.setLeftCount(0);
             }
-            String percent = totalCount > 0 ? (new DecimalFormat("####.###")
-                    .format(inspectedCount * 100.0 / totalCount) + "%") : "0%";
+            String percent = totalPaperCount > 0 ? (new DecimalFormat("####.###")
+                    .format(inspectedCount * 100.0 / totalPaperCount) + "%") : "0%";
             vo.setPercent(percent);
             if (unFinishSet.contains(vo.getSubject().getCode())) {
                 vo.setFinishCount(vo.getSubject().getInspectRound() - 1);

+ 275 - 218
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examEdit.jsp

@@ -1,237 +1,294 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<%@ page contentType="text/html;charset=UTF-8"%>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
 <html>
 <head>
-    <title>考试管理</title>
-    <meta name="decorator" content="default"/>
-    <%@include file="/WEB-INF/views/include/head.jsp" %>
-    <script type="text/javascript">
-        $(document).ready(function () {
-            $("#name").focus();
-            var pictureConfig = '${pictureConfig}';
-            window.localStorage.setItem("pictureConfig", pictureConfig);
-            $("#inputForm").validate({
-                submitHandler: function (form) {
-                	var endTime = new Date($("#endTime").val()).getTime();
-					var startTime = new Date($("#startTime").val()).getTime();
-					if(startTime>=endTime){
-						alert("评卷结束时间必须晚于开始时间");
-						return;
-					}else{
-						loading('正在提交,请稍等...');
-						form.submit();
+<title>考试管理</title>
+<meta name="decorator" content="default" />
+<%@include file="/WEB-INF/views/include/head.jsp"%>
+<script type="text/javascript">
+	$(document).ready(
+			function() {
+				$("#name").focus();
+				var pictureConfig = '${pictureConfig}';
+				window.localStorage.setItem("pictureConfig", pictureConfig);
+				$("#inputForm")
+						.validate(
+								{
+									submitHandler : function(form) {
+										var endTime = new Date($("#endTime")
+												.val()).getTime();
+										var startTime = new Date(
+												$("#startTime").val())
+												.getTime();
+										if (startTime >= endTime) {
+											alert("评卷结束时间必须晚于开始时间");
+											return;
+										} else {
+											loading('正在提交,请稍等...');
+											form.submit();
+										}
+									},
+									errorContainer : "#messageBox",
+									errorPlacement : function(error, element) {
+										$("#messageBox").text("输入有误,请先更正。");
+										if (element.is(":checkbox")
+												|| element.is(":radio")
+												|| element.parent().is(
+														".input-append")) {
+											error.appendTo(element.parent()
+													.parent());
+										} else {
+											error.insertAfter(element);
+										}
+									}
+								});
+
+				var forbiddenInfo = $
+				{
+					exam.forbiddenInfo
+				}
+				;
+				if (forbiddenInfo != null && forbiddenInfo == true) {
+					$("#forbiddenScoreDiv").show();
+				} else {
+					$("#forbiddenScore").prop("checked", false);
+					$("#forbiddenScoreDiv").hide();
+				}
+				$("#forbiddenInfo").change(function() {
+					if ($("#forbiddenInfo").is(':checked')) {
+						$("#forbiddenScoreDiv").show();
+					} else {
+						$("#forbiddenScore").prop("checked", false);
+						$("#forbiddenScoreDiv").hide();
 					}
-                },
-                errorContainer: "#messageBox",
-                errorPlacement: function (error, element) {
-                    $("#messageBox").text("输入有误,请先更正。");
-                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
-                        error.appendTo(element.parent().parent());
-                    } else {
-                        error.insertAfter(element);
-                    }
-                }
-            });
-            
-            var forbiddenInfo = ${exam.forbiddenInfo};
-            if (forbiddenInfo != null && forbiddenInfo ==true) {
-                $("#forbiddenScoreDiv").show();
-            } else {
-            	$("#forbiddenScore").prop("checked", false);
-                $("#forbiddenScoreDiv").hide();
-            }
-            $("#forbiddenInfo").change(function () {
-                if ($("#forbiddenInfo").is(':checked')) {
-                    $("#forbiddenScoreDiv").show();
-                } else {
-                	$("#forbiddenScore").prop("checked", false);
-                    $("#forbiddenScoreDiv").hide();
-                }
-            });
-        });
-    </script>
+				});
+			});
+</script>
+<style type="text/css">
+.form-horizontal .control-label {
+	float: left;
+	width: 210px;
+	padding-top: 5px;
+	text-align: right;
+}
+
+.form-horizontal .controls {
+	margin-left: 230px;
+}
+</style>
 </head>
 <body>
-<ul class="nav nav-tabs">
-    <li><a href="${ctx}/admin/exam/list">考试列表</a></li>
-    <li class="active"><a href="##">编辑考试</a></li>
-</ul>
-<br/>
-<form:form id="inputForm" modelAttribute="exam" action="${ctx}/admin/exam/edit" method="post" class="form-horizontal">
-    <form:hidden path="id"/>
-     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
-	 <input type="hidden" id="type" name="queryType" value="${query.type.value }"/>
-	 <input type="hidden" id="status" name="queryStatus" value="${query.status.value }"/>
-    <tags:message content="${message}"/>
-    <div class="control-group">
-        <label class="control-label">考试名称</label>
-        <div class="controls">
-            <form:input path="name" htmlEscape="false" maxlength="63" class="required"/>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">类型</label>
-        <div class="controls">
-            <select class="input-small" name="type" disabled="disabled" id="examType">
-                <option value="${exam.type.value}">${exam.type.name}</option>
-            </select>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">考试日期</label>
-        <div class="controls">
-            <input name="examTime" type="text" readonly="readonly" maxlength="20" class="Wdate required"
-                   value="${exam.examTime }"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/>
-        </div>
-    </div>
-    <div class="control-group">
+	<ul class="nav nav-tabs">
+		<li><a href="${ctx}/admin/exam/list">考试列表</a></li>
+		<li class="active"><a href="##">编辑考试</a></li>
+	</ul>
+	<br />
+	<form:form id="inputForm" modelAttribute="exam"
+		action="${ctx}/admin/exam/edit" method="post" class="form-horizontal">
+		<form:hidden path="id" />
+		<input type="hidden" id="pageNumber" name="pageNumber"
+			value="${query.pageNumber }" />
+		<input type="hidden" id="type" name="queryType"
+			value="${query.type.value }" />
+		<input type="hidden" id="status" name="queryStatus"
+			value="${query.status.value }" />
+		<tags:message content="${message}" />
+		<div class="control-group">
+			<label class="control-label">考试名称</label>
+			<div class="controls">
+				<form:input path="name" htmlEscape="false" maxlength="63"
+					class="required" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">类型</label>
+			<div class="controls">
+				<select class="input-small" name="type" disabled="disabled"
+					id="examType">
+					<option value="${exam.type.value}">${exam.type.name}</option>
+				</select>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">考试日期</label>
+			<div class="controls">
+				<input name="examTime" type="text" readonly="readonly"
+					maxlength="20" class="Wdate required" value="${exam.examTime }"
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});" />
+			</div>
+		</div>
+		<div class="control-group">
 			<label class="control-label">评卷开始日期</label>
 			<div class="controls">
-				<input name="startTime" type="text" readonly="readonly" maxlength="30" class="Wdate " id="startTime"
+				<input name="startTime" type="text" readonly="readonly"
+					maxlength="30" class="Wdate " id="startTime"
 					value="<fmt:formatDate value="${exam.startTime}" pattern="yyyy-MM-dd HH:mm:ss" />"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});" />
 			</div>
-	</div>
-	<div class="control-group">
+		</div>
+		<div class="control-group">
 			<label class="control-label">评卷结束日期</label>
 			<div class="controls">
-				<input name="endTime" type="text" readonly="readonly" maxlength="30" class="Wdate " id="endTime"
+				<input name="endTime" type="text" readonly="readonly" maxlength="30"
+					class="Wdate " id="endTime"
 					value="<fmt:formatDate value="${exam.endTime}" pattern="yyyy-MM-dd HH:mm:ss" />"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
-			</div>
-	</div>
-    <c:if test="${exam.type!='MULTI_MEDIA'}">
-    	<div class="control-group">
-	        <label class="control-label">评卷模式</label>
-	        <div class="controls">
-	            <select name="markMode">
-	                <option value="">不限</option>
-	                <c:forEach items="${markModeList}" var="item">
-	                    <option value="${item}"
-	                            <c:if test="${exam.markMode!=null && exam.markMode==item}">selected</c:if>>${item.name}</option>
-	                </c:forEach>
-	            </select>
-	        </div>
-    	</div>
-        <div class="control-group">
-            <label class="control-label">强制标记</label>
-            <div class="controls">
-                <input name="forceSpecialTag" type="checkbox" <c:if test="${exam.forceSpecialTag}">checked</c:if>/>
-            </div>
-        </div>
-    </c:if>
-	<div class="control-group">
-        <label class="control-label">禁止其他人查看考生信息</label>
-        <div class="controls">
-            <input name="forbiddenInfo" id="forbiddenInfo" type="checkbox" <c:if test="${exam.forbiddenInfo}">checked</c:if>/>
-        </div>
-    </div>
-	<div id="forbiddenScoreDiv">
-	<div class="control-group" >
-        <label class="control-label">禁止科组长成绩查询</label>
-        <div class="controls">
-            <input name="forbiddenScore" id="forbiddenScore" type="checkbox" <c:if test="${exam.forbiddenScore}">checked</c:if>/>
-        </div>
-    </div>
-    </div>
-   	<div class="control-group">
-        <label class="control-label">全卷多次复核不能同一账号</label>
-        <div class="controls">
-            <input name="inspectUnrepeated" id="inspectUnrepeated" type="checkbox" <c:if test="${exam.inspectUnrepeated}">checked</c:if>/>
-        </div>
-    </div>
-  	<div class="control-group">
-        <label class="control-label">全卷复核强制试卷拉到底部</label>
-        <div class="controls">
-            <input name="inspectScrollBottom" id="inspectScrollBottom" type="checkbox" <c:if test="${exam.inspectScrollBottom}">checked</c:if>/>
-        </div>
-    </div>
-   	<div class="control-group">
-        <label class="control-label">评卷端是否显示客观分</label>
-        <div class="controls">
-            <input name="showObjectiveScore" id="showObjectiveScore" type="checkbox" <c:if test="${exam.showObjectiveScore}">checked</c:if>/>
-        </div>
-    </div>
-    <div class="control-group">
-    	<label class="control-label">打回后显示原分值</label>
-		<div class="controls">
-		<input name="showReject" type="checkbox" <c:if test="${exam.showReject}">checked</c:if>/>
-		</div>
-	</div>
-    <div class="control-group">
-        <label class="control-label">回评卷数</label>
-        <div class="controls">
-            <input name="remarkCount" type="number" value="${exam.remarkCount }"
-                   oninput="if(value<0)value=0"  class="digits"/>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">及格分</label>
-        <div class="controls">
-            <input name="passScore" type="number" value="${passScore }" class="required"
-                   oninput="if(value<0)value=0"/>%
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">优秀分</label>
-        <div class="controls">
-            <input name="excellentScore" type="number" value="${excellentScore }" class="required"
-                   oninput="if(value<0)value=0"/>%
-        </div>
-    </div>
-    <c:if test="${exam.id!=null }">
-        <div class="control-group">
-            <label class="control-label">状态</label>
-            <div class="controls">
-                <select class="input-small" name="status">
-                    <c:forEach items="${statusList}" var="item">
-                        <option value="${item.value}"
-                                <c:if test="${item.value==exam.status.value}">selected</c:if>>${item.name}</option>
-                    </c:forEach>
-                </select>
-            </div>
-        </div>
-        <c:if test="${exam.type!='MULTI_MEDIA'}">
-            <div class="control-group">
-                <label class="control-label">原图遮盖</label>
-                <div class="controls">
-                    <input name="picList" id="picList" type="hidden"/>
-                    <a href="${ctx}/admin/exam/getSheetConfig?examId=${exam.id}" target="_blank" class="required"
-                       id="configuration" rel="opener">设置</a>
-                </div>
-            </div>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});" />
+			</div>
+		</div>
+		<c:if test="${exam.type!='MULTI_MEDIA'}">
 			<div class="control-group">
-		        <label class="control-label">原卷显示</label>
-		        <div class="controls">
-		        <input name="sheetView" type="checkbox" <c:if test="${exam.sheetView}">checked</c:if>/>
-		        </div>
+				<label class="control-label">评卷模式</label>
+				<div class="controls">
+					<select name="markMode">
+						<option value="">不限</option>
+						<c:forEach items="${markModeList}" var="item">
+							<option value="${item}"
+								<c:if test="${exam.markMode!=null && exam.markMode==item}">selected</c:if>>${item.name}</option>
+						</c:forEach>
+					</select>
+				</div>
 			</div>
 			<div class="control-group">
-		        <label class="control-label">评卷提交自动定位</label>
-		        <div class="controls">
-		        <input name="autoScroll" type="checkbox" <c:if test="${exam.autoScroll}">checked</c:if>/>*开启后,当前试卷评完后,下份试卷自动定位到上份试卷的第一个轨迹点
-		        </div>
+				<label class="control-label">强制标记</label>
+				<div class="controls">
+					<input name="forceSpecialTag" type="checkbox"
+						<c:if test="${exam.forceSpecialTag}">checked</c:if> />
+				</div>
 			</div>
+		</c:if>
+		<div class="control-group">
+			<label class="control-label">禁止其他人查看考生信息</label>
+			<div class="controls">
+				<input name="forbiddenInfo" id="forbiddenInfo" type="checkbox"
+					<c:if test="${exam.forbiddenInfo}">checked</c:if> />
+			</div>
+		</div>
+		<div id="forbiddenScoreDiv">
 			<div class="control-group">
-			        <label class="control-label">自动对切题卡</label>
-			        <div class="controls">
-			        <input name="enableSplit" type="checkbox" <c:if test="${exam.enableSplit}">checked</c:if>/>*选持自动对切题卡后,在阅卷端自动按照题卡的55%的比例进行对切,纸张大小A4时不生效
-			        </div>
-			</div>
-        </c:if>
-    </c:if>
-    <div class="control-group">
-        <label class="control-label">描述</label>
-        <div class="controls">
-            <form:textarea path="description" htmlEscape="false" rows="4" maxlength="127" class="input-xxlarge"/>
-        </div>
-    </div>
-    <div class="form-actions">
-        <input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
-        &nbsp;
-        <a href="javascript:" onclick="history.go(-1);"  class="btn">返回</a>
-    </div>
-</form:form>
+				<label class="control-label">禁止科组长成绩查询</label>
+				<div class="controls">
+					<input name="forbiddenScore" id="forbiddenScore" type="checkbox"
+						<c:if test="${exam.forbiddenScore}">checked</c:if> />
+				</div>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷多次复核不能同一账号</label>
+			<div class="controls">
+				<input name="inspectUnrepeated" id="inspectUnrepeated"
+					type="checkbox"
+					<c:if test="${exam.inspectUnrepeated}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷复核强制试卷拉到底部</label>
+			<div class="controls">
+				<input name="inspectScrollBottom" id="inspectScrollBottom"
+					type="checkbox"
+					<c:if test="${exam.inspectScrollBottom}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷复核进度100%时才能再次复核</label>
+			<div class="controls">
+				<input name="inspectRoundLimit" id="inspectRoundLimit"
+					type="checkbox"
+					<c:if test="${exam.inspectRoundLimit}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">评卷端是否显示客观分</label>
+			<div class="controls">
+				<input name="showObjectiveScore" id="showObjectiveScore"
+					type="checkbox"
+					<c:if test="${exam.showObjectiveScore}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">打回后显示原分值</label>
+			<div class="controls">
+				<input name="showReject" type="checkbox"
+					<c:if test="${exam.showReject}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">回评卷数</label>
+			<div class="controls">
+				<input name="remarkCount" type="number" value="${exam.remarkCount }"
+					oninput="if(value<0)value=0" class="digits" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">及格分</label>
+			<div class="controls">
+				<input name="passScore" type="number" value="${passScore }"
+					class="required" oninput="if(value<0)value=0" />%
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">优秀分</label>
+			<div class="controls">
+				<input name="excellentScore" type="number"
+					value="${excellentScore }" class="required"
+					oninput="if(value<0)value=0" />%
+			</div>
+		</div>
+		<c:if test="${exam.id!=null }">
+			<div class="control-group">
+				<label class="control-label">状态</label>
+				<div class="controls">
+					<select class="input-small" name="status">
+						<c:forEach items="${statusList}" var="item">
+							<option value="${item.value}"
+								<c:if test="${item.value==exam.status.value}">selected</c:if>>${item.name}</option>
+						</c:forEach>
+					</select>
+				</div>
+			</div>
+			<c:if test="${exam.type!='MULTI_MEDIA'}">
+				<div class="control-group">
+					<label class="control-label">原图遮盖</label>
+					<div class="controls">
+						<input name="picList" id="picList" type="hidden" /> <a
+							href="${ctx}/admin/exam/getSheetConfig?examId=${exam.id}"
+							target="_blank" class="required" id="configuration" rel="opener">设置</a>
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">原卷显示</label>
+					<div class="controls">
+						<input name="sheetView" type="checkbox"
+							<c:if test="${exam.sheetView}">checked</c:if> />
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">评卷提交自动定位</label>
+					<div class="controls">
+						<input name="autoScroll" type="checkbox"
+							<c:if test="${exam.autoScroll}">checked</c:if> />*开启后,当前试卷评完后,下份试卷自动定位到上份试卷的第一个轨迹点
+					</div>
+				</div>
+				<div class="control-group">
+					<label class="control-label">自动对切题卡</label>
+					<div class="controls">
+						<input name="enableSplit" type="checkbox"
+							<c:if test="${exam.enableSplit}">checked</c:if> />*选持自动对切题卡后,在阅卷端自动按照题卡的55%的比例进行对切,纸张大小A4时不生效
+					</div>
+				</div>
+			</c:if>
+		</c:if>
+		<div class="control-group">
+			<label class="control-label">描述</label>
+			<div class="controls">
+				<form:textarea path="description" htmlEscape="false" rows="4"
+					maxlength="127" class="input-xxlarge" />
+			</div>
+		</div>
+		<div class="form-actions">
+			<input id="btnSubmit" class="btn btn-primary" type="submit"
+				value="保 存" /> &nbsp; <a href="javascript:"
+				onclick="history.go(-1);" class="btn">返回</a>
+		</div>
+	</form:form>
 </body>
 </html>

+ 257 - 207
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examForm.jsp

@@ -1,221 +1,271 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<%@ page contentType="text/html;charset=UTF-8"%>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
 <html>
 <head>
-    <title>考试管理</title>
-    <meta name="decorator" content="default"/>
-    <%@include file="/WEB-INF/views/include/head.jsp" %>
-    <script type="text/javascript">
-        $(document).ready(function () {
-            $("#name").focus();
-            $("#inputForm").validate({
-                submitHandler: function (form) {
-                	var endTime = new Date($("#endTime").val()).getTime();
-					var startTime = new Date($("#startTime").val()).getTime();
-					if(startTime>=endTime){
-						alert("评卷结束时间必须晚于开始时间");
-						return;
-					}else{
-						loading('正在提交,请稍等...');
-						form.submit();
+<title>考试管理</title>
+<meta name="decorator" content="default" />
+<%@include file="/WEB-INF/views/include/head.jsp"%>
+<script type="text/javascript">
+	$(document).ready(
+			function() {
+				$("#name").focus();
+				$("#inputForm")
+						.validate(
+								{
+									submitHandler : function(form) {
+										var endTime = new Date($("#endTime")
+												.val()).getTime();
+										var startTime = new Date(
+												$("#startTime").val())
+												.getTime();
+										if (startTime >= endTime) {
+											alert("评卷结束时间必须晚于开始时间");
+											return;
+										} else {
+											loading('正在提交,请稍等...');
+											form.submit();
+										}
+									},
+									errorContainer : "#messageBox",
+									errorPlacement : function(error, element) {
+										$("#messageBox").text("输入有误,请先更正。");
+										if (element.is(":checkbox")
+												|| element.is(":radio")
+												|| element.parent().is(
+														".input-append")) {
+											error.appendTo(element.parent()
+													.parent());
+										} else {
+											error.insertAfter(element);
+										}
+									}
+								});
+				$("#examType").change(function() {
+					if ($("#examType").val() == '2') {
+						$("#forceSpecialTagDiv").hide();
+					} else {
+						$("#forceSpecialTagDiv").show();
 					}
-                },
-                errorContainer: "#messageBox",
-                errorPlacement: function (error, element) {
-                    $("#messageBox").text("输入有误,请先更正。");
-                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
-                        error.appendTo(element.parent().parent());
-                    } else {
-                        error.insertAfter(element);
-                    }
-                }
-            });
-            $("#examType").change(function () {
-                if ($("#examType").val() == '2') {
-                    $("#forceSpecialTagDiv").hide();
-                } else {
-                    $("#forceSpecialTagDiv").show();
-                }
-            });
-            $("#forbiddenScoreDiv").hide();
-            $("#forbiddenInfo").change(function () {
-                if ($("#forbiddenInfo").is(':checked')) {
-                    $("#forbiddenScoreDiv").show();
-                } else {
-                	$("#forbiddenScore").prop("checked", false);
-                    $("#forbiddenScoreDiv").hide();
-                }
-            });
-        });
-    </script>
+				});
+				$("#forbiddenScoreDiv").hide();
+				$("#forbiddenInfo").change(function() {
+					if ($("#forbiddenInfo").is(':checked')) {
+						$("#forbiddenScoreDiv").show();
+					} else {
+						$("#forbiddenScore").prop("checked", false);
+						$("#forbiddenScoreDiv").hide();
+					}
+				});
+			});
+</script>
+<style type="text/css">
+.form-horizontal .control-label {
+	float: left;
+	width: 210px;
+	padding-top: 5px;
+	text-align: right;
+}
+
+.form-horizontal .controls {
+	margin-left: 230px;
+}
+</style>
 </head>
 <body>
-<ul class="nav nav-tabs">
-    <li><a href="${ctx}/admin/exam/list">考试列表</a></li>
-    <li class="active"><a href="##">创建考试</a></li>
-</ul>
-<br/>
-<form:form id="inputForm" modelAttribute="exam" action="${ctx}/admin/exam/save" method="post" class="form-horizontal">
-    <tags:message content="${message}"/>
-    <div class="control-group">
-        <label class="control-label">考试名称</label>
-        <div class="controls">
-            <form:input path="name" htmlEscape="false" maxlength="63" class="required"/>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">类型</label>
-        <div class="controls">
-            <select class="input-small" name="type" id="examType">
-                <c:forEach items="${typeList}" var="item">
-                    <option value="${item.value}"
-                            <c:if test="${item.value==exam.type.value}">selected</c:if>>${item.name}</option>
-                </c:forEach>
-            </select>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">考试日期</label>
-        <div class="controls">
-            <input name="examTime" type="text" readonly="readonly" maxlength="20" class="Wdate required"
-                   value="${exam.examTime }"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});"/>
-        </div>
-    </div>
-    <div class="control-group">
+	<ul class="nav nav-tabs">
+		<li><a href="${ctx}/admin/exam/list">考试列表</a></li>
+		<li class="active"><a href="##">创建考试</a></li>
+	</ul>
+	<br />
+	<form:form id="inputForm" modelAttribute="exam"
+		action="${ctx}/admin/exam/save" method="post" class="form-horizontal">
+		<tags:message content="${message}" />
+		<div class="control-group">
+			<label class="control-label">考试名称</label>
+			<div class="controls">
+				<form:input path="name" htmlEscape="false" maxlength="63"
+					class="required" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">类型</label>
+			<div class="controls">
+				<select class="input-small" name="type" id="examType">
+					<c:forEach items="${typeList}" var="item">
+						<option value="${item.value}"
+							<c:if test="${item.value==exam.type.value}">selected</c:if>>${item.name}</option>
+					</c:forEach>
+				</select>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">考试日期</label>
+			<div class="controls">
+				<input name="examTime" type="text" readonly="readonly"
+					maxlength="20" class="Wdate required" value="${exam.examTime }"
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:true});" />
+			</div>
+		</div>
+		<div class="control-group">
 			<label class="control-label">评卷开始日期</label>
 			<div class="controls">
-				<input name="startTime" type="text" readonly="readonly" maxlength="30" class="Wdate " id="startTime"
+				<input name="startTime" type="text" readonly="readonly"
+					maxlength="30" class="Wdate " id="startTime"
 					value="<fmt:formatDate value="${exam.startTime}" pattern="yyyy-MM-dd HH:mm:ss" />"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});" />
 			</div>
-	</div>
-	<div class="control-group">
+		</div>
+		<div class="control-group">
 			<label class="control-label">评卷结束日期</label>
 			<div class="controls">
-				<input name="endTime" type="text" readonly="readonly" maxlength="30" class="Wdate " id="endTime"
+				<input name="endTime" type="text" readonly="readonly" maxlength="30"
+					class="Wdate " id="endTime"
 					value="<fmt:formatDate value="${exam.endTime}" pattern="yyyy-MM-dd HH:mm:ss" />"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
-			</div>
-	</div>
-	<div class="control-group">
-        <label class="control-label">评卷模式</label>
-        <div class="controls">
-            <select name="markMode">
-                <option value="">不限</option>
-                <c:forEach items="${markModeList}" var="item">
-                    <option value="${item}">${item.name}</option>
-                </c:forEach>
-            </select>
-        </div>
-    </div>
-    <div id="forceSpecialTagDiv">
-        <div class="control-group">
-            <label class="control-label">强制标记</label>
-            <div class="controls">
-                <input name="forceSpecialTag" type="checkbox" <c:if test="${exam.forceSpecialTag}">checked</c:if>/>
-            </div>
-        </div>
-    </div>
-	<div class="control-group">
-        <label class="control-label">禁止其他人查看考生信息</label>
-        <div class="controls">
-            <input name="forbiddenInfo" id="forbiddenInfo" type="checkbox" <c:if test="${exam.forbiddenInfo}">checked</c:if>/>
-        </div>
-    </div>
-	<div id="forbiddenScoreDiv">
-	<div class="control-group" >
-        <label class="control-label">禁止科组长成绩查询</label>
-        <div class="controls">
-            <input name="forbiddenScore" id="forbiddenScore" type="checkbox" <c:if test="${exam.forbiddenScore}">checked</c:if>/>
-        </div>
-    </div>
-    </div>
-       	<div class="control-group">
-        <label class="control-label">全卷多次复核不能同一账号</label>
-        <div class="controls">
-            <input name="inspectUnrepeated" id="inspectUnrepeated" type="checkbox" <c:if test="${exam.inspectUnrepeated}">checked</c:if>/>
-        </div>
-    </div>
-  	<div class="control-group">
-        <label class="control-label">全卷复核强制试卷拉到底部</label>
-        <div class="controls">
-            <input name="inspectScrollBottom" id="inspectScrollBottom" type="checkbox" <c:if test="${exam.inspectScrollBottom}">checked</c:if>/>
-        </div>
-    </div>
-   	<div class="control-group">
-        <label class="control-label">评卷端是否显示客观分</label>
-        <div class="controls">
-            <input name="showObjectiveScore" id="showObjectiveScore" type="checkbox" <c:if test="${exam.showObjectiveScore}">checked</c:if>/>
-        </div>
-    </div>
-    <div class="control-group">
-	        <label class="control-label">打回后显示原分值</label>
-	        <div class="controls">
-	        <input name="showReject" type="checkbox" <c:if test="${exam.showReject}">checked</c:if>/>
-	        </div>
-	</div>
-    <div class="control-group">
-        <label class="control-label">回评卷数</label>
-        <div class="controls">
-            <input name="remarkCount" type="number" value="${exam.remarkCount }"
-                   oninput="if(value<0)value=0" class="digits"/>
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">及格分</label>
-        <div class="controls">
-            <input name="passScore" type="number" value="60" class="required" oninput="if(value<0)value=0"/>%
-        </div>
-    </div>
-    <div class="control-group">
-        <label class="control-label">优秀分</label>
-        <div class="controls">
-            <input name="excellentScore" type="number" value="90" class="required" oninput="if(value<0)value=0"/>%
-        </div>
-    </div>
-    <c:if test="${exam.id!=null }">
-        <div class="control-group">
-            <label class="control-label">状态</label>
-            <div class="controls">
-                <select class="input-small" name="status">
-                    <c:forEach items="${statusList}" var="item">
-                        <option value="${item.value}"
-                                <c:if test="${item.value==exam.status.value}">selected</c:if>>${item.name}</option>
-                    </c:forEach>
-                </select>
-            </div>
-        </div>
-    </c:if>
-	<div class="control-group">
-	        <label class="control-label">原卷显示</label>
-	        <div class="controls">
-	        <input name="sheetView" type="checkbox" <c:if test="${exam.sheetView}">checked</c:if>/>
-	        </div>
-	</div>
-	<div class="control-group">
-	        <label class="control-label">评卷提交自动定位</label>
-	        <div class="controls">
-	        <input name="autoScroll" type="checkbox" <c:if test="${exam.autoScroll}">checked</c:if>/>*开启后,当前试卷评完后,下份试卷自动定位到上份试卷的第一个轨迹点
-	        </div>
-	</div>
-	<div class="control-group">
-	        <label class="control-label">自动对切题卡</label>
-	        <div class="controls">
-	        <input name="enableSplit" type="checkbox" <c:if test="${exam.enableSplit}">checked</c:if>/>*选持自动对切题卡后,在阅卷端自动按照题卡的55%的比例进行对切,纸张大小A4时不生效
-	        </div>
-	</div>
-    <div class="control-group">
-        <label class="control-label">描述</label>
-        <div class="controls">
-            <form:textarea path="description" htmlEscape="false" rows="4" maxlength="127" class="input-xxlarge"/>
-        </div>
-    </div>
-    <div class="form-actions">
-        <input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
-        &nbsp;
-        <a href="javascript:" onclick="history.go(-1);" class="btn">返回</a>
-    </div>
-</form:form>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">评卷模式</label>
+			<div class="controls">
+				<select name="markMode">
+					<option value="">不限</option>
+					<c:forEach items="${markModeList}" var="item">
+						<option value="${item}">${item.name}</option>
+					</c:forEach>
+				</select>
+			</div>
+		</div>
+		<div id="forceSpecialTagDiv">
+			<div class="control-group">
+				<label class="control-label">强制标记</label>
+				<div class="controls">
+					<input name="forceSpecialTag" type="checkbox"
+						<c:if test="${exam.forceSpecialTag}">checked</c:if> />
+				</div>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">禁止其他人查看考生信息</label>
+			<div class="controls">
+				<input name="forbiddenInfo" id="forbiddenInfo" type="checkbox"
+					<c:if test="${exam.forbiddenInfo}">checked</c:if> />
+			</div>
+		</div>
+		<div id="forbiddenScoreDiv">
+			<div class="control-group">
+				<label class="control-label">禁止科组长成绩查询</label>
+				<div class="controls">
+					<input name="forbiddenScore" id="forbiddenScore" type="checkbox"
+						<c:if test="${exam.forbiddenScore}">checked</c:if> />
+				</div>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷多次复核不能同一账号</label>
+			<div class="controls">
+				<input name="inspectUnrepeated" id="inspectUnrepeated"
+					type="checkbox"
+					<c:if test="${exam.inspectUnrepeated}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷复核强制试卷拉到底部</label>
+			<div class="controls">
+				<input name="inspectScrollBottom" id="inspectScrollBottom"
+					type="checkbox"
+					<c:if test="${exam.inspectScrollBottom}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">全卷复核进度100%时才能再次复核</label>
+			<div class="controls">
+				<input name="inspectRoundLimit" id="inspectRoundLimit"
+					type="checkbox"
+					<c:if test="${exam.inspectRoundLimit}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">评卷端是否显示客观分</label>
+			<div class="controls">
+				<input name="showObjectiveScore" id="showObjectiveScore"
+					type="checkbox"
+					<c:if test="${exam.showObjectiveScore}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">打回后显示原分值</label>
+			<div class="controls">
+				<input name="showReject" type="checkbox"
+					<c:if test="${exam.showReject}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">回评卷数</label>
+			<div class="controls">
+				<input name="remarkCount" type="number" value="${exam.remarkCount }"
+					oninput="if(value<0)value=0" class="digits" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">及格分</label>
+			<div class="controls">
+				<input name="passScore" type="number" value="60" class="required"
+					oninput="if(value<0)value=0" />%
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">优秀分</label>
+			<div class="controls">
+				<input name="excellentScore" type="number" value="90"
+					class="required" oninput="if(value<0)value=0" />%
+			</div>
+		</div>
+		<c:if test="${exam.id!=null }">
+			<div class="control-group">
+				<label class="control-label">状态</label>
+				<div class="controls">
+					<select class="input-small" name="status">
+						<c:forEach items="${statusList}" var="item">
+							<option value="${item.value}"
+								<c:if test="${item.value==exam.status.value}">selected</c:if>>${item.name}</option>
+						</c:forEach>
+					</select>
+				</div>
+			</div>
+		</c:if>
+		<div class="control-group">
+			<label class="control-label">原卷显示</label>
+			<div class="controls">
+				<input name="sheetView" type="checkbox"
+					<c:if test="${exam.sheetView}">checked</c:if> />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">评卷提交自动定位</label>
+			<div class="controls">
+				<input name="autoScroll" type="checkbox"
+					<c:if test="${exam.autoScroll}">checked</c:if> />*开启后,当前试卷评完后,下份试卷自动定位到上份试卷的第一个轨迹点
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">自动对切题卡</label>
+			<div class="controls">
+				<input name="enableSplit" type="checkbox"
+					<c:if test="${exam.enableSplit}">checked</c:if> />*选持自动对切题卡后,在阅卷端自动按照题卡的55%的比例进行对切,纸张大小A4时不生效
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">描述</label>
+			<div class="controls">
+				<form:textarea path="description" htmlEscape="false" rows="4"
+					maxlength="127" class="input-xxlarge" />
+			</div>
+		</div>
+		<div class="form-actions">
+			<input id="btnSubmit" class="btn btn-primary" type="submit"
+				value="保 存" /> &nbsp; <a href="javascript:"
+				onclick="history.go(-1);" class="btn">返回</a>
+		</div>
+	</form:form>
 </body>
 </html>

+ 20 - 7
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspectedList.jsp

@@ -409,14 +409,27 @@
     		 alert('请选择科目');
     		 return;
     	}
-    	if (!confirm('系统将生成新的复核任务,是否确认?')) {
+    	$.post('${ctx}/admin/exam/inspected/nextround/check', {subjectCode: subjectCode}, function (result) {
+            if(result.status==-1){
+            	alert(result.message);
+            	return;
+            }else if(result.status==0){
+            	if (!confirm(result.message)) {
+                    return;
+                }
+            }else if(result.status==1){
+            	if (!confirm('系统将生成新的复核任务,是否确认?')) {
+                    return;
+                }
+            }else{
+            	alert("系统错误");
+            	return;
+            }
+            $("#cancelForm").attr('target', "_self");
+            $("#cancelForm").attr('action', '${ctx}/admin/exam/inspected/nextround?subjectCode='+subjectCode);
+            $("#cancelForm").submit();
             return;
-        }
-    	
-        $("#cancelForm").attr('target', "_self");
-        $("#cancelForm").attr('action', '${ctx}/admin/exam/inspected/nextround?subjectCode='+subjectCode);
-        $("#cancelForm").submit();
-        return false;
+        });
     }
     $("#listBtnExport").click(function () {
     	$("#searchForm").attr("action", "${ctx}/admin/exam/inspected/list/export");