xiatian 1 year ago
parent
commit
aa40b0bb76
20 changed files with 262 additions and 31 deletions
  1. 31 7
      stmms-web/src/main/webapp/WEB-INF/views/modules/basic/rolePrivilege.jsp
  2. 12 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/arbitrateList.jsp
  3. 2 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditFull.jsp
  4. 2 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditSimple.jsp
  5. 15 3
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupList.jsp
  6. 4 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspectedInfo.jsp
  7. 6 3
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspectedList.jsp
  8. 15 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp
  9. 18 6
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/markInfo.jsp
  10. 13 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/markerList.jsp
  11. 2 2
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemHistory.jsp
  12. 12 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/qualityList.jsp
  13. 2 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/rejectHistory.jsp
  14. 2 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/rejectList.jsp
  15. 1 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreList.jsp
  16. 4 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreVerifyPage.jsp
  17. 4 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreVerifyQuery.jsp
  18. 12 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/trialList.jsp
  19. 46 2
      stmms-web/src/main/webapp/sql/stmms_ft.sql
  20. 59 5
      stmms-web/src/main/webapp/sql/upgrade/1.3.14.sql

+ 31 - 7
stmms-web/src/main/webapp/WEB-INF/views/modules/basic/rolePrivilege.jsp

@@ -26,17 +26,41 @@
 					showIcon:false, 
 				},
 				callback:{
-					beforeClick:function(id, node){
-						tree.checkNode(node, !node.enable, true, true);
-						return false;
+					onCheck:function(ev,id, node){
+						if('exam_mark'==node.code&&node.enable){
+							var node = tree.getNodeByParam("code", "exam_mark-mark");
+							tree.checkNode(node, true, true, true);
+						}
+						if('exam_mark-mark'==node.code&&!node.enable){
+							var node = tree.getNodeByParam("code", "exam_mark");
+							tree.checkNode(node, false, true, true);
+						}
+						if('exam_reject_list'==node.code&&node.enable){
+							var node = tree.getNodeByParam("code", "exam_reject_list-paper");
+							tree.checkNode(node, true, true, true);
+						}
+						if('exam_reject_list-paper'==node.code&&!node.enable){
+							var node = tree.getNodeByParam("code", "exam_reject_list");
+							tree.checkNode(node, false, true, true);
+						}
+						if('exam_inspected_info'==node.code&&node.enable){
+							var node = tree.getNodeByParam("code", "exam_inspected_info-info");
+							tree.checkNode(node, true, true, true);
+						}
+						if('exam_inspected_info-info'==node.code&&!node.enable){
+							var node = tree.getNodeByParam("code", "exam_inspected_info");
+							tree.checkNode(node, false, true, true);
+						}
 					}
 				}
 			};
 		$(document).ready(function(){
-			//$.get("${ctx}/admin/basic/role/info/privilege/data?schoolId=${schoolId}&role=${roleCode}&t="+new Date().getTime(), function(zNodes){
-				// 初始化树结构
-				tree = $.fn.zTree.init($("#tree"), setting, JSON.parse('${privilegeList}'));
-			//});
+			// 初始化树结构
+			tree = $.fn.zTree.init($("#tree"), setting, JSON.parse('${privilegeList}'));
+			var nodes = tree.getNodesByParam("level", 0);
+			for(var i=0; i<nodes.length; i++) {
+				tree.expandNode(nodes[i], true, false, false);
+			}
 		});
 		function save() {
 			var checkedNodes = tree.getCheckedNodes();

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

@@ -9,13 +9,25 @@
 </head>
 <body>
     <ul class="nav nav-tabs">
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
     	<li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+    	</c:if>
+    	<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
         <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
         <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.subjectCode}">评卷员管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
         <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.subjectCode}">试评管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
         <li><a href="${ctx}/admin/exam/library?subjectCode=${query.subjectCode}">任务管理</a></li>
