ting.yin преди 4 години
родител
ревизия
4f6c9adc83
променени са 16 файла, в които са добавени 89 реда и са изтрити 47 реда
  1. 2 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamDao.java
  2. 1 1
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamService.java
  3. 2 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamServiceImpl.java
  4. 1 1
      stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/MarkerExcelError.java
  5. 2 2
      stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/Role.java
  6. 2 2
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/BaseExamController.java
  7. 4 4
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ExamController.java
  8. 3 3
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java
  9. 7 7
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/interceptor/AdminInterceptor.java
  10. 19 9
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/SubjectUserController.java
  11. 6 4
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/UserController.java
  12. 1 1
      stmms-web/src/main/java/cn/com/qmth/stmms/common/controller/LoginController.java
  13. 7 3
      stmms-web/src/main/java/cn/com/qmth/stmms/common/domain/WebUser.java
  14. 4 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examIndex.jsp
  15. 2 2
      stmms-web/src/main/webapp/WEB-INF/views/modules/user/userEdit.jsp
  16. 26 4
      stmms-web/src/main/webapp/WEB-INF/views/modules/user/userList.jsp

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamDao.java

@@ -42,9 +42,9 @@ public interface ExamDao extends PagingAndSortingRepository<Exam, Integer>, JpaS
             + "order by e.id desc", nativeQuery = true)
     public List<Exam> findByMarkerUserId(Integer userId, Date time);
 