+        </c:if>
         <li class="active"><a href="##">仲裁管理</a></li>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
         <li><a href="${ctx}/admin/exam/quality?subjectCode=${query.subjectCode}">质量监控</a></li>
+        </c:if>
     </ul>
 	<form id="searchForm" action="${ctx}/admin/exam/arbitrate" method="post" class="breadcrumb form-search">
 	    <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>

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

@@ -227,7 +227,9 @@
     </div>
     <div class="form-actions">
         <a id="btnSubmit" href="##" class="btn btn-primary">保 存</a>&nbsp;
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group-delete')}">
         <a href="${ctx}/admin/exam/group/delete?subjectCode=${group.subjectCode}&number=${group.number}" data-number="${group.number}" class="delete-button btn btn-danger">删除</a>&nbsp;
+        </c:if>
         <a id="btnPre" class="btn">上一步</a>
     </div>
 </div>

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

@@ -158,7 +158,9 @@
             </div>
         </div>
     <div class="form-actions">
+    	<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group-reset_edit')}">
     	<a class="btn" href="${ctx}/admin/exam/group/edit-full?subjectCode=${group.subjectCode}&number=${group.number}">重置修改</a>&nbsp;
+        </c:if>
         <a id="btnSubmit" href="##" class="btn btn-primary">保 存</a>
     </div>
 </form:form>

+ 15 - 3
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupList.jsp

@@ -12,13 +12,25 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
+<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
     <li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+    </c:if>
     <li class="active"><a href="##">分组管理</a></li>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
     <li><a href="${ctx}/admin/exam/marker?subjectCode=${subject.code}">评卷员管理</a></li>
+    </c:if>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
     <li><a href="${ctx}/admin/exam/trial?subjectCode=${subject.code}">试评管理</a></li>
+    </c:if>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
     <li><a href="${ctx}/admin/exam/library?subjectCode=${subject.code}">任务管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
     <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${subject.code}">仲裁管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
     <li><a href="${ctx}/admin/exam/quality?subjectCode=${subject.code}">质量监控</a></li>
+    </c:if>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/group" method="post" class="breadcrumb form-search">
     <div>
@@ -31,7 +43,7 @@
         &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
 
-        <c:if test="${web_user.schoolAdmin==true }">
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group-add')}">
 	            &nbsp;
 	 			<a href="${ctx}/admin/exam/group/add?subjectCode=${subject.code}" class="btn">新增</a>
         </c:if>
@@ -109,11 +121,11 @@
                             <a href="${ctx}/admin/exam/group/reset?subjectCode=${result.subjectCode}&number=${result.number}" data-number="${result.number}" class="reset-button">重置</a>
                         </c:if> --%>
                         &nbsp;
-                        <c:if test="${examType!='MULTI_MEDIA' && web_user.schoolAdmin==true}">
+                        <c:if test="${examType!='MULTI_MEDIA' && fn:contains(role_privilege_codes, 'exam_mark-group-edit')}">
                             <a href="${ctx}/admin/exam/group/edit-simple?subjectCode=${result.subjectCode}&number=${result.number}" data-number="${result.number}" class="edit-button">修改</a>
                             &nbsp;
                         </c:if>
-                        <c:if test="${examType=='MULTI_MEDIA' && web_user.schoolAdmin==true}">
+                        <c:if test="${examType=='MULTI_MEDIA' && fn:contains(role_privilege_codes, 'exam_mark-group-delete')}">
                             <a href="${ctx}/admin/exam/group/delete?subjectCode=${result.subjectCode}&number=${result.number}" data-number="${result.number}" class="delete-button">删除</a>
                             &nbsp;
                         </c:if>

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

@@ -11,8 +11,12 @@
 <body>
     <ul class="nav nav-tabs">
         <li class="active"><a href="##">成绩复核进度</a></li>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-list')}">
         <li><a href="${ctx}/admin/exam/inspected/list">全卷复核</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-score_verify')}">
         <li><a href="${ctx}/admin/exam/score/verify/init">成绩校验</a></li>
+        </c:if>
     </ul>
      <c:if test="${web_user.schoolAdmin==true}">
     	<div id="main" style="width: 1000px;height:400px;"></div>

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

@@ -20,9 +20,13 @@
     </form>
 </div>
 <ul class="nav nav-tabs">
+<c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-info')}">
         <li><a href="${ctx}/admin/exam/inspected/info">成绩复核进度</a></li>
+        </c:if>
         <li class="active"><a href="##">全卷复核</a></li>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-score_verify')}">
         <li><a href="${ctx}/admin/exam/score/verify/init">成绩校验</a></li>
+        </c:if>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/inspected/list" method="post" class="breadcrumb form-search" >
     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
@@ -97,11 +101,10 @@
         <input id="btnStart" class="btn" type="button" value="批量复核:${inspectCount }" onclick="goStart()"/>
         </c:if>
         &nbsp;
-        <c:if test="${!empty showNextInspect}">
-        &nbsp;
+        <c:if test="${!empty showNextInspect &&fn:contains(role_privilege_codes, 'exam_inspected_info-next_round')}">
         <input id="btnNextRound" class="btn" type="button" value="再次复核" onclick="nextRound()"/>
-        </c:if>
         &nbsp;
+        </c:if>
          <input id="btnCancel" class="btn" type="button" value="取消复核" onclick="goCancel()"/>
           &nbsp;
         <c:if test="${exam.status=='FINISH' && web_user.schoolAdmin==true}">

+ 15 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -88,13 +88,25 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
+<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
 	<li><a href="${ctx}/admin/exam/mark?subjectCode=${query.subjectCode}">评卷进度</a></li>
+	</c:if>
+	<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
     <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
+    </c:if>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
     <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.subjectCode}">评卷员管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
     <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.subjectCode}">试评管理</a></li>
+    </c:if>
     <li class="active"><a href="##">任务管理</a></li>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
     <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.subjectCode}">仲裁管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
     <li><a href="${ctx}/admin/exam/quality?subjectCode=${query.subjectCode}">质量监控</a></li>
+    </c:if>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/library" method="post" class="breadcrumb form-search">
     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
@@ -162,7 +174,7 @@
         &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
         &nbsp;
-        <c:if test="${examType!='MULTI_MEDIA' && inspectedCount!=null && inspectedCount>0}">
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library-inspect') && examType!='MULTI_MEDIA' && inspectedCount!=null && inspectedCount>0}">
             <a id="btnInspected" target="_blank" href="${ctx}/web/admin/exam/library/inspected/start?subjectCode=${query.subjectCode}&groupNumber=${query.groupNumber}&markerId=${query.markerId}&examNumber=${query.examNumber}&secretNumber=${query.secretNumber}&startScore=${query.startScore}&endScore=${query.endScore}&questionScore=${query.questionScore}&unselective=${query.unselective}"
              class="btn">待复核:${inspectedCount }</a>
         </c:if>
@@ -284,7 +296,9 @@
                 </div>
             </div>
             <div style="text-align:center;">
+            <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library-reject')}">
                 <a class="btn btn-primary task-btn">打回</a>
+                </c:if>
                 &nbsp;
                 <a class="btn task-cancel">取消</a>
             </div>

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

@@ -11,12 +11,24 @@
 <body>
     <ul class="nav nav-tabs">
         <li class="active"><a href="##">评卷进度</a></li>