-    @Query(value = "select * from eb_exam e where e.id in (select s.exam_id from eb_exam_subject s where s.code in (select su.subject_code from eb_subject_user su where su.user_id=?1) )"
+    @Query(value = "select * from eb_exam e where e.schoolId = ?1 and e.id in (select s.exam_id from eb_exam_subject s where s.code in (select su.subject_code from eb_subject_user su where su.user_id=?2) )"
             + "order by e.id desc", nativeQuery = true)
-    public List<Exam> findBySubjectHeaderUserId(Integer userId);
+    public List<Exam> findBySubjectHeaderUserId(Integer schoolId, Integer userId);
 
     @Modifying
     @Query("update Exam e set e.objectiveStatus=?2 where e.id=?1")

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamService.java

@@ -28,7 +28,7 @@ public interface ExamService {
 
     List<Exam> findByMarkerUserId(Integer userId, Date time);
 
-    List<Exam> findBySubjectHeaderUserId(Integer userId);
+    List<Exam> findBySubjectHeaderUserId(Integer schoolId, Integer userId);
 
     int updateObjectiveStatus(int examId, ObjectiveStatus calculate);
 

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamServiceImpl.java

@@ -140,8 +140,8 @@ public class ExamServiceImpl extends BaseQueryService<Exam> implements ExamServi
     }
 
     @Override
-    public List<Exam> findBySubjectHeaderUserId(Integer userId) {
-        return examDao.findBySubjectHeaderUserId(userId);
+    public List<Exam> findBySubjectHeaderUserId(Integer schoolId, Integer userId) {
+        return examDao.findBySubjectHeaderUserId(schoolId, userId);
     }
 
     @Override

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

@@ -3,7 +3,7 @@ package cn.com.qmth.stmms.common.enums;
 public enum MarkerExcelError {
     CODENULL("课程代码不存在", 0), NAMENULL("用户名为空", 1), NAMEUSED("用户名已被其他学校占用", 2), NAMENOTMARKER("用户名已被占用,且不是评卷员类型", 3), GROUPNULL(
             "大题号不存在", 4), EXAMNULL("考试为空", 5), CLASSNULL("班级为空", 6), EXAMCLASSNULL("考试下没有该班级", 7), NAMENOTHEADER(
-            "用户名已被占用,且不是科组长类型", 8);
+            "用户名已被占用,且不是科组长类型", 8), NAMENOTINSPECTOR("用户名已被占用,且不是复核员类型", 9);
 
     private String name;
 

+ 2 - 2
stmms-common/src/main/java/cn/com/qmth/stmms/common/enums/Role.java

@@ -2,8 +2,8 @@ package cn.com.qmth.stmms.common.enums;
 
 public enum Role {
 
-    SYS_ADMIN("系统管理员", 1), SCHOOL_ADMIN("学校管理员", 2), SCANNER("扫描员", 3), SUBJECT_HEADER("科组长", 4), MARKER("评卷员",
-            5), SCHOOL_VIEWER("学校查询员", 6), SCHOOL_DEV("学校接口调用", 7);
+    SYS_ADMIN("系统管理员", 1), SCHOOL_ADMIN("学校管理员", 2), SCANNER("扫描员", 3), SUBJECT_HEADER("科组长", 4), MARKER("评卷员", 5), SCHOOL_VIEWER(
+            "学校查询员", 6), SCHOOL_DEV("学校接口调用", 7), INSPECTOR("复核员", 8);
 
     private String name;
 

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

@@ -60,14 +60,14 @@ public class BaseExamController extends BaseController {
         List<ExamSubject> list = new LinkedList<ExamSubject>();
         if (wu.isSchoolAdmin() || wu.isSchoolViewer()) {
             list = subjectService.list(examId);
-        } else if (wu.isSubjectHeader()) {
+        } else if (wu.isSubjectHeader() || wu.isInspector()) {
             list.addAll(subjectService.list(examId, wu.getSubjectCodeSet()));
         }
         return list;
     }
 
     protected boolean subjectCheck(String subjectCode, WebUser wu) {
-        if (wu.isSubjectHeader()) {
+        if (wu.isSubjectHeader() || wu.isInspector()) {
             for (String code : wu.getSubjectCodeSet()) {
                 if (code.equalsIgnoreCase(subjectCode)) {
                     return true;

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

@@ -238,14 +238,14 @@ public class ExamController extends BaseExamController {
         return fileService.getSheetUris(student.getExamId(), student.getExamNumber(), 1, student.getSheetCount());
     }
 
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.SCHOOL_VIEWER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.SCHOOL_VIEWER, Role.INSPECTOR })
     @RequestMapping(value = "/select")
     public String select(Model model, HttpServletRequest request) {
         WebUser wu = RequestUtils.getWebUser(request);
         User user = RequestUtils.getWebUser(request).getUser();
         List<Exam> examList = new ArrayList<Exam>();
-        if (wu.isSubjectHeader()) {
-            examList = examService.findBySubjectHeaderUserId(user.getId());
+        if (wu.isSubjectHeader() || wu.isInspector()) {
+            examList = examService.findBySubjectHeaderUserId(user.getSchoolId(), user.getId());
         } else {
             examList = examService.findBySchoolIdAndStatus(user.getSchoolId());
         }
@@ -254,7 +254,7 @@ public class ExamController extends BaseExamController {
         return "modules/exam/examSelect";
     }
 
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.SCHOOL_VIEWER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.SCHOOL_VIEWER, Role.INSPECTOR })
     @RequestMapping(value = "/select", method = RequestMethod.POST)
     public String selectExam(HttpServletRequest request, @RequestParam Integer examId) {
         Exam exam = examService.findById(examId);

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

@@ -294,7 +294,7 @@ public class InspectedController extends BaseExamController {
 
     @RequestMapping("/clear")
     @ResponseBody
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR })
     public Object clear(HttpServletRequest request, @RequestParam(required = false) Integer studentId) {
         WebUser wu = RequestUtils.getWebUser(request);
         if (studentId != null) {
@@ -308,7 +308,7 @@ public class InspectedController extends BaseExamController {
     @Logging(menu = "取消复核", type = LogType.UPDATE)
     @RequestMapping(value = "/cancel", method = RequestMethod.POST)
     @ResponseBody
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR })
     public JSONObject cancel(HttpServletRequest request, @RequestParam Integer id) {
         JSONObject obj = new JSONObject();
         ExamStudent student = studentService.findById(id);
@@ -345,7 +345,7 @@ public class InspectedController extends BaseExamController {
     @Logging(menu = "复核打回", type = LogType.UPDATE)
     @RequestMapping(value = "/back", method = RequestMethod.POST)
     @ResponseBody
-    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.INSPECTOR })
     public JSONObject back(HttpServletRequest request, @RequestParam Integer studentId,
             @RequestParam Integer groupNumber) {
         JSONObject obj = new JSONObject();

+ 7 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/admin/interceptor/AdminInterceptor.java

@@ -26,8 +26,7 @@ public class AdminInterceptor extends SessionInterceptor {
     private SubjectUserService subjectUserService;
 
     @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
-            throws Exception {
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         return validateAdminUser(buildWebUser(request), request, response);
     }
 
@@ -36,12 +35,13 @@ public class AdminInterceptor extends SessionInterceptor {
         if (wu != null && (wu.getRole() == Role.SYS_ADMIN)) {
             return true;
         }
-        if (wu != null && (wu.getRole() == Role.SCHOOL_ADMIN || wu.getRole() == Role.SUBJECT_HEADER
-                || wu.getRole() == Role.SCHOOL_VIEWER)) {
+        if (wu != null
+                && (wu.getRole() == Role.SCHOOL_ADMIN || wu.getRole() == Role.SUBJECT_HEADER
+                        || wu.getRole() == Role.SCHOOL_VIEWER || wu.getRole() == Role.INSPECTOR)) {
             Integer examId = SessionExamUtils.getExamId(request);
             String uri = request.getRequestURI();
-            if (examId > 0 || uri.startsWith("/admin/exam/select") || uri.startsWith("/admin/home") || uri
-                    .startsWith("/admin/exam/create") || uri.startsWith("/admin/exam/save")) {
+            if (examId > 0 || uri.startsWith("/admin/exam/select") || uri.startsWith("/admin/home")
+                    || uri.startsWith("/admin/exam/create") || uri.startsWith("/admin/exam/save")) {
                 return true;
             }
             return redirect(request, response, "/admin/exam/select");
@@ -52,7 +52,7 @@ public class AdminInterceptor extends SessionInterceptor {
     private WebUser buildWebUser(HttpServletRequest request) {
         WebUser wu = WebUser.buildFromSession(RequestUtils.getSession(request), userService);
         if (wu != null) {
-            if (wu.getRole() == Role.SUBJECT_HEADER) {
+            if (wu.getRole() == Role.SUBJECT_HEADER || wu.getRole() == Role.INSPECTOR) {
                 wu.setSubjectCodeSet(subjectUserService.findSubjectCode(wu.getId()));
             }
             RequestUtils.setWebUser(request, wu);

+ 19 - 9
stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/SubjectUserController.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
@@ -54,12 +55,14 @@ public class SubjectUserController extends BaseExamController {
     private ExamService examService;
 
     @RequestMapping(value = "/template")
-    public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
+    public String importFileTemplate(HttpServletResponse response, @RequestParam Boolean isHeader,
+            RedirectAttributes redirectAttributes) {
         try {
-            String fileName = "科组长数据导入模板.xlsx";
+            String fileName = isHeader ? "科组长数据导入模板.xlsx" : "复核员数据导入模板.xlsx";
+            String title = isHeader ? "科组长数据" : "复核员数据";
             List<SubjectUser> list = new ArrayList<SubjectUser>();
             list.add(new SubjectUser());
-            new ExportExcel("科组长数据", SubjectUser.class, 2).setDataList(list).write(response, fileName).dispose();
+            new ExportExcel(title, SubjectUser.class, 2).setDataList(list).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
             addMessage(redirectAttributes, "导入模板下载失败!失败信息:" + e.getMessage());
@@ -67,9 +70,10 @@ public class SubjectUserController extends BaseExamController {
         return "redirect:/admin/user/list";
     }
 
-    @Logging(menu = "科组长导入", type = LogType.IMPORT_FILE)
+    @Logging(menu = "科组长/查询员导入", type = LogType.IMPORT_FILE)
     @RequestMapping(value = "/import", method = RequestMethod.POST)
-    public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
+    public String importFile(HttpServletRequest request, MultipartFile file, @RequestParam Boolean isHeader,
+            RedirectAttributes redirectAttributes) {
         WebUser wu = RequestUtils.getWebUser(request);
         try {
             int successNum = 0;
@@ -97,14 +101,20 @@ public class SubjectUserController extends BaseExamController {
                         failureNum++;
                         continue;
                     }
-                    if (user != null && !user.getRole().equals(Role.SUBJECT_HEADER)) {
+                    if (user != null && isHeader && !user.getRole().equals(Role.SUBJECT_HEADER)) {
+                        failureMsg.append("<br/>用户名 " + subjectUser.getLoginName()
+                                + MarkerExcelError.NAMENOTHEADER.getName());
+                        failureNum++;
+                        continue;
+                    }
+                    if (user != null && !isHeader && !user.getRole().equals(Role.INSPECTOR)) {
                         failureMsg.append("<br/>用户名 " + subjectUser.getLoginName()
                                 + MarkerExcelError.NAMENOTHEADER.getName());
                         failureNum++;
                         continue;
                     }
                     if (user == null) {
-                        user = getUser(userMap, subjectUser.getLoginName().trim(), schoolId);
+                        user = getUser(userMap, subjectUser.getLoginName().trim(), schoolId, isHeader);
                     }
                 }
                 subjectUser = getSubjectUser(subjectUser.getSubjectCode(), user.getId());
@@ -134,14 +144,14 @@ public class SubjectUserController extends BaseExamController {
         return subjectUser;
     }
 
-    private User getUser(Map<String, User> saveMap, String loginName, Integer schoolId) {
+    private User getUser(Map<String, User> saveMap, String loginName, Integer schoolId, boolean isHeader) {
         User user = saveMap.get(loginName);
         if (user == null) {
             user = new User();
             user.setLoginName(loginName);
             user.setName(loginName);
             user.setPassword(EncryptUtils.md5(USER_PASSWORD));
-            user.setRole(Role.SUBJECT_HEADER);
+            user.setRole(isHeader ? Role.SUBJECT_HEADER : Role.INSPECTOR);
             user.setSchoolId(schoolId);
             user.setEnable(true);
             user.setCreatedTime(new Date());

+ 6 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/admin/user/UserController.java

@@ -32,7 +32,7 @@ public class UserController extends BaseController {
 
     public static final String SUBJECT_CODE_SPLIT = ",";
 
-    public static Role[] ROLE_LIST = { Role.SCANNER, Role.SUBJECT_HEADER, Role.MARKER };
+    public static Role[] ROLE_LIST = { Role.SCANNER, Role.SUBJECT_HEADER, Role.INSPECTOR, Role.MARKER };
 
     @Autowired
     private UserService userService;
@@ -74,7 +74,7 @@ public class UserController extends BaseController {
         if (user != null && user.getSchoolId().equals(current.getSchoolId())) {
             ModelAndView view = new ModelAndView("modules/user/userEdit");
             view.addObject("user", user);
-            if (user.getRole() == Role.SUBJECT_HEADER) {
+            if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
                 view.addObject("subjectCodeString",
                         StringUtils.join(subjectUserService.findSubjectCode(user.getId()), SUBJECT_CODE_SPLIT));
             }
@@ -103,7 +103,7 @@ public class UserController extends BaseController {
                 user.setCreatedTime(new Date());
                 user.setUpdatedTime(new Date());
                 userService.save(user);
-                if (user.getRole() == Role.SUBJECT_HEADER) {
+                if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
                     subjectUserService.updateByUserId(user.getId(), getSubjectCodeSet(subjectCodeString));
                 }
             } else {
@@ -121,7 +121,7 @@ public class UserController extends BaseController {
             previous.setEnable(user.isEnable());
             String message = validate(previous, subjectCodeString);
             if (message == null) {
-                if (previous.getRole() == Role.SUBJECT_HEADER) {
+                if (previous.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR) {
                     subjectUserService.updateByUserId(previous.getId(), getSubjectCodeSet(subjectCodeString));
                 }
                 previous.setUpdatedTime(new Date());
@@ -148,6 +148,8 @@ public class UserController extends BaseController {
             message = "密码不能为空";
         } else if (user.getRole() == Role.SUBJECT_HEADER && StringUtils.isBlank(subjectCodeString)) {
             message = "科组长必须绑定科目代码";
+        } else if (user.getRole() == Role.INSPECTOR && StringUtils.isBlank(subjectCodeString)) {
+            message = "复核员必须绑定科目代码";
         }
         return message;
     }

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/common/controller/LoginController.java

@@ -75,7 +75,7 @@ public class LoginController {
         }
         if ("admin-login".equals(showType)) {
             if (u.getRole() == Role.SYS_ADMIN || u.getRole() == Role.SCHOOL_ADMIN || u.getRole() == Role.SUBJECT_HEADER
-                    || u.getRole() == Role.SCHOOL_VIEWER) {
+                    || u.getRole() == Role.SCHOOL_VIEWER || u.getRole() == Role.INSPECTOR) {
                 u.setLastLoginTime(new Date());
                 u.setLastLoginIp(request.getRemoteAddr());
                 u.refreshAccessToken();

+ 7 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/common/domain/WebUser.java

@@ -57,9 +57,9 @@ public class WebUser {
         Role role = session.getWebUserRole();
         if (userId != null && role != null) {
             User user = userService.findById(userId);
-            if (user != null && user.getRole().equals(role) && user.getAccessTokenRefreshTime() != null && StringUtils
-                    .equals(session.getWebUserToken(), user.getAccessToken()) && !AccessControlUtils
-                    .expired(user.getAccessTokenRefreshTime())) {
+            if (user != null && user.getRole().equals(role) && user.getAccessTokenRefreshTime() != null
+                    && StringUtils.equals(session.getWebUserToken(), user.getAccessToken())
+                    && !AccessControlUtils.expired(user.getAccessTokenRefreshTime())) {
                 return new WebUser(user.getId(), user.getName(), user.getRole(), user.getAccessToken(), user,
                         session.getWebUserLogoutUrl(), session.getWebMarkerId());
             }
@@ -111,6 +111,10 @@ public class WebUser {
         return role == Role.MARKER;
     }
 
+    public boolean isInspector() {
+        return role == Role.INSPECTOR;
+    }
+
     public void setMarkerId(Integer markerId) {
         this.markerId = markerId;
     }

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

@@ -151,6 +151,10 @@
                                         <li><a href="${ctx}/admin/exam/reportSubjectCollege" target="mainFrame"><i class="icon-asterisk"></i><span data-i18n-text="index.report.subject">科目分析</span></a></li>
                                     </c:if>
                                     
+                                    <c:if test="${web_user.inspector==true}">
+                                        <li><a href="${ctx}/admin/exam/inspected" target="mainFrame"><i class="icon-flag"></i><span data-i18n-text="index.inspected">成绩复核</span></a></li>
+                                    </c:if>
+                                    
                                     <c:if test="${web_user.schoolViewer==true}">
                                         <li><a href="${ctx}/admin/exam/score" target="mainFrame"><i class="icon-search"></i><span data-i18n-text="index.score">成绩查询</span></a></li>
                                     </c:if>

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/user/userEdit.jsp

@@ -25,7 +25,7 @@
             });
             $('#role-select').change(function () {
                 var role = $('#role-select').val();
-                if (role == '4') {
+                if (role == '4' || role == '8') {
                     $('#subject-code-div').show();
                 } else {
                     $('#subject-code-div').hide();
@@ -86,7 +86,7 @@
             </select>
         </div>
     </div>
-    <c:if test="${user.role==null || user.role.value==4}">
+    <c:if test="${user.role==null || user.role.value==4|| user.role.value==8}">
         <div class="control-group" id="subject-code-div">
             <label class="control-label">绑定科目代码</label>
             <div class="controls">

+ 26 - 4
stmms-web/src/main/webapp/WEB-INF/views/modules/user/userList.jsp

@@ -20,9 +20,19 @@
     <div id="importBox" class="hide">
         <form id="importForm" action="${ctx}/admin/user/subject/import" method="post" enctype="multipart/form-data"
               style="padding-left:20px;text-align:center;" class="form-search" onsubmit="loading('正在导入,请稍等...');"><br/>
+            <input name="isHeader" type="hidden" value="true"/>
             <input id="uploadFile" name="file" type="file" style="width:330px"/><br/><br/>  
             <input id="btnImportSubmit" class="btn btn-primary" type="submit" value="  导    入  "/>
-            <a href="${ctx}/admin/user/subject/template">下载模板</a>
+            <a href="${ctx}/admin/user/subject/template?isHeader=true">下载模板</a>
+        </form>
+    </div>
+        <div id="importInspectorBox" class="hide">
+        <form id="importForm" action="${ctx}/admin/user/subject/import" method="post" enctype="multipart/form-data"
+              style="padding-left:20px;text-align:center;" class="form-search" onsubmit="loading('正在导入,请稍等...');"><br/>
+            <input name="isHeader" type="hidden" value="false"/>
+            <input id="uploadInspectorFile" name="file" type="file" style="width:330px"/><br/><br/>  
+            <input id="btnImportInspectorSubmit" class="btn btn-primary" type="submit" value="  导    入  "/>
+            <a href="${ctx}/admin/user/subject/template?isHeader=false">下载模板</a>
         </form>
     </div>
     <div id="importClassBox" class="hide">
@@ -70,7 +80,15 @@
             &nbsp;
             <a href="${ctx}/admin/user/add" class="btn">新建</a>
             &nbsp;
-            <input id="btnImport" class="btn" type="button" value="导入科组长"/>
+            <div class="btn-group">
+                <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
+                    导入<span class="caret"></span>
+                </a>
+                <ul class="dropdown-menu">
+                    <li><a href="##" id="btnImport">科组长</a></li>
+                    <li><a href="##" id="btnImportInspector">复核员</a></li>
+                </ul>
+            </div>
             &nbsp;
             <input id="btnImportClass" class="btn" type="button" value="导入评卷员班级"/>
         </c:if>
@@ -130,11 +148,15 @@
         return false;
     }
     $("#btnImport").click(function(){
-    	  $.jBox($("#importBox").html(), {title:"导入数据", buttons:{"关闭":true},
+    	  $.jBox($("#importBox").html(), {title:"导入科组长", buttons:{"关闭":true},
     	    bottomText:"导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件!"});
     });
+    $("#btnImportInspector").click(function(){
+  	  $.jBox($("#importInspectorBox").html(), {title:"导入复核员", buttons:{"关闭":true},
+  	    bottomText:"导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件!"});
+  });
     $("#btnImportClass").click(function(){
-  	  $.jBox($("#importClassBox").html(), {title:"导入数据", buttons:{"关闭":true},
+  	  $.jBox($("#importClassBox").html(), {title:"导入评卷员班级", buttons:{"关闭":true},
   	    bottomText:"导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件!"});
   });
 </script>