-        <li><a href="${ctx}/admin/exam/group?subjectCode=${query.code}">分组管理</a></li>
-        <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.code}">评卷员管理</a></li>
-        <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.code}">试评管理</a></li>
-        <li><a href="${ctx}/admin/exam/library?subjectCode=${query.code}">任务管理</a></li>
-        <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.code}">仲裁管理</a></li>
-        <li><a href="${ctx}/admin/exam/quality?subjectCode=${query.code}">质量监控</a></li>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
+        	<li><a href="${ctx}/admin/exam/group?subjectCode=${query.code}">分组管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
+        	<li><a href="${ctx}/admin/exam/marker?subjectCode=${query.code}">评卷员管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
+        	<li><a href="${ctx}/admin/exam/trial?subjectCode=${query.code}">试评管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
+        	<li><a href="${ctx}/admin/exam/library?subjectCode=${query.code}">任务管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
+        	<li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.code}">仲裁管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
+        	<li><a href="${ctx}/admin/exam/quality?subjectCode=${query.code}">质量监控</a></li>
+        </c:if>
     </ul>
      <c:if test="${web_user.schoolAdmin==true}">
     	<div id="main" style="width: 1000px;height:400px;"></div>

+ 13 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/markerList.jsp

@@ -93,13 +93,25 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
+<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
     <li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+    </c:if>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
     <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
+    </c:if>
     <li class="active"><a href="##">评卷员管理</a></li>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
     <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.subjectCode}">试评管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
     <li><a href="${ctx}/admin/exam/library?subjectCode=${query.subjectCode}">任务管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
     <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.subjectCode}">仲裁管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
     <li><a href="${ctx}/admin/exam/quality?subjectCode=${query.subjectCode}">质量监控</a></li>
+    </c:if>
 </ul>
 <div id="importBox" class="hide">
     <form id="importForm" action="${ctx}/admin/exam/marker/import" method="post" enctype="multipart/form-data"
@@ -195,7 +207,7 @@
             	<c:if test="${marker.reseting==true}">
                     正在重置
                 </c:if>
-                <c:if test="${web_user.schoolAdmin==true && marker.reseting==false}">
+                <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker-reset') && marker.reseting==false}">
                  &nbsp;<a href="javascript:void(0)" class="reset-button" data-id="${marker.id}">重置</a>
                 </c:if>
             </td>

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemHistory.jsp

@@ -52,7 +52,7 @@
         &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
         
-        <c:if test="${query.status=='WAITING'}">
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_problem_history-batch_reset') && query.status=='WAITING'}">
         <input id="btnRest" class="btn" type="button" value="批量重置" onclick="goRest()"/>
         </c:if>
     </div>
@@ -117,7 +117,7 @@
                 <%--  <a class="json-link" href="${ctx}/admin/exam/library/getJson?studentId=${result.id}&groupNumber=${result.number}" target="_blank">原图</a>--%>
                	<a href="${ctx}/web/admin/exam/track/library?libraryId=${result.libraryId}&subjectCode=${result.subjectCode}" target="_blank">试卷详情</a>
                 &nbsp;
-                <c:if test="${result.problemUserName==null}">
+                <c:if test="${fn:contains(role_privilege_codes, 'exam_problem_history-reset') && result.problemUserName==null}">
 	                <a href="##" data-id="${result.libraryId}" class="back-link">重置</a>
                 </c:if>
             </td>

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

@@ -9,12 +9,24 @@
 </head>
 <body>
     <ul class="nav nav-tabs">
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
 		<li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+		</c:if>
+		<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
         <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
         <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.subjectCode}">评卷员管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-trial')}">
         <li><a href="${ctx}/admin/exam/trial?subjectCode=${query.subjectCode}">试评管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
         <li><a href="${ctx}/admin/exam/library?subjectCode=${query.subjectCode}">任务管理</a></li>
+        </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
         <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.subjectCode}">仲裁管理</a></li>
+        </c:if>
         <li class="active"><a href="##">质量监控</a></li>
     </ul>
     

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

@@ -12,7 +12,9 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
+ <c:if test="${fn:contains(role_privilege_codes, 'exam_reject_list-paper')}">
     <li><a href="${ctx}/admin/exam/reject/list">打回卷</a></li>
+    </c:if>
     <li class="active"><a href="##">打回记录</a></li>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reject/history" method="post" class="breadcrumb form-search">

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

@@ -13,7 +13,9 @@
 <body>
 <ul class="nav nav-tabs">
     <li class="active"><a href="##">打回卷</a></li>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_reject_list-history')}">
     <li><a href="${ctx}/admin/exam/reject/history">打回记录</a></li>
+    </c:if>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reject/list" method="post" class="breadcrumb form-search">
     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreList.jsp

@@ -72,7 +72,7 @@
         &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
         &nbsp;
-        <c:if test="${web_user.schoolAdmin==true || forbiddenInfo==false}">
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_score-export') || forbiddenInfo==false}">
             <input id="export-button" class="btn" type="button" value="导出" onclick="goExport()"
                    <c:if test="${!enableExport}">disabled</c:if> title="${exportMessage}"/>
         </c:if>

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

@@ -14,8 +14,12 @@
 </head>
 <body>
 	<ul class="nav nav-tabs">
+	<c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-info')}">
 		<li><a href="${ctx}/admin/exam/inspected/info">成绩复核进度</a></li>
+		</c:if>
+		<c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-list')}">
 		<li><a href="${ctx}/admin/exam/inspected/list">全卷复核</a></li>
+		</c:if>
 		<li class="active"><a href="##">成绩校验</a></li>
 	</ul>
 	<form id="searchForm" action="#"

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

@@ -14,8 +14,12 @@
 </head>
 <body>
 	<ul class="nav nav-tabs">
+	<c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-info')}">
 		<li><a href="${ctx}/admin/exam/inspected/info">成绩复核进度</a></li>
+		</c:if>
+		<c:if test="${fn:contains(role_privilege_codes, 'exam_inspected_info-list')}">
 		<li><a href="${ctx}/admin/exam/inspected/list">全卷复核</a></li>
+		</c:if>
 		<li class="active"><a href="##">成绩校验</a></li>
 	</ul>
 	<form id="searchForm" action="${ctx}/admin/exam/score/verify/page"

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

@@ -12,13 +12,25 @@
 </head>
 <body>
 <ul class="nav nav-tabs">
+<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-mark')}">
 	<li><a href="${ctx}/admin/exam/mark?subjectCode=${subject.code}">评卷进度</a></li>
+	</c:if>
+	<c:if test="${fn:contains(role_privilege_codes, 'exam_mark-group')}">
     <li><a href="${ctx}/admin/exam/group?subjectCode=${query.subjectCode}">分组管理</a></li>
+    </c:if>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-marker')}">
     <li><a href="${ctx}/admin/exam/marker?subjectCode=${query.subjectCode}">评卷员管理</a></li>
+    </c:if>
     <li class="active"><a href="##">试评管理</a></li>
+    <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-library')}">
     <li><a href="${ctx}/admin/exam/library?subjectCode=${query.subjectCode}">任务管理</a></li>
+     </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-arbitrate')}">
     <li><a href="${ctx}/admin/exam/arbitrate?subjectCode=${query.subjectCode}">仲裁管理</a></li>
+    </c:if>
+        <c:if test="${fn:contains(role_privilege_codes, 'exam_mark-quality')}">
     <li><a href="${ctx}/admin/exam/quality?subjectCode=${query.subjectCode}">质量监控</a></li>
+    </c:if>
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/trial" method="post" class="breadcrumb form-search">
     <input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>

+ 46 - 2
stmms-web/src/main/webapp/sql/stmms_ft.sql

@@ -1223,16 +1223,60 @@ INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `pr
 VALUES ('exam_scan', '扫描进度', 'root_code', 'MENU', '/admin/exam/scan', 50,1,'icon-print','index.scan');
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_mark', '评卷管理', 'root_code', 'MENU', '/admin/exam/mark', 60,1,'icon-pencil','index.mark');
-INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `seq`,`level`)
-VALUES ('arbitrate_exam_number', '仲裁管理准考证号显示', 'exam_mark', 'BUTTON', 1,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-mark', '评卷进度', 'exam_mark', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group', '分组管理', 'exam_mark', 'BUTTON', 2,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-add', '新增', 'exam_mark-group', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-edit', '修改', 'exam_mark-group', 'BUTTON', 3,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-reset_edit', '重置修改', 'exam_mark-group', 'BUTTON', 3,3);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-delete', '删除', 'exam_mark-group', 'BUTTON', 3,4);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-marker', '评卷员管理', 'exam_mark', 'BUTTON', 2,3);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-marker-reset', '重置', 'exam_mark-marker', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-trial', '试评管理', 'exam_mark', 'BUTTON', 2,4);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library', '任务管理', 'exam_mark', 'BUTTON', 2,5);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library-inspect', '复核', 'exam_mark-library', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library-reject', '打回', 'exam_mark-library', 'BUTTON', 3,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-arbitrate', '仲裁管理', 'exam_mark', 'BUTTON', 2,6);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-quality', '质量监控', 'exam_mark', 'BUTTON', 2,7);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_reject_list', '打回试卷', 'root_code', 'MENU', '/admin/exam/reject/list', 70,1,'icon-bookmark','index.reject');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_reject_list-paper', '打回卷', 'exam_reject_list', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_reject_list-history', '打回记录', 'exam_reject_list', 'BUTTON', 2,2);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_problem_history', '问题试卷', 'root_code', 'MENU', '/admin/exam/problem/history', 80,1,'icon-tag','index.problem');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_problem_history-reset', '重置', 'exam_problem_history', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_problem_history-batch_reset', '批量重置', 'exam_problem_history', 'BUTTON', 2,2);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_inspected_info', '成绩复核', 'root_code', 'MENU', '/admin/exam/inspected/info', 90,1,'icon-flag','index.inspected');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-info', '成绩复核进度', 'exam_inspected_info', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-list', '全卷复核', 'exam_inspected_info', 'BUTTON', 2,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-next_round', '再次复核', 'exam_inspected_info-list', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-score_verify', '成绩校验', 'exam_inspected_info', 'BUTTON', 2,3);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_score', '成绩查询', 'root_code', 'MENU', '/admin/exam/score', 100,1,'icon-search','index.score');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_score-export', '导出', 'exam_score', 'BUTTON', 2,1);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_report_subject', '总量分析', 'root_code', 'MENU', '/admin/exam/reportSubject', 110,1,'icon-signal','index.report.total');
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)

+ 59 - 5
stmms-web/src/main/webapp/sql/upgrade/1.3.14.sql

@@ -123,14 +123,60 @@ INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `pr
 VALUES ('exam_scan', '扫描进度', 'root_code', 'MENU', '/admin/exam/scan', 50,1,'icon-print','index.scan');
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_mark', '评卷管理', 'root_code', 'MENU', '/admin/exam/mark', 60,1,'icon-pencil','index.mark');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-mark', '评卷进度', 'exam_mark', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group', '分组管理', 'exam_mark', 'BUTTON', 2,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-add', '新增', 'exam_mark-group', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-edit', '修改', 'exam_mark-group', 'BUTTON', 3,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-reset_edit', '重置修改', 'exam_mark-group', 'BUTTON', 3,3);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-group-delete', '删除', 'exam_mark-group', 'BUTTON', 3,4);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-marker', '评卷员管理', 'exam_mark', 'BUTTON', 2,3);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-marker-reset', '重置', 'exam_mark-marker', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-trial', '试评管理', 'exam_mark', 'BUTTON', 2,4);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library', '任务管理', 'exam_mark', 'BUTTON', 2,5);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library-inspect', '复核', 'exam_mark-library', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-library-reject', '打回', 'exam_mark-library', 'BUTTON', 3,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-arbitrate', '仲裁管理', 'exam_mark', 'BUTTON', 2,6);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_mark-quality', '质量监控', 'exam_mark', 'BUTTON', 2,7);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_reject_list', '打回试卷', 'root_code', 'MENU', '/admin/exam/reject/list', 70,1,'icon-bookmark','index.reject');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_reject_list-paper', '打回卷', 'exam_reject_list', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_reject_list-history', '打回记录', 'exam_reject_list', 'BUTTON', 2,2);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_problem_history', '问题试卷', 'root_code', 'MENU', '/admin/exam/problem/history', 80,1,'icon-tag','index.problem');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_problem_history-reset', '重置', 'exam_problem_history', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_problem_history-batch_reset', '批量重置', 'exam_problem_history', 'BUTTON', 2,2);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_inspected_info', '成绩复核', 'root_code', 'MENU', '/admin/exam/inspected/info', 90,1,'icon-flag','index.inspected');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-info', '成绩复核进度', 'exam_inspected_info', 'BUTTON', 2,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-list', '全卷复核', 'exam_inspected_info', 'BUTTON', 2,2);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-next_round', '再次复核', 'exam_inspected_info-list', 'BUTTON', 3,1);
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_inspected_info-score_verify', '成绩校验', 'exam_inspected_info', 'BUTTON', 2,3);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_score', '成绩查询', 'root_code', 'MENU', '/admin/exam/score', 100,1,'icon-search','index.score');
+INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`,`level`, `seq`)
+VALUES ('exam_score-export', '导出', 'exam_score', 'BUTTON', 2,1);
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
 VALUES ('exam_report_subject', '总量分析', 'root_code', 'MENU', '/admin/exam/reportSubject', 110,1,'icon-signal','index.report.total');
 INSERT INTO `b_privilege` ( `code`, `name`, `parent_code`, `privilege_type`, `privilege_uri`, `seq`,`level`,`icon`,`i18n`)
@@ -145,17 +191,25 @@ SELECT s.id,'SCHOOL_ADMIN',p.`code`,1 from b_privilege p join b_school s;
 
 INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)
 SELECT s.id,'SUBJECT_HEADER',p.`code`,1 from b_privilege p join b_school s   
-where p.`code` in('exam_mark','exam_reject_list','exam_problem_history'
-,'exam_inspected_info','exam_score','exam_report_subject','exam_report_subject_range');
+where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'
+,'exam_mark-library-inspect','exam_mark-library-reject','exam_mark-arbitrate','exam_mark-quality','exam_reject_list'
+,'exam_reject_list-paper','exam_reject_list-history','exam_problem_history','exam_problem_history-reset'
+,'exam_problem_history-batch-reset'
+,'exam_inspected_info','exam_inspected_info-info','exam_inspected_info-list','exam_inspected_info-next_round'
+,'exam_score','exam_report_subject','exam_report_subject_range');
 
 INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)
 SELECT s.id,'COLLEGE_ADMIN',p.`code`,1 from b_privilege p join b_school s   
-where p.`code` in('exam_mark','exam_reject_list','exam_problem_history'
-,'exam_inspected_info','exam_score','exam_report_subject','exam_report_subject_range');
+where p.`code` in('exam_mark','exam_mark-mark','exam_mark-group','exam_mark-marker','exam_mark-trial','exam_mark-library'
+,'exam_mark-library-inspect','exam_mark-library-reject','exam_mark-arbitrate','exam_mark-quality','exam_reject_list'
+,'exam_reject_list-paper','exam_reject_list-history','exam_problem_history','exam_problem_history-reset'
+,'exam_problem_history-batch-reset'
+,'exam_inspected_info','exam_inspected_info-info','exam_inspected_info-list','exam_inspected_info-next_round'
+,'exam_score','exam_report_subject','exam_report_subject_range');
 
 INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)
 SELECT s.id,'INSPECTOR',p.`code`,1 from b_privilege p join b_school s   
-where p.`code` in('exam_inspected_info');
+where p.`code` in('exam_inspected_info','exam_inspected_info-info','exam_inspected_info-list','exam_inspected_info-next_round');
 
 INSERT INTO b_role_privilege (`school_id`, `role_code`, `privilege_code`,`enable`)
 SELECT s.id,'SCHOOL_VIEWER',p.`code`,1 from b_privilege p join b_school s