Ver código fonte

1.0.2增加条码识别功能

xiaofei 2 anos atrás
pai
commit
7b791aa962
55 arquivos alterados com 1314 adições e 3249 exclusões
  1. 12 24
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/dto/excel/PaperScanTaskImportDto.java
  2. 60 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/dto/excel/PaperScanTaskStudentImportDto.java
  3. 13 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/params/PaperScanTaskParam.java
  4. 9 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperArchivesDetailResult.java
  5. 11 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperLibraryResult.java
  6. 11 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskDetailResult.java
  7. 31 20
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskResult.java
  8. 12 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/TaskStudentResult.java
  9. 40 26
      paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperScanTask.java
  10. 24 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperScanTaskDetail.java
  11. 2 2
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/ClientService.java
  12. 2 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperLibraryService.java
  13. 1 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskDetailService.java
  14. 6 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskService.java
  15. 50 13
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/ClientServiceImpl.java
  16. 56 39
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryServiceImpl.java
  17. 11 0
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskDetailServiceImpl.java
  18. 131 8
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java
  19. 1 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/templete/execute/AsyncPaperScanTaskImportService.java
  20. 114 131
      paper-library-business/src/main/java/com/qmth/paper/library/business/templete/service/impl/TaskLogicServiceImpl.java
  21. 0 1876
      paper-library-business/src/main/resources/db/1、init-table.sql
  22. 0 787
      paper-library-business/src/main/resources/db/2、init-table-data.sql
  23. 0 20
      paper-library-business/src/main/resources/db/3、init-function.sql
  24. 8 6
      paper-library-business/src/main/resources/mapper/PaperArchivesMapper.xml
  25. 6 4
      paper-library-business/src/main/resources/mapper/PaperLibraryMapper.xml
  26. 24 18
      paper-library-business/src/main/resources/mapper/PaperScanTaskMapper.xml
  27. 4 0
      paper-library-common/pom.xml
  28. 11 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/bean/result/LoginResult.java
  29. 1 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SysSettingConstant.java
  30. 2 2
      paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SystemConstant.java
  31. 10 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/entity/BasicStudent.java
  32. 21 5
      paper-library-common/src/main/java/com/qmth/paper/library/common/entity/SysSetting.java
  33. 42 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/enums/FlushCacheTypeEnum.java
  34. 57 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/enums/RecognitionTypeEnum.java
  35. 7 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/BasicStudentService.java
  36. 15 1
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/CommonCacheService.java
  37. 2 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/LibraryCommonService.java
  38. 4 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/SysSettingService.java
  39. 0 1
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/BasicAttachmentServiceImpl.java
  40. 11 2
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/BasicStudentServiceImpl.java
  41. 35 10
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/CommonCacheServiceImpl.java
  42. 19 4
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/LibraryCommonServiceImpl.java
  43. 10 4
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysRoleServiceImpl.java
  44. 38 2
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysSettingServiceImpl.java
  45. 69 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/util/BarCodeUtils.java
  46. 19 5
      paper-library-common/src/main/java/com/qmth/paper/library/common/util/ExcelUtil.java
  47. 4 5
      paper-library/src/main/java/com/qmth/paper/library/api/ClientController.java
  48. 7 5
      paper-library/src/main/java/com/qmth/paper/library/api/PaperLibraryController.java
  49. 16 7
      paper-library/src/main/java/com/qmth/paper/library/api/PaperScanTaskController.java
  50. 6 1
      paper-library/src/main/java/com/qmth/paper/library/api/SysController.java
  51. 6 0
      paper-library/src/main/java/com/qmth/paper/library/api/SysSettingController.java
  52. 9 0
      paper-library/src/main/resources/ehcache/ehcache.xml
  53. 7 0
      pom.xml
  54. 24 0
      sql/1.0.2修改内容.txt
  55. 223 216
      sql/paper_library_db.sql

+ 12 - 24
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/dto/excel/PaperScanTaskImportDto.java

@@ -17,30 +17,26 @@ public class PaperScanTaskImportDto implements Serializable {
     @NotNull
     private String scanTaskName;
 
-    @ExcelNote(value = "档案名称")
+    @ExcelNote(value = "课程代码")
     @NotNull
-    private String archivesName;
+    private String courseCode;
 
-    @ExcelNote(value = "档案编号")
+    @ExcelNote(value = "课程名称")
     @NotNull
-    private String archivesCode;
-
-    @ExcelNote(value = "课程")
     private String courseName;
 
-    @ExcelNote(value = "任课老师")
-    private String teacherName;
+    @ExcelNote(value = "学号")
+    private String studentCode;
 
     @ExcelNote(value = "姓名")
     private String studentName;
 
-    @ExcelNote(value = "学号")
-    @NotNull
-    private String studentCode;
-
     @ExcelNote(value = "教学班")
     private String teachClazzName;
 
+    @ExcelNote(value = "任课老师")
+    private String teacherName;
+
     public String getScanTaskName() {
         return scanTaskName;
     }
@@ -49,20 +45,12 @@ public class PaperScanTaskImportDto implements Serializable {
         this.scanTaskName = scanTaskName;
     }
 
-    public String getArchivesName() {
-        return archivesName;
-    }
-
-    public void setArchivesName(String archivesName) {
-        this.archivesName = archivesName;
-    }
-
-    public String getArchivesCode() {
-        return archivesCode;
+    public String getCourseCode() {
+        return courseCode;
     }
 
-    public void setArchivesCode(String archivesCode) {
-        this.archivesCode = archivesCode;
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
     }
 
     public String getCourseName() {

+ 60 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/dto/excel/PaperScanTaskStudentImportDto.java

@@ -0,0 +1,60 @@
+package com.qmth.paper.library.business.bean.dto.excel;
+
+import com.qmth.paper.library.common.annotation.ExcelImportTempleteVaild;
+import com.qmth.paper.library.common.annotation.ExcelNote;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 扫描任务考生导入excel
+ */
+@ExcelImportTempleteVaild(value = true)
+public class PaperScanTaskStudentImportDto implements Serializable {
+
+    @ExcelNote(value = "学号")
+    @NotNull
+    private String studentCode;
+
+    @ExcelNote(value = "姓名")
+    @NotNull
+    private String studentName;
+
+    @ExcelNote(value = "教学班")
+    private String teachClazzName;
+
+    @ExcelNote(value = "任课老师")
+    private String teacherName;
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getTeachClazzName() {
+        return teachClazzName;
+    }
+
+    public void setTeachClazzName(String teachClazzName) {
+        this.teachClazzName = teachClazzName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+}

+ 13 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/params/PaperScanTaskParam.java

@@ -31,6 +31,11 @@ public class PaperScanTaskParam implements Serializable {
     @Range(min = 1L, message = "请输入档案id")
     private Long paperArchivesId;
 
+    @ApiModelProperty(value = "课程代码")
+    @NotNull(message = "请输入课程代码")
+    @Length(min = 1, message = "请输入课程代码")
+    private String courseCode;
+
     @ApiModelProperty(value = "课程名称")
     @NotNull(message = "请输入课程名称")
     @Length(min = 1, message = "请输入课程名称")
@@ -77,6 +82,14 @@ public class PaperScanTaskParam implements Serializable {
         this.paperArchivesId = paperArchivesId;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 9 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperArchivesDetailResult.java

@@ -14,6 +14,7 @@ public class PaperArchivesDetailResult {
 
     private String clazzName;
 
+    private String courseCode;
     private String courseName;
 
     private String teacherName;
@@ -72,6 +73,14 @@ public class PaperArchivesDetailResult {
         this.clazzName = clazzName;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 11 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperLibraryResult.java

@@ -23,7 +23,9 @@ public class PaperLibraryResult extends PaperLibrary implements Serializable {
     @ApiModelProperty(value = "学号")
     private String studentCode;
 
-    @ApiModelProperty(value = "课程")
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+    @ApiModelProperty(value = "课程名称")
     private String courseName;
 
     @ApiModelProperty(value = "任课老师")
@@ -76,6 +78,14 @@ public class PaperLibraryResult extends PaperLibrary implements Serializable {
         this.studentCode = studentCode;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 11 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskDetailResult.java

@@ -16,7 +16,9 @@ public class PaperScanTaskDetailResult implements Serializable {
     @ApiModelProperty(value = "学号")
     private String studentCode;
 
-    @ApiModelProperty(value = "课程")
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+    @ApiModelProperty(value = "课程名称")
     private String courseName;
 
     @ApiModelProperty(value = "任课老师")
@@ -44,6 +46,14 @@ public class PaperScanTaskDetailResult implements Serializable {
         this.studentCode = studentCode;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 31 - 20
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/PaperScanTaskResult.java

@@ -37,14 +37,17 @@ public class PaperScanTaskResult implements Serializable {
     @ApiModelProperty(value = "档案编号")
     private String archivesCode;
 
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+
     @ApiModelProperty(value = "课程名称")
     private String courseName;
 
-    @ApiModelProperty(value = "任课教师名称")
-    private String teacherName;
-
-    @ApiModelProperty(value = "教学班名称")
-    private String teachClazzName;
+//    @ApiModelProperty(value = "任课教师名称")
+//    private String teacherName;
+//
+//    @ApiModelProperty(value = "教学班名称")
+//    private String teachClazzName;
 
     @ApiModelProperty(value = "扫描量")
     private int scanCount;
@@ -118,29 +121,37 @@ public class PaperScanTaskResult implements Serializable {
         this.archivesCode = archivesCode;
     }
 
-    public String getCourseName() {
-        return courseName;
+    public String getCourseCode() {
+        return courseCode;
     }
 
-    public void setCourseName(String courseName) {
-        this.courseName = courseName;
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
     }
 
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
+    public String getCourseName() {
+        return courseName;
     }
 
-    public String getTeachClazzName() {
-        return teachClazzName;
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
     }
 
-    public void setTeachClazzName(String teachClazzName) {
-        this.teachClazzName = teachClazzName;
-    }
+//    public String getTeacherName() {
+//        return teacherName;
+//    }
+//
+//    public void setTeacherName(String teacherName) {
+//        this.teacherName = teacherName;
+//    }
+//
+//    public String getTeachClazzName() {
+//        return teachClazzName;
+//    }
+//
+//    public void setTeachClazzName(String teachClazzName) {
+//        this.teachClazzName = teachClazzName;
+//    }
 
     public int getScanCount() {
         return scanCount;

+ 12 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/bean/result/TaskStudentResult.java

@@ -21,7 +21,10 @@ public class TaskStudentResult implements Serializable {
     @ApiModelProperty(value = "扫描任务")
     private String paperScanTaskName;
 
-    @ApiModelProperty(value = "课程")
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称")
     private String courseName;
 
     @ApiModelProperty(value = "任课老师")
@@ -77,6 +80,14 @@ public class TaskStudentResult implements Serializable {
         this.paperScanTaskName = paperScanTaskName;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 40 - 26
paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperScanTask.java

@@ -37,22 +37,28 @@ public class PaperScanTask extends BaseEntity implements Serializable {
     private String scanTaskName;
 
     /**
-     * 课程名称
+     * 课程代码
      */
-    @TableField("course_name")
-    private String courseName;
+    @TableField("course_code")
+    private String courseCode;
 
     /**
-     * 任课教师
+     * 课程名称
      */
-    @TableField("teacher_name")
-    private String teacherName;
+    @TableField("course_name")
+    private String courseName;
 
-    /**
-     * 教学班名称
-     */
-    @TableField("teach_clazz_name")
-    private String teachClazzName;
+//    /**
+//     * 任课教师
+//     */
+//    @TableField("teacher_name")
+//    private String teacherName;
+//
+//    /**
+//     * 教学班名称
+//     */
+//    @TableField("teach_clazz_name")
+//    private String teachClazzName;
 
 
     @ApiModelProperty(value = "扫描员id")
@@ -102,29 +108,37 @@ public class PaperScanTask extends BaseEntity implements Serializable {
         this.scanTaskName = scanTaskName;
     }
 
-    public String getCourseName() {
-        return courseName;
+    public String getCourseCode() {
+        return courseCode;
     }
 
-    public void setCourseName(String courseName) {
-        this.courseName = courseName;
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
     }
 
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
+    public String getCourseName() {
+        return courseName;
     }
 
-    public String getTeachClazzName() {
-        return teachClazzName;
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
     }
 
-    public void setTeachClazzName(String teachClazzName) {
-        this.teachClazzName = teachClazzName;
-    }
+//    public String getTeacherName() {
+//        return teacherName;
+//    }
+//
+//    public void setTeacherName(String teacherName) {
+//        this.teacherName = teacherName;
+//    }
+//
+//    public String getTeachClazzName() {
+//        return teachClazzName;
+//    }
+//
+//    public void setTeachClazzName(String teachClazzName) {
+//        this.teachClazzName = teachClazzName;
+//    }
 
     public Long getScanUserId() {
         return scanUserId;

+ 24 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/entity/PaperScanTaskDetail.java

@@ -35,6 +35,14 @@ public class PaperScanTaskDetail extends BaseEntity implements Serializable {
     @TableField("student_id")
     private Long studentId;
 
+    @ApiModelProperty(value = "教学班")
+    @TableField("teach_clazz_name")
+    private String teachClazzName;
+
+    @ApiModelProperty(value = "任课老师")
+    @TableField("teacher_name")
+    private String teacherName;
+
     @ApiModelProperty(value = "是否绑定图片")
     @TableField("is_bind")
     private Boolean isBind;
@@ -63,6 +71,22 @@ public class PaperScanTaskDetail extends BaseEntity implements Serializable {
         this.studentId = studentId;
     }
 
+    public String getTeachClazzName() {
+        return teachClazzName;
+    }
+
+    public void setTeachClazzName(String teachClazzName) {
+        this.teachClazzName = teachClazzName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
     public Boolean getBind() {
         return isBind;
     }

+ 2 - 2
paper-library-business/src/main/java/com/qmth/paper/library/business/service/ClientService.java

@@ -11,13 +11,13 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface ClientService {
 
-    IPage<PaperScanTask> pageScanTask(Long paperArchivesId, String courseName, String teachClazzName, Boolean isMine, Integer pageNumber, Integer pageSize);
+    IPage<PaperScanTask> pageScanTask(Long paperArchivesId, String courseCode, Boolean isMine, Integer pageNumber, Integer pageSize);
 
     void checkPrivilege(Long userId);
 
     boolean bindUser(Long paperScanTaskId, Long userId);
 
-    boolean pictureUpload(Long paperScanTaskId, MultipartFile frontFile, String frontMd5, MultipartFile versoFile, String versoMd5);
+    boolean pictureUpload(Long paperScanTaskId, String studentCode, MultipartFile frontFile, String frontMd5, MultipartFile versoFile, String versoMd5);
 
     boolean enable(Long paperScanTaskId, Boolean enable);
 }

+ 2 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperLibraryService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.paper.library.business.bean.result.PaperLibraryResult;
 import com.qmth.paper.library.business.bean.result.TaskStudentResult;
 import com.qmth.paper.library.business.entity.PaperLibrary;
+import com.qmth.paper.library.common.enums.RecognitionTypeEnum;
 
 import java.util.List;
 
@@ -41,7 +42,7 @@ public interface PaperLibraryService extends IService<PaperLibrary> {
 
     IPage<TaskStudentResult> pageStudent(Long paperScanTaskId, String param, Boolean globalMatch, Integer pageNumber, Integer pageSize);
 
-    List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate);
+    List<String> recognition(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate, RecognitionTypeEnum type);
 
     Boolean abnormal(Long paperLibraryId);
 }

+ 1 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskDetailService.java

@@ -10,4 +10,5 @@ import com.qmth.paper.library.business.entity.PaperScanTaskDetail;
  */
 public interface PaperScanTaskDetailService extends IService<PaperScanTaskDetail> {
 
+    PaperScanTaskDetail getByPaperScanTaskIdAndStudentId(Long paperScanTaskId, Long studentId);
 }

+ 6 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperScanTaskService.java

@@ -9,7 +9,9 @@ import com.qmth.paper.library.business.bean.result.PaperScanTaskResult;
 import com.qmth.paper.library.business.bean.result.SelectResult;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.common.entity.SysUser;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -112,4 +114,8 @@ public interface PaperScanTaskService extends IService<PaperScanTask> {
     PaperScanTaskResult getByPaperScanTaskId(Long paperScanTaskId);
 
     boolean enable(Long paperScanTaskId, Boolean enable);
+
+    void importStudent(Long paperScanTaskId, MultipartFile file) throws IOException;
+
+    List<PaperScanTask> getByPaperArchivesIdAndScanTaskName(Long schoolId, Long paperArchivesId, String scanTaskName);
 }

+ 50 - 13
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/ClientServiceImpl.java

@@ -6,18 +6,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.paper.library.business.entity.PaperLibrary;
 import com.qmth.paper.library.business.entity.PaperScanTask;
-import com.qmth.paper.library.business.service.ClientService;
-import com.qmth.paper.library.business.service.PaperLibraryCommonService;
-import com.qmth.paper.library.business.service.PaperLibraryService;
-import com.qmth.paper.library.business.service.PaperScanTaskService;
+import com.qmth.paper.library.business.entity.PaperScanTaskDetail;
+import com.qmth.paper.library.business.service.*;
+import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
+import com.qmth.paper.library.common.contant.SysSettingConstant;
 import com.qmth.paper.library.common.contant.SystemConstant;
+import com.qmth.paper.library.common.entity.BasicStudent;
 import com.qmth.paper.library.common.entity.SysPrivilege;
+import com.qmth.paper.library.common.entity.SysSetting;
 import com.qmth.paper.library.common.entity.SysUser;
 import com.qmth.paper.library.common.enums.ExceptionResultEnum;
 import com.qmth.paper.library.common.enums.UploadFileEnum;
 import com.qmth.paper.library.common.lock.LockService;
 import com.qmth.paper.library.common.lock.LockType;
+import com.qmth.paper.library.common.service.BasicStudentService;
+import com.qmth.paper.library.common.service.CommonCacheService;
 import com.qmth.paper.library.common.service.SysPrivilegeService;
+import com.qmth.paper.library.common.service.SysSettingService;
 import com.qmth.paper.library.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -28,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -50,11 +56,23 @@ public class ClientServiceImpl implements ClientService {
     @Resource
     PaperLibraryCommonService paperLibraryCommonService;
 
+    @Resource
+    CommonCacheService commonCacheService;
+
+    @Resource
+    SysSettingService sysSettingService;
+
+    @Resource
+    BasicStudentService basicStudentService;
+
+    @Resource
+    PaperScanTaskDetailService paperScanTaskDetailService;
+
     @Resource
     LockService lockService;
 
     @Override
-    public IPage<PaperScanTask> pageScanTask(Long paperArchivesId, String courseName, String teachClazzName, Boolean isMine, Integer pageNumber, Integer pageSize) {
+    public IPage<PaperScanTask> pageScanTask(Long paperArchivesId, String courseCode, Boolean isMine, Integer pageNumber, Integer pageSize) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         // 查询任务
         QueryWrapper<PaperScanTask> queryWrapper = new QueryWrapper<>();
@@ -62,11 +80,8 @@ public class ClientServiceImpl implements ClientService {
         if (paperArchivesId != null) {
             queryWrapper.lambda().eq(PaperScanTask::getPaperArchivesId, paperArchivesId);
         }
-        if (StringUtils.isNotBlank(courseName)) {
-            queryWrapper.lambda().eq(PaperScanTask::getCourseName, courseName);
-        }
-        if (StringUtils.isNotBlank(teachClazzName)) {
-            queryWrapper.lambda().eq(PaperScanTask::getTeachClazzName, teachClazzName);
+        if (StringUtils.isNotBlank(courseCode)) {
+            queryWrapper.lambda().eq(PaperScanTask::getCourseCode, courseCode);
         }
         if (isMine != null) {
             // 我的任务
@@ -124,15 +139,15 @@ public class ClientServiceImpl implements ClientService {
 
     @Transactional
     @Override
-    public boolean pictureUpload(Long paperScanTaskId, MultipartFile frontFile, String frontMd5, MultipartFile versoFile, String versoMd5) {
+    public boolean pictureUpload(Long paperScanTaskId, String studentCode, MultipartFile frontFile, String frontMd5, MultipartFile versoFile, String versoMd5) {
         Long userId = Long.valueOf(ServletUtil.getRequestHeaderUserId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
 
         if (Objects.isNull(frontFile) || frontFile.getSize() == 0) {
-            throw ExceptionResultEnum.ERROR.exception("frontFile为空");
+            throw ExceptionResultEnum.ERROR.exception("frontFile(正面文件)为空");
         }
         if (Objects.isNull(versoFile) || versoFile.getSize() == 0) {
-            throw ExceptionResultEnum.ERROR.exception("versoFile为空");
+            throw ExceptionResultEnum.ERROR.exception("versoFile(背面文件)为空");
         }
 
         try {
@@ -156,6 +171,28 @@ public class ClientServiceImpl implements ClientService {
             paperLibrary.setAbnormal(false);
             paperLibrary.setCreateId(userId);
             paperLibrary.setCreateTime(System.currentTimeMillis());
+
+            //开启条码识别,需要自动做一次绑定
+            Map<String, SimpleObject> sysSetting = commonCacheService.getSysSetting(schoolId);
+            String value = sysSetting.get(SysSettingConstant.BAR_CODE_OPEN).getValue();
+            if (sysSetting != null && Boolean.parseBoolean(value)) {
+                // 根据准考证号查询学生student_id
+                BasicStudent basicStudent = basicStudentService.getBySchoolIdAndStudentCode(studentCode);
+                if (basicStudent != null) {
+                    // 根据paper_scan_task_id+student_id查询paper_scan_task_detail_id作绑定
+                    PaperScanTaskDetail paperScanTaskDetail = paperScanTaskDetailService.getByPaperScanTaskIdAndStudentId(paperScanTaskId, basicStudent.getId());
+                    if (paperScanTaskDetail != null) {
+                        paperLibrary.setPaperScanTaskDetailId(paperScanTaskDetail.getId());
+                        paperLibrary.setWordsResult(studentCode);
+                    } else {
+                        // 绑定失败,为异常数据
+                        paperLibrary.setAbnormal(true);
+                    }
+                } else {
+                    // 绑定失败,为异常数据
+                    paperLibrary.setAbnormal(true);
+                }
+            }
             paperLibraryService.save(paperLibrary);
 
             // 统计扫描数量

+ 56 - 39
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryServiceImpl.java

@@ -20,15 +20,13 @@ import com.qmth.paper.library.business.service.PaperScanTaskService;
 import com.qmth.paper.library.common.config.DictionaryConfig;
 import com.qmth.paper.library.common.contant.SystemConstant;
 import com.qmth.paper.library.common.enums.ExceptionResultEnum;
+import com.qmth.paper.library.common.enums.RecognitionTypeEnum;
 import com.qmth.paper.library.common.enums.RoleTypeEnum;
 import com.qmth.paper.library.common.enums.UploadFileEnum;
 import com.qmth.paper.library.common.lock.LockService;
 import com.qmth.paper.library.common.lock.LockType;
 import com.qmth.paper.library.common.service.SysUserService;
-import com.qmth.paper.library.common.util.FileStoreUtil;
-import com.qmth.paper.library.common.util.ImageUtil;
-import com.qmth.paper.library.common.util.OcrUtil;
-import com.qmth.paper.library.common.util.ServletUtil;
+import com.qmth.paper.library.common.util.*;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.json.JSONArray;
@@ -171,8 +169,8 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
                 paperLibraryResult.setPaperArchivesName(paperScanTaskResult.getArchivesName());
                 paperLibraryResult.setPaperScanTaskName(paperScanTaskResult.getScanTaskName());
                 paperLibraryResult.setCourseName(paperScanTaskResult.getCourseName());
-                paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
-                paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
+//                paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
+//                paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
             }
             paperLibraryResult.setFileUrls(fileUrls);
             paperLibraryResultList.add(paperLibraryResult);
@@ -204,8 +202,8 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
             paperLibraryResult.setPaperArchivesName(paperScanTaskResult.getArchivesName());
             paperLibraryResult.setPaperScanTaskName(paperScanTaskResult.getScanTaskName());
             paperLibraryResult.setCourseName(paperScanTaskResult.getCourseName());
-            paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
-            paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
+//            paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
+//            paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
         }
         paperLibraryResult.setFileUrls(fileUrls);
         paperLibraryResultList.add(paperLibraryResult);
@@ -243,8 +241,8 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
                     paperLibraryResult.setPaperArchivesName(paperScanTaskResult.getArchivesName());
                     paperLibraryResult.setPaperScanTaskName(paperScanTaskResult.getScanTaskName());
                     paperLibraryResult.setCourseName(paperScanTaskResult.getCourseName());
-                    paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
-                    paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
+//                    paperLibraryResult.setTeacherName(paperScanTaskResult.getTeacherName());
+//                    paperLibraryResult.setTeachClazzName(paperScanTaskResult.getTeachClazzName());
                 }
                 paperLibraryResult.setFileUrls(fileUrls);
                 paperLibraryResultList.add(paperLibraryResult);
@@ -291,7 +289,7 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
     }
 
     @Override
-    public List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate) {
+    public List<String> recognition(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate, RecognitionTypeEnum type) {
         QueryWrapper<PaperLibrary> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(PaperLibrary::getId, paperLibraryId);
         PaperLibrary paperLibrary = this.getOne(queryWrapper);
@@ -308,7 +306,7 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
         }
         // 裁剪
         File outFile = new File(cutRootPath, "sub" + file.getName());
-        if(!outFile.exists()){
+        if (!outFile.exists()) {
             outFile.getParentFile().mkdirs();
         }
         File subFile = ImageUtil.subImg(file, x, y, width, height, outFile);
@@ -322,43 +320,62 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
 
         List<String> stringList = new ArrayList<>();
         try {
-            org.json.JSONObject callHandwriting;
-            if (rotateFile.exists()) {
-                callHandwriting = ocrUtil.callHandwriting(rotateFile.getPath());
-            } else {
-                callHandwriting = ocrUtil.callHandwriting(subFile.getPath());
-            }
-
-            // 未联网提示
-            if (!callHandwriting.has(SystemConstant.OCR_WORDS_RESULT)) {
-                // ocr错误提示
-                if (callHandwriting.has(SystemConstant.OCR_ERROR_MSG)) {
-                    throw ExceptionResultEnum.ERROR.exception(callHandwriting.getString(SystemConstant.OCR_ERROR_MSG));
+            if (RecognitionTypeEnum.OCR.equals(type)) {
+                org.json.JSONObject callHandwriting;
+                if (rotateFile.exists()) {
+                    callHandwriting = ocrUtil.callHandwriting(rotateFile.getPath());
                 } else {
-                    throw ExceptionResultEnum.ERROR.exception("OCR识别异常,请检查网络是否连接或者关闭OCR识别");
+                    callHandwriting = ocrUtil.callHandwriting(subFile.getPath());
                 }
-            }
 
-            JSONArray jsonArray = callHandwriting.getJSONArray(SystemConstant.OCR_WORDS_RESULT);
-            if (jsonArray.length() == 0) {
-                throw ExceptionResultEnum.ERROR.exception("未正确识别出内容");
-            } else {
-                jsonArray.forEach(m -> {
-                    org.json.JSONObject object = (org.json.JSONObject) m;
-                    if (object.has(SystemConstant.OCR_WORDS)) {
-                        stringList.add(object.getString(SystemConstant.OCR_WORDS));
+                // 未联网提示
+                if (!callHandwriting.has(SystemConstant.OCR_WORDS_RESULT)) {
+                    // ocr错误提示
+                    if (callHandwriting.has(SystemConstant.OCR_ERROR_MSG)) {
+                        throw ExceptionResultEnum.ERROR.exception(callHandwriting.getString(SystemConstant.OCR_ERROR_MSG));
+                    } else {
+                        throw ExceptionResultEnum.ERROR.exception("OCR识别异常,请检查网络是否连接或者关闭OCR识别");
                     }
-                });
+                }
 
+                JSONArray jsonArray = callHandwriting.getJSONArray(SystemConstant.OCR_WORDS_RESULT);
+                if (jsonArray.length() == 0) {
+                    throw ExceptionResultEnum.ERROR.exception("未正确识别出内容");
+                } else {
+                    jsonArray.forEach(m -> {
+                        org.json.JSONObject object = (org.json.JSONObject) m;
+                        if (object.has(SystemConstant.OCR_WORDS)) {
+                            stringList.add(object.getString(SystemConstant.OCR_WORDS));
+                        }
+                    });
+
+                    // 保存识别数据
+                    UpdateWrapper<PaperLibrary> updateWrapper = new UpdateWrapper<>();
+                    updateWrapper.lambda().set(PaperLibrary::getWordsResult, jsonArray.toString())
+                            .set(PaperLibrary::getOcrResult, String.join(",", stringList))
+                            .eq(PaperLibrary::getId, paperLibraryId);
+                    this.update(updateWrapper);
+                }
+            } else if (RecognitionTypeEnum.BAR_CODE.equals(type)) {
+                String result;
+                if (rotateFile.exists()) {
+                    result = BarCodeUtils.decode(rotateFile);
+                } else {
+                    result = BarCodeUtils.decode(subFile);
+                }
+                if (StringUtils.isNotBlank(result)) {
+                    stringList.add(result);
+                }
                 // 保存识别数据
                 UpdateWrapper<PaperLibrary> updateWrapper = new UpdateWrapper<>();
-                updateWrapper.lambda().set(PaperLibrary::getWordsResult, jsonArray.toString())
-                        .set(PaperLibrary::getOcrResult, String.join(",", stringList))
+                updateWrapper.lambda().set(PaperLibrary::getWordsResult, result)
                         .eq(PaperLibrary::getId, paperLibraryId);
                 this.update(updateWrapper);
+            } else {
+                throw ExceptionResultEnum.ERROR.exception("不支持的识别方式");
             }
-        } catch (JSONException e) {
-            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception("识别异常");
         } finally {
             try {
                 FileUtils.forceDelete(file);

+ 11 - 0
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskDetailServiceImpl.java

@@ -1,9 +1,11 @@
 package com.qmth.paper.library.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.paper.library.business.entity.PaperScanTaskDetail;
 import com.qmth.paper.library.business.mapper.PaperScanTaskDetailMapper;
 import com.qmth.paper.library.business.service.PaperScanTaskDetailService;
+import com.qmth.paper.library.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 
 /**
@@ -14,4 +16,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class PaperScanTaskDetailServiceImpl extends ServiceImpl<PaperScanTaskDetailMapper, PaperScanTaskDetail> implements PaperScanTaskDetailService {
 
+    @Override
+    public PaperScanTaskDetail getByPaperScanTaskIdAndStudentId(Long paperScanTaskId, Long studentId) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        QueryWrapper<PaperScanTaskDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(PaperScanTaskDetail::getSchoolId, schoolId)
+                .eq(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskId)
+                .eq(PaperScanTaskDetail::getStudentId, studentId);
+        return this.getOne(queryWrapper);
+    }
 }

+ 131 - 8
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperScanTaskServiceImpl.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.qmth.paper.library.business.bean.dto.excel.PaperScanTaskStudentImportDto;
 import com.qmth.paper.library.business.bean.dto.excel.ScannerBindingDto;
 import com.qmth.paper.library.business.bean.params.PaperScanTaskParam;
 import com.qmth.paper.library.business.bean.result.BindDetailResult;
@@ -19,19 +21,26 @@ import com.qmth.paper.library.business.service.PaperArchivesService;
 import com.qmth.paper.library.business.service.PaperLibraryService;
 import com.qmth.paper.library.business.service.PaperScanTaskDetailService;
 import com.qmth.paper.library.business.service.PaperScanTaskService;
+import com.qmth.paper.library.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.paper.library.common.contant.SystemConstant;
+import com.qmth.paper.library.common.entity.BasicStudent;
 import com.qmth.paper.library.common.entity.SysUser;
 import com.qmth.paper.library.common.enums.ExceptionResultEnum;
+import com.qmth.paper.library.common.service.BasicStudentService;
 import com.qmth.paper.library.common.service.SysUserService;
 import com.qmth.paper.library.common.util.ExcelUtil;
 import com.qmth.paper.library.common.util.ServletUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.io.IOException;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -51,6 +60,9 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
     @Resource
     private PaperScanTaskDetailService paperScanTaskDetailService;
 
+    @Resource
+    private BasicStudentService basicStudentService;
+
     @Override
     public IPage<PaperScanTaskResult> paperScanTaskPage(String courseName, String teacherName, Integer smallerProgress, Integer largerProgress, int pageNumber, int pageSize, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
@@ -75,15 +87,15 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         // 任务名称在档案下唯一
         PaperScanTask check = this.getOne(new QueryWrapper<PaperScanTask>()
                 .lambda()
+                .eq(PaperScanTask::getSchoolId, schoolId)
                 .eq(PaperScanTask::getPaperArchivesId, paperArchivesId)
                 .eq(PaperScanTask::getScanTaskName, scanTaskName));
         if (Objects.nonNull(check) && !Objects.equals(check.getId(), paperScanTaskId)) {
-            throw ExceptionResultEnum.ERROR.exception("所选档案下已存在名称为【" + scanTaskName + "】的扫描任务");
+            throw ExceptionResultEnum.ERROR.exception("所选档案下已存在名称为[" + scanTaskName + "]的扫描任务");
         }
 
+        String courseCode = paperScanTaskParam.getCourseCode();
         String courseName = paperScanTaskParam.getCourseName();
-        String teacherName = paperScanTaskParam.getTeacherName();
-        String teacherClazzName = paperScanTaskParam.getTeachClazzName();
         Long scanUserId = paperScanTaskParam.getScanUserId();
         Integer studentCount = paperScanTaskParam.getStudentCount();
         if (SystemConstant.longNotNull(scanUserId)) {
@@ -98,9 +110,8 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         paperScanTask.setSchoolId(schoolId);
         paperScanTask.setPaperArchivesId(paperArchivesId);
         paperScanTask.setScanTaskName(scanTaskName);
+        paperScanTask.setCourseCode(courseCode);
         paperScanTask.setCourseName(courseName);
-        paperScanTask.setTeacherName(teacherName);
-        paperScanTask.setTeachClazzName(teacherClazzName);
         paperScanTask.setStudentCount(studentCount);
         if (SystemConstant.longNotNull(scanUserId)) {
             paperScanTask.setScanUserId(scanUserId);
@@ -337,4 +348,116 @@ public class PaperScanTaskServiceImpl extends ServiceImpl<PaperScanTaskMapper, P
         paperScanTask.setEnable(enable);
         return this.updateById(paperScanTask);
     }
+
+    @Transactional
+    @Override
+    public void importStudent(Long paperScanTaskId, MultipartFile file) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        try {
+            List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(PaperScanTaskStudentImportDto.class, DescribeImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> finalExcelList);
+            List<PaperScanTaskStudentImportDto> datasource = new ArrayList<>();
+            for (int i = 0; i < finalList.size(); i++) {
+                LinkedMultiValueMap<Integer, Object> excelMap = finalList.get(i);
+                List<Object> paperScanTaskStudentImportDtoList = excelMap.get(i);
+                if (CollectionUtils.isEmpty(paperScanTaskStudentImportDtoList) || paperScanTaskStudentImportDtoList.get(0) instanceof DescribeImportDto) {
+                    continue;
+                }
+                // 类型转换
+                if (paperScanTaskStudentImportDtoList.get(0) instanceof PaperScanTaskStudentImportDto) {
+                    datasource = paperScanTaskStudentImportDtoList.stream().map(e -> {
+                        PaperScanTaskStudentImportDto paperScanTaskImportDto = new PaperScanTaskStudentImportDto();
+                        BeanUtils.copyProperties(e, paperScanTaskImportDto);
+                        return paperScanTaskImportDto;
+                    }).collect(Collectors.toList());
+                }
+            }
+            if (!CollectionUtils.isEmpty(datasource)) {
+                // 扫描任务唯一信息
+                Map<String, PaperScanTaskStudentImportDto> studentImportDtoMap = new HashMap<>();
+                for (PaperScanTaskStudentImportDto paperScanTaskStudentImportDto : datasource) {
+                    String studentName = paperScanTaskStudentImportDto.getStudentName();
+                    String studentCode = paperScanTaskStudentImportDto.getStudentCode();
+
+                    if (studentImportDtoMap.containsKey(studentCode)) {
+                        // 如果试卷任务map中包含考生 - 检验其他信息是否一致(姓名,班级)
+                        PaperScanTaskStudentImportDto v = studentImportDtoMap.get(studentCode);
+                        String vStudentName = v.getStudentName();
+
+                        if (!vStudentName.equals(studentName)) {
+                            throw ExceptionResultEnum.ERROR.exception("考号[" + studentCode + "]存在不同的姓名[" + vStudentName + "," + studentName + "]");
+                        }
+                        // 校验通过,删除掉重复数据
+                        datasource.remove(paperScanTaskStudentImportDto);
+                    } else {
+                        // 没包含直接put
+                        studentImportDtoMap.put(studentCode, paperScanTaskStudentImportDto);
+                    }
+                }
+
+                // 查询任务下是否有考生
+                List<PaperScanTaskDetail> paperScanTaskDetailDbList = paperScanTaskDetailService.list(new QueryWrapper<PaperScanTaskDetail>()
+                        .lambda().eq(PaperScanTaskDetail::getSchoolId, schoolId)
+                        .eq(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskId));
+
+                // 学生基础数据集合
+                List<BasicStudent> basicStudentDbList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getSchoolId, schoolId));
+                List<PaperScanTaskDetail> paperScanTaskDetailList = new ArrayList<>();
+                for (PaperScanTaskStudentImportDto e : datasource) {
+                    String studentName = e.getStudentName();
+                    String studentCode = e.getStudentCode();
+                    String teachClazzName = e.getTeachClazzName();
+                    List<BasicStudent> studentList = basicStudentDbList.stream().filter(s -> s.getStudentCode().equals(studentCode)).collect(Collectors.toList());
+                    BasicStudent basicStudent = null;
+                    if (studentList.isEmpty()) {
+                        basicStudent = new BasicStudent(schoolId, studentName, studentCode, true);
+                    } else if (studentList.size() == 1) {
+                        basicStudent = studentList.get(0);
+                        basicStudent.setStudentName(studentName);
+                    } else {
+                        throw ExceptionResultEnum.ERROR.exception("学号[" + studentCode + "]查出多条数据,请在学生管理处理");
+                    }
+
+                    basicStudentService.saveOrUpdate(basicStudent);
+
+                    Long studentId = basicStudent.getId();
+
+                    PaperScanTaskDetail paperScanTaskDetail = paperScanTaskDetailDbList.stream().filter(p -> p.getStudentId().equals(studentId) && ((StringUtils.isBlank(teachClazzName) && StringUtils.isBlank(p.getTeachClazzName())) || (StringUtils.isNotBlank(teachClazzName) && teachClazzName.equals(p.getTeachClazzName())))).findFirst().orElse(null);
+                    if (paperScanTaskDetail == null) {
+                        paperScanTaskDetail = new PaperScanTaskDetail();
+                        paperScanTaskDetail.setId(SystemConstant.getDbUuid());
+                        paperScanTaskDetail.setSchoolId(schoolId);
+                        paperScanTaskDetail.setPaperScanTaskId(paperScanTaskId);
+                        paperScanTaskDetail.setStudentId(studentId);
+                        paperScanTaskDetail.setTeachClazzName(teachClazzName);
+                        paperScanTaskDetailList.add(paperScanTaskDetail);
+                    }
+                }
+                if (!CollectionUtils.isEmpty(paperScanTaskDetailList)) {
+                    paperScanTaskDetailService.saveOrUpdateBatch(paperScanTaskDetailList);
+                }
+
+                // 更新扫描任务冗余字段扫描份数(学生数量)
+                PaperScanTask paperScanTask = this.getById(paperScanTaskId);
+                int studentCount = paperScanTaskDetailService.count(new QueryWrapper<PaperScanTaskDetail>()
+                        .lambda()
+                        .eq(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskId));
+                paperScanTask.setStudentCount(studentCount);
+//                    paperScanTask.setEnable(false);
+                this.updateById(paperScanTask);
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        } catch (NoSuchFieldException e) {
+            throw ExceptionResultEnum.ERROR.exception("请选择导入文件");
+        }
+    }
+
+    @Override
+    public List<PaperScanTask> getByPaperArchivesIdAndScanTaskName(Long schoolId, Long paperArchivesId, String scanTaskName) {
+        QueryWrapper<PaperScanTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(PaperScanTask::getSchoolId, schoolId)
+                .eq(PaperScanTask::getPaperArchivesId, paperArchivesId)
+                .eq(PaperScanTask::getScanTaskName, scanTaskName);
+        return this.list(queryWrapper);
+    }
 }

+ 1 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/templete/execute/AsyncPaperScanTaskImportService.java

@@ -36,7 +36,7 @@ public class AsyncPaperScanTaskImportService extends AsyncImportTaskTemplate {
     public static final String SCAN_TASK_TITLE = "扫描任务";
 
     @Override
-    public Result importTask(Map<String, Object> map) throws IOException, Exception {
+    public Result importTask(Map<String, Object> map) throws Exception {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         InputStream inputStream = super.getUploadFileInputStream(tbTask);
         map.put("inputStream", inputStream);

+ 114 - 131
paper-library-business/src/main/java/com/qmth/paper/library/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -8,7 +8,6 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.paper.library.business.bean.dto.excel.PaperScanTaskImportDto;
 import com.qmth.paper.library.business.bean.params.PaperScanTaskParam;
 import com.qmth.paper.library.business.bean.result.PaperArchivesDetailResult;
-import com.qmth.paper.library.business.entity.PaperArchives;
 import com.qmth.paper.library.business.entity.PaperLibrary;
 import com.qmth.paper.library.business.entity.PaperScanTask;
 import com.qmth.paper.library.business.entity.PaperScanTaskDetail;
@@ -46,7 +45,6 @@ import javax.annotation.Resource;
 import java.io.*;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * @Description: 任务处理逻辑impl
@@ -187,8 +185,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Map<String, Object> executeImportPaperScanTaskDetailLogic(Map<String, Object> map) throws Exception {
-        SysUser requestUser = (SysUser) map.get(SystemConstant.SYS_USER);
-        Long schoolId = requestUser.getSchoolId();
+        SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
+        Long schoolId = sysUser.getSchoolId();
         InputStream inputStream = (InputStream) map.get("inputStream");
 
         List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(inputStream, Lists.newArrayList(PaperScanTaskImportDto.class, DescribeImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> finalExcelList);
@@ -196,12 +194,11 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         for (int i = 0; i < finalList.size(); i++) {
             LinkedMultiValueMap<Integer, Object> excelMap = finalList.get(i);
             List<Object> paperScanTaskImportDtoList = excelMap.get(i);
-            assert paperScanTaskImportDtoList != null;
-            if (paperScanTaskImportDtoList.get(0) instanceof DescribeImportDto) {
+            if (CollectionUtils.isEmpty(paperScanTaskImportDtoList) || paperScanTaskImportDtoList.get(0) instanceof DescribeImportDto) {
                 continue;
             }
             map.put("dataCount", paperScanTaskImportDtoList.size());
-            //  处理机构
+            // 类型转换
             if (paperScanTaskImportDtoList.get(0) instanceof PaperScanTaskImportDto) {
                 datasource = paperScanTaskImportDtoList.stream().map(e -> {
                     PaperScanTaskImportDto paperScanTaskImportDto = new PaperScanTaskImportDto();
@@ -210,167 +207,153 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 }).collect(Collectors.toList());
             }
         }
-        if (datasource.size() > 0) {
+        if (!CollectionUtils.isEmpty(datasource)) {
             // 选择的扫描档案id
             Long paperArchivesId = SystemConstant.convertIdToLong(String.valueOf(map.get("paperArchivesId")));
-            List<Map<String, String>> archivesCheckMapList = datasource.stream().flatMap(e -> {
-                Map<String, String> checkMap = new HashMap<>();
-                checkMap.put("archivesName", e.getArchivesName());
-                checkMap.put("archivesCode", e.getArchivesCode());
-                return Stream.of(checkMap);
-            }).distinct().collect(Collectors.toList());
-
-            if (archivesCheckMapList.size() != 1) {
-                throw ExceptionResultEnum.ERROR.exception("excel中的档案信息异常(导入扫描任务数据必须是一个档案下的)");
-            }
-            Map<String, String> archivesCheckMap = archivesCheckMapList.get(0);
-            String archivesName = archivesCheckMap.get("archivesName");
-            String archivesCode = archivesCheckMap.get("archivesCode");
-
-            // 判断选择的档案和导入的是同一个
-            PaperArchives paperArchives = paperArchivesService.getOne(new QueryWrapper<PaperArchives>()
-                    .lambda()
-                    .eq(PaperArchives::getId, paperArchivesId)
-                    .eq(PaperArchives::getArchivesCode, archivesCode)
-                    .eq(PaperArchives::getArchivesName, archivesName));
-            if (Objects.isNull(paperArchives)) {
-                throw ExceptionResultEnum.ERROR.exception("excel中的档案信息和选择的档案不符");
-            }
 
             // 归纳 - 扫描任务集合
             // 扫描任务唯一信息
             Map<String, PaperScanTask> paperScanTaskMap = new HashMap<>();
+            Map<String, List<PaperScanTaskImportDto>> listMap = new HashMap<>();
+            Map<String, List<String>> studentCodeMap = new HashMap<>();
             for (PaperScanTaskImportDto paperScanTaskImportDto : datasource) {
                 String scanTaskName = paperScanTaskImportDto.getScanTaskName();
+                String courseCode = paperScanTaskImportDto.getCourseCode();
                 String courseName = paperScanTaskImportDto.getCourseName();
-                String teacherName = paperScanTaskImportDto.getTeacherName();
+                String studentCode = paperScanTaskImportDto.getStudentCode();
+                String studentName = paperScanTaskImportDto.getStudentName();
                 String teachClazzName = paperScanTaskImportDto.getTeachClazzName();
+                String teacherName = paperScanTaskImportDto.getTeacherName();
 
                 if (paperScanTaskMap.containsKey(scanTaskName)) {
                     // 如果试卷任务map中包含该任务名称 - 检验其他信息是否一致(课程,任课教师,教学班 为空的不检验)
                     PaperScanTask v = paperScanTaskMap.get(scanTaskName);
+                    String vCourseCode = v.getCourseCode();
                     String vCourseName = v.getCourseName();
-                    String vTeacherName = v.getTeacherName();
-                    String vTeachClazzName = v.getTeachClazzName();
 
-                    // 同一任务课程名称检验
-                    if (!SystemConstant.strNotNull(vCourseName)) {
-                        v.setCourseName(courseName);
-                    } else if (SystemConstant.strNotNull(courseName) && !vCourseName.equals(courseName)) {
-                        throw ExceptionResultEnum.ERROR.exception("excel数据异常:导入的任务【" + scanTaskName + "】存在不同的课程名称【" + vCourseName + "," + courseName + "】");
+                    // 同一任务中,学号唯一
+                    if (studentCodeMap.get(scanTaskName).contains(studentCode)) {
+                        throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "]存在相同的学号[" + studentCode + "]");
                     }
 
-                    // 同一任务任课教师检验
-                    if (!SystemConstant.strNotNull(vTeacherName)) {
-                        v.setTeacherName(teacherName);
-                    } else if (SystemConstant.strNotNull(teacherName) && !vTeacherName.equals(teacherName)) {
-                        throw ExceptionResultEnum.ERROR.exception("excel数据异常:导入的任务【" + scanTaskName + "】存在不同的任课教师【" + vTeacherName + "," + teacherName + "】");
+                    //同一课程必须在同一任务中
+                    if (!courseCode.equals(vCourseCode)) {
+                        throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "]存在不同的课程代码[" + courseCode + "," + vCourseCode + "]");
                     }
 
-                    // 同一任务教学班检验
-                    if (!SystemConstant.strNotNull(vTeachClazzName)) {
-                        v.setTeachClazzName(teachClazzName);
-                    } else if (SystemConstant.strNotNull(teachClazzName) && !vTeachClazzName.equals(teachClazzName)) {
-                        throw ExceptionResultEnum.ERROR.exception("excel数据异常:导入的任务【" + scanTaskName + "】存在不同的教学班【" + vTeachClazzName + "," + teachClazzName + "】");
+                    // 同一任务课程名称检验
+                    if (!courseName.equals(vCourseName)) {
+                        throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "]存在不同的课程名称[" + courseName + "," + vCourseName + "]");
                     }
+
                 } else {
-                    // 没包含直接put
+                    List<PaperScanTask> paperScanTaskList = paperScanTaskService.getByPaperArchivesIdAndScanTaskName(schoolId, paperArchivesId, scanTaskName);
+                    if (!CollectionUtils.isEmpty(paperScanTaskList)) {
+                        throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "]在系统中已存在");
+                    }
+
                     PaperScanTask v = new PaperScanTask();
-                    v.setScanTaskName(scanTaskName);
-                    v.setCourseName(courseName);
-                    v.setTeacherName(teacherName);
-                    v.setTeachClazzName(teachClazzName);
+                    BeanUtils.copyProperties(paperScanTaskImportDto, v);
+                    // 没包含直接put
                     paperScanTaskMap.put(scanTaskName, v);
                 }
+
+                // 同一任务任课教师检验
+                if ((StringUtils.isNotBlank(teacherName) || StringUtils.isNotBlank(teachClazzName)) && (StringUtils.isBlank(studentCode) || StringUtils.isBlank(studentName))) {
+                    throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "],[教学班][任课老师]有值时,[学号][姓名]必填");
+                }
+                // 校验姓名和学号
+                if ((StringUtils.isBlank(studentCode) && StringUtils.isNotBlank(studentName)) || (StringUtils.isBlank(studentName) && StringUtils.isNotBlank(studentCode))) {
+                    throw ExceptionResultEnum.ERROR.exception("任务名称[" + scanTaskName + "],[学号][姓名]其中一个有值时,另一个必填");
+                }
+
+                if (studentCodeMap.containsKey(scanTaskName)) {
+                    studentCodeMap.get(scanTaskName).add(courseCode);
+                } else {
+                    List<String> initList = new ArrayList<>();
+                    studentCodeMap.put(scanTaskName, initList);
+                }
+
+                if (listMap.containsKey(scanTaskName)) {
+                    listMap.get(scanTaskName).add(paperScanTaskImportDto);
+                } else {
+                    List<PaperScanTaskImportDto> initList = new ArrayList<>();
+                    listMap.put(scanTaskName, initList);
+                }
             }
+            List<PaperScanTaskDetail> paperScanTaskDetailList = new ArrayList<>();
+            List<BasicStudent> basicStudentDbList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getSchoolId, schoolId));
+            for (Map.Entry<String, List<PaperScanTaskImportDto>> entry : listMap.entrySet()) {
+                String scanTaskName = entry.getKey();
+                List<PaperScanTaskImportDto> importDtoList = entry.getValue();
 
-            // 创建扫描任务并把编辑后的任务id放回map中
-            List<Long> paperScanTaskIdList = new ArrayList<>();
-            for (String k : paperScanTaskMap.keySet()) {
-                PaperScanTask v = paperScanTaskMap.get(k);
-                PaperScanTask db = paperScanTaskService.getOne(new QueryWrapper<PaperScanTask>()
-                        .lambda()
-                        .eq(PaperScanTask::getSchoolId, requestUser.getSchoolId())
-                        .eq(PaperScanTask::getScanTaskName, k)
-                        .eq(PaperScanTask::getPaperArchivesId, paperArchivesId));
+                // 取课程代码和课程名称
+                PaperScanTaskImportDto paperScanTaskImportDto = importDtoList.get(0);
+
+                // 保存扫描任务
                 PaperScanTaskParam paperScanTaskParam = new PaperScanTaskParam();
-                if (Objects.nonNull(db)) {
-                    // 编辑
-                    paperScanTaskParam.setPaperScanTaskId(db.getId());
-                    paperScanTaskIdList.add(db.getId());
-                }
                 paperScanTaskParam.setPaperArchivesId(paperArchivesId);
-                paperScanTaskParam.setCourseName(v.getCourseName());
-                paperScanTaskParam.setTeacherName(v.getTeacherName());
-                paperScanTaskParam.setTeachClazzName(v.getTeachClazzName());
-                paperScanTaskParam.setScanTaskName(k);
-                Long paperScanTaskId = paperScanTaskService.editPaperScanTask(paperScanTaskParam, requestUser);
-                v.setId(paperScanTaskId);
-            }
+                paperScanTaskParam.setCourseCode(paperScanTaskImportDto.getCourseCode());
+                paperScanTaskParam.setCourseName(paperScanTaskImportDto.getCourseName());
+                paperScanTaskParam.setScanTaskName(scanTaskName);
+                Long paperScanTaskId = paperScanTaskService.editPaperScanTask(paperScanTaskParam, sysUser);
 
-            // 归纳 - 扫描任务详情
-            // 上面编辑的任务绑定的扫描详情集合
-            List<PaperScanTaskDetail> paperScanTaskDetailDbList = new ArrayList<>();
-            if (paperScanTaskIdList.size() > 0) {
-                paperScanTaskDetailDbList = paperScanTaskDetailService.list(new QueryWrapper<PaperScanTaskDetail>()
+                // 保存任务+考生
+                List<PaperScanTaskDetail> paperScanTaskDetailDbList = paperScanTaskDetailService.list(new QueryWrapper<PaperScanTaskDetail>()
                         .lambda()
-                        .in(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskIdList)
-                        .eq(PaperScanTaskDetail::getSchoolId, schoolId));
-            }
-            List<PaperScanTaskDetail> finalPaperScanTaskDetailDbList = paperScanTaskDetailDbList;
+                        .eq(PaperScanTaskDetail::getSchoolId, schoolId)
+                        .in(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskId));
+
+                for (PaperScanTaskImportDto scanTaskImportDto : importDtoList) {
+                    String studentCode = scanTaskImportDto.getStudentCode();
+                    String studentName = scanTaskImportDto.getStudentName();
+                    String teachClazzName = scanTaskImportDto.getTeachClazzName();
+                    String teacherName = scanTaskImportDto.getTeacherName();
+
+                    // 没有学号等信息的考生,不存
+                    if (StringUtils.isBlank(studentCode)) {
+                        continue;
+                    }
 
-            // 学生基础数据集合
-            List<BasicStudent> basicStudentDbList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getSchoolId, schoolId));
-            List<PaperScanTaskDetail> paperScanTaskDetailList = datasource.stream().flatMap(e -> {
+                    List<BasicStudent> studentList = basicStudentDbList.stream().filter(s -> s.getStudentCode().equals(studentCode)).collect(Collectors.toList());
+                    BasicStudent basicStudent;
+                    if (CollectionUtils.isEmpty(studentList)) {
+                        // 新增学生
+                        basicStudent = new BasicStudent(schoolId, studentName, studentCode, true);
+                        basicStudentService.save(basicStudent);
+                    } else if (studentList.size() == 1) {
+                        // 更新
+                        basicStudent = studentList.get(0);
+                        if (!teacherName.equals(basicStudent.getStudentName())) {
+                            throw ExceptionResultEnum.ERROR.exception("学号[" + studentCode + "]的学生姓名与基础信息中姓名不一致");
+                        }
+                    } else {
+                        throw ExceptionResultEnum.ERROR.exception("学号[" + studentCode + "]的学生姓名存在多条数据,请在学生管理处理");
+                    }
 
-                String scanTaskName = e.getScanTaskName();
-                PaperScanTask paperScanTask = paperScanTaskMap.get(scanTaskName);
-                if (Objects.isNull(paperScanTask)) {
-                    throw ExceptionResultEnum.ERROR.exception("扫描任务数据异常");
-                }
-                Long paperScanTaskId = paperScanTask.getId();
+                    PaperScanTaskDetail paperScanTaskDetail = paperScanTaskDetailDbList.stream().filter(p -> basicStudent.getId() == p.getStudentId()).findFirst().orElse(null);
+                    if (paperScanTaskDetail == null) {
+                        // 新增
+                        paperScanTaskDetail = new PaperScanTaskDetail();
+                        paperScanTaskDetail.setPaperScanTaskId(paperScanTaskId);
+                        paperScanTaskDetail.setStudentId(basicStudent.getId());
+                        paperScanTaskDetail.setTeacherName(teacherName);
+                        paperScanTaskDetail.setTeachClazzName(teachClazzName);
+                        paperScanTaskDetail.insertInfo(sysUser.getId());
 
-                String studentCode = e.getStudentCode();
-                List<BasicStudent> studentList = basicStudentDbList.stream().filter(s -> s.getStudentCode().equals(studentCode)).collect(Collectors.toList());
-                if (studentList.size() != 1) {
-                    throw ExceptionResultEnum.ERROR.exception("学号为【" + studentCode + "】的学生不存在或异常");
-                }
-                // 目标学生
-                BasicStudent targetStudent = studentList.get(0);
-                if (!e.getStudentName().equals(targetStudent.getStudentName())) {
-                    throw ExceptionResultEnum.ERROR.exception("学号为【" + studentCode + "】的学生姓名与基础信息中姓名不一致");
+                    } else {
+                        paperScanTaskDetail.setTeacherName(teacherName);
+                        paperScanTaskDetail.setTeachClazzName(teachClazzName);
+                        paperScanTaskDetail.updateInfo(sysUser.getId());
+                    }
+                    paperScanTaskDetailList.add(paperScanTaskDetail);
                 }
+            }
 
-                Long studentId = targetStudent.getId();
-
-                PaperScanTaskDetail paperScanTaskDetail = new PaperScanTaskDetail();
-                List<PaperScanTaskDetail> paperScanTaskDetailCellList = finalPaperScanTaskDetailDbList.stream()
-                        .filter(d -> d.getPaperScanTaskId().equals(paperScanTaskId) && d.getStudentId().equals(studentId) && d.getSchoolId().equals(schoolId))
-                        .collect(Collectors.toList());
-                if (paperScanTaskDetailCellList.size() == 1) {
-                    paperScanTaskDetail.setId(paperScanTaskDetailCellList.get(0).getId());
-                }
-                paperScanTaskDetail.setPaperScanTaskId(paperScanTaskId);
-                paperScanTaskDetail.setSchoolId(schoolId);
-                paperScanTaskDetail.setStudentId(studentId);
-                return Stream.of(paperScanTaskDetail);
-            }).collect(Collectors.toList());
-            paperScanTaskDetailService.saveOrUpdateBatch(paperScanTaskDetailList);
-
-            // 更新扫描任务冗余字段扫描份数(学生数量)
-            List<PaperScanTask> paperScanTaskList = paperScanTaskService.list(new QueryWrapper<PaperScanTask>()
-                    .lambda()
-                    .eq(PaperScanTask::getSchoolId, schoolId)
-                    .eq(PaperScanTask::getPaperArchivesId, paperArchivesId));
-            for (PaperScanTask paperScanTask : paperScanTaskList) {
-                Long paperScanTaskId = paperScanTask.getId();
-                int studentCount = paperScanTaskDetailService.count(new QueryWrapper<PaperScanTaskDetail>()
-                        .lambda()
-                        .eq(PaperScanTaskDetail::getPaperScanTaskId, paperScanTaskId));
-                paperScanTask.setStudentCount(studentCount);
-                paperScanTask.setEnable(false);
+            // 批量保存
+            if (!CollectionUtils.isEmpty(paperScanTaskDetailList)) {
+                paperScanTaskDetailService.saveOrUpdateBatch(paperScanTaskDetailList);
             }
-            paperScanTaskService.saveOrUpdateBatch(paperScanTaskList);
         }
         return map;
     }

+ 0 - 1876
paper-library-business/src/main/resources/db/1、init-table.sql

@@ -1,1876 +0,0 @@
-SET NAMES UTF8;
-
--- ----------------------------
--- Table structure for basic_attachment
--- ----------------------------
-DROP TABLE IF EXISTS `basic_attachment`;
-CREATE TABLE `basic_attachment` (
-                                    `id` bigint NOT NULL COMMENT '主键',
-                                    `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                    `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                    `name` varchar(100) NOT NULL COMMENT '文件名',
-                                    `type` varchar(10) NOT NULL COMMENT '文件类型',
-                                    `size` int NOT NULL COMMENT '单位(KB)',
-                                    `md5` varchar(32) NOT NULL COMMENT '文件md5值',
-                                    `path` varchar(2000) NOT NULL COMMENT '存储路径',
-                                    `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                    `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                    `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                    `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                    `obj_id` bigint DEFAULT NULL COMMENT '关联业务id',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='所有附件记录表';
-
--- ----------------------------
--- Table structure for basic_campus
--- ----------------------------
-DROP TABLE IF EXISTS `basic_campus`;
-CREATE TABLE `basic_campus` (
-                                `id` bigint NOT NULL COMMENT '校区id',
-                                `school_id` bigint NOT NULL COMMENT '学校id',
-                                `campus_name` varchar(64) DEFAULT NULL COMMENT '校区名称',
-                                `campus_code` varchar(64) DEFAULT NULL COMMENT '校区编码',
-                                `print_house_id` bigint DEFAULT NULL COMMENT '印刷室id',
-                                `enable` tinyint DEFAULT '1' COMMENT '是否可用',
-                                `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                PRIMARY KEY (`id`) USING BTREE,
-                                UNIQUE KEY `campus_schoolId_code_idx` (`school_id`,`campus_code`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础校区表';
-
--- ----------------------------
--- Table structure for basic_card_rule
--- ----------------------------
-DROP TABLE IF EXISTS `basic_card_rule`;
-CREATE TABLE `basic_card_rule` (
-                                   `id` bigint NOT NULL COMMENT '主键',
-                                   `school_id` bigint NOT NULL COMMENT '学校id',
-                                   `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                   `name` varchar(30) NOT NULL COMMENT '题卡规则名称',
-                                   `exam_number_style` varchar(5) NOT NULL COMMENT 'PRINT-印刷条码,PASTE-粘贴条码,FILL-卡号填涂',
-                                   `paper_type` varchar(5) NOT NULL COMMENT 'PRINT-印刷条码,FILL-卡号填涂',
-                                   `exam_absent` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                   `write_sign` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                   `discipline` tinyint(1) DEFAULT NULL COMMENT '违纪填涂(1:是,0:否)',
-                                   `required_fields` text NOT NULL COMMENT '必选字段',
-                                   `extend_fields` text NOT NULL COMMENT '扩展字段',
-                                   `title_rule` varchar(200) NOT NULL COMMENT '题卡标题规则',
-                                   `attention` text NOT NULL COMMENT '注意事项',
-                                   `objective_attention` text NOT NULL COMMENT '客观题注意事项',
-                                   `subjective_attention` text NOT NULL COMMENT '主观题注意事项',
-                                   `enable` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                   `remark` varchar(200) DEFAULT NULL COMMENT '备注',
-                                   `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                   `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                   `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                   `fill_number` tinyint DEFAULT NULL COMMENT '卡号填涂位数',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='题卡规则';
-
--- ----------------------------
--- Table structure for basic_clazz
--- ----------------------------
-DROP TABLE IF EXISTS `basic_clazz`;
-CREATE TABLE `basic_clazz` (
-                               `id` bigint NOT NULL,
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `major_id` bigint NOT NULL COMMENT '专业id',
-                               `clazz_code` varchar(50) DEFAULT NULL COMMENT '班级编号',
-                               `short_code` varchar(10) DEFAULT NULL COMMENT '简码',
-                               `clazz_name` varchar(50) DEFAULT NULL COMMENT '班级名称',
-                               `enable` tinyint(1) DEFAULT NULL COMMENT '是否可用',
-                               `org_id` bigint DEFAULT NULL COMMENT '权限机构id',
-                               `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                               `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                               `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                               `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                               PRIMARY KEY (`id`) USING BTREE,
-                               UNIQUE KEY `clazz_schoolId_name_idx` (`school_id`,`clazz_name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础班级表';
-
--- ----------------------------
--- Table structure for basic_college
--- ----------------------------
-DROP TABLE IF EXISTS `basic_college`;
-CREATE TABLE `basic_college` (
-                                 `id` bigint NOT NULL,
-                                 `school_id` bigint NOT NULL,
-                                 `college_name` varchar(50) NOT NULL COMMENT '学院名称',
-                                 `org_id` bigint NOT NULL COMMENT '数据权限机构id',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                 `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                 PRIMARY KEY (`id`),
-                                 UNIQUE KEY `college_schoolId_name_idx` (`school_id`,`college_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生学院表';
-
--- ----------------------------
--- Table structure for basic_course
--- ----------------------------
-DROP TABLE IF EXISTS `basic_course`;
-CREATE TABLE `basic_course` (
-                                `id` bigint NOT NULL COMMENT '主键',
-                                `school_id` bigint NOT NULL COMMENT '学校id',
-                                `org_id` bigint NOT NULL COMMENT '机构id',
-                                `code` varchar(20) NOT NULL COMMENT '课程编码',
-                                `short_code` varchar(10) DEFAULT NULL COMMENT '简码',
-                                `name` varchar(50) NOT NULL COMMENT '课程名称',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                                `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                                `teaching_room_id` bigint DEFAULT NULL COMMENT '教研室id',
-                                `enable` tinyint DEFAULT NULL,
-                                `historic_name` varchar(100) DEFAULT NULL COMMENT '历史课程名称',
-                                PRIMARY KEY (`id`) USING BTREE,
-                                UNIQUE KEY `course_schoolId_code_idx` (`school_id`,`code`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='课程表';
-
--- ----------------------------
--- Table structure for basic_exam
--- ----------------------------
-DROP TABLE IF EXISTS `basic_exam`;
-CREATE TABLE `basic_exam` (
-                              `id` bigint NOT NULL,
-                              `school_id` bigint NOT NULL,
-                              `semester_id` bigint DEFAULT NULL COMMENT '学期ID',
-                              `short_code` varchar(10) DEFAULT NULL COMMENT '简码',
-                              `name` varchar(100) DEFAULT NULL COMMENT '考试名称',
-                              `category` varchar(45) DEFAULT NULL COMMENT '考试类型(ONLINE:线上,OFFLINE:线下)',
-                              `exam_model` varchar(45) DEFAULT NULL COMMENT '业务模式(MODEL1:电子交卷环节需要提交考务数据,MODEL2:电子交卷环节不需要提交考务数据,只输入印刷份数即可,MODEL3:电子交卷环节不需要提交考务数据)',
-                              `enable` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1启用/0禁用',
-                              `in_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1是/0否',
-                              `create_id` bigint DEFAULT NULL,
-                              `create_time` bigint DEFAULT NULL,
-                              `update_id` bigint DEFAULT NULL,
-                              `update_time` bigint DEFAULT NULL,
-                              PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考试表';
-
--- ----------------------------
--- Table structure for basic_exam_rule
--- ----------------------------
-DROP TABLE IF EXISTS `basic_exam_rule`;
-CREATE TABLE `basic_exam_rule` (
-                                   `id` bigint NOT NULL COMMENT '主键',
-                                   `school_id` bigint NOT NULL COMMENT '学校id',
-                                   `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                   `required_fields` text COMMENT '必选字段',
-                                   `extend_fields` text NOT NULL COMMENT '扩展字段',
-                                   `review` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                   `include_paper` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                   `print_method` varchar(6) NOT NULL COMMENT 'AUTO-自动,MANUAL-手动',
-                                   `exam_number_digit` int DEFAULT NULL COMMENT '考号位数',
-                                   `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                   `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                   `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考务规则';
-
--- ----------------------------
--- Table structure for basic_major
--- ----------------------------
-DROP TABLE IF EXISTS `basic_major`;
-CREATE TABLE `basic_major` (
-                               `id` bigint NOT NULL COMMENT '主键',
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `org_id` bigint NOT NULL COMMENT '机构id',
-                               `name` varchar(100) NOT NULL COMMENT '专业名称',
-                               `code` varchar(100) DEFAULT NULL COMMENT '专业编码',
-                               `enable` tinyint DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                               `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                               `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                               `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                               `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                               `belong_org_id` bigint NOT NULL COMMENT '所属机构id',
-                               PRIMARY KEY (`id`) USING BTREE,
-                               UNIQUE KEY `major_schoolId_name_idx` (`school_id`,`name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专业字典表';
-
--- ----------------------------
--- Table structure for basic_message
--- ----------------------------
-DROP TABLE IF EXISTS `basic_message`;
-CREATE TABLE `basic_message` (
-                                 `id` bigint NOT NULL COMMENT '主键',
-                                 `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                 `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                 `user_id` bigint NOT NULL COMMENT '消息接收人用户',
-                                 `user_name` varchar(100) DEFAULT NULL COMMENT '用户名称',
-                                 `mobile_number` varchar(11) DEFAULT NULL COMMENT '电话号码',
-                                 `paper_number` varchar(50) DEFAULT NULL COMMENT '试卷编号',
-                                 `course_code` varchar(50) DEFAULT NULL COMMENT '课程代码',
-                                 `message_type` varchar(45) DEFAULT NULL COMMENT '消息类型',
-                                 `business_operate` varchar(45) NOT NULL COMMENT '业务操作',
-                                 `business_id` bigint DEFAULT NULL COMMENT '业务id',
-                                 `template_code` varchar(45) NOT NULL COMMENT '消息模板代码',
-                                 `variable_params` text COMMENT '变量参数内容',
-                                 `template_content` mediumtext COMMENT '模板内容',
-                                 `send_status` varchar(45) DEFAULT NULL COMMENT '消息发送状态',
-                                 `send_result` varchar(200) DEFAULT NULL COMMENT '消息发送结果',
-                                 `remark` text COMMENT '备注',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                 `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                 `resend_count` int DEFAULT NULL COMMENT '重试次数',
-                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for basic_operation_log
--- ----------------------------
-DROP TABLE IF EXISTS `basic_operation_log`;
-CREATE TABLE `basic_operation_log` (
-                                       `id` bigint NOT NULL COMMENT 'id',
-                                       `detail` mediumtext NOT NULL COMMENT '日志详情',
-                                       `level` varchar(32) DEFAULT NULL COMMENT '日志等级(PRIMARY("一级日志:敏感信息"),SECONDARY("二级日志:重要信息"),TERTIARY("三级日志:次要信息"),QUATERNARY("四级日志:普通信息"))',
-                                       `operation_type` varchar(32) DEFAULT NULL COMMENT '操作类型(UN_KNOW("未知"),SELECT("查询"),EDIT("新增或更新"),DELETE("删除"))',
-                                       `operation_unit` varchar(128) DEFAULT NULL COMMENT '操作对象(略)',
-                                       `system_type` varchar(32) DEFAULT NULL COMMENT '日志系统类型',
-                                       `url` varchar(64) DEFAULT NULL COMMENT '请求地址url',
-                                       `clazz_name` varchar(64) DEFAULT NULL COMMENT '类名称',
-                                       `method` varchar(64) DEFAULT NULL COMMENT '方法名称',
-                                       `args` mediumtext COMMENT '参数',
-                                       `run_time` bigint DEFAULT NULL COMMENT '方法运行时间',
-                                       `run_status` varchar(32) DEFAULT NULL COMMENT '方法运行状态',
-                                       `return_value` mediumtext COMMENT '方法返回值',
-                                       `user_id` bigint NOT NULL COMMENT '用户对象id',
-                                       `user_name` varchar(32) DEFAULT NULL COMMENT '用户名称',
-                                       `create_time` bigint DEFAULT NULL COMMENT '日志记录时间',
-                                       PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='基础日志记录表';
-
--- ----------------------------
--- Table structure for basic_print_config
--- ----------------------------
-DROP TABLE IF EXISTS `basic_print_config`;
-CREATE TABLE `basic_print_config` (
-                                      `id` bigint NOT NULL,
-                                      `school_id` bigint NOT NULL COMMENT '学校ID',
-                                      `exam_id` bigint DEFAULT NULL COMMENT '考试ID',
-                                      `enable` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1启用/0禁用',
-                                      `card_rule_id` bigint DEFAULT NULL COMMENT '题卡规则(-1代表通卡)',
-                                      `print_content` varchar(255) DEFAULT NULL COMMENT '试卷、题卡',
-                                      `backup_method` varchar(10) DEFAULT NULL COMMENT '试卷题卡备份方式(ROOM按考场)',
-                                      `backup_count` int DEFAULT NULL COMMENT '试卷题卡备份数量',
-                                      `draw_rule` varchar(10) DEFAULT NULL COMMENT '抽卷规则(ONE只抽一次,CIRCLE循环抽取)',
-                                      `variable_content` mediumtext COMMENT '变量印品参数json',
-                                      `ordinary_content` mediumtext COMMENT '普通印品参数json',
-                                      `create_id` bigint DEFAULT NULL,
-                                      `create_time` bigint DEFAULT NULL,
-                                      `update_id` bigint DEFAULT NULL,
-                                      `update_time` bigint DEFAULT NULL,
-                                      PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='印品配置表';
-
--- ----------------------------
--- Table structure for basic_school
--- ----------------------------
-DROP TABLE IF EXISTS `basic_school`;
-CREATE TABLE `basic_school` (
-                                `id` bigint NOT NULL COMMENT '主键',
-                                `code` varchar(20) NOT NULL COMMENT '学校编码',
-                                `name` varchar(100) DEFAULT NULL COMMENT '学校名称',
-                                `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,false:停用,true:启用',
-                                `access_key` varchar(50) DEFAULT NULL COMMENT '访问key',
-                                `access_secret` varchar(50) DEFAULT NULL COMMENT '访问秘钥',
-                                `remark` text COMMENT '备注',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                `logo` varchar(500) DEFAULT NULL COMMENT '学校logo',
-                                PRIMARY KEY (`id`) USING BTREE,
-                                UNIQUE KEY `code` (`code`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校表';
-
--- ----------------------------
--- Table structure for basic_semester
--- ----------------------------
-DROP TABLE IF EXISTS `basic_semester`;
-CREATE TABLE `basic_semester` (
-                                  `id` bigint NOT NULL COMMENT '主键',
-                                  `school_id` bigint NOT NULL COMMENT '学校id',
-                                  `name` varchar(100) NOT NULL COMMENT '学期名称',
-                                  `code` varchar(100) DEFAULT NULL COMMENT '学期编码',
-                                  `start_time` bigint DEFAULT NULL COMMENT '开始日期',
-                                  `end_time` bigint DEFAULT NULL COMMENT '结束日期',
-                                  `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                  `enable` tinyint DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                  `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                  `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                  `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                  `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                  `in_used` tinyint(1) DEFAULT NULL COMMENT '是否当前使用学期',
-                                  PRIMARY KEY (`id`) USING BTREE,
-                                  UNIQUE KEY `semester_schoolId_name_idx` (`school_id`,`name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学期字典表';
-
--- ----------------------------
--- Table structure for basic_student
--- ----------------------------
-DROP TABLE IF EXISTS `basic_student`;
-CREATE TABLE `basic_student` (
-                                 `id` bigint NOT NULL COMMENT '学生id',
-                                 `school_id` bigint NOT NULL COMMENT '学校id',
-                                 `student_name` varchar(64) NOT NULL COMMENT '学生姓名',
-                                 `student_code` varchar(64) NOT NULL COMMENT '学生编号',
-                                 `phone_number` varchar(11) DEFAULT NULL COMMENT '电话号码',
-                                 `belong_org_id` bigint DEFAULT NULL COMMENT '所属院系',
-                                 `major_id` bigint DEFAULT NULL COMMENT '专业id',
-                                 `clazz_id` bigint DEFAULT NULL COMMENT '班级主键',
-                                 `enable` tinyint DEFAULT '1' COMMENT '可用状态(1:可用,0:不可用)',
-                                 `org_id` bigint DEFAULT NULL COMMENT '可操作人机构id',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                 `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                 PRIMARY KEY (`id`) USING BTREE,
-                                 UNIQUE KEY `student_schoolId_code_orgId_idx` (`school_id`,`student_code`,`belong_org_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校id';
-
--- ----------------------------
--- Table structure for basic_template
--- ----------------------------
-DROP TABLE IF EXISTS `basic_template`;
-CREATE TABLE `basic_template` (
-                                  `id` bigint NOT NULL COMMENT '主键',
-                                  `school_id` bigint NOT NULL COMMENT '学校id',
-                                  `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                  `name` varchar(30) NOT NULL COMMENT '模板名称',
-                                  `classify` varchar(10) DEFAULT NULL COMMENT 'template_type值为VARIABLE、ORDINARY时,不为空。\n  SIGN-签到表,PACKAGE-卷袋贴,CHECK_IN-登记表',
-                                  `display_range` mediumtext COMMENT '卷袋贴、签到表数据范围',
-                                  `preview_path` varchar(500) DEFAULT NULL COMMENT '预览地址',
-                                  `attachment_id` bigint DEFAULT NULL COMMENT '模板附件ID(保存到附件表ID)',
-                                  `enable` tinyint NOT NULL COMMENT '0-禁用,1-启用',
-                                  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
-                                  `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                  `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                  `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                  `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通用模板';
-
--- ----------------------------
--- Table structure for basic_template_org
--- ----------------------------
-DROP TABLE IF EXISTS `basic_template_org`;
-CREATE TABLE `basic_template_org` (
-                                      `id` bigint NOT NULL COMMENT '主键',
-                                      `school_id` bigint NOT NULL COMMENT '学校id',
-                                      `type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '模板类型:GENERIC-通卡模板,VARIABLE-变量印品模板,ORDINARY-普通印品模板,CARD_RULE-题卡规则,PRINT_CONFIG-印品配置',
-                                      `rule_id` bigint NOT NULL COMMENT '通卡模板ID',
-                                      `org_id` bigint NOT NULL COMMENT '组织机构ID',
-                                      `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                      `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                      `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                      `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='适用学院(题卡规则、模板适用学院)';
-
--- ----------------------------
--- Table structure for basic_user_course
--- ----------------------------
-DROP TABLE IF EXISTS `basic_user_course`;
-CREATE TABLE `basic_user_course` (
-                                     `id` bigint NOT NULL COMMENT '主键',
-                                     `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                     `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                     `user_id` bigint DEFAULT NULL COMMENT '用户ID',
-                                     `course_id` bigint DEFAULT NULL COMMENT '课程ID',
-                                     `clazz_id` bigint DEFAULT NULL COMMENT '授课班级',
-                                     `enable` tinyint(1) DEFAULT NULL COMMENT '是否启用?1-是 ;0-否',
-                                     `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                     `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                     `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                     `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和课程关联表';
-
--- ----------------------------
--- Table structure for basic_verify_code
--- ----------------------------
-DROP TABLE IF EXISTS `basic_verify_code`;
-CREATE TABLE `basic_verify_code` (
-                                     `id` bigint NOT NULL COMMENT '主键',
-                                     `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                     `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                     `user_id` bigint NOT NULL COMMENT '用户ID',
-                                     `mobile_number` varchar(11) NOT NULL COMMENT '手机号',
-                                     `expire_time` bigint NOT NULL COMMENT '到期时间',
-                                     `valid_period` int NOT NULL COMMENT '单位(分)',
-                                     `verify_code` varchar(4) NOT NULL COMMENT '4位数字',
-                                     `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                     `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                     `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                     `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='短信验证码记录表';
-
--- ----------------------------
--- Table structure for client_print_data
--- ----------------------------
-DROP TABLE IF EXISTS `client_print_data`;
-CREATE TABLE `client_print_data` (
-                                     `id` bigint NOT NULL COMMENT '主键',
-                                     `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                     `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                     `exam_detail_id` bigint DEFAULT NULL COMMENT '考场ID',
-                                     `machine_code` varchar(45) DEFAULT NULL COMMENT '机器唯一码',
-                                     `pages_a4` int DEFAULT NULL COMMENT 'A4页数量',
-                                     `pages_a3` int DEFAULT NULL COMMENT 'A3页数量',
-                                     `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                     `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                     `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                     `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                     PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='各机器打印数量';
-
--- ----------------------------
--- Table structure for client_status
--- ----------------------------
-DROP TABLE IF EXISTS `client_status`;
-CREATE TABLE `client_status` (
-                                 `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
-                                 `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                 `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                 `machine_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '机器唯一码',
-                                 `exam_detail_id` bigint DEFAULT NULL COMMENT '考场ID',
-                                 `print_plan_id` bigint DEFAULT NULL COMMENT '印刷计划ID',
-                                 `course_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '课程代码',
-                                 `course_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '课程名称',
-                                 `paper_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '试卷编号',
-                                 `is_try` tinyint DEFAULT NULL COMMENT '是否打样:true-是,false-否',
-                                 `try_time` bigint DEFAULT NULL COMMENT '打样时间',
-                                 `is_pass` tinyint DEFAULT NULL COMMENT '是否合格:true-合格,false-不合格',
-                                 `is_download` tinyint DEFAULT NULL COMMENT '是否缓存:true-是,false-否',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                 `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB AUTO_INCREMENT=281784714686103553 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='机器打样记录';
-
--- ----------------------------
--- Table structure for cloud_user_push_status
--- ----------------------------
-DROP TABLE IF EXISTS `cloud_user_push_status`;
-CREATE TABLE `cloud_user_push_status` (
-                                          `id` bigint NOT NULL,
-                                          `school_id` bigint NOT NULL COMMENT '学校id',
-                                          `user_id` bigint NOT NULL,
-                                          `marker_status` varchar(100) NOT NULL COMMENT '评卷员推送状态(UserPushResultEnum):BIND_SUCCESS("绑定成功"),BIND_FAILED("绑定失败"),UNBIND_SUCCESS("解绑成功"),UNBIND_FAILED("解绑失败");',
-                                          `marker_leader_status` varchar(100) NOT NULL COMMENT '科组长推送状态(UserPushResultEnum):BIND_SUCCESS("绑定成功"),BIND_FAILED("绑定失败"),UNBIND_SUCCESS("解绑成功"),UNBIND_FAILED("解绑失败");',
-                                          `sync_status` varchar(100) NOT NULL COMMENT '同步状态(SyncStatusEnum),ALREADY_PUSH("已经完成推送"),NEED_PUSH_AGAIN("需要重新推送");',
-                                          `create_id` bigint DEFAULT NULL COMMENT '创建人\n',
-                                          `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                          `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                          `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                          PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='云阅卷用户推送状态表';
-
--- ----------------------------
--- Table structure for exam_card
--- ----------------------------
-DROP TABLE IF EXISTS `exam_card`;
-CREATE TABLE `exam_card` (
-                             `id` bigint NOT NULL COMMENT '主键',
-                             `school_id` bigint NOT NULL COMMENT '学校id',
-                             `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                             `course_code` varchar(30) DEFAULT NULL COMMENT '课程编码',
-                             `course_name` varchar(100) DEFAULT NULL COMMENT '课程名称',
-                             `title` varchar(200) NOT NULL COMMENT '标题',
-                             `make_method` varchar(10) DEFAULT NULL COMMENT '题卡制作方式:SELECT-选择已有题卡,SELF-自助创建,CUST-客户制卡',
-                             `status` varchar(45) DEFAULT NULL COMMENT 'STAGE-暂存,SUBMIT-提交',
-                             `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                             `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                             `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                             `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                             `type` varchar(45) NOT NULL COMMENT '题卡类型:GENERIC-通卡,CUSTOM-自定义',
-                             `create_method` varchar(45) DEFAULT NULL COMMENT '通卡创建方式(UPLOAD-上传,CUSTOMIZE-自定义)',
-                             `attachment_id` bigint DEFAULT NULL COMMENT 'type=GENERIC时必传,上传附件ID',
-                             `sync_status` tinyint(1) DEFAULT NULL COMMENT '是否同步成功:true-是, false-否',
-                             `enable` tinyint(1) DEFAULT '1' COMMENT '1正常,0禁用',
-                             `remark` mediumtext COMMENT '备注',
-                             `card_rule_id` bigint DEFAULT NULL COMMENT '题卡规则Id',
-                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='题卡';
-
--- ----------------------------
--- Table structure for exam_card_detail
--- ----------------------------
-DROP TABLE IF EXISTS `exam_card_detail`;
-CREATE TABLE `exam_card_detail` (
-                                    `id` bigint NOT NULL COMMENT '主键',
-                                    `card_id` bigint NOT NULL COMMENT '题卡ID',
-                                    `content` mediumtext COMMENT '题卡工具制作题卡内容',
-                                    `html_content` mediumtext COMMENT 'html格式内容',
-                                    `attachment_id` mediumtext COMMENT '备用题卡json',
-                                    `cust_attachment_id` bigint DEFAULT NULL COMMENT '客服制卡上传附件ID',
-                                    `jpg_attachment_info` text COMMENT '题卡转换成的jpg文件信息',
-                                    `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                    `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                    `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                    `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                    PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='题卡详情';
-
--- ----------------------------
--- Table structure for exam_detail
--- ----------------------------
-DROP TABLE IF EXISTS `exam_detail`;
-CREATE TABLE `exam_detail` (
-                               `id` bigint NOT NULL COMMENT '主键',
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `org_id` bigint NOT NULL COMMENT '机构id',
-                               `print_plan_id` bigint NOT NULL COMMENT '印刷计划ID',
-                               `print_plan_name` varchar(100) DEFAULT NULL COMMENT '印刷计划名称',
-                               `exam_start_time` bigint NOT NULL COMMENT '考试开始日期',
-                               `exam_end_time` bigint NOT NULL COMMENT '考试结束日期',
-                               `exam_place` varchar(30) NOT NULL COMMENT '考场',
-                               `total_subjects` int DEFAULT NULL COMMENT '总科次:考场总科次',
-                               `exam_room` varchar(30) DEFAULT NULL COMMENT '教室',
-                               `print_progress` double DEFAULT NULL COMMENT '打印进度',
-                               `print_user` varchar(30) DEFAULT NULL COMMENT '打印员:一个考场只能被一个打印员认领',
-                               `package_code` varchar(30) DEFAULT NULL COMMENT '考场代码:卷袋贴、签到表上条码',
-                               `pages_a3` int DEFAULT NULL COMMENT 'A3印量小计(页)',
-                               `pages_a4` int DEFAULT NULL COMMENT 'A4印量小计(页)',
-                               `status` varchar(30) DEFAULT NULL COMMENT '状态:NEW: "新建",READY: "就绪",WAITING: "待印刷",PRINTING: "印刷中",FINISH: "已完成"',
-                               `validate` tinyint(1) DEFAULT '0' COMMENT '是否校验:true-是,false-否',
-                               `print_start_time` bigint DEFAULT NULL COMMENT '打印开始时间',
-                               `print_end_time` bigint DEFAULT NULL COMMENT '打印完成时间',
-                               `attachment_id` bigint DEFAULT NULL COMMENT '附件id',
-                               `card_attachment_id` bigint DEFAULT NULL COMMENT '题卡合并A3文件附件ID',
-                               `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                               `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                               `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                               `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                               `attachment_path` mediumtext COMMENT '印品附件路径',
-                               `exam_data_source` varchar(20) DEFAULT NULL COMMENT '数据来源(EXAM_TASK:卷库查询生成,FILE_IMPORT:考务文件导入)',
-                               `normal` tinyint DEFAULT '1' COMMENT '是否正常,true正常,false做废',
-                               `print_house_id` bigint DEFAULT NULL COMMENT '印刷室ID',
-                               `print_count` int DEFAULT NULL COMMENT '模式2,考生数量(打印数量)',
-                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考务数据';
-
--- ----------------------------
--- Table structure for exam_detail_course
--- ----------------------------
-DROP TABLE IF EXISTS `exam_detail_course`;
-CREATE TABLE `exam_detail_course` (
-                                      `id` bigint NOT NULL COMMENT '主键',
-                                      `school_id` bigint NOT NULL COMMENT '学校id',
-                                      `org_id` bigint NOT NULL COMMENT '机构id',
-                                      `exam_detail_id` bigint NOT NULL COMMENT '考试明细id',
-                                      `course_code` varchar(20) NOT NULL COMMENT '课程编码',
-                                      `course_name` varchar(50) NOT NULL COMMENT '课程名称',
-                                      `paper_number` varchar(30) NOT NULL COMMENT '页数',
-                                      `total_subjects` int DEFAULT NULL COMMENT '总科次:考场总科次',
-                                      `paper_pages_a3` int DEFAULT NULL COMMENT '试卷单科次准印量A3(页)',
-                                      `card_pages_a3` int DEFAULT NULL COMMENT '题卡单科次准印量A3(页)',
-                                      `clazz_id` text,
-                                      `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                      `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                      `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                      `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                      `paper_type` varchar(30) DEFAULT NULL COMMENT '当前试卷类型',
-                                      `attachment_id` mediumtext COMMENT '备用题卡json',
-                                      `common_attachment_id` mediumtext COMMENT '模式2下考生公共题卡json',
-                                      PRIMARY KEY (`id`) USING BTREE,
-                                      KEY `detail_course_schoolId_idx` (`school_id`,`paper_number`,`paper_type`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考务数据(考场关联科目)';
-
--- ----------------------------
--- Table structure for exam_paper_group
--- ----------------------------
-DROP TABLE IF EXISTS `exam_paper_group`;
-CREATE TABLE `exam_paper_group` (
-                                    `id` bigint NOT NULL COMMENT '分组id',
-                                    `exam_paper_structure_id` bigint NOT NULL COMMENT '试卷结构id',
-                                    `group_number` int NOT NULL COMMENT '分组序号',
-                                    `double_rate` tinyint DEFAULT NULL COMMENT '双评比例(0关闭,1开启)',
-                                    `arbitrate_threshold` int DEFAULT NULL COMMENT '仲裁阈值(开启双评必填)',
-                                    `score_policy` varchar(45) DEFAULT NULL COMMENT '合分策略 开启双评是必填 AVG("平均分", 1), MAX("最高分", 2), MIN("最低分", 3)',
-                                    `trial_count` int DEFAULT NULL COMMENT '试评数量',
-                                    `mark_mode` varchar(45) DEFAULT NULL COMMENT '评卷模式 COMMON("普通"), TRACK("轨迹")',
-                                    `question_info` text COMMENT '题目信息',
-                                    `picture_config` text COMMENT '图片配置',
-                                    `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                    `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                    `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                    `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                    PRIMARY KEY (`id`),
-                                    UNIQUE KEY `exam_paper_group_unique` (`exam_paper_structure_id`,`group_number`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='试卷分组表';
-
--- ----------------------------
--- Table structure for exam_paper_group_marker
--- ----------------------------
-DROP TABLE IF EXISTS `exam_paper_group_marker`;
-CREATE TABLE `exam_paper_group_marker` (
-                                           `id` bigint NOT NULL COMMENT '评卷员-分组关系id',
-                                           `group_id` bigint NOT NULL COMMENT '分组id',
-                                           `marker_id` bigint NOT NULL COMMENT '评卷员id',
-                                           `login_name` varchar(100) DEFAULT NULL COMMENT '评卷员登录名',
-                                           `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                           `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                           `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                           `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                           PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='评卷员-分组关系表';
-
--- ----------------------------
--- Table structure for exam_paper_structure
--- ----------------------------
-DROP TABLE IF EXISTS `exam_paper_structure`;
-CREATE TABLE `exam_paper_structure` (
-                                        `id` bigint NOT NULL COMMENT '主键',
-                                        `school_id` bigint DEFAULT NULL COMMENT '学校ID',
-                                        `semester_id` bigint DEFAULT NULL COMMENT '学期ID',
-                                        `semester_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '学期',
-                                        `exam_id` bigint NOT NULL COMMENT '考试id',
-                                        `third_relate_id` bigint DEFAULT NULL COMMENT '云阅卷考试ID',
-                                        `third_relate_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '云阅卷考试名称',
-                                        `paper_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '试卷编号',
-                                        `course_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '课程代码',
-                                        `course_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '课程名称',
-                                        `sequence` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '课程创建的任务序号(和exam_task保持一致)',
-                                        `paper_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '试卷类型',
-                                        `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态。INIT:未开始;START:开始同步;PAPER_FINISH:试卷同步成功;ANSWER_FINISH:标答同步成功;OBJECTIVE_FINISH:客观题结构同步成功;SUBJECTIVE_FINISH:主观题结构同步成功;FINISH:结束。',
-                                        `paper_answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '试卷原卷和标答附件ID',
-                                        `objective_structure` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '客观题试卷结构JSON',
-                                        `subjective_structure` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '主观题试卷结构JSON',
-                                        `paper_info_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '整个试卷信息json(前端提供的全部信息)',
-                                        `proposition_teacher_id` bigint DEFAULT NULL COMMENT '命题老师ID',
-                                        `enable` tinyint(1) DEFAULT NULL COMMENT '是否启用(0-禁用,1-启用)',
-                                        `mark_leader` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '科组长,样例:[{markerId:1, loginName:"mt01"}]',
-                                        `cloud_info_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '云阅卷试卷结构',
-                                        `structure_change` tinyint(1) DEFAULT NULL COMMENT '云阅卷试卷结构和知学知考结构不一样(默认false)',
-                                        `create_id` bigint DEFAULT NULL,
-                                        `create_time` bigint DEFAULT NULL,
-                                        `update_id` bigint DEFAULT NULL,
-                                        `update_time` bigint DEFAULT NULL,
-                                        PRIMARY KEY (`id`) USING BTREE,
-                                        UNIQUE KEY `exam_paper_structure_unique` (`school_id`,`exam_id`,`paper_number`,`paper_type`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-
--- ----------------------------
--- Table structure for exam_print_plan
--- ----------------------------
-DROP TABLE IF EXISTS `exam_print_plan`;
-CREATE TABLE `exam_print_plan` (
-                                   `id` bigint NOT NULL COMMENT '主键',
-                                   `exam_id` bigint NOT NULL COMMENT '考试id',
-                                   `school_id` bigint NOT NULL COMMENT '学校id',
-                                   `org_id` bigint NOT NULL COMMENT '机构id',
-                                   `name` varchar(150) DEFAULT NULL COMMENT '名称',
-                                   `exam_start_time` bigint NOT NULL COMMENT '考试开始时间',
-                                   `exam_end_time` bigint NOT NULL COMMENT '考试结束时间',
-                                   `print_content` varchar(30) NOT NULL COMMENT '{“PAPER”, "CARD"}',
-                                   `backup_method` varchar(10) NOT NULL COMMENT 'PLACE-按考点,ROOM-按考场',
-                                   `backup_count` int NOT NULL COMMENT '备份数量',
-                                   `draw_rule` varchar(10) DEFAULT NULL COMMENT 'ONE-只抽一次,CIRCLE-可循环抽取',
-                                   `variable_content` text NOT NULL COMMENT '[\n  	{\n  		"type": "SIGN",\n  		"usedId": 1,\n  		"backupMethod": "ROOM",\n  		"backupCount": 3\n  	},\n  	{\n  		"type": "PACKAG",\n  		"usedId": 3,\n  		"backupMethod": "STUDENT",\n  		"backupCount": 5\n  	}\n  ]',
-                                   `ordinary_content` text NOT NULL COMMENT '[\n  	{\n  		"type": "CHECK_IN",\n  		"usedId": 1,\n  		"backupMethod": "ROOM",\n  		"backupCount": 3\n  	}\n  ]',
-                                   `status` varchar(20) NOT NULL COMMENT '印刷计划状态',
-                                   `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                   `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                   `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                   `third_relate_id` bigint DEFAULT NULL COMMENT '第三方系统关联ID(目前只有云阅卷)',
-                                   `third_relate_name` varchar(100) DEFAULT NULL COMMENT '第三方系统关联考试名称(目前只有云阅卷)',
-                                   `sync_status` varchar(20) DEFAULT NULL COMMENT '是否同步成功',
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='印刷计划管理';
-
--- ----------------------------
--- Table structure for exam_student
--- ----------------------------
-DROP TABLE IF EXISTS `exam_student`;
-CREATE TABLE `exam_student` (
-                                `id` bigint NOT NULL COMMENT '主键',
-                                `school_id` bigint NOT NULL COMMENT '学校id',
-                                `org_id` bigint NOT NULL COMMENT '机构id',
-                                `exam_detail_course_id` bigint NOT NULL COMMENT '考试明细课程id',
-                                `student_name` varchar(30) NOT NULL COMMENT '考生姓名',
-                                `student_code` varchar(30) NOT NULL COMMENT '考生代码',
-                                `paper_number` varchar(30) NOT NULL COMMENT '试卷编号',
-                                `ticket_number` varchar(30) DEFAULT NULL COMMENT '准考证号',
-                                `site_number` varchar(30) DEFAULT NULL COMMENT '座位号',
-                                `print_paper` tinyint DEFAULT NULL COMMENT '打印试卷',
-                                `print_card` tinyint DEFAULT NULL COMMENT '打印题卡',
-                                `extend_fields` text COMMENT '扩展字段',
-                                `paper_type` varchar(2) DEFAULT NULL COMMENT '试卷类型',
-                                `college_name` varchar(100) DEFAULT NULL COMMENT '学生学院名称',
-                                `major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
-                                `clazz_id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '班级Id',
-                                `clazz_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
-                                `teach_clazz_id` bigint DEFAULT NULL COMMENT '教学班id',
-                                `teach_clazz_name` varchar(100) DEFAULT NULL COMMENT '教学班名称',
-                                `student_clazz_type` varchar(100) DEFAULT NULL COMMENT '主体班级类型',
-                                `campus_name` varchar(200) DEFAULT NULL COMMENT '校区',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                `attachment_id` bigint DEFAULT NULL COMMENT '附件id',
-                                `sync_status` tinyint(1) DEFAULT NULL COMMENT '是否同步成功:true-是, false-否',
-                                PRIMARY KEY (`id`) USING BTREE,
-                                KEY `exam_student_schoolId_idx` (`school_id`,`student_code`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考生';
-
--- ----------------------------
--- Table structure for exam_task
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task`;
-CREATE TABLE `exam_task` (
-                             `id` bigint NOT NULL COMMENT '主键',
-                             `exam_id` bigint NOT NULL COMMENT '考试id',
-                             `school_id` bigint NOT NULL COMMENT '学校id',
-                             `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                             `course_code` varchar(20) NOT NULL COMMENT '课程代码',
-                             `course_name` varchar(50) NOT NULL COMMENT '课程名称',
-                             `specialty` varchar(100) DEFAULT NULL COMMENT '适用专业',
-                             `paper_number` varchar(30) NOT NULL COMMENT '试卷编号',
-                             `paper_number_id` bigint DEFAULT NULL COMMENT '试卷编号ID(用于推送云阅卷)',
-                             `sequence` varchar(5) DEFAULT NULL COMMENT '课程创建的任务序号',
-                             `start_time` bigint DEFAULT NULL COMMENT '命题开始时间',
-                             `end_time` bigint DEFAULT NULL COMMENT '命题结束时间',
-                             `card_rule_id` bigint NOT NULL COMMENT '题卡规则',
-                             `user_id` bigint DEFAULT NULL COMMENT '命题老师',
-                             `status` varchar(50) DEFAULT NULL COMMENT '任务状态,DRAFT:新建,SUBMIT:已提交,STAGE:待命题',
-                             `review` tinyint DEFAULT NULL COMMENT '是否审核,0-禁用,1-启用',
-                             `review_status` varchar(8) DEFAULT NULL COMMENT '审核状态:PASS-审核通过,NOT_PASS-审核不通过,默认为空-未审核',
-                             `enable` tinyint DEFAULT '1' COMMENT '是否启用,false:停用,true:启用',
-                             `batch_no` varchar(32) DEFAULT NULL COMMENT '批次id',
-                             `teaching_room_id` bigint DEFAULT NULL COMMENT '教学单位、教研室',
-                             `teacher_name` varchar(100) DEFAULT NULL COMMENT '拟卷教师',
-                             `lecturer_name` varchar(100) DEFAULT NULL COMMENT '主讲教师',
-                             `paper_name` varchar(100) DEFAULT NULL COMMENT '试卷名称',
-                             `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                             `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                             `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                             `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                             `flow_id` bigint DEFAULT NULL COMMENT '流程id',
-                             `approve_form_attachment_id` bigint DEFAULT NULL COMMENT '命题任务审批表附件id',
-                             PRIMARY KEY (`id`) USING BTREE,
-                             KEY `task_schoolId_flowId_idx` (`school_id`,`flow_id`,`card_rule_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题任务';
-
--- ----------------------------
--- Table structure for exam_task_apply_temp
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_apply_temp`;
-CREATE TABLE `exam_task_apply_temp` (
-                                        `id` bigint unsigned NOT NULL,
-                                        `school_id` bigint NOT NULL COMMENT '学校Id',
-                                        `org_id` bigint NOT NULL COMMENT '机构id',
-                                        `exam_task_content` mediumtext COMMENT '命题任务json',
-                                        `create_id` bigint DEFAULT NULL,
-                                        `create_time` bigint DEFAULT NULL,
-                                        `update_id` bigint DEFAULT NULL,
-                                        `update_time` bigint DEFAULT NULL,
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='卷库查询-命题任务申请临时表';
-
--- ----------------------------
--- Table structure for exam_task_detail
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_detail`;
-CREATE TABLE `exam_task_detail` (
-                                    `id` bigint NOT NULL COMMENT '主键',
-                                    `exam_task_id` bigint NOT NULL COMMENT '命题任务ID',
-                                    `paper_type` varchar(20) DEFAULT NULL COMMENT '试卷类型,多个以”/“分隔,如A/B/C/D',
-                                    `draw_count` int DEFAULT NULL COMMENT '单次抽卷数量',
-                                    `paper_attachment_ids` text COMMENT '转换为A3格式的试卷附件\n[\\n  	{\\n  		"type": "A",\\n  		"attachmentId": 12,\\n  		"totalPages": 3\\n  	},\\n  	{\\n  		"type": "B",\\n  		"attachmentId": 13,\\n  		"totalPages": 2\\n  	}\\n  ]',
-                                    `make_method` varchar(45) DEFAULT NULL COMMENT '题卡绑定方式',
-                                    `paper_confirm_attachment_ids` text COMMENT '[\n  	{\n  		"attachmentId": 12\n  	},\n  	{\n  		"attachmentId": 13\n  	}\n  ]',
-                                    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
-                                    `exposed_paper_type` varchar(20) DEFAULT NULL COMMENT '曝光卷型:已打印卷型,多个以”/“分隔,如A/B/C/D',
-                                    `relate_paper_type` varchar(5) DEFAULT NULL COMMENT '已曝光卷型',
-                                    `unexposed_paper_type` varchar(20) DEFAULT NULL COMMENT '未曝光卷型',
-                                    `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                    `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                    `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                    `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                    `enable` tinyint DEFAULT '1' COMMENT '0-禁用,1-启用',
-                                    PRIMARY KEY (`id`) USING BTREE,
-                                    KEY `exam_task_detail_idx` (`exam_task_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题任务明细表(入库申请)';
-
--- ----------------------------
--- Table structure for exam_task_paper_log
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_paper_log`;
-CREATE TABLE `exam_task_paper_log` (
-                                       `id` bigint NOT NULL COMMENT '主键',
-                                       `exam_task_id` bigint NOT NULL COMMENT '命题任务ID',
-                                       `paper_type` varchar(45) DEFAULT NULL COMMENT '试卷类型',
-                                       `paper_attachment_ids` mediumtext COMMENT '修改后试卷',
-                                       `card_id` bigint DEFAULT NULL COMMENT '修改后题卡ID',
-                                       `review` tinyint(1) DEFAULT NULL COMMENT '是否审核:true-审核,false-未审核',
-                                       `review_status` varchar(45) DEFAULT NULL COMMENT '审核状态:PASS-通过,NOT_PASS-不通过',
-                                       `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                       `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                       `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                       `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                       PRIMARY KEY (`id`) USING BTREE,
-                                       KEY `exam_task_paper_idx` (`exam_task_id`,`review`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='卷库修改审核临时表';
-
--- ----------------------------
--- Table structure for exam_task_print
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_print`;
-CREATE TABLE `exam_task_print` (
-                                   `id` bigint NOT NULL,
-                                   `school_id` bigint DEFAULT NULL,
-                                   `org_id` bigint DEFAULT NULL,
-                                   `print_plan_id` bigint DEFAULT NULL COMMENT '印刷计划ID',
-                                   `course_code` varchar(45) DEFAULT NULL COMMENT '课程代码',
-                                   `course_name` varchar(50) DEFAULT NULL COMMENT '课程名称',
-                                   `paper_number` varchar(45) DEFAULT NULL COMMENT '试卷编号',
-                                   `exam_start_time` bigint DEFAULT NULL COMMENT '考试开始时间',
-                                   `exam_end_time` bigint DEFAULT NULL COMMENT '考试结束时间',
-                                   `package_seq` varchar(30) DEFAULT NULL COMMENT '卷袋序号',
-                                   `exam_place` varchar(100) DEFAULT NULL,
-                                   `exam_room` varchar(100) DEFAULT NULL,
-                                   `invigilator_teacher` varchar(45) DEFAULT NULL COMMENT '监考老师',
-                                   `class_id` varchar(100) DEFAULT NULL COMMENT '班级ID集合',
-                                   `class_name` varchar(500) DEFAULT NULL COMMENT '班级名称集合',
-                                   `student_count` int DEFAULT NULL COMMENT '考生总人数',
-                                   `campus_id` bigint DEFAULT NULL COMMENT '校区ID',
-                                   `print_house_id` bigint DEFAULT NULL COMMENT '印刷室ID',
-                                   `print_house_name` varchar(100) DEFAULT NULL COMMENT '印刷室名称',
-                                   `exam_detail_id` bigint DEFAULT NULL COMMENT '考场ID',
-                                   `extend_fields` text COMMENT '扩展字段',
-                                   `create_id` bigint DEFAULT NULL,
-                                   `create_time` bigint DEFAULT NULL,
-                                   `update_id` bigint DEFAULT NULL,
-                                   `update_time` bigint DEFAULT NULL,
-                                   PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='以试卷作为起点生成考务数据';
-
--- ----------------------------
--- Table structure for exam_task_review_log
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_review_log`;
-CREATE TABLE `exam_task_review_log` (
-                                        `id` bigint NOT NULL COMMENT '主键',
-                                        `exam_task_id` bigint NOT NULL COMMENT '命题任务ID',
-                                        `review_status` varchar(8) NOT NULL COMMENT 'PASS-通过,NOT_PASS-不通过',
-                                        `reason` mediumtext COMMENT '审核意见',
-                                        `operate_id` bigint DEFAULT NULL COMMENT '操作人id',
-                                        `operate_time` bigint DEFAULT NULL COMMENT '操作时间',
-                                        `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                        `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                        `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                        `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                        PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题任务审核日志表';
-
--- ----------------------------
--- Table structure for exam_task_temp
--- ----------------------------
-DROP TABLE IF EXISTS `exam_task_temp`;
-CREATE TABLE `exam_task_temp` (
-                                  `id` bigint NOT NULL COMMENT '主键',
-                                  `school_id` bigint NOT NULL COMMENT '学校id',
-                                  `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                  `batch_no` varchar(32) NOT NULL COMMENT '本次导入数据临时ID',
-                                  `course_code` varchar(20) NOT NULL COMMENT '课程代码',
-                                  `course_name` varchar(50) NOT NULL COMMENT '课程名称',
-                                  `paper_number` varchar(30) DEFAULT NULL COMMENT '试卷编号',
-                                  `specialty` varchar(100) DEFAULT NULL COMMENT '适用专业',
-                                  `user_account` varchar(45) DEFAULT NULL COMMENT '命题老师账号',
-                                  `user_name` varchar(45) DEFAULT NULL COMMENT '命题老师姓名',
-                                  `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                  `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                  `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                  `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题任务临时表';
-
--- ----------------------------
--- Table structure for grade_batch
--- ----------------------------
-DROP TABLE IF EXISTS `grade_batch`;
-CREATE TABLE `grade_batch` (
-                               `id` bigint NOT NULL COMMENT '分析批次主键',
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `semester_id` bigint NOT NULL COMMENT '学期id',
-                               `batch_code` varchar(32) NOT NULL COMMENT '批次编号(在学校下唯一)',
-                               `batch_name` varchar(32) NOT NULL COMMENT '批次名称(2020~2021学年上学期期末考试)',
-                               `batch_time` bigint NOT NULL COMMENT '分析批次时间',
-                               `status` varchar(32) NOT NULL COMMENT '批次状态\nSETTING_GRADE_PAPER("设置分析试卷"),PUSH_GRADE_BATCH("推送教研分析批次数据"),SETTING_GRADE_PAPER_PARAM("设置分析试卷参数"),READY_TO_CALCULATE("待计算"),FINISH_CALCULATE("完成计算")',
-                               `third_semester_id` bigint DEFAULT NULL COMMENT '教研分析学期id',
-                               `third_exam_id` bigint DEFAULT NULL COMMENT '第三方考试id',
-                               `create_id` bigint DEFAULT NULL,
-                               `create_time` bigint DEFAULT NULL,
-                               `update_id` bigint DEFAULT NULL,
-                               `update_time` bigint DEFAULT NULL,
-                               `source` varchar(1000) DEFAULT NULL COMMENT '原始数据',
-                               `progress` decimal(8,2) DEFAULT NULL COMMENT '进度',
-                               `report_file_path` varchar(500) DEFAULT NULL COMMENT '报告路径',
-                               `notify_time` bigint DEFAULT NULL COMMENT '回调时间',
-                               `result` varchar(30) DEFAULT NULL COMMENT '数据结果,SUCCESS:成功,ERROR:失败',
-                               PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分析-批次表';
-
--- ----------------------------
--- Table structure for grade_batch_paper
--- ----------------------------
-DROP TABLE IF EXISTS `grade_batch_paper`;
-CREATE TABLE `grade_batch_paper` (
-                                     `id` bigint NOT NULL,
-                                     `school_id` bigint NOT NULL COMMENT '学校id',
-                                     `batch_id` bigint NOT NULL COMMENT '分析批次id',
-                                     `grade_paper_id` bigint DEFAULT NULL COMMENT '试卷id',
-                                     `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                                     `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                                     `status` varchar(32) NOT NULL COMMENT '分析试卷状态\nSETTING_GRADE_PAPER("设置分析试卷"),PUSH_GRADE_BATCH("推送教研分析批次数据"),SETTING_GRADE_PAPER_PARAM("设置分析试卷参数"),READY_TO_CALCULATE("待计算"),FINISH_CALCULATE("完成计算")',
-                                     `teach_college_id` bigint NOT NULL COMMENT '当前开课学院id',
-                                     `teach_college_name` varchar(100) NOT NULL COMMENT '当前开课学院名称',
-                                     `paper_name` varchar(100) DEFAULT NULL COMMENT '试卷名称',
-                                     `enable` tinyint DEFAULT NULL COMMENT '是否可用',
-                                     `publish_status` tinyint DEFAULT NULL COMMENT '是否发布',
-                                     `grade_course_code` varchar(100) DEFAULT NULL COMMENT '推送教研分析后回传的教研分析课程编号(考试下唯一)',
-                                     `create_id` bigint DEFAULT NULL,
-                                     `create_time` bigint DEFAULT NULL,
-                                     `update_id` bigint DEFAULT NULL,
-                                     `update_time` bigint DEFAULT NULL,
-                                     PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分析-批次试卷关联关系表';
-
--- ----------------------------
--- Table structure for grade_batch_student
--- ----------------------------
-DROP TABLE IF EXISTS `grade_batch_student`;
-CREATE TABLE `grade_batch_student` (
-                                       `id` bigint NOT NULL,
-                                       `batch_id` bigint DEFAULT NULL COMMENT '分析-批次表ID',
-                                       `course_code` varchar(50) DEFAULT NULL COMMENT '课程编码',
-                                       `course_name` varchar(100) DEFAULT NULL COMMENT '课程名称',
-                                       `paper_number` varchar(50) DEFAULT NULL COMMENT '试卷编号',
-                                       `paper_type` varchar(16) DEFAULT NULL COMMENT '试卷类型',
-                                       `student_code` varchar(45) DEFAULT NULL COMMENT '学号',
-                                       `student_name` varchar(100) DEFAULT NULL COMMENT '学生姓名',
-                                       `ticket_number` varchar(45) DEFAULT NULL COMMENT '准考证号',
-                                       `teacher_name` varchar(100) DEFAULT NULL COMMENT '任课老师',
-                                       `teacher_number` varchar(45) DEFAULT NULL COMMENT '任课老师工号',
-                                       `create_id` bigint DEFAULT NULL,
-                                       `create_time` bigint DEFAULT NULL,
-                                       `update_id` bigint DEFAULT NULL,
-                                       `update_time` bigint DEFAULT NULL,
-                                       PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考务数据(包含任课老师)';
-
--- ----------------------------
--- Table structure for grade_batch_student_clazz
--- ----------------------------
-DROP TABLE IF EXISTS `grade_batch_student_clazz`;
-CREATE TABLE `grade_batch_student_clazz` (
-                                             `id` bigint NOT NULL,
-                                             `batch_id` bigint DEFAULT NULL COMMENT '分析-批次表ID',
-                                             `course_code` varchar(50) DEFAULT NULL COMMENT '课程编码',
-                                             `course_name` varchar(100) DEFAULT NULL COMMENT '课程名称',
-                                             `paper_number` varchar(50) DEFAULT NULL COMMENT '试卷编号',
-                                             `paper_type` varchar(16) DEFAULT NULL COMMENT '试卷类型',
-                                             `clazz_id` varchar(45) DEFAULT NULL COMMENT '班级ID',
-                                             `clazz_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
-                                             `teacher_name` varchar(100) DEFAULT NULL COMMENT '任课老师',
-                                             `teacher_number` varchar(45) DEFAULT NULL COMMENT '任课老师工号',
-                                             `create_id` bigint DEFAULT NULL,
-                                             `create_time` bigint DEFAULT NULL,
-                                             `update_id` bigint DEFAULT NULL,
-                                             `update_time` bigint DEFAULT NULL,
-                                             PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='考务数据班级(包含任课老师)';
-
--- ----------------------------
--- Table structure for grade_module_define
--- ----------------------------
-DROP TABLE IF EXISTS `grade_module_define`;
-CREATE TABLE `grade_module_define` (
-                                       `id` bigint NOT NULL COMMENT '模块熟练度主键',
-                                       `school_id` bigint NOT NULL COMMENT '学校id',
-                                       `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                                       `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                                       `paper_name` varchar(100) DEFAULT NULL COMMENT '试卷名称',
-                                       `module_type` varchar(32) NOT NULL COMMENT '维度模块类型',
-                                       `interpret` varchar(255) DEFAULT NULL COMMENT '解释',
-                                       `remark` varchar(255) DEFAULT NULL COMMENT '备注',
-                                       `define` varchar(255) DEFAULT NULL COMMENT '二级熟练度定义',
-                                       `level` varchar(32) DEFAULT NULL COMMENT '等级',
-                                       `min` varchar(32) DEFAULT NULL COMMENT '展示用最小边界',
-                                       `max` varchar(32) DEFAULT NULL COMMENT '展示用最大边界',
-                                       `scope` varchar(32) DEFAULT NULL COMMENT '取值范围(计算用)',
-                                       `create_id` bigint DEFAULT NULL,
-                                       `create_time` bigint DEFAULT NULL,
-                                       `update_id` bigint DEFAULT NULL,
-                                       `update_time` bigint DEFAULT NULL,
-                                       PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分析-模块二级考察点维度熟练度配置,及模块简要描述表';
-
--- ----------------------------
--- Table structure for grade_module_evaluation
--- ----------------------------
-DROP TABLE IF EXISTS `grade_module_evaluation`;
-CREATE TABLE `grade_module_evaluation` (
-                                           `id` bigint NOT NULL,
-                                           `school_id` bigint NOT NULL COMMENT '学校id',
-                                           `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                                           `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                                           `paper_name` varchar(100) DEFAULT NULL COMMENT '试卷名称',
-                                           `module_type` varchar(64) NOT NULL COMMENT '模块类型(知识、维度、素养)',
-                                           `formula` varchar(64) NOT NULL COMMENT '计算公式规则',
-                                           `scope` varchar(64) NOT NULL COMMENT '取值范围(计算用)',
-                                           `level_code` varchar(32) NOT NULL COMMENT '等级',
-                                           `level_name` varchar(32) NOT NULL COMMENT '水平等级层次',
-                                           `result` text COMMENT '诊断结果',
-                                           `advice` text COMMENT '学习建议',
-                                           `create_id` bigint DEFAULT NULL,
-                                           `create_time` bigint DEFAULT NULL,
-                                           `update_id` bigint DEFAULT NULL,
-                                           `update_time` bigint DEFAULT NULL,
-                                           PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='校验-考察点模块评价建议表';
-
--- ----------------------------
--- Table structure for grade_paper
--- ----------------------------
-DROP TABLE IF EXISTS `grade_paper`;
-CREATE TABLE `grade_paper` (
-                               `id` bigint NOT NULL COMMENT '试卷id',
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                               `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                               `paper_name` varchar(100) NOT NULL COMMENT '试卷名称',
-                               `start_time` bigint DEFAULT NULL COMMENT '该试卷考试开始时间',
-                               `end_time` bigint DEFAULT NULL COMMENT '该试卷考试结束时间',
-                               `coefficient` decimal(12,4) DEFAULT NULL COMMENT '赋分系数(赋值分=卷面成绩 +(卷面满分-卷面成绩)/ 赋分系数)',
-                               `total_score` decimal(12,4) NOT NULL COMMENT '试卷满分',
-                               `pass_score` decimal(12,4) NOT NULL COMMENT '试卷及格分',
-                               `score_type` varchar(64) NOT NULL COMMENT '赋分类型\\n1.NEED_ASSIGN_SCORE("是","需要且按照公式赋分")\\n2.NO_NEED_ASSIGN_SCORE("否","不需要赋分,标准分即为赋分")\\n3.SPECIAL_ASSIGN_SCORE("特殊赋分","特殊赋分,按照excel表进行赋分")',
-                               `create_id` bigint DEFAULT NULL,
-                               `create_time` bigint DEFAULT NULL,
-                               `update_id` bigint DEFAULT NULL,
-                               `update_time` bigint DEFAULT NULL,
-                               PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='试卷基础信息表(赋分系数、试卷类型、满分、及格分等)';
-
--- ----------------------------
--- Table structure for grade_paper_dimension
--- ----------------------------
-DROP TABLE IF EXISTS `grade_paper_dimension`;
-CREATE TABLE `grade_paper_dimension` (
-                                         `id` bigint NOT NULL,
-                                         `school_id` bigint NOT NULL COMMENT '学校id',
-                                         `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                                         `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                                         `paper_name` varchar(100) NOT NULL COMMENT '试卷名称',
-                                         `dimension_type` varchar(32) NOT NULL COMMENT '维度类型 - 知识,能力,素养',
-                                         `code_primary` varchar(32) NOT NULL COMMENT '一级维度编号',
-                                         `name_primary` varchar(255) NOT NULL COMMENT '一级维度名称',
-                                         `code_second` varchar(32) DEFAULT NULL COMMENT '二级维度编号',
-                                         `name_second` varchar(255) DEFAULT NULL COMMENT '二级维度名称',
-                                         `interpretation` varchar(255) DEFAULT NULL COMMENT '一级维度术语解释',
-                                         `create_id` bigint DEFAULT NULL,
-                                         `create_time` bigint DEFAULT NULL,
-                                         `update_id` bigint DEFAULT NULL,
-                                         `update_time` bigint DEFAULT NULL,
-                                         PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分析-考察点维度表';
-
--- ----------------------------
--- Table structure for grade_paper_struct
--- ----------------------------
-DROP TABLE IF EXISTS `grade_paper_struct`;
-CREATE TABLE `grade_paper_struct` (
-                                      `id` bigint NOT NULL,
-                                      `school_id` bigint NOT NULL COMMENT '学校id',
-                                      `paper_number` varchar(100) NOT NULL COMMENT '试卷编号',
-                                      `paper_type` varchar(16) NOT NULL COMMENT '试卷类型',
-                                      `paper_name` varchar(100) NOT NULL COMMENT '试卷名称',
-                                      `question_name` varchar(200) NOT NULL COMMENT '大题名称',
-                                      `number_type` varchar(32) NOT NULL COMMENT '题号类型(客观题、主观题)',
-                                      `big_question_number` varchar(64) NOT NULL COMMENT '大题号',
-                                      `small_question_number` varchar(64) NOT NULL COMMENT '小题号(每一课程试卷的唯一标识)',
-                                      `big_topic_name` varchar(64) NOT NULL COMMENT '大题名称',
-                                      `full_score` decimal(12,4) NOT NULL COMMENT '满分',
-                                      `score_rules` varchar(32) DEFAULT NULL COMMENT '计分规则',
-                                      `rules_desc` varchar(500) DEFAULT NULL COMMENT '规则说明',
-                                      `knowledge_dimension` varchar(255) NOT NULL COMMENT '知识维度',
-                                      `ability_dimension` varchar(255) DEFAULT NULL COMMENT '能力维度',
-                                      `literacy_dimension` varchar(255) DEFAULT NULL COMMENT '素养维度',
-                                      `create_id` bigint DEFAULT NULL,
-                                      `create_time` bigint DEFAULT NULL,
-                                      `update_id` bigint DEFAULT NULL,
-                                      `update_time` bigint DEFAULT NULL,
-                                      PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分析-试卷结构(蓝图)表';
-
--- ----------------------------
--- Table structure for qrtz_blob_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_blob_triggers`;
-CREATE TABLE `qrtz_blob_triggers` (
-                                      `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `BLOB_DATA` blob,
-                                      PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
-                                      KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_calendars
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_calendars`;
-CREATE TABLE `qrtz_calendars` (
-                                  `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                  `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                  `CALENDAR` blob NOT NULL,
-                                  PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_cron_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_cron_triggers`;
-CREATE TABLE `qrtz_cron_triggers` (
-                                      `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                      `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                      PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_fired_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_fired_triggers`;
-CREATE TABLE `qrtz_fired_triggers` (
-                                       `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `ENTRY_ID` varchar(95) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `FIRED_TIME` bigint NOT NULL,
-                                       `SCHED_TIME` bigint NOT NULL,
-                                       `PRIORITY` int NOT NULL,
-                                       `STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                       `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                       `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                       `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                       `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                       PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
-                                       KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_job_details
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_job_details`;
-CREATE TABLE `qrtz_job_details` (
-                                    `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                    `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `IS_DURABLE` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                    `JOB_DATA` blob,
-                                    PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE,
-                                    KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`) USING BTREE,
-                                    KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_locks
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_locks`;
-CREATE TABLE `qrtz_locks` (
-                              `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                              `LOCK_NAME` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                              PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_paused_trigger_grps
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
-CREATE TABLE `qrtz_paused_trigger_grps` (
-                                            `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                            `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                            PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_scheduler_state
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_scheduler_state`;
-CREATE TABLE `qrtz_scheduler_state` (
-                                        `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                        `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                        `LAST_CHECKIN_TIME` bigint NOT NULL,
-                                        `CHECKIN_INTERVAL` bigint NOT NULL,
-                                        PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_simple_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simple_triggers`;
-CREATE TABLE `qrtz_simple_triggers` (
-                                        `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                        `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                        `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                        `REPEAT_COUNT` bigint NOT NULL,
-                                        `REPEAT_INTERVAL` bigint NOT NULL,
-                                        `TIMES_TRIGGERED` bigint NOT NULL,
-                                        PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_simprop_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
-CREATE TABLE `qrtz_simprop_triggers` (
-                                         `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                         `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                         `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                         `STR_PROP_1` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                         `STR_PROP_2` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                         `STR_PROP_3` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                         `INT_PROP_1` int DEFAULT NULL,
-                                         `INT_PROP_2` int DEFAULT NULL,
-                                         `LONG_PROP_1` bigint DEFAULT NULL,
-                                         `LONG_PROP_2` bigint DEFAULT NULL,
-                                         `DEC_PROP_1` decimal(13,4) DEFAULT NULL,
-                                         `DEC_PROP_2` decimal(13,4) DEFAULT NULL,
-                                         `BOOL_PROP_1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                         `BOOL_PROP_2` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                         PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for qrtz_triggers
--- ----------------------------
-DROP TABLE IF EXISTS `qrtz_triggers`;
-CREATE TABLE `qrtz_triggers` (
-                                 `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                 `NEXT_FIRE_TIME` bigint DEFAULT NULL,
-                                 `PREV_FIRE_TIME` bigint DEFAULT NULL,
-                                 `PRIORITY` int DEFAULT NULL,
-                                 `TRIGGER_STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
-                                 `START_TIME` bigint NOT NULL,
-                                 `END_TIME` bigint DEFAULT NULL,
-                                 `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
-                                 `MISFIRE_INSTR` smallint DEFAULT NULL,
-                                 `JOB_DATA` blob,
-                                 PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`) USING BTREE,
-                                 KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Table structure for sys_config
--- ----------------------------
-DROP TABLE IF EXISTS `sys_config`;
-CREATE TABLE `sys_config` (
-                              `id` bigint NOT NULL COMMENT '主键',
-                              `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                              `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                              `config_key` varchar(100) NOT NULL COMMENT '参数键名',
-                              `config_name` varchar(100) NOT NULL COMMENT '参数名称',
-                              `config_value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '参数键值',
-                              `remark` varchar(100) DEFAULT NULL COMMENT '备注',
-                              `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                              `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                              `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                              `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                              PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='参数表';
-
--- ----------------------------
--- Table structure for sys_org
--- ----------------------------
-DROP TABLE IF EXISTS `sys_org`;
-CREATE TABLE `sys_org` (
-                           `id` bigint NOT NULL COMMENT '主键',
-                           `school_id` bigint NOT NULL COMMENT '学校id',
-                           `type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '类型,SCHOOL:学校,COLLEGE:学院,FACULTY:院系,TEACHING_ROOM:教研室,PRINTING_HOUSE:印刷厂',
-                           `code` varchar(20) DEFAULT NULL COMMENT '机构代码',
-                           `name` varchar(100) NOT NULL COMMENT '机构名称',
-                           `parent_id` bigint DEFAULT NULL COMMENT '上级机构id',
-                           `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                           `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                           `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                           `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                           `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                           `historic_name` varchar(100) DEFAULT NULL COMMENT '历史机构名称',
-                           PRIMARY KEY (`id`) USING BTREE,
-                           UNIQUE KEY `org_schoolId_name_idx` (`school_id`,`name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校组织架构';
-
--- ----------------------------
--- Table structure for sys_privilege
--- ----------------------------
-DROP TABLE IF EXISTS `sys_privilege`;
-CREATE TABLE `sys_privilege` (
-                                 `id` bigint NOT NULL COMMENT '主键',
-                                 `name` varchar(100) NOT NULL COMMENT '菜单名称',
-                                 `url` varchar(100) NOT NULL COMMENT 'URL地址',
-                                 `type` varchar(50) NOT NULL COMMENT '类型,MENU:菜单,BUTTON:按钮,LINK:链接,URL:接口地址,LIST:列表,CONDITION:查询条件,TAB:选项卡',
-                                 `parent_id` bigint DEFAULT NULL COMMENT '上级菜单',
-                                 `sequence` int NOT NULL COMMENT '序号',
-                                 `property` varchar(30) DEFAULT NULL COMMENT '属性,NO_AUTH:无需鉴权,AUTH:鉴权,SYS:系统公用',
-                                 `related` text COMMENT '关联属性,type为URL且property为AUTH才有',
-                                 `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                 `default_auth` tinyint DEFAULT '1' COMMENT '默认权限,0:否,1:是',
-                                 `front_display` tinyint(1) DEFAULT '1' COMMENT '是否前端展示',
-                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单权限表';
-
--- ----------------------------
--- Table structure for sys_role
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role`;
-CREATE TABLE `sys_role` (
-                            `id` bigint NOT NULL COMMENT '主键',
-                            `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                            `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                            `name` varchar(50) NOT NULL COMMENT '角色名称',
-                            `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                            `type` varchar(20) DEFAULT NULL COMMENT '角色类别,ADMIN:超级管理员,SCHOOL_ADMIN:管理员:EXAM_TEACHER:考务老师,QUESTION_TEACHER:命题老师,CUSTOMER:客服人员,PRINTER:印刷人员,CUSTOM:自定义',
-                            `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                            `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                            `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                            `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                            `default_role` tinyint NOT NULL DEFAULT '0' COMMENT '是否系统内置角色,1:是,0:不是',
-                            `source` varchar(100) DEFAULT NULL COMMENT '角色来源,ANALYSIS:教研分析',
-                            `interpret` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色说明',
-                            PRIMARY KEY (`id`) USING BTREE,
-                            UNIQUE KEY `role_schoolId_name_idx` (`school_id`,`name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色表';
-
--- ----------------------------
--- Table structure for sys_role_group_member
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role_group_member`;
-CREATE TABLE `sys_role_group_member` (
-                                         `id` bigint NOT NULL COMMENT '主键',
-                                         `role_id` bigint NOT NULL COMMENT '角色id',
-                                         `user_id` bigint NOT NULL COMMENT '用户id',
-                                         `member_id` bigint NOT NULL COMMENT '成员id',
-                                         `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                         PRIMARY KEY (`id`) USING BTREE,
-                                         UNIQUE KEY `role_group_roleId_memberId_idx` (`role_id`,`member_id`,`enable`) USING BTREE,
-                                         KEY `role_group_member_idx` (`role_id`,`user_id`,`member_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色组成员表';
-
--- ----------------------------
--- Table structure for sys_role_privilege
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role_privilege`;
-CREATE TABLE `sys_role_privilege` (
-                                      `id` bigint NOT NULL COMMENT '主键',
-                                      `role_id` bigint NOT NULL COMMENT '角色id',
-                                      `privilege_id` bigint NOT NULL COMMENT '菜单id',
-                                      `enable` tinyint DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色和菜单关联表';
-
--- ----------------------------
--- Table structure for sys_user
--- ----------------------------
-DROP TABLE IF EXISTS `sys_user`;
-CREATE TABLE `sys_user` (
-                            `id` bigint NOT NULL COMMENT '主键',
-                            `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                            `login_name` varchar(100) NOT NULL COMMENT '用户名',
-                            `real_name` varchar(100) NOT NULL COMMENT '姓名',
-                            `code` varchar(100) DEFAULT NULL COMMENT '工号',
-                            `password` varchar(50) NOT NULL COMMENT '密码',
-                            `mobile_number` varchar(11) DEFAULT NULL COMMENT '手机号',
-                            `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                            `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                            `pwd_count` tinyint DEFAULT '0' COMMENT '密码修改次数,默认为0',
-                            `pwd_update_time` bigint DEFAULT NULL COMMENT '密码修改时间',
-                            `remark` varchar(200) DEFAULT NULL COMMENT '备注',
-                            `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                            `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                            `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                            `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                            `historic_name` varchar(100) DEFAULT NULL COMMENT '历史用户名称',
-                            PRIMARY KEY (`id`) USING BTREE,
-                            UNIQUE KEY `user_schoolId_loginName_idx` (`school_id`,`login_name`) USING BTREE,
-                            UNIQUE KEY `uq_school_id_mobile_number` (`school_id`,`mobile_number`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
-
--- ----------------------------
--- Table structure for sys_user_role
--- ----------------------------
-DROP TABLE IF EXISTS `sys_user_role`;
-CREATE TABLE `sys_user_role` (
-                                 `id` bigint NOT NULL COMMENT '主键',
-                                 `user_id` bigint NOT NULL COMMENT '用户id',
-                                 `role_id` bigint NOT NULL COMMENT '角色id',
-                                 `privilege_id` bigint DEFAULT NULL COMMENT '权限id',
-                                 `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和角色关联表';
-
--- ----------------------------
--- Table structure for t_b_session
--- ----------------------------
-DROP TABLE IF EXISTS `t_b_session`;
-CREATE TABLE `t_b_session` (
-                               `id` varchar(100) NOT NULL COMMENT '主键',
-                               `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                               `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                               `identity` varchar(100) NOT NULL COMMENT '用户标识',
-                               `type` varchar(50) NOT NULL COMMENT '用户类型',
-                               `source` varchar(50) NOT NULL COMMENT '访问来源',
-                               `platform` varchar(50) NOT NULL COMMENT '设备分类',
-                               `device_id` varchar(100) NOT NULL COMMENT '设备标识',
-                               `address` varchar(100) NOT NULL COMMENT '登录IP地址',
-                               `access_token` varchar(50) NOT NULL COMMENT '访问令牌',
-                               `last_access_time` bigint DEFAULT NULL COMMENT '最近访问时间',
-                               `last_access_ip` varchar(100) DEFAULT NULL COMMENT '最近访问IP地址',
-                               `update_time` bigint DEFAULT NULL COMMENT '令牌更新时间',
-                               `expire_time` bigint DEFAULT NULL COMMENT '令牌强制失效时间',
-                               `app_source` varchar(50) DEFAULT NULL COMMENT '应用来源',
-                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会话表';
-
--- ----------------------------
--- Table structure for t_b_sync_task
--- ----------------------------
-DROP TABLE IF EXISTS `t_b_sync_task`;
-CREATE TABLE `t_b_sync_task` (
-                                 `id` bigint NOT NULL COMMENT '主键',
-                                 `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                 `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                 `type` varchar(50) NOT NULL COMMENT '推送类型,USER_PUSH:用户推送',
-                                 `third_relate_id` bigint DEFAULT NULL COMMENT '第三方系统关联ID(目前只有云阅卷)',
-                                 `object_id` bigint DEFAULT NULL COMMENT '印刷计划id',
-                                 `status` varchar(30) NOT NULL COMMENT '任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成',
-                                 `summary` text COMMENT '实时摘要信息',
-                                 `result` varchar(30) DEFAULT NULL COMMENT '数据结果,SUCCESS:成功,ERROR:失败',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '修改人',
-                                 `update_time` bigint DEFAULT NULL COMMENT '修改时间',
-                                 `remark` mediumtext COMMENT '备注',
-                                 `reset_count` int DEFAULT '0' COMMENT '重试次数',
-                                 `error_message` varchar(500) DEFAULT NULL COMMENT '人工错误原因',
-                                 `report_file_path` varchar(500) DEFAULT NULL COMMENT '报告路径',
-                                 PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='云阅卷同步任务表';
-
--- ----------------------------
--- Table structure for t_b_task
--- ----------------------------
-DROP TABLE IF EXISTS `t_b_task`;
-CREATE TABLE `t_b_task` (
-                            `id` bigint NOT NULL COMMENT '主键',
-                            `type` varchar(50) NOT NULL COMMENT '任务类型,USER_IMPORT:用户导入,\nQUESTION_MISSION_BATCH_CREATE:批量新建命题任务,\nSAMPLE_EXPORT:导出审核样本,\nPAPER_DOWNLOAD:卷库下载,\nEXAMINATION_IMPORT:考务数据导入,\nEXAMINATION_EXPORT:考务数据导出,\nPRINT_PDF_DOWNLOAD:批量下载pdf,\nCREATE_PDF:生成pdf,\nCOURSE_IMPORT:课程导入',
-                            `entity_id` bigint DEFAULT NULL COMMENT '关联业务对象id',
-                            `status` varchar(30) NOT NULL COMMENT '任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成',
-                            `summary` text COMMENT '实时摘要信息',
-                            `progress` double DEFAULT NULL COMMENT '执行进度',
-                            `result` varchar(30) DEFAULT NULL COMMENT '数据结果,SUCCESS:成功,ERROR:失败',
-                            `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,false:停用,true:启用',
-                            `import_file_name` varchar(100) DEFAULT NULL COMMENT '导入文件名',
-                            `import_file_path` varchar(500) DEFAULT NULL COMMENT '导入文件路径',
-                            `result_file_path` varchar(500) DEFAULT NULL COMMENT '导出文件路径',
-                            `report_file_path` varchar(500) DEFAULT NULL COMMENT '报告路径',
-                            `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                            `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                            `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                            `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                            `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                            `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                            `print_plan_id` bigint DEFAULT NULL COMMENT '印刷计划id',
-                            `remark` mediumtext COMMENT '备注',
-                            `obj_name` varchar(500) DEFAULT NULL COMMENT '实体名称',
-                            `reset_count` int DEFAULT '0' COMMENT '重试次数',
-                            `version` int DEFAULT '0' COMMENT '更新版本号',
-                            `error_message` varchar(500) DEFAULT NULL COMMENT '人工错误原因',
-                            PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='导入导出任务表';
-
--- ----------------------------
--- Table structure for t_c_statistics
--- ----------------------------
-DROP TABLE IF EXISTS `t_c_statistics`;
-CREATE TABLE `t_c_statistics` (
-                                  `id` bigint NOT NULL COMMENT '主键',
-                                  `exam_id` bigint NOT NULL COMMENT '考试id',
-                                  `exam_task_detail_ids` mediumtext COMMENT '命题任务明细id',
-                                  `exam_detail_course_ids` mediumtext COMMENT '考务数据课程id',
-                                  `college_id` bigint NOT NULL COMMENT '学院id',
-                                  `college_name` varchar(100) NOT NULL COMMENT '学院名称',
-                                  `course_name` varchar(100) NOT NULL COMMENT '课程名称',
-                                  `course_code` varchar(100) NOT NULL COMMENT '课程代码',
-                                  `teaching_room_id` bigint NOT NULL COMMENT '教研室id',
-                                  `teaching_room_name` varchar(100) NOT NULL COMMENT '教研室名称',
-                                  `teacher_name` mediumtext NOT NULL COMMENT '任课老师名称',
-                                  `clazz_ids` varchar(100) NOT NULL COMMENT '班级ids',
-                                  `clazz_name` varchar(100) NOT NULL COMMENT '班级名称',
-                                  `paper_number` varchar(100) DEFAULT NULL COMMENT '试卷编号',
-                                  `print_plan_id` bigint DEFAULT NULL COMMENT '印刷计划id',
-                                  `batch_no` varchar(100) NOT NULL COMMENT '批次号',
-                                  `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                  `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                  `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                  `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                  `print_sum` varchar(100) DEFAULT NULL COMMENT '总印份数',
-                                  `status` varchar(50) DEFAULT NULL COMMENT '完成状态,FINISH:已完成,UN_FINISH:未完成',
-                                  `exam_detail_id` bigint DEFAULT NULL COMMENT '命题明细id',
-                                  `clazz_content` mediumtext COMMENT '班级详细信息内容',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题统计表';
-
--- ----------------------------
--- Table structure for t_c_statistics_temp
--- ----------------------------
-DROP TABLE IF EXISTS `t_c_statistics_temp`;
-CREATE TABLE `t_c_statistics_temp` (
-                                       `id` bigint NOT NULL COMMENT '主键',
-                                       `exam_id` bigint NOT NULL COMMENT '考试id',
-                                       `exam_task_detail_id` bigint DEFAULT NULL COMMENT '命题任务明细id',
-                                       `exam_detail_course_id` bigint DEFAULT NULL COMMENT '考务数据课程id',
-                                       `college_id` bigint NOT NULL COMMENT '学院id',
-                                       `college_name` varchar(100) NOT NULL COMMENT '学院名称',
-                                       `course_name` varchar(100) NOT NULL COMMENT '课程名称',
-                                       `course_code` varchar(100) NOT NULL COMMENT '课程代码',
-                                       `teaching_room_id` bigint NOT NULL COMMENT '教研室id',
-                                       `teaching_room_name` varchar(100) NOT NULL COMMENT '教研室名称',
-                                       `teacher_name` mediumtext NOT NULL COMMENT '任课老师名称',
-                                       `clazz_ids` varchar(100) NOT NULL COMMENT '班级ids',
-                                       `clazz_name` varchar(100) NOT NULL COMMENT '班级名称',
-                                       `paper_number` varchar(100) DEFAULT NULL COMMENT '试卷编号',
-                                       `print_plan_id` bigint DEFAULT NULL COMMENT '印刷计划id',
-                                       `batch_no` varchar(100) NOT NULL COMMENT '批次号',
-                                       `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                       `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                       `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                       `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                       `data_source` varchar(50) DEFAULT NULL COMMENT '数据来源,IMPORT:导入,JOIN:关联查询的数据',
-                                       `exam_detail_id` bigint DEFAULT NULL COMMENT '命题明细id',
-                                       PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='命题统计表';
-
--- ----------------------------
--- Table structure for t_f_custom_flow
--- ----------------------------
-DROP TABLE IF EXISTS `t_f_custom_flow`;
-CREATE TABLE `t_f_custom_flow` (
-                                   `id` bigint NOT NULL COMMENT '主键',
-                                   `school_id` bigint NOT NULL COMMENT '学校id',
-                                   `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                   `name` varchar(100) NOT NULL COMMENT '流程名称',
-                                   `model_type` varchar(50) NOT NULL COMMENT '模式类型,USER_FIXED:指定人员,APPROVE_SET:发起人指定',
-                                   `type` varchar(100) NOT NULL COMMENT '流程类型,ELECTRON_FLOW:电子交卷审核,QUESTION_ELECTRON_FLOW:题库试题提交审核,PAPER_ELECTRON_FLOW:题库试卷审核',
-                                   `enable` tinyint DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                   `publish` tinyint NOT NULL DEFAULT '1' COMMENT '是否发布,0:否,1:是',
-                                   `object_data` mediumtext NOT NULL COMMENT '自定义流程源数据',
-                                   `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                   `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                   `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                   `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                   `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
-                                   `flow_key` varchar(100) DEFAULT NULL COMMENT '流程key',
-                                   `act_flow_id` varchar(100) DEFAULT NULL COMMENT '流程版本id',
-                                   `flow_process_var` mediumtext COMMENT '流程过程变量数据',
-                                   PRIMARY KEY (`id`) USING BTREE,
-                                   UNIQUE KEY `custom_flow_schoolId_type_idx` (`school_id`,`type`,`enable`,`publish`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='自定义流程表';
-
--- ----------------------------
--- Table structure for t_f_custom_flow_entity
--- ----------------------------
-DROP TABLE IF EXISTS `t_f_custom_flow_entity`;
-CREATE TABLE `t_f_custom_flow_entity` (
-                                          `id` bigint NOT NULL COMMENT '主键',
-                                          `t_f_custom_flow_id` bigint NOT NULL COMMENT '自定义流程id',
-                                          `flow_id` bigint DEFAULT NULL COMMENT '流程id',
-                                          `flow_process_var` mediumtext NOT NULL COMMENT '流程过程变量',
-                                          `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                          `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                          `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                          `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                          PRIMARY KEY (`id`) USING BTREE,
-                                          KEY `flow_entity_flowId_idx` (`flow_id`),
-                                          KEY `flow_entity_custom_flowId_idx` (`t_f_custom_flow_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='自定义流程实体数据';
-
--- ----------------------------
--- Table structure for t_f_flow_approve
--- ----------------------------
-DROP TABLE IF EXISTS `t_f_flow_approve`;
-CREATE TABLE `t_f_flow_approve` (
-                                    `id` bigint NOT NULL COMMENT '主键',
-                                    `school_id` bigint NOT NULL COMMENT '学校id',
-                                    `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                    `flow_id` bigint NOT NULL COMMENT '流程id',
-                                    `approve_id` bigint DEFAULT NULL COMMENT '审核id',
-                                    `status` varchar(50) NOT NULL COMMENT '状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束',
-                                    `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                    `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                    `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                    `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                    `setup` tinyint NOT NULL COMMENT '计划步骤',
-                                    `approve_setup` int DEFAULT NULL COMMENT '审批步骤',
-                                    `approve_max_setup` int DEFAULT NULL COMMENT '最大审批步骤',
-                                    `transfer_assignee` mediumtext COMMENT '流程转办',
-                                    `all_assignee` mediumtext COMMENT '会签审批人',
-                                    `reject_link` mediumtext COMMENT '驳回路线',
-                                    `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                    PRIMARY KEY (`id`) USING BTREE,
-                                    KEY `flow_approve_idx` (`school_id`,`flow_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='流程审核表';
-
--- ----------------------------
--- Table structure for t_f_flow_join
--- ----------------------------
-DROP TABLE IF EXISTS `t_f_flow_join`;
-CREATE TABLE `t_f_flow_join` (
-                                 `id` bigint NOT NULL COMMENT '主键',
-                                 `flow_entity_id` bigint NOT NULL COMMENT '自定义流程实体id',
-                                 `object_table` varchar(100) NOT NULL COMMENT '实体表',
-                                 `object_id` bigint NOT NULL COMMENT '实体id',
-                                 `flow_id` bigint NOT NULL COMMENT '流程id',
-                                 `level` int NOT NULL COMMENT '流程等级',
-                                 `type` varchar(50) NOT NULL COMMENT '类型,NEW:新增,RESTART:重新提交',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 PRIMARY KEY (`id`) USING BTREE,
-                                 KEY `task_flowId_idx` (`flow_id`) USING BTREE,
-                                 KEY `task_objectId_idx` (`object_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实体和流程关联表';
-
--- ----------------------------
--- Table structure for t_f_flow_log
--- ----------------------------
-DROP TABLE IF EXISTS `t_f_flow_log`;
-CREATE TABLE `t_f_flow_log` (
-                                `id` bigint NOT NULL COMMENT '主键',
-                                `school_id` bigint NOT NULL COMMENT '学校id',
-                                `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                `flow_id` bigint NOT NULL COMMENT '流程id',
-                                `object_table` varchar(100) DEFAULT NULL COMMENT '实体表',
-                                `object_id` bigint NOT NULL COMMENT '实体id',
-                                `approve_id` bigint DEFAULT NULL COMMENT '审核人id',
-                                `approve_setup` tinyint DEFAULT NULL COMMENT '审核步骤',
-                                `approve_remark` mediumtext COMMENT '审核意见',
-                                `enable` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用,0:停用,1:启用',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                `approve_operation` varchar(50) NOT NULL COMMENT '审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止',
-                                `pend_approve_id` mediumtext COMMENT '待审核人id',
-                                `paper_attachment_id` mediumtext COMMENT '试卷附件',
-                                `approve_multi_setup` int DEFAULT NULL COMMENT '审批步骤',
-                                `approve_user_approve_type` varchar(30) DEFAULT NULL COMMENT '审批用户类别,ORDER:依次审批,ALL:会签(所有人必须审批),SOME:或签(一名审批人同意或拒绝即可)',
-                                PRIMARY KEY (`id`) USING BTREE,
-                                KEY `flow_log_idx` (`school_id`,`flow_id`) USING BTREE,
-                                KEY `flow_log_objectId_idx` (`object_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='流程流水表';
-
--- ----------------------------
--- Table structure for t_g_error
--- ----------------------------
-DROP TABLE IF EXISTS `t_g_error`;
-CREATE TABLE `t_g_error` (
-                             `id` bigint NOT NULL COMMENT '主键',
-                             `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                             `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                             `obj_id` bigint DEFAULT NULL COMMENT '实体id',
-                             `summary` mediumtext COMMENT '实时摘要信息',
-                             `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                             PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='全局异常错误信息表';
-
--- ----------------------------
--- Table structure for t_m_mq_message
--- ----------------------------
-DROP TABLE IF EXISTS `t_m_mq_message`;
-CREATE TABLE `t_m_mq_message` (
-                                  `id` varchar(50) NOT NULL COMMENT '主键',
-                                  `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                  `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                  `topic` varchar(100) NOT NULL COMMENT '消息topic',
-                                  `tag` varchar(100) NOT NULL COMMENT '消息tag',
-                                  `body` mediumtext COMMENT '消息内容',
-                                  `type` varchar(50) NOT NULL COMMENT '消息类型',
-                                  `obj_id` varchar(50) NOT NULL COMMENT '关联业务id',
-                                  `obj_name` varchar(100) DEFAULT NULL COMMENT '关联业务名称',
-                                  `ack` tinyint NOT NULL COMMENT '消息ack',
-                                  `sequence` int DEFAULT NULL COMMENT '消息序号',
-                                  `properties` varchar(1000) DEFAULT NULL COMMENT '扩展类型',
-                                  `create_time` bigint NOT NULL COMMENT '创建时间',
-                                  `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                  `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                  `timestamp` bigint NOT NULL COMMENT '时间戳',
-                                  `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                  PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='mq消息';
-
--- ----------------------------
--- Table structure for t_s_auth
--- ----------------------------
-DROP TABLE IF EXISTS `t_s_auth`;
-CREATE TABLE `t_s_auth` (
-                            `id` bigint NOT NULL COMMENT '主键',
-                            `school_id` bigint NOT NULL COMMENT '学校id',
-                            `access_key` varchar(255) DEFAULT NULL COMMENT 'accessKey',
-                            `access_secret` varchar(255) DEFAULT NULL COMMENT 'accessSecret',
-                            `description` text COMMENT '离线授权证书',
-                            `type` varchar(16) NOT NULL COMMENT '授权类型',
-                            `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                            `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                            `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                            `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                            `expire_time` bigint DEFAULT NULL COMMENT '过期时间',
-                            `file` mediumblob COMMENT '文件数据',
-                            PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='激活授权配置表';
-
--- ----------------------------
--- Table structure for t_school_privilege
--- ----------------------------
-DROP TABLE IF EXISTS `t_school_privilege`;
-CREATE TABLE `t_school_privilege` (
-                                      `id` bigint NOT NULL COMMENT '主键',
-                                      `school_id` bigint NOT NULL COMMENT '学校id',
-                                      `privilege_id` bigint NOT NULL COMMENT '菜单权限id',
-                                      PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校菜单权限表';
-
--- ----------------------------
--- Table structure for t_sync_exam_student_score
--- ----------------------------
-DROP TABLE IF EXISTS `t_sync_exam_student_score`;
-CREATE TABLE `t_sync_exam_student_score` (
-                                             `id` bigint NOT NULL COMMENT '主键',
-                                             `school_id` bigint DEFAULT NULL COMMENT '学校id',
-                                             `org_id` bigint DEFAULT NULL COMMENT '机构id',
-                                             `semester_id` bigint DEFAULT NULL COMMENT '学期id',
-                                             `major_name` varchar(100) DEFAULT NULL COMMENT '专业id',
-                                             `clazz_id` bigint DEFAULT NULL COMMENT '班级id',
-                                             `exam_id` bigint DEFAULT NULL COMMENT '云阅卷考试id',
-                                             `exam_code` varchar(100) DEFAULT NULL COMMENT '云阅卷考试标识',
-                                             `exam_number` varchar(100) DEFAULT NULL COMMENT '准考证号',
-                                             `student_code` varchar(100) DEFAULT NULL COMMENT '学号',
-                                             `name` varchar(100) NOT NULL COMMENT '姓名',
-                                             `subject_code` varchar(100) DEFAULT NULL COMMENT '科目代码',
-                                             `subject_name` varchar(100) DEFAULT NULL COMMENT '科目名称',
-                                             `paper_type` varchar(50) DEFAULT NULL COMMENT '试卷类型',
-                                             `college` varchar(100) DEFAULT NULL COMMENT '学院',
-                                             `clazz_name` varchar(100) DEFAULT NULL COMMENT '班级',
-                                             `teacher` varchar(100) DEFAULT NULL COMMENT '教师',
-                                             `status` tinyint DEFAULT NULL COMMENT '考生状态,1-正常,2-缺考(包含未上传),3-违纪',
-                                             `sheet_urls` mediumtext COMMENT '原卷url',
-                                             `local_sheet_urls` mediumtext COMMENT '从云阅卷下载下来的原图url',
-                                             `total_score` double DEFAULT NULL COMMENT '总分',
-                                             `objective_score` double DEFAULT NULL COMMENT '客观题分数',
-                                             `subjective_score` double DEFAULT NULL COMMENT '主观题分数',
-                                             `sync_data` mediumtext COMMENT '同步数据json',
-                                             `trajectory_urls` varchar(500) DEFAULT NULL COMMENT '轨迹图地址',
-                                             `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                             `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                             PRIMARY KEY (`id`) USING BTREE,
-                                             KEY `score_schoolId_idx` (`school_id`,`semester_id`,`org_id`,`major_name`,`clazz_id`,`student_code`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='同步考生成绩表';
-
--- ----------------------------
--- Table structure for teach_clazz
--- ----------------------------
-DROP TABLE IF EXISTS `teach_clazz`;
-CREATE TABLE `teach_clazz` (
-                               `id` bigint NOT NULL COMMENT '教学班表主键',
-                               `school_id` bigint NOT NULL COMMENT '学校id',
-                               `teach_clazz_code` varchar(20) DEFAULT NULL COMMENT '教学班编号',
-                               `teach_clazz_name` varchar(50) NOT NULL COMMENT '教学班名称',
-                               `user_id` bigint NOT NULL COMMENT '用户id',
-                               `teach_course_id` bigint NOT NULL COMMENT '教学课程主键',
-                               `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                               `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                               `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                               `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                               PRIMARY KEY (`id`),
-                               UNIQUE KEY `teach_clazz_unique` (`school_id`,`teach_course_id`,`teach_clazz_name`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教学班表';
-
--- ----------------------------
--- Table structure for teach_course
--- ----------------------------
-DROP TABLE IF EXISTS `teach_course`;
-CREATE TABLE `teach_course` (
-                                `id` bigint NOT NULL,
-                                `school_id` bigint NOT NULL COMMENT '学校id',
-                                `basic_course_id` bigint NOT NULL COMMENT '基础课程id',
-                                `user_id` bigint NOT NULL COMMENT '创建此教学课程的用户id',
-                                `enable` tinyint(1) DEFAULT NULL COMMENT '是否删除',
-                                `create_id` bigint DEFAULT NULL COMMENT '创建人id',
-                                `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                `update_id` bigint DEFAULT NULL COMMENT '更新人id',
-                                `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                PRIMARY KEY (`id`),
-                                UNIQUE KEY `teach_course_unique` (`school_id`,`basic_course_id`,`user_id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教学课程表';
-
--- ----------------------------
--- Table structure for teach_student
--- ----------------------------
-DROP TABLE IF EXISTS `teach_student`;
-CREATE TABLE `teach_student` (
-                                 `id` bigint NOT NULL COMMENT '教学学生关系表主键',
-                                 `school_id` bigint NOT NULL COMMENT '学校id',
-                                 `student_id` bigint NOT NULL COMMENT '学生id',
-                                 `teach_clazz_id` bigint NOT NULL COMMENT '教学班级id',
-                                 `teach_course_id` bigint NOT NULL COMMENT '教学课程id(冗余)',
-                                 `user_id` bigint NOT NULL COMMENT '用户id(冗余)',
-                                 `create_id` bigint DEFAULT NULL COMMENT '创建人',
-                                 `create_time` bigint DEFAULT NULL COMMENT '创建时间',
-                                 `update_id` bigint DEFAULT NULL COMMENT '更新人',
-                                 `update_time` bigint DEFAULT NULL COMMENT '更新时间',
-                                 PRIMARY KEY (`id`),
-                                 UNIQUE KEY `teach_student_unique` (`school_id`,`student_id`,`teach_clazz_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教学学生关系表';

+ 0 - 787
paper-library-business/src/main/resources/db/2、init-table-data.sql

@@ -1,787 +0,0 @@
-SET NAMES UTF8;
-
-INSERT INTO `sys_privilege` VALUES (1, '基础配置', 'base', 'MENU', NULL, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (2, '用户管理', 'user', 'MENU', 1, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (3, '配置管理', 'rule', 'MENU', 1, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (4, '组织架构', 'OrganizationManage', 'MENU', 2, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (5, '用户管理', 'UserManage', 'MENU', 2, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (6, '角色管理', 'RoleManage', 'MENU', 2, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (7, '权限管理', 'MenuManage', 'MENU', 129, 6, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (8, '通用规则', 'CommonRule', 'MENU', 3, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (9, '题卡规则管理', 'CardRuleManage', 'MENU', 3, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (11, '印品管理', 'PrintTemplateManage', 'MENU', 3, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (13, '课程管理', 'CourseManage', 'MENU', 356, 7, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (14, '考试中心', 'exam', 'MENU', NULL, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (38, '印刷管理', 'print', 'MENU', 14, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (39, '命题任务管理', 'ExamTaskManage', 'MENU', 652, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (40, '入库申请', 'TaskApplyManage', 'MENU', 652, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (41, '入库审核', 'TaskReviewManage', 'MENU', 652, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (42, '卷库查询', 'TaskPaperManage', 'MENU', 652, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (43, '印刷计划管理', 'PrintPlanManage', 'MENU', 38, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (44, '考务数据导入', 'BusinessDataExport', 'MENU', 38, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (45, '考务明细查询', 'BusinessDataDetail', 'MENU', 38, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (46, '关联试卷管理', 'PlanLinkPaper', 'MENU', 38, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (47, '印刷任务管理', 'PrintTaskManage', 'MENU', 38, 5, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (48, '查询', '/api/admin/exam/print/list', 'URL', 43, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (49, '按类型查询模板', '/api/admin/exam/print/get_template', 'URL', 43, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (50, '新增/修改', '/api/admin/exam/print/save', 'URL', 43, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (51, '删除', '/api/admin/exam/print/remove', 'URL', 43, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (52, '查询', '/api/admin/exam/print/data_list', 'URL', 44, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (53, '汇总数据查询', '/api/admin/exam/print/data_total', 'URL', 44, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (54, '导入', '/api/admin/exam/print/data_import', 'URL', 44, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (55, '查看明细', '/api/admin/exam/print/data_detail_list', 'URL', 44, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (56, '查询', '/api/admin/exam/print/relate_list', 'URL', 46, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (57, '关联/更换试卷', '/api/admin/exam/print/relate_update', 'URL', 46, 2, 'AUTH', '58', 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (58, '查询所有试卷编号/关联卷型', '/api/admin/exam/print/relate_get_paper_numbers', 'URL', 46, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (59, '查询', '/api/admin/exam/print/task_list', 'URL', 47, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (60, '提交印刷', '/api/admin/exam/print/task_submit', 'URL', 47, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (61, '撤回提交', '/api/admin/exam/print/task_cancel', 'URL', 47, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (62, '汇总数据查询', '/api/admin/exam/print/task_total_data', 'URL', 47, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (63, '查询', '/api/admin/exam/task/list', 'URL', 39, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (64, '更改/指派命题老师', '/api/admin/exam/task/assign_user', 'URL', 39, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (65, '启用/禁用', '/api/admin/exam/task/enable', 'URL', 39, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (66, '新建', '/api/admin/exam/task/save', 'URL', 39, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (67, '批量新建-文件导入', '/api/admin/exam/task/import', 'URL', 39, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (68, '批量新建', '/api/admin/exam/task/save_batch', 'URL', 39, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (69, '审核历史', '/api/admin/exam/task/review_list', 'URL', 39, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (70, '查询', '/api/admin/exam/task/apply_list', 'URL', 40, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (71, '提交/暂存', '/api/admin/exam/task/apply_save', 'URL', 40, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (72, '撤回/重新申请', '/api/admin/exam/task/apply_status', 'URL', 40, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (73, '查询未审核', '/api/admin/exam/task/review_list_unaudited', 'URL', 41, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (74, '审核', '/api/admin/exam/task/review_save', 'URL', 41, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (75, '批量审核', '/api/admin/exam/task/review_save_batch', 'URL', 41, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (76, '查询', '/api/admin/exam/task/paper_list', 'URL', 42, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (77, '查询', '/api/admin/sys/user/list', 'URL', 5, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (78, '新增/修改', '/api/admin/sys/user/save', 'URL', 5, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (79, '启用/禁用', '/api/admin/sys/user/enable', 'URL', 5, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (80, '重置密码', '/api/admin/sys/user/reset_password', 'URL', 5, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (81, '导入', '/api/admin/sys/user/import', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (82, '绑定角色', '/api/admin/sys/user/bind_roles', 'URL', 5, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (83, '查询', '/api/admin/sys/role/list', 'URL', 6, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (84, '删除', '/api/admin/sys/role/remove', 'URL', 6, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (85, '新增/修改', '/api/admin/sys/role/save', 'URL', 6, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (86, '启用/禁用', '/api/admin/sys/role/enable', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (87, '用户已绑定角色列表', '/api/admin/sys/role/get_user_roles', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (88, '查询', '/api/admin/sys/privilege/list', 'URL', 7, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (89, '新增/修改', '/api/admin/sys/privilege/save', 'URL', 7, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (90, '删除', '/api/admin/sys/privilege/remove', 'URL', 7, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (91, '角色已绑定权限列表', '/api/admin/sys/privilege/get_role_privileges', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (92, '组织机构-查询', '/api/admin/sys/org/list', 'URL', 4, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (93, '组织机构-新增/修改', '/api/admin/sys/org/save', 'URL', 4, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (94, '组织机构-删除', '/api/admin/sys/org/remove', 'URL', 4, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (95, '组织机构-启用/禁用', '/api/admin/sys/org/enable', 'URL', 4, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (96, '查询', '/api/admin/basic/course/list', 'URL', 13, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (97, '新增/修改', '/api/admin/basic/course/save', 'URL', 13, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (98, '删除', '/api/admin/basic/course/remove', 'URL', 13, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (99, '查询', '/api/admin/basic/exam_rule/list', 'URL', 8, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (100, '新增/修改', '/api/admin/basic/exam_rule/save', 'URL', 8, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (101, '查询', '/api/admin/basic/card_rule/list', 'URL', 9, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (102, '查询单个', '/api/admin/basic/card_rule/get_one', 'URL', 9, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (103, '新增/修改', '/api/admin/basic/card_rule/save', 'URL', 9, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (104, '删除', '/api/admin/basic/card_rule/delete', 'URL', 9, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (112, '系统设置', 'data', 'MENU', 1, 5, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (113, '任务管理', 'DataTaskManage', 'MENU', 112, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (114, '查询', '/api/admin/data/task/query', 'URL', 113, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (117, '命题待办接口', '/api/admin/work/exam/task/ready', 'URL', 16, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (118, '命题待办计数接口', '/api/admin/work/exam/task/ready_count', 'URL', 16, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (119, '命题分配待办接口', '/api/admin/work/exam/task/new', 'URL', 16, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (120, '命题分配待办计数接口', '/api/admin/work/exam/task/new_count', 'URL', 16, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (121, '审核待办接口', '/api/admin/work/exam/task/submit', 'URL', 16, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (122, '审核待办计数接口', '/api/admin/work/exam/task/submit_count', 'URL', 16, 6, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (123, '查询', '/api/admin/basic/template/list', 'URL', 11, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (124, '新增/修改', '/api/admin/basic/template/save', 'URL', 11, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (125, '启用/禁用', '/api/admin/basic/template/enable', 'URL', 11, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (129, '公共接口', 'common', 'MENU', NULL, 11, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (130, '用户登录相关', 'login', 'MENU', 129, 1, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (131, '用户登录', '/api/admin/common/login', 'URL', 130, 1, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (132, '查询用户权限', '/api/admin/common/get_menu', 'URL', 130, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (133, '发送验证码', '/api/admin/common/get_verify_code', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (134, '修改密码', '/api/admin/sys/user/update_password', 'URL', 130, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (135, '用户登出', '/api/admin/common/logout', 'URL', 130, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (136, '模糊查询', 'query', 'MENU', 129, 2, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (137, '模糊查询-印刷计划', '/api/admin/exam/print/query', 'URL', 136, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (138, '题卡规则', '/api/admin/basic/card_rule/query', 'URL', 136, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (139, '模糊查询-课程', '/api/admin/basic/course/query', 'URL', 136, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (140, '模糊查询-试卷编号', '/api/admin/exam/task/paper_number_query', 'URL', 136, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (141, '模糊查询-命题老师', '/api/admin/exam/task/user_query', 'URL', 136, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (142, '模糊查询-考点', '/api/admin/exam/print/data_place_query', 'URL', 136, 6, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (143, '模糊查询-考场', '/api/admin/exam/print/data_room_query', 'URL', 136, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (144, '文件相关', 'file', 'MENU', 129, 3, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (145, '文件上传', '/api/admin/common/file/upload', 'URL', 144, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (146, '文件查询', '/api/admin/common/file/get_one', 'URL', 144, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (147, '文件下载', '/api/admin/common/file/download', 'URL', 144, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (148, '文件预览', '/api/admin/common/file/preview', 'URL', 144, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (149, '系统相关', 'sys', 'MENU', 129, 4, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (150, '查询枚举类型', '/api/admin/common/get_enums', 'URL', 149, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (151, '查询学校列表', '/api/admin/common/school/list', 'URL', 149, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (152, '查询系统参数', '/api/admin/common/sys_config/get_one', 'URL', 149, 3, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (153, '根据学校代码查询学校信息', '/api/admin/common/school/query_by_school_code', 'URL', 149, 4, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (154, '其他', 'other', 'MENU', 129, 5, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (155, '用户导入(异步)', '/api/admin/sys/user/async/import', 'URL', 154, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (156, '用户导出', '/api/admin/sys/user/export', 'URL', 154, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (157, '模板下载', '/api/admin/exam/print/template_download', 'URL', 44, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (158, '结果导出', '/api/admin/exam/print/data_export', 'URL', 44, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (159, '查询', '/api/admin/exam/print/data_detail', 'URL', 45, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (160, '重新提交印刷', '/api/admin/exam/print/task_resubmit', 'URL', 47, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (161, '查看PDF', '/api/admin/exam/print/task_view_pdf', 'URL', 47, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (162, '批量下载PDF', '/api/admin/exam/print/task_download_pdf', 'URL', 47, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (163, '导出审核样本', '/api/admin/exam/task/review_export', 'URL', 41, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (164, '下载试卷', '/api/admin/exam/task/paper_download', 'URL', 42, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (165, '试卷启用/禁用', '/api/admin/exam/task/paper_enable', 'URL', 42, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (166, '查询已审核', '/api/admin/exam/task/review_list_audited', 'URL', 41, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (167, '查询可选择题卡', '/api/admin/exam/card/select_card_list', 'URL', 40, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (168, '查询申请详情', '/api/admin/exam/task/apply_get_one', 'URL', 40, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (169, '根据课程查询命题老师', '/api/admin/sys/user/user_list', 'URL', 39, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (170, '客服制卡', 'customer', 'MENU', NULL, 8, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (171, '客服制卡', 'customerManage', 'MENU', 170, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (172, '题卡审核', 'CustomerCard', 'MENU', 171, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (173, '客服制卡-查询', '/api/admin/exam/card/cust_list', 'URL', 172, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (174, '申请客服制卡', '/api/admin/exam/card/cust_save', 'URL', 40, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (175, '题卡管理', 'card', 'MENU', NULL, 9, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (176, '查询题卡规则', '/api/admin/basic/card_rule/get_one', 'URL', 175, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (177, '查询题卡详情', '/api/admin/exam/card/get_one', 'URL', 175, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (178, '保存/提交', '/api/admin/exam/card/save', 'URL', 175, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (179, '查询考务规则', '/api/admin/basic/exam_rule/list', 'URL', 149, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (180, '查询可设置权限列表', '/api/admin/sys/privilege/list_auth', 'URL', 6, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (181, '超管中心', 'admin', 'MENU', 129, 7, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (182, '查询客服', '/api/admin/sys/user/list_customer', 'URL', 181, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (183, '新增客服', '/api/admin/sys/user/save_customer', 'URL', 181, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (184, '查询用户可绑定角色', '/api/admin/sys/role/list_to_user', 'URL', 5, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (185, '客服制卡-批量下载文件', '/api/admin/exam/card/download_files', 'URL', 172, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (186, '查看印品', '/api/admin/exam/print/template_view', 'URL', 47, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (187, '客户端登录', '/api/admin/client/user/login', 'URL', NULL, 1, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (188, '学生明细', '/api/admin/exam/print/get_student_detail', 'URL', 45, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (189, '修改', '/api/admin/exam/task/paper_update', 'URL', 42, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (190, '重新生成pdf', '/api/admin/data/task/reset_create_pdf', 'URL', 113, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (191, '批量下载试卷PDF、题卡', '/api/admin/exam/task/paper_card_download_pdf', 'URL', 42, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (195, '获取服务器时间', '/api/admin/common/get_system_time', 'URL', 129, 2, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (198, '数据同步', '/api/admin/exam/print/sync_data_cloud', 'URL', 47, 9, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (199, '客户端', 'client', 'MENU', NULL, 10, NULL, '200,201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216', 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (200, '试卷打样-查询列表', '/api/admin/client/paper_try/list', 'URL', 199, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (201, '试卷打样-查看/试印/重印', '/api/admin/client/paper_try/print', 'URL', 199, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (202, '试卷打样-批量试印', '/api/admin/client/paper_try/print_batch', 'URL', 199, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (203, '试卷打样-标记合格状态', '/api/admin/client/paper_try/tag_pass', 'URL', 199, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (204, '查询列表', '/api/admin/client/print/task_list', 'URL', 199, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (205, '导出', '/api/admin/client/print/task_list_export', 'URL', 199, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (206, '汇总数据查询', '/api/admin/client/print/task_total_data', 'URL', 199, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (207, '查看', '/api/admin/client/print/preview', 'URL', 199, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (208, '印刷/缓存数据', '/api/admin/client/print/get_print_data', 'URL', 199, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (209, '批量缓存', '/api/admin/client/print/get_print_data_batch', 'URL', 199, 11, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (210, '缓存后更新状态', '/api/admin/client/print/update_download', 'URL', 199, 12, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (211, '校验', '/api/admin/client/print/validate_data', 'URL', 199, 13, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (212, '更新打印进度', '/api/admin/client/print/update_progress', 'URL', 199, 14, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (213, '重打-查询考生列表', '/api/admin/client/print/list_student', 'URL', 199, 15, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (214, '重打-内容查询', '/api/admin/client/print/get_reprint_data', 'URL', 199, 16, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (215, '统计查询-查询列表', '/api/admin/client/print/statistics_list', 'URL', 199, 16, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (216, '统计查询-汇总数据查询', '/api/admin/client/print/statistics_total_data', 'URL', 199, 16, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (217, '查询', 'Select', 'BUTTON', 5, 1, 'AUTH', '77', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (218, '添加用户', 'Add', 'BUTTON', 5, 2, 'AUTH', '78', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (219, '编辑', 'Edit', 'LINK', 5, 1, 'AUTH', '78', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (220, '启用&禁用', 'Enable', 'LINK', 5, 2, 'AUTH', '79', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (221, '列表', 'List', 'LIST', 5, 1, 'AUTH', '77', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (222, '查询条件', 'Condition', 'CONDITION', 5, 1, 'AUTH', '184,87', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (223, '重置密码', 'Reset', 'LINK', 5, 3, 'AUTH', '80', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (224, '添加', 'Add', 'BUTTON', 4, 1, 'AUTH', '93', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (225, '+子部门', 'Add', 'LINK', 4, 1, 'AUTH', '93', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (226, '编辑', 'Edit', 'LINK', 4, 2, 'AUTH', '93', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (227, '删除', 'Delete', 'LINK', 4, 3, 'AUTH', '94', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (228, '树形列表', 'List', 'LIST', 4, 1, 'AUTH', '92', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (229, '查询', 'Select', 'BUTTON', 6, 1, 'AUTH', '83,88', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (230, '添加角色', 'Add', 'BUTTON', 6, 2, 'AUTH', '85,89', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (231, '编辑', 'Edit', 'LINK', 6, 1, 'AUTH', '83,91', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (232, '删除', 'Delete', 'LINK', 6, 2, 'AUTH', '84,90', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (233, '列表', 'List', 'LIST', 6, 1, 'AUTH', '83', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (234, '查询条件', 'Condition', 'CONDITION', 4, 1, 'AUTH', '92', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (235, '查询条件', 'Condition', 'CONDITION', 6, 1, 'AUTH', '83', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (236, '考务规则配置', 'Add', 'BUTTON', 8, 1, 'AUTH', '99, 100', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (237, '查询', 'Select', 'BUTTON', 9, 1, 'AUTH', '101', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (238, '添加', 'Add', 'BUTTON', 9, 2, 'AUTH', '103', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (239, '查询条件', 'Condition', 'CONDITION', 9, 1, 'AUTH', '101', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (240, '列表', 'List', 'LIST', 9, 1, 'AUTH', '101', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (243, '批量导入', 'Export', 'BUTTON', 5, 3, 'AUTH', '81', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (249, '查询', 'Select', 'BUTTON', 11, 1, 'AUTH', '123', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (250, '添加模版', 'Add', 'BUTTON', 11, 2, 'AUTH', '124', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (251, '预览', 'Preview', 'LINK', 11, 1, 'AUTH', '192', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (252, '编辑', 'Edit', 'LINK', 11, 2, 'AUTH', '124', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (253, '启用&禁用', 'Enable', 'LINK', 11, 3, 'AUTH', '125', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (254, '查询条件', 'Condition', 'CONDITION', 11, 1, 'AUTH', '123', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (255, '列表', 'List', 'LIST', 11, 1, 'AUTH', '123', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (263, '查询', 'Select', 'BUTTON', 13, 1, 'AUTH', '96,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (265, '模版下载', 'TempleteDownload', 'BUTTON', 13, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (268, '编辑', 'Edit', 'LINK', 13, 1, 'AUTH', '97', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (269, '批量删除', 'Delete', 'LINK', 13, 2, 'AUTH', '368', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (270, '查询条件', 'Condition', 'CONDITION', 13, 2, 'AUTH', '96', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (271, '列表', 'List', 'LIST', 13, 1, 'AUTH', '96', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (272, '查询', 'Select', 'BUTTON', 39, 1, 'AUTH', '63', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (273, '批量新建命题任务', 'BatchAdd', 'BUTTON', 39, 2, 'AUTH', '67', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (274, '新建命题任务', 'Add', 'BUTTON', 39, 3, 'AUTH', '66,169,441,442,445,482', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (275, '预览', 'Preview', 'LINK', 39, 1, 'AUTH', '68', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (276, '编辑', 'Edit', 'LINK', 39, 2, 'AUTH', '63', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (277, '取消任务', 'Cancel', 'LINK', 39, 3, 'AUTH', '65', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (278, '查询条件', 'Condition', 'CONDITION', 39, 1, 'AUTH', '63', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (279, '列表', 'List', 'LIST', 39, 1, 'AUTH', '63', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (280, '查询', 'Select', 'BUTTON', 40, 1, 'AUTH', '70', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (281, '预览', 'Preview', 'LINK', 40, 1, 'AUTH', '168,477,568,417,420,421,441,442,640,641', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (282, '撤销申请', 'End', 'LINK', 40, 2, 'AUTH', '72', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (283, '编辑', 'Edit', 'LINK', 40, 3, 'AUTH', '71,167,174,424,477,417,420,421,441,442,640,641', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (284, '查询条件', 'Condition', 'CONDITION', 40, 1, 'AUTH', '70', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (285, '列表', 'List', 'LIST', 40, 1, 'AUTH', '70', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (288, '未审核查询', 'NotReviewSelect', 'BUTTON', 41, 1, 'AUTH', '73', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (289, '未审核导出审核样本', 'NotReviewExport', 'BUTTON', 41, 2, 'AUTH', '163', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (290, '未审核批量不通过', 'NotReviewBatchNotPass', 'BUTTON', 41, 3, 'AUTH', '75', 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (291, '未审核批量通过', 'NotReviewBatchPass', 'BUTTON', 41, 4, 'AUTH', '75', 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (292, '未审核编辑', 'NotReviewEdit', 'LINK', 41, 1, 'AUTH', '74,417,420,421,441,442,477,417,640,641', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (293, '未审核查询条件', 'NotReviewCondition', 'CONDITION', 41, 1, 'AUTH', '73', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (294, '未审核列表', 'NotReviewList', 'LIST', 41, 1, 'AUTH', '73', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (295, '已审核查询', 'ReviewSelect', 'BUTTON', 41, 1, 'AUTH', '166', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (296, '已审核预览', 'ReviewPreview', 'LINK', 41, 1, 'AUTH', '74,477,417,420,421,441,442,640,641', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (297, '已审核查询条件', 'ReviewCondition', 'CONDITION', 41, 1, 'AUTH', '166', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (298, '已审核列表', 'ReviewList', 'LIST', 41, 1, 'AUTH', '166', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (299, '查询', 'Select', 'BUTTON', 42, 1, 'AUTH', '76', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (300, '批量下载试卷题卡', 'BatchDownload', 'BUTTON', 42, 2, 'AUTH', '191', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (301, '预览', 'Preview', 'LINK', 42, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (302, '启用&禁用', 'Enable', 'LINK', 42, 2, 'AUTH', '165', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (303, '下载', 'Download', 'LINK', 42, 3, 'AUTH', '164', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (304, '查询条件', 'Condition', 'CONDITION', 42, 1, 'AUTH', '76', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (305, '列表', 'List', 'LIST', 42, 1, 'AUTH', '76', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (306, '发布印刷任务', 'Publish', 'LINK', 42, 4, 'AUTH', '61,359,425,426,427,428,429,430,449', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (307, '新建命题申请', 'AddTask', 'BUTTON', 40, 2, 'AUTH', '167,174,371,423,424,436,417,420,421,441,442,640,641', 0, 0, 0);
-INSERT INTO `sys_privilege` VALUES (308, '编辑', 'Edit', 'LINK', 42, 4, 'AUTH', '189', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (309, '查询', 'Select', 'BUTTON', 43, 1, 'AUTH', '48,49', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (310, '新建印刷计划', 'Add', 'BUTTON', 43, 2, 'AUTH', '50,49', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (311, '预览', 'Preview', 'LINK', 43, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (312, '编辑', 'Edit', 'LINK', 43, 2, 'AUTH', '50', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (313, '删除', 'Delete', 'LINK', 43, 3, 'AUTH', '51', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (314, '查询条件', 'Condition', 'CONDITION', 43, 1, 'AUTH', '48', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (315, '列表', 'List', 'LIST', 43, 1, 'AUTH', '48,49', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (316, '查询', 'Select', 'BUTTON', 44, 1, 'AUTH', '52,53', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (317, '考务数据模版下载', 'TempleteDownload', 'BUTTON', 44, 2, 'AUTH', '157', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (318, '导出查询结果', 'Export', 'BUTTON', 44, 3, 'AUTH', '158', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (319, '导入', 'Import', 'BUTTON', 44, 4, 'AUTH', '54', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (320, '预览', 'Preview', 'LINK', 44, 1, 'AUTH', '55', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (321, '查询条件', 'Condition', 'CONDITION', 44, 1, 'AUTH', '52', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (322, '列表', 'List', 'LIST', 44, 1, 'AUTH', '52,53', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (323, '查询', 'Select', 'BUTTON', 45, 1, 'AUTH', '159', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (324, '预览', 'Preview', 'LINK', 45, 1, 'AUTH', '188', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (325, '查询条件', 'Condition', 'CONDITION', 45, 1, 'AUTH', '159', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (326, '列表', 'List', 'LIST', 45, 1, 'AUTH', '159', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (327, '查询', 'Select', 'BUTTON', 46, 1, 'AUTH', '56', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (328, '编辑', 'Edit', 'LINK', 46, 1, 'AUTH', '57,58', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (329, '查询条件', 'Condition', 'CONDITION', 46, 1, 'AUTH', '56', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (330, '列表', 'List', 'LIST', 46, 1, 'AUTH', '56', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (331, '查询', 'Select', 'BUTTON', 47, 1, 'AUTH', '59,62', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (332, '下载', 'Download', 'LINK', 47, 1, 'AUTH', '161,162', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (333, '查询条件', 'Condition', 'CONDITION', 47, 1, 'AUTH', '59', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (334, '列表', 'List', 'LIST', 47, 1, 'AUTH', '59', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (335, '撤回', 'End', 'LINK', 47, 2, 'AUTH', '61', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (336, '批量下载PDF', 'BatchDownload', 'BUTTON', 47, 2, 'AUTH', '336', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (337, '查询', 'Select', 'BUTTON', 113, 1, 'AUTH', '114', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (338, '导出日志', 'Export', 'LINK', 113, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (339, '下载文件', 'Download', 'LINK', 113, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (340, '查询条件', 'Condition', 'CONDITION', 113, 1, 'AUTH', '114', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (341, '列表', 'List', 'LIST', 113, 1, 'AUTH', '114', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (342, '预览', 'Preview', 'LINK', 9, 1, 'AUTH', '102', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (343, '编辑', 'Edit', 'LINK', 9, 2, 'AUTH', '103', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (345, '删除', 'Delete', 'LINK', 9, 3, 'AUTH', '104', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (346, '题卡审核-未审核查询', 'NotReviewSelect', 'BUTTON', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (347, '题卡审核-未审核批量下载试卷文件', 'NotReviewBatchDownload', 'BUTTON', 172, 2, 'AUTH', '185', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (348, '题卡审核-未审核查询条件', 'NotReviewCondition', 'CONDITION', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (349, '题卡审核-未审核列表', 'NotReviewList', 'LIST', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (350, '题卡审核-未审核预览', 'NotReviewPreview', 'LINK', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (351, '题卡审核-未审核设计题卡', 'NotReviewDesign', 'LINK', 172, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (352, '题卡审核-已审核查询', 'ReviewSelect', 'BUTTON', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (353, '题卡审核-已审核查询条件', 'ReviewCondition', 'CONDITION', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (354, '题卡审核-已审核列表', 'ReviewList', 'LIST', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (355, '题卡审核-已审核预览', 'ReviewPreview', 'LINK', 172, 1, 'AUTH', '173', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (356, '字典管理', 'dictionary', 'MENU', 1, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (357, '学生学院管理', 'CollegeManage', 'MENU', 356, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (358, '学生管理', 'StudentManage', 'MENU', 356, 6, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (359, '查询', '/api/admin/basic/college/query', 'URL', 357, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (360, '新增/编辑', '/api/admin/basic/college/save', 'URL', 357, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (361, '删除(逻辑)', '/api/admin/basic/college/delete', 'URL', 357, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (362, '查询', '/api/admin/basic/student/query', 'URL', 358, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (363, '增/编辑', '/api/admin/basic/student/save', 'URL', 358, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (364, '批量删除(逻辑)', '/api/admin/basic/student/delete_batch', 'URL', 358, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (365, '批量导入(异步)', '/api/admin/basic/student/data_import', 'URL', 358, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (366, '查询', '/api/admin/basic/course/query', 'URL', 13, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (367, '新增/编辑', '/api/admin/basic/course/save', 'URL', 13, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (368, '批量删除', '/api/admin/basic/course/delete_batch', 'URL', 13, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (369, '批量导入(异步)', '/api/admin/basic/course/data_import', 'URL', 13, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (370, '获取系统编码', '/api/admin/common/get_code', 'URL', 149, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (371, '根据类型查询机构', '/api/admin/sys/org/find_by_type', 'URL', 4, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (372, '查询', 'Select', 'BUTTON', 357, 1, 'AUTH', '359', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (373, '列表', 'List', 'LIST', 357, 1, 'AUTH', '359', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (374, '新增', 'Add', 'BUTTON', 357, 1, 'AUTH', '360,370', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (375, '编辑', 'Edit', 'LINK', 357, 1, 'AUTH', '360', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (376, '删除', 'Delete', 'LINK', 357, 1, 'AUTH', '361', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (377, '查询', 'Select', 'BUTTON', 358, 1, 'AUTH', '362,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (378, '列表', 'List', 'LIST', 358, 1, 'AUTH', '362', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (379, '新增', 'Add', 'BUTTON', 358, 1, 'AUTH', '359,363,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (380, '编辑', 'Edit', 'LINK', 358, 1, 'AUTH', '359,363', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (381, '删除', 'Delete', 'LINK', 358, 1, 'AUTH', '364', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (382, '批量导入', 'Import', 'BUTTON', 358, 2, 'AUTH', '365', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (385, '新增', 'Add', 'BUTTON', 13, 1, 'AUTH', '367,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (388, '批量导入', 'Import', 'BUTTON', 13, 2, 'AUTH', '369', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (389, '机构列表', 'List', 'LIST', 13, 1, 'AUTH', NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (390, '流程管理', 'flow', 'MENU', 1, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (392, '印刷计划推送管理', 'PrintPlanPushManage', 'MENU', 38, 6, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (393, '查询', 'Select', 'BUTTON', 392, 1, 'AUTH', '49,431', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (394, '批量推送', 'BatchSend', 'BUTTON', 392, 2, 'AUTH', '434', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (395, '合并推送印刷计划', 'MergeSend', 'BUTTON', 392, 3, 'AUTH', '432,433', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (396, '预览', 'Preview', 'LINK', 392, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (397, '推送', 'Send', 'LINK', 392, 2, 'AUTH', '435', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (398, '查询条件', 'Condition', 'CONDITION', 392, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (399, '列表', 'List', 'LIST', 392, 1, 'AUTH', '431', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (400, '查询条件', 'Condition', 'CONDITION', 358, 1, 'AUTH', '377', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (402, '流程管理', 'FlowManage', 'MENU', 390, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (403, '流程审批记录管理', 'ApproveRecordManage', 'MENU', 390, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (404, '查询', 'Select', 'BUTTON', 403, 1, 'AUTH', '418', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (405, '查询条件', 'Condition', 'CONDITION', 403, 1, 'AUTH', '418', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (406, '列表', 'List', 'LIST', 403, 1, 'AUTH', '418', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (407, '查询', 'Select', 'BUTTON', 402, 1, 'AUTH', '416', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (408, '新建流程', 'Register', 'BUTTON', 402, 2, 'AUTH', '414', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (409, '删除', 'Delete', 'LINK', 402, 2, 'AUTH', '415', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (410, '查询条件', 'Condition', 'CONDITION', 402, 1, 'AUTH', '416', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (411, '列表', 'List', 'LIST', 402, 1, 'AUTH', '416', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (412, '提交印刷', 'Submit', 'BUTTON', 43, 3, 'AUTH', '48', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (413, '重新生成pdf', 'CreatePdf', 'LINK', 113, 3, 'AUTH', '190', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (414, '保存和发布流程', '/api/admin/custom/flow/save', 'URL', 402, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (415, '流程逻辑删除', '/api/admin/custom/flow/enable', 'URL', 402, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (416, '流程列表', '/api/admin/custom/flow/list', 'URL', 402, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (417, '审批流程', '/api/admin/custom/flow/task/approve', 'URL', 402, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (418, '流程审批记录列表', '/api/admin/custom/flow/approve/list', 'URL', 402, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (419, '流程审批记录逻辑删除', '/api/admin/custom/flow/approve/enable', 'URL', 402, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (420, '流程终止', '/api/admin/custom/flow/end', 'URL', 402, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (421, '获取所有流程节点', '/api/admin/custom/flow/task/all', 'URL', 402, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (422, '删除', 'Delete', 'LINK', 403, 1, 'AUTH', '419', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (423, '新建命题任务', '/api/admin/exam/task/save_task_apply', 'URL', 40, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (424, '新建命题任务-切换题卡', '/api/admin/exam/task/switch_card', 'URL', 40, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (425, '发布印刷任务-查看列表', '/api/admin/exam/task/list_task_print', 'URL', 42, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (426, '发布印刷任务-班级列表', '/api/admin/exam/task/list_task_print_class', 'URL', 42, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (427, '发布印刷任务-印刷室列表', '/api/admin/exam/task/list_task_print_house', 'URL', 42, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (428, '发布印刷任务', '/api/admin/exam/task/save_task_print', 'URL', 42, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (429, '发布印刷任务-查看考生', '/api/admin/exam/task/list_task_print_student', 'URL', 42, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (430, '发布印刷任务-删除', '/api/admin/exam/task/remove_task_print', 'URL', 42, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (431, '计划查询', '/api/admin/exam/print_sync/list_sync', 'URL', 392, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (432, '合并推送-云阅卷考试ID列表', '/api/admin/exam/print_sync/list_relate_ids', 'URL', 392, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (433, '合并推送-多计划合并同步', '/api/admin/exam/print_sync/sync_data_merge', 'URL', 392, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (434, '批量同步', '/api/admin/exam/print_sync/sync_data_cloud_batch', 'URL', 392, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (435, '同步失败-单个手动同步', '/api/admin/exam/print_sync/sync_data_cloud', 'URL', 392, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (436, '新建命题任务-取消/删除', '/api/admin/exam/task/remove_task_apply', 'URL', 40, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (437, '查询模板', 'List', 'LIST', 43, 1, 'AUTH', '49', 0, 1, 0);
-INSERT INTO `sys_privilege` VALUES (438, '汇总数据查询', 'List', 'LIST', 44, 2, 'AUTH', '53', 0, 1, 0);
-INSERT INTO `sys_privilege` VALUES (439, '题卡标题查询', '/api/admin/exam/task/find_card_title', 'URL', 40, 7, 'AUTH', NULL, 0, 1, 0);
-INSERT INTO `sys_privilege` VALUES (440, '题卡标题查询', 'List', 'LIST', 40, 1, 'AUTH', '439', 0, 1, 0);
-INSERT INTO `sys_privilege` VALUES (441, '根据流程类型获取流程节点', '/api/admin/custom/flow/get_flow_info_by_type', 'URL', 402, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (442, '流程节点转他人审批', '/api/admin/custom/flow/task/approver/exchange', 'URL', 402, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (446, '做废/恢复', '/api/admin/exam/print/task_normal', 'URL', 47, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (447, '做废/恢复', 'Normal', 'LINK', 47, 3, 'AUTH', '446', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (448, '更改/指派命题老师', 'ASSIGN', 'LINK', 39, 4, 'AUTH', '64', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (449, '发布印刷任务-提交任务', '/api/admin/exam/task/submit_task_print', 'URL', 42, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (450, '班级管理', 'ClazzManage', 'MENU', 356, 5, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (451, '查询', '/api/admin/basic/clazz/query', 'URL', 450, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (452, '新增/编辑', '/api/admin/basic/clazz/save', 'URL', 450, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (453, '批量删除(逻辑)', '/api/admin/basic/clazz/delete_batch', 'URL', 450, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (454, '批量导入(异步)', '/api/admin/basic/clazz/data_import', 'URL', 450, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (455, '查询', 'Select', 'BUTTON', 450, 1, 'AUTH', '451', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (456, '列表', 'List', 'LIST', 450, 1, 'AUTH', '451', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (457, '新增', 'Add', 'BUTTON', 450, 1, 'AUTH', '452', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (458, '编辑', 'Edit', 'LINK', 450, 1, 'AUTH', '452', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (459, '删除', 'Delete', 'LINK', 450, 1, 'AUTH', '453', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (460, '批量导入', 'Import', 'BUTTON', 450, 2, 'AUTH', '454', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (461, '查询条件', 'Condition', 'CONDITION', 450, 1, 'AUTH', '451', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (462, '班级数据源查询', '/api/admin/basic/clazz/datasource', 'URL', 450, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (463, '新建命题任务', 'ExamTaskApplyManage', 'BUTTON', 40, 8, 'AUTH', '49,167,174,371,464,465,427,642,417,420,421,441,442,640,641,642', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (464, '新建命题申请', '/api/admin/exam/task/submit_task_apply', 'URL', 40, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (465, '新建命题申请-班级列表', '/api/admin/exam/task/list_task_apply_class', 'URL', 39, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (466, '命题任务-审批-获取试卷审批表数据', '/api/admin/exam/task/find_approve_form_json', 'URL', 39, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (467, '命题任务-审批-获取试卷审批表pdf', '/api/admin/exam/task/find_approve_form_pdf', 'URL', 39, 11, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (468, '下载审批表', 'Download', 'LINK', 40, 5, 'AUTH', '466,467', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (469, '命题计划统计', 'Statistics', 'MENU', 14, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (470, '命题计划统计表', 'StatisticsManage', 'MENU', 469, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (471, '查询', 'Select', 'BUTTON', 470, 1, 'AUTH', '476', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (472, '模板下载', 'Download', 'BUTTON', 470, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (473, '导入', 'Import', 'BUTTON', 470, 3, 'AUTH', '475', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (474, '列表', 'List', 'LIST', 470, 1, 'AUTH', '476', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (475, '导入', '/api/admin/statistics/import', 'URL', 470, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (476, '列表', '/api/admin/statistics/list', 'URL', 470, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (477, '命题任务-考试对象查询', '/api/admin/exam/task/find_exam_object', 'URL', 39, 12, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (478, '刷新数据', 'Freshen', 'BUTTON', 470, 4, 'AUTH', '480', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (479, '删除数据', 'Delete', 'BUTTON', 470, 5, 'AUTH', '481', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (480, '刷新数据', '/api/admin/statistics/freshen', 'URL', 470, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (481, '删除数据', '/api/admin/statistics/delete', 'URL', 470, 4, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (483, '阅卷管理', 'stmms', 'MENU', NULL, 5, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (486, '阅卷管理', 'MarkTaskManage', 'MENU', 483, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (487, '成绩归档', 'ScoreArchive', 'MENU', 561, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (488, '评卷参数设置', 'UploadStructure', 'MENU', 486, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (489, '列表', '/api/admin/exam/structure/list', 'URL', 488, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (490, '上传', '/api/admin/exam/structure/upload', 'URL', 488, 2, 'AUTH', NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (491, '阅卷管理', 'MarkerLogin', 'MENU', 486, 1, NULL, '492,493,541', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (492, '评卷员登录', '/api/admin/exam/sso/marker_login', 'URL', 491, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (493, '科组长登录', '/api/admin/exam/sso/marker_leader_login', 'URL', 491, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (494, '列表', 'List', 'LIST', 488, 1, 'AUTH', '489', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (495, '上传试卷结构/标答', 'Upload', 'LINK', 488, 1, 'AUTH', '490,540', 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (496, '查看试卷结构', 'Preview', 'LINK', 488, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (497, '查看标答', 'Preview', 'LINK', 488, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (498, '列表', 'List', 'LIST', 487, 1, 'AUTH', '542', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (499, '查询条件', 'Condition', 'CONDITION', 487, 1, 'AUTH', '542', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (500, '查询', 'Select', 'BUTTON', 487, 1, 'AUTH', '542', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (501, '数据同步', 'Sync', 'BUTTON', 487, 2, 'AUTH', '546', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (502, '成绩导出', 'Export', 'BUTTON', 487, 3, 'AUTH', '543', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (503, '一键下载', 'BatchDownload', 'BUTTON', 487, 4, 'AUTH', '545', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (504, '查看原卷', 'Preview', 'LINK', 487, 1, 'AUTH', '563', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (505, '下载', 'Download', 'LINK', 487, 2, 'AUTH', '544', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (506, '归档管理', 'ScoreArchiveManage', 'MENU', NULL, 6, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (507, '菜单管理', 'MenuManage', 'MENU', 1, 7, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (508, '自定义菜单', 'CustomMenu', 'MENU', 507, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (509, '同步', 'SyncUser', 'BUTTON', 5, 1, 'AUTH', '532', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (510, '学期管理', 'SemesterManage', 'MENU', 356, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (511, '新建学期', 'Add', 'BUTTON', 510, 1, 'AUTH', '534', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (512, '编辑', 'Edit', 'LINK', 510, 1, 'AUTH', '534', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (513, '删除', 'Delete', 'LINK', 510, 2, 'AUTH', '535', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (514, '列表', 'List', 'LIST', 510, 1, 'AUTH', '533', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (515, '专业管理', 'MajorManage', 'MENU', 356, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (516, '新增专业', 'Add', 'BUTTON', 515, 1, 'AUTH', '537', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (517, '编辑', 'Edit', 'LINK', 515, 1, 'AUTH', '537', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (518, '删除', 'Delete', 'LINK', 515, 2, 'AUTH', '538', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (519, '列表', 'List', 'LIST', 515, 1, 'AUTH', '536', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (520, '查询条件', 'Condition', 'CONDITION', 515, 1, 'AUTH', '536', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (521, '同步管理', 'SyncManage', 'MENU', 112, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (522, '查询', 'Select', 'BUTTON', 515, 1, 'AUTH', '536', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (523, '查询', 'Select', 'BUTTON', 521, 1, 'AUTH', '557', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (524, '查询条件', 'Condition', 'CONDITION', 521, 1, 'AUTH', '557', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (525, '列表', 'List', 'LIST', 521, 1, 'AUTH', '557', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (526, '导出日志', 'Export', 'LINK', 521, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (527, '查询自定义菜单权限', '/api/admin/menu/custom/list', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (528, '学校已绑定自定义菜单权限列表', '/api/admin/menu/custom/get_school_custom_privileges', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (529, '学校新增/修改自定义菜单权限', '/api/admin/menu/custom/save', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (530, '查询', 'Select', 'BUTTON', 508, 1, 'AUTH', '527,528', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (531, '保存', 'Save', 'BUTTON', 508, 2, 'AUTH', '529', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (532, '同步', '/api/admin/sys/user/push', 'URL', 5, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (533, '查询', '/api/admin/basic/semester/query', 'URL', 510, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (534, '新增/编辑', '/api/admin/basic/semester/save', 'URL', 510, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (535, '删除', '/api/admin/basic/semester/delete', 'URL', 510, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (536, '查询', '/api/admin/basic/major/query', 'URL', 515, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (537, '新增/编辑', '/api/admin/basic/major/save', 'URL', 515, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (538, '删除', '/api/admin/basic/major/delete', 'URL', 515, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (539, '共用接口-查询字典', '/api/admin/common/get_dictionary', 'URL', 149, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (540, '查看试卷结构', '/api/admin/exam/structure/preview_structure', 'URL', 488, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (541, '获取用户阅卷角色', '/api/admin/common/get_open_role', 'URL', 491, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (542, '查询接口', '/api/admin/sync/score/list', 'URL', 500, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (543, '成绩导出接口', '/api/admin/sync/score/export', 'URL', 502, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (544, '成绩动态轨迹图下载接口', '/api/admin/sync/score/download', 'URL', 505, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (545, '成绩动态轨迹图一键下载接口', '/api/admin/sync/score/batch_download', 'URL', 503, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (546, '成绩查询同步接口', '/api/admin/sync/score/sync', 'URL', 501, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (547, '阅卷试卷上传待办计数接口', '/api/admin/work/structure/task/ready_count', 'URL', 16, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (548, '阅卷试卷上传待办接口', '/api/admin/work/structure/task/ready', 'URL', 16, 8, 'SYS', '490', 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (549, '短信日志', 'SmsManage', 'MENU', 112, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (550, '查询', 'Select', 'BUTTON', 549, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (551, '查询', '/api/admin/basic/message/list', 'URL', 550, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (552, '查询短信类型', '/api/admin/basic/message/list_message_types', 'URL', 550, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (553, '短信失败重发', '/api/admin/basic/message/resend', 'URL', 550, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (554, '查询条件', 'Condition', 'CONDITION', 549, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (555, '列表', 'List', 'LIST', 549, 1, 'AUTH', '551,552', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (556, '短信失败重发', 'Send', 'LINK', 549, 1, 'AUTH', '553', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (557, '查询', '/api/admin/data/sync/query', 'URL', 521, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (558, '模糊查询', '/api/admin/basic/semester/list', 'URL', 510, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (559, '设置当前使用学期', 'Edit', 'LINK', 510, 1, 'AUTH', '560', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (560, '设置当前使用学期', '/api/admin/basic/semester/set_in_used', 'URL', 510, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (561, '归档管理', 'ScoreArchivePrimary', 'MENU', 506, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (562, '提交印刷', 'Submit', 'LINK', 47, 5, 'AUTH', '60', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (563, '查看原卷接口', '/api/admin/sync/score/preview', 'URL', 504, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (564, '考试试卷文件上传接口', '/api/admin/common/file/exam_paper_upload', 'URL', 144, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (566, '审核-印刷员驳回后命题老师修改', '/api/admin/exam/task/apply_resave', 'URL', 40, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (567, '查看', 'Preview', 'LINK', 403, 1, 'AUTH', '168,568,640,641,477', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (568, '查询任务详情', '/api/admin/exam/task/exam_task_get_one', 'URL', 40, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (569, '根据条件删除(物理)', '/api/admin/basic/student/delete_by_condition', 'URL', 358, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (570, '根据条件删除', 'Delete', 'BUTTON', 358, 1, 'AUTH', '569', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (571, '批量删除', 'Delete', 'BUTTON', 450, 1, 'AUTH', '453', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (572, '批量删除', 'Delete', 'BUTTON', 515, 1, 'AUTH', '538', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (573, '根据查询条件批量删除', '/api/admin/basic/course/delete_by_query', 'URL', 13, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (574, '根据查询条件批量删除', 'Delete', 'BUTTON', 13, 5, 'AUTH', '573', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (575, '基础信息', 'basicInfo', 'MENU', 650, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (576, '课程管理', 'CourseSimpleManage', 'MENU', 575, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (577, '查询', '/api/admin/teach/course/page', 'URL', 576, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (578, '查找基础课程', '/api/admin/teach/course/find_basic_course', 'URL', 576, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (579, '创建教学课程', '/api/admin/teach/course/create', 'URL', 576, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (580, '批量删除', '/api/admin/teach/course/delete', 'URL', 576, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (581, '列表', 'List', 'LIST', 576, 1, 'AUTH', '577', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (582, '查询', 'Select', 'BUTTON', 576, 2, 'AUTH', '577', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (583, '新增', 'Add', 'BUTTON', 576, 3, 'AUTH', '578,579', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (584, '删除', 'Delete', 'LINK', 576, 4, 'AUTH', '580', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (585, '班级管理', 'Link', 'LINK', 576, 5, 'AUTH', '587,588,589,590', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (586, '班级管理', 'ClazzSimpleManage', 'MENU', 575, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (587, '查询', '/api/admin/teach/clazz/page', 'URL', 586, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (588, '编辑教学班级', '/api/admin/teach/clazz/edit', 'URL', 586, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (589, '批量删除', '/api/admin/teach/clazz/delete', 'URL', 586, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (590, '查找教学课程', '/api/admin/teach/clazz/find_teach_course', 'URL', 586, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (591, '列表', 'List', 'LIST', 586, 1, 'AUTH', '587', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (592, '查询', 'Select', 'BUTTON', 586, 2, 'AUTH', '587', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (593, '查询条件', 'Condition', 'CONDITION', 586, 3, 'AUTH', '590', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (594, '新增', 'Add', 'BUTTON', 586, 4, 'AUTH', '588', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (595, '重命名', 'Edit', 'LINK', 586, 5, 'AUTH', '588', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (596, '删除', 'Delete', 'LINK', 586, 6, 'AUTH', '588', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (597, '人员管理', 'Window', 'LINK', 586, 7, 'AUTH', '598,599,600,601,662', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (598, '教学学生-查询', '/api/admin/teach/student/page', 'URL', 597, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (599, '教学学生-创建教学学生', '/api/admin/teach/student/create', 'URL', 597, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (600, '教学学生-批量删除', '/api/admin/teach/student/delete', 'URL', 597, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (601, '教学学生-批量导入', '/api/admin/teach/student/import', 'URL', 597, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (602, '教学学生-列表', 'List', 'LIST', 597, 1, 'AUTH', '598', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (603, '教学学生-查询', 'Select', 'BUTTON', 597, 2, 'AUTH', '598', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (604, '教学学生-新增', 'Add', 'BUTTON', 597, 3, 'AUTH', '599', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (605, '教学学生-批量导入', 'Import', 'BUTTON', 597, 4, 'AUTH', '601', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (606, '教学学生-删除', 'Delete', 'LINK', 597, 5, 'AUTH', '600', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (607, '教学学生-批量删除', 'DeleteBatch', 'BUTTON', 597, 6, 'AUTH', '600', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (608, '查询条件', 'Condition', 'CONDITION', 576, 6, 'AUTH', '577', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (609, '考试管理', 'ExamManage', 'MENU', 356, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (610, '查询', 'Select', 'BUTTON', 609, 1, 'AUTH', '616', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (611, '新增', 'Add', 'BUTTON', 609, 3, 'AUTH', '617', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (612, '启用/禁用', 'Enable', 'LINK', 609, 4, 'AUTH', '618', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (613, '删除', 'Delete', 'LINK', 609, 5, 'AUTH', '619', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (614, '设置', 'Set', 'LINK', 609, 6, 'AUTH', '620,621,622,623,645,646', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (615, '查询条件', 'Condition', 'CONDITION', 609, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (616, '查询', '/api/admin/basic/exam/page', 'URL', 609, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (617, '新增/修改', '/api/admin/basic/exam/save', 'URL', 609, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (618, '启用/禁用', '/api/admin/basic/exam/enable', 'URL', 609, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (619, '删除', '/api/admin/basic/exam/delete', 'URL', 609, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (620, '设置', '/api/admin/basic/exam/set_in_userd', 'URL', 609, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (621, '查询', '/api/admin/basic/print_config/page', 'URL', 614, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (622, '新增/修改', '/api/admin/basic/print_config/save', 'URL', 614, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (623, '启用/禁用', '/api/admin/basic/print_config/enable', 'URL', 614, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (624, '题卡管理', 'CardManage', 'MENU', 3, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (625, '查询', 'Select', 'BUTTON', 624, 1, 'AUTH', '627', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (626, '查询条件', 'Condition', 'CONDITION', 624, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (627, '查询', '/api/admin/exam/card/page', 'URL', 624, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (628, '修改', 'Edit', 'LINK', 609, 7, 'AUTH', '617', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (629, '新增', 'Add', 'BUTTON', 624, 3, 'AUTH', '631', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (630, '修改', 'Edit', 'LINK', 624, 4, 'AUTH', '631', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (631, '新增/修改', '/api/admin/exam/card/save_generic', 'URL', 624, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (632, '列表', 'List', 'LIST', 609, 7, 'AUTH', '616', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (633, '列表', 'List', 'LIST', 624, 5, 'AUTH', '627', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (634, '发送验证码(绑定手机号)', '/api/admin/common/get_verify_code_for_bind', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (635, '删除', 'Delete', 'LINK', 624, 6, 'AUTH', '636', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (636, '删除', '/api/admin/exam/card/delete_generic', 'URL', 624, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (637, '模糊查询', '/api/admin/basic/exam/query', 'URL', 609, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (638, '编辑', 'Edit', 'LINK', 402, 1, 'AUTH', '639', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (639, '编辑流程', '/api/admin/custom/flow/edit', 'URL', 402, 14, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (640, '获取当前流程节点信息', '/api/admin/custom/flow/task/info', 'URL', 402, 15, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (641, '流程信息', '/api/admin/custom/flow/view', 'URL', 402, 16, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (642, '根据考试ID和机构ID查询印品', '/api/admin/basic/print_config/get_by_exam_id_and_org_id', 'URL', 614, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (643, '重命名', 'Rename', 'LINK', 402, 3, 'AUTH', '643', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (644, '重命名自定义流程名称', '/api/admin/custom/flow/rename', 'URL', 402, 17, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (645, '删除', '/api/admin/basic/print_config/delete', 'URL', 614, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (646, '查询考试下设置印品的机构集合', '/api/admin/basic/print_config/list_org_id_by_exam_id', 'URL', 614, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (647, '成员管理', 'Manager', 'LINK', 6, 3, 'AUTH', '648,649', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (648, '新增/修改', '/api/admin/sys/role/group/save', 'URL', 647, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (649, '查询', '/api/admin/sys/role/group/list', 'URL', 647, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (650, '基础信息', 'baseInfo', 'MENU', NULL, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (651, '电子交卷', 'electronic', 'MENU', NULL, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (652, '电子交卷', 'electronicSubmit', 'MENU', 651, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (653, '下载管理', 'DownloadManage', 'MENU', 112, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (654, '查询', 'Select', 'BUTTON', 653, 1, 'AUTH', '659', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (655, '查询条件', 'Condition', 'CONDITION', 653, 2, 'AUTH', '659', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (656, '下载文件', 'Download', 'LINK', 653, 3, 'AUTH', '660', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (657, '批量下载文件', 'Download', 'BUTTON', 653, 4, 'AUTH', '661', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (658, '列表', 'List', 'LIST', 653, 5, 'AUTH', '659', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (659, '查询', '/api/admin/data/download/page', 'URL', 653, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (660, '下载文件', '/api/admin/data/download/download_one', 'URL', 653, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (661, '批量下载文件', '/api/admin/data/download/download_batch', 'URL', 653, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (662, '教学学生-从课程班级批量添加学生', '/api/admin/teach/student/create_batch', 'URL', 597, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (663, '教学学生-从课程班级添加', 'SaveBatch', 'BUTTON', 597, 7, 'AUTH', '662', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (664, '重新同步', 'Push', 'LINK', 521, 1, 'AUTH', '665', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (665, '重新同步', '/api/admin/data/sync/resync', 'URL', 521, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (666, '上传试卷标答文件', 'Upload', 'LINK', 488, 4, 'AUTH', '667', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (667, '上传试卷标答文件', '/api/admin/exam/structure/upload_answer', 'URL', 488, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (668, '更新客观题答案', 'Upload', 'LINK', 488, 5, 'AUTH', '669', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (669, '更新客观题答案', '/api/admin/exam/structure/update_objective_answer', 'URL', 488, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (670, '评卷参数设置', 'Submit', 'LINK', 488, 6, 'AUTH', '671,672', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (671, '提交', '/api/admin/exam/structure/submit', 'URL', 488, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (672, '获取题卡图片', '/api/admin/exam/structure/find_jpg_file', 'URL', 488, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (673, '查询条件', 'Condition', 'CONDITION', 488, 7, 'AUTH', '489', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (674, '查询按钮', 'Select', 'BUTTON', 488, 8, 'AUTH', '489', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (675, '授权配置', 'AuthManage', 'MENU', 1, 6, NULL, NULL, 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (676, '授权配置-导出硬件信息按钮', 'Export', 'BUTTON', 675, 1, 'AUTH', '677,678,679', 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (677, '导出硬件信息', '/api/admin/auth/export/device/info', 'URL', 676, 1, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (678, '离线激活', '/api/admin/auth/offline/activation', 'URL', 676, 2, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (679, '查询激活信息', '/api/admin/auth/select', 'URL', 676, 3, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (680, '教研分析', 'analyze', 'MENU', NULL, 7, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (681, '分析批次管理', 'AnalysisBatchManage', 'MENU', 680, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (682, '查询', '/api/admin/grade/batch/page', 'URL', 681, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (683, '新建', '/api/admin/grade/batch/save', 'URL', 681, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (684, '删除', '/api/admin/grade/batch/delete', 'URL', 681, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (685, '推送', '/api/admin/grade/batch/push', 'URL', 681, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (686, '查询', 'Select', 'BUTTON', 681, 1, 'AUTH', '682', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (687, '列表', 'List', 'LIST', 681, 2, 'AUTH', '682', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (688, '新建', 'Add', 'BUTTON', 681, 3, 'AUTH', '683', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (689, '批量删除', 'Delete', 'BUTTON', 681, 4, 'AUTH', '684', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (690, '删除', 'Delete', 'LINK', 681, 5, 'AUTH', '684', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (691, '推送', 'Push', 'LINK', 681, 6, 'AUTH', '685', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (692, '添加分析课程', 'Window', 'LINK', 681, 7, 'AUTH', '693,694,695,696,704,705', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (693, '查询', '/api/admin/grade/batch/paper/page', 'URL', 692, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (694, '新建', '/api/admin/grade/batch/paper/save', 'URL', 692, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (695, '删除', '/api/admin/grade/batch/paper/delete', 'URL', 692, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (696, '查询可分析试卷', '/api/admin/grade/batch/paper/able', 'URL', 692, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (697, '课程查询', 'Select', 'BUTTON', 692, 1, 'AUTH', '693', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (698, '课程列表', 'List', 'LIST', 692, 2, 'AUTH', '693', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (699, '课程添加分析课程', 'Add', 'BUTTON', 692, 3, 'AUTH', '694', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (700, '课程批量删除', 'Delete', 'BUTTON', 692, 4, 'AUTH', '695', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (701, '课程删除', 'Delete', 'BUTTON', 692, 5, 'AUTH', '695', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (702, '可分析课程查询', 'Select', 'BUTTON', 692, 6, 'AUTH', '696', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (703, '可分析课程列表', 'List', 'LIST', 692, 7, 'AUTH', '696', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (704, '推送', '/api/admin/grade/batch/paper/push', 'URL', 692, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (705, '计算', '/api/admin/grade/batch/paper/calculate', 'URL', 692, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (706, '推送', 'Push', 'LINK', 692, 8, 'AUTH', '704', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (707, '计算', 'Calculate', 'LINK', 692, 9, 'AUTH', '705', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (708, '蓝图设置', 'DataInitManage', 'MENU', 680, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (709, '成绩分析课程数据初始化', '/api/admin/grade/paper/initialize', 'URL', 708, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (710, '查询', 'Select', 'BUTTON', 708, 1, 'AUTH', '709', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (711, '列表', 'List', 'LIST', 708, 2, 'AUTH', '709', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (712, '成绩分析基础配置', 'Window', 'LINK', 708, 3, 'AUTH', '717,718,719,720,726,727,728,729,735,736,737,738,755', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (717, '查询', '/api/admin/grade/paper/dimension/list', 'URL', 712, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (718, '新建维度', '/api/admin/grade/paper/dimension/save', 'URL', 712, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (719, '模板导出', '/api/admin/grade/paper/dimension/export', 'URL', 712, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (720, '导入', '/api/admin/grade/paper/dimension/import', 'URL', 712, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (721, '查询', 'Select', 'BUTTON', 712, 1, 'AUTH', '717', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (722, '列表', 'List', 'LIST', 712, 2, 'AUTH', '717', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (723, '新建', 'Add', 'BUTTON', 712, 3, 'AUTH', '718', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (724, '导入', 'Import', 'BUTTON', 712, 4, 'AUTH', '720', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (725, '模板导出', 'Export', 'BUTTON', 712, 5, 'AUTH', '719', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (726, '查询', '/api/admin/grade/paper/struct/list', 'URL', 712, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (727, '新建试卷结构', '/api/admin/grade/paper/struct/save', 'URL', 712, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (728, '导入', '/api/admin/grade/paper/struct/import', 'URL', 712, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (729, '模板导出', '/api/admin/grade/paper/struct/export', 'URL', 712, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (730, '查询', 'Select', 'BUTTON', 712, 1, 'AUTH', '726', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (731, '列表', 'List', 'LIST', 712, 2, 'AUTH', '726', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (732, '导入', 'Import', 'BUTTON', 712, 3, 'AUTH', '728', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (734, '模板导出', 'Export', 'BUTTON', 712, 4, 'AUTH', '729', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (735, '查询定义', '/api/admin/grade/paper/paper_define', 'URL', 712, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (736, '新建定义', '/api/admin/grade/paper/save_define', 'URL', 712, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (737, '查询', '/api/admin/grade/module/evaluation/list', 'URL', 712, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (738, '新建模块评价', '/api/admin/grade/module/evaluation/save', 'URL', 712, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (739, '查看报告', 'AnalysisReportView', 'MENU', 680, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (740, '教研分析单点登录', '/api/admin/exam/sso/analysis_login', 'URL', 149, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (741, '考务数据导出', 'Export', 'LINK', 681, 8, 'AUTH', '743', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (742, '考务数据导入', 'Import', 'LINK', 681, 9, 'AUTH', '744', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (743, '考务数据导出', '/api/admin/grade/batch/download', 'URL', 681, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (744, '考务数据导入', '/api/admin/grade/batch/upload', 'URL', 681, 11, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (745, '教研待办接口', '/api/admin/work/grade/task/ready', 'URL', 16, 9, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (746, '教研待办计数接口', '/api/admin/work/grade/task/ready_count', 'URL', 16, 10, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (747, '开始计算', 'StartCalc', 'LINK', 681, 12, 'AUTH', '748', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (748, '开始计算', '/api/admin/grade/batch/start_calc', 'URL', 681, 13, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (749, '查询条件', 'Condition', 'CONDITION', 708, 4, 'AUTH', '709', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (750, '查询条件', 'Condition', 'CONDITION', 681, 14, 'AUTH', '682', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (751, '课程发布', 'Publish', 'LINK', 681, 6, 'AUTH', '752', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (752, '课程发布', '/api/admin/grade/batch/paper/publish', 'URL', 681, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (753, '绑定科组长', 'Bind', 'LINK', 488, 8, 'AUTH', '754', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (754, '绑定科组长', '/api/admin/exam/structure/bind_mark_leader', 'URL', 488, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (755, '更新试卷机构', '/api/admin/grade/paper/struct/change_paper_structure', 'URL', 712, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (756, '查询已审核数量', '/api/admin/exam/task/review_list_audited_count', 'URL', 41, 6, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (757, '批量导入(异步)', '/api/admin/sys/org/import', 'URL', 4, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (758, '导入', 'Import', 'BUTTON', 4, 4, 'AUTH', '757', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (759, '考生对象查询', '/api/admin/exam/task/find_exam_task_student_object', 'URL', 40, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (760, '增加考试对象', 'ExamTaskStudentObject', 'BUTTON', 40, 9, 'AUTH', '759', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (761, '导入考生对象', '/api/admin/exam/task/exam_task_exam_student_import', 'URL', 40, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (762, '批量导入考生', 'ExamTaskStudentObjectImport', 'BUTTON', 40, 10, 'AUTH', '761', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (763, '查询详情', '/api/admin/basic/template/get_one', 'URL', 10, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (764, '复制', '/api/admin/exam/card/copy', 'URL', 175, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (765, '查询开课学院', '/api/admin/grade/batch/paper/find_teach_college', 'URL', 692, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (766, '查询条件', 'Condition', 'CONDITION', 470, 1, 'AUTH', '476', 1, 0, 1);
-
-INSERT INTO `sys_user` VALUES (1, NULL, 'sysadmin', 'sysadmin', NULL, 'MTIzNDU2', NULL, NULL, 1, 1, 1629353956868, NULL, NULL, NULL, NULL, 1629353956881, NULL);
-
-INSERT INTO `sys_user_role` VALUES (1, 1, 1, NULL, 1);
-
-INSERT INTO `sys_config` VALUES (1, NULL, NULL, 'sys.user.initPassword', '初始密码', '123456', NULL, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (2, NULL, NULL, 'sys.warning.days', '预警天数', '3', NULL, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (3, NULL, NULL, 'sys.code.enable', '是否启用短信验证码', 'true', 'true-启用,false-禁用', 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (4, NULL, NULL, 'sys.message.enable', '是否启用短信消息提示', 'true', 'true-启用,false-禁用', 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (5, NULL, NULL, 'sys.message.resendCount', '失败短信重试次数', '3', NULL, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (6, NULL, NULL, 'sys.sync.enable', '是否开启数据同步云阅卷', 'true', 'true-启用,false-禁用', 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (7, NULL, NULL, 'sys.txt.charset', 'txt文件编码', 'gbk', NULL, 1, NULL, NULL, NULL);
-INSERT INTO `sys_config` VALUES (8, NULL, NULL, 'sys.pdf.size.list', '全局pdf格式清单', '[A3, A4, A5, B3, B4, B5, 8K]', NULL, 1, NULL, NULL, NULL);
-
-INSERT INTO `sys_role` VALUES (1, NULL, NULL, '系统管理员', 1, 'ADMIN', NULL, NULL, NULL, NULL, 1, NULL, NULL);
-INSERT INTO `sys_role` VALUES (2, NULL, NULL, '教务处老师', 1, 'OFFICE_TEACHER', NULL, NULL, NULL, NULL, 1, 'ANALYSIS', '系统内置');
-INSERT INTO `sys_role` VALUES (3, NULL, NULL, '学院院长', 1, 'PRESIDENT', NULL, NULL, NULL, NULL, 1, 'ANALYSIS', '系统内置');
-INSERT INTO `sys_role` VALUES (4, NULL, NULL, '任课老师', 1, 'TEACHER', NULL, NULL, NULL, NULL, 1, 'ANALYSIS', '系统内置');
-INSERT INTO `sys_role` VALUES (5, NULL, NULL, '评卷员', 1, 'MARKER', NULL, NULL, NULL, NULL, 1, 'CLOUD_MARK', '系统内置');
-INSERT INTO `sys_role` VALUES (6, NULL, NULL, '科组长', 1, 'MARKER_LEADER', NULL, NULL, NULL, NULL, 1, 'CLOUD_MARK', '系统内置');
-
-INSERT INTO `sys_role_privilege` VALUES (1, 1, 1, 1);
-INSERT INTO `sys_role_privilege` VALUES (2, 1, 2, 1);
-INSERT INTO `sys_role_privilege` VALUES (3, 1, 4, 1);
-INSERT INTO `sys_role_privilege` VALUES (4, 1, 5, 1);
-INSERT INTO `sys_role_privilege` VALUES (5, 1, 6, 1);
-INSERT INTO `sys_role_privilege` VALUES (6, 1, 92, 1);
-INSERT INTO `sys_role_privilege` VALUES (7, 1, 93, 1);
-INSERT INTO `sys_role_privilege` VALUES (8, 1, 94, 1);
-INSERT INTO `sys_role_privilege` VALUES (9, 1, 95, 1);
-INSERT INTO `sys_role_privilege` VALUES (10, 1, 224, 1);
-INSERT INTO `sys_role_privilege` VALUES (11, 1, 225, 1);
-INSERT INTO `sys_role_privilege` VALUES (12, 1, 226, 1);
-INSERT INTO `sys_role_privilege` VALUES (13, 1, 227, 1);
-INSERT INTO `sys_role_privilege` VALUES (14, 1, 228, 1);
-INSERT INTO `sys_role_privilege` VALUES (15, 1, 234, 1);
-INSERT INTO `sys_role_privilege` VALUES (16, 1, 77, 1);
-INSERT INTO `sys_role_privilege` VALUES (17, 1, 78, 1);
-INSERT INTO `sys_role_privilege` VALUES (18, 1, 79, 1);
-INSERT INTO `sys_role_privilege` VALUES (19, 1, 80, 1);
-INSERT INTO `sys_role_privilege` VALUES (20, 1, 81, 1);
-INSERT INTO `sys_role_privilege` VALUES (21, 1, 82, 1);
-INSERT INTO `sys_role_privilege` VALUES (22, 1, 87, 1);
-INSERT INTO `sys_role_privilege` VALUES (23, 1, 184, 1);
-INSERT INTO `sys_role_privilege` VALUES (24, 1, 217, 1);
-INSERT INTO `sys_role_privilege` VALUES (25, 1, 218, 1);
-INSERT INTO `sys_role_privilege` VALUES (26, 1, 219, 1);
-INSERT INTO `sys_role_privilege` VALUES (27, 1, 220, 1);
-INSERT INTO `sys_role_privilege` VALUES (28, 1, 221, 1);
-INSERT INTO `sys_role_privilege` VALUES (29, 1, 222, 1);
-INSERT INTO `sys_role_privilege` VALUES (30, 1, 223, 1);
-INSERT INTO `sys_role_privilege` VALUES (31, 1, 243, 1);
-INSERT INTO `sys_role_privilege` VALUES (32, 1, 83, 1);
-INSERT INTO `sys_role_privilege` VALUES (33, 1, 84, 1);
-INSERT INTO `sys_role_privilege` VALUES (34, 1, 85, 1);
-INSERT INTO `sys_role_privilege` VALUES (35, 1, 86, 1);
-INSERT INTO `sys_role_privilege` VALUES (36, 1, 91, 1);
-INSERT INTO `sys_role_privilege` VALUES (37, 1, 180, 1);
-INSERT INTO `sys_role_privilege` VALUES (38, 1, 229, 1);
-INSERT INTO `sys_role_privilege` VALUES (39, 1, 230, 1);
-INSERT INTO `sys_role_privilege` VALUES (40, 1, 231, 1);
-INSERT INTO `sys_role_privilege` VALUES (41, 1, 232, 1);
-INSERT INTO `sys_role_privilege` VALUES (42, 1, 233, 1);
-INSERT INTO `sys_role_privilege` VALUES (43, 1, 235, 1);
-INSERT INTO `sys_role_privilege` VALUES (44, 1, 390, 1);
-INSERT INTO `sys_role_privilege` VALUES (45, 1, 402, 1);
-INSERT INTO `sys_role_privilege` VALUES (46, 1, 407, 1);
-INSERT INTO `sys_role_privilege` VALUES (47, 1, 408, 1);
-INSERT INTO `sys_role_privilege` VALUES (48, 1, 409, 1);
-INSERT INTO `sys_role_privilege` VALUES (49, 1, 410, 1);
-INSERT INTO `sys_role_privilege` VALUES (50, 1, 411, 1);
-INSERT INTO `sys_role_privilege` VALUES (53, 1, 527, 1);
-INSERT INTO `sys_role_privilege` VALUES (54, 1, 528, 1);
-INSERT INTO `sys_role_privilege` VALUES (55, 1, 529, 1);
-INSERT INTO `sys_role_privilege` VALUES (56, 1, 638, 1);
-INSERT INTO `sys_role_privilege` VALUES (57, 1, 643, 1);
-INSERT INTO `sys_role_privilege` VALUES (58, 1, 675, 1);
-INSERT INTO `sys_role_privilege` VALUES (59, 1, 676, 1);
-INSERT INTO `sys_role_privilege` VALUES (60, 1, 677, 1);
-INSERT INTO `sys_role_privilege` VALUES (61, 1, 678, 1);
-INSERT INTO `sys_role_privilege` VALUES (62, 1, 679, 1);
-INSERT INTO `sys_role_privilege` VALUES (63, 2, 680, 1);
-INSERT INTO `sys_role_privilege` VALUES (64, 2, 739, 1);
-INSERT INTO `sys_role_privilege` VALUES (65, 3, 680, 1);
-INSERT INTO `sys_role_privilege` VALUES (66, 3, 739, 1);
-INSERT INTO `sys_role_privilege` VALUES (67, 4, 680, 1);
-INSERT INTO `sys_role_privilege` VALUES (68, 4, 739, 1);
-INSERT INTO `sys_role_privilege` VALUES (69, 5, 483, 1);
-INSERT INTO `sys_role_privilege` VALUES (70, 5, 486, 1);
-INSERT INTO `sys_role_privilege` VALUES (71, 5, 491, 1);
-INSERT INTO `sys_role_privilege` VALUES (72, 6, 483, 1);
-INSERT INTO `sys_role_privilege` VALUES (73, 6, 486, 1);
-INSERT INTO `sys_role_privilege` VALUES (74, 6, 491, 1);
-INSERT INTO `sys_role_privilege` VALUES (75, 5, 492, 1);
-INSERT INTO `sys_role_privilege` VALUES (76, 5, 493, 1);
-INSERT INTO `sys_role_privilege` VALUES (77, 5, 541, 1);
-INSERT INTO `sys_role_privilege` VALUES (78, 6, 492, 1);
-INSERT INTO `sys_role_privilege` VALUES (79, 6, 493, 1);
-INSERT INTO `sys_role_privilege` VALUES (80, 6, 541, 1);

+ 0 - 20
paper-library-business/src/main/resources/db/3、init-function.sql

@@ -1,20 +0,0 @@
-SET NAMES UTF8;
-
--- ----------------------------
--- Function structure for getRootChildId
--- ----------------------------
-DROP FUNCTION IF EXISTS `getRootChildId`;
-CREATE FUNCTION `getRootChildId`(rootId bigint) RETURNS varchar(1000) CHARSET utf8
-    DETERMINISTIC
-BEGIN
-    DECLARE ptemp VARCHAR(1000);
-    DECLARE ctemp VARCHAR(1000);
-    SET ptemp = '#';
-    SET ctemp = cast(rootId as CHAR);
-    WHILE ctemp IS NOT NULL DO
-      SET ptemp = concat(ptemp, ',', ctemp);
-SELECT group_concat(id) INTO ctemp FROM sys_org
-WHERE FIND_IN_SET(parent_id, ctemp) > 0;
-END WHILE;
-RETURN ptemp;
-END

+ 8 - 6
paper-library-business/src/main/resources/mapper/PaperArchivesMapper.xml

@@ -105,9 +105,10 @@
             so.name belongOrgName,
             bs.major_name majorName,
             bs.clazz_name clazzName,
+            pst.course_code courseCode,
             pst.course_name courseName,
-            pst.teacher_name teacherName,
-            pst.teach_clazz_name teachClazzName,
+            pstd.teacher_name teacherName,
+            pstd.teach_clazz_name teachClazzName,
             pst.create_time createTime
         FROM
             paper_archives pa
@@ -137,10 +138,10 @@
                 and pst.course_name = #{courseName}
             </if>
             <if test="teacherName != null and teacherName != ''">
-                and pst.teacher_name like concat('%',#{teacherName},'%')
+                and pstd.teacher_name like concat('%',#{teacherName},'%')
             </if>
             <if test="teachClazzName != null and teachClazzName != ''">
-                and pst.teach_clazz_name = #{teachClazzName}
+                and pstd.teach_clazz_name = #{teachClazzName}
             </if>
             <if test="isBind != null">
                 and pstd.is_bind = #{isBind}
@@ -170,9 +171,10 @@
             so.name belongOrgName,
             bs.major_name majorName,
             bs.clazz_name clazzName,
+            pst.course_code courseCode,
             pst.course_name courseName,
-            pst.teacher_name teacherName,
-            pst.teach_clazz_name teachClazzName,
+            pstd.teacher_name teacherName,
+            pstd.teach_clazz_name teachClazzName,
             pst.create_time createTime
         FROM
             paper_archives pa

+ 6 - 4
paper-library-business/src/main/resources/mapper/PaperLibraryMapper.xml

@@ -46,6 +46,7 @@
             bs.student_name studentName,
             bs.student_code studentCode,
             pst.scan_task_name paperScanTaskName,
+            pst.course_code courseCode,
             pst.course_name courseName,
             pst.create_time createTime,
             pl.paper_scan_task_detail_id paperScanTaskDetailId,
@@ -57,7 +58,7 @@
                  paper_library
              WHERE
                  paper_scan_task_detail_id IS NOT NULL
-            GROUP BY paper_scan_task_detail_id) pl
+            GROUP BY school_id, paper_scan_task_detail_id) pl
                 JOIN
             paper_scan_task_detail pstd ON pl.school_id = pstd.school_id
                 AND pl.paper_scan_task_detail_id = pstd.id
@@ -115,7 +116,7 @@
                 and pl.paper_scan_task_id = #{paperScanTaskId}
             </if>
             <if test="isMatch == true">
-                and pl.user_id = #{userId}
+                and (pl.user_id is null or pl.user_id = #{userId})
             </if>
             <if test="isMatch == false">
                 and su.org_id in
@@ -158,9 +159,10 @@
             pa.archives_name paperArchivesName,
             b.name semesterName,
             pst.scan_task_name paperScanTaskName,
+            pst.course_code courseCode,
             pst.course_name courseName,
-            pst.teacher_name teacherName,
-            pst.teach_clazz_name teachClazzName,
+            pstd.teacher_name teacherName,
+            pstd.teach_clazz_name teachClazzName,
             bs.student_name studentName,
             bs.student_code studentCode,
             bs.major_name majorName,

+ 24 - 18
paper-library-business/src/main/resources/mapper/PaperScanTaskMapper.xml

@@ -7,9 +7,10 @@
             pst.id AS paperScanTaskId,
             pst.school_id AS schoolId,
             pst.scan_task_name AS scanTaskName,
+            pst.course_code AS courseCode,
             pst.course_name AS courseName,
-            pst.teacher_name AS teacherName,
-            pst.teach_clazz_name AS teachClazzName,
+--             pst.teacher_name AS teacherName,
+--             pst.teach_clazz_name AS teachClazzName,
             pst.scan_user_id AS scanUserId,
             pst.student_count AS studentCount,
             pa.id AS paperArchivesId,
@@ -39,9 +40,9 @@
             <if test="courseName != null and courseName != ''">
                 AND pst.course_name like CONCAT('%',#{courseName},'%')
             </if>
-            <if test="teacherName != null and teacherName != ''">
-                AND pst.teacher_name like CONCAT('%',#{teacherName},'%')
-            </if>
+<!--            <if test="teacherName != null and teacherName != ''">-->
+<!--                AND pst.teacher_name like CONCAT('%',#{teacherName},'%')-->
+<!--            </if>-->
             <if test="smallerProgress != null">
                 AND IFNULL(ROUND((pl.bound / pl.scan_count) * 100, 2),0) >= #{smallerProgress}
             </if>
@@ -56,9 +57,10 @@
         SELECT
             bs.student_name AS studentName,
             bs.student_code AS studentCode,
+            pst.course_code AS courseCode,
             pst.course_name AS courseName,
-            pst.teacher_name AS teacherName,
-            pst.teach_clazz_name AS teachClazzName,
+            pstd.teacher_name AS teacherName,
+            pstd.teach_clazz_name AS teachClazzName,
             pl.scan_count AS scanCount
         FROM
             paper_scan_task pst
@@ -111,7 +113,7 @@
     </select>
     <select id="queryCourse" resultType="com.qmth.paper.library.business.bean.result.SelectResult">
         SELECT
-            distinct pst.course_name id, pst.course_name name
+            distinct pst.course_code code, pst.course_name name
         FROM
             paper_scan_task pst
                 LEFT JOIN
@@ -129,17 +131,20 @@
     </select>
     <select id="queryDataTeachClazz" resultType="com.qmth.paper.library.business.bean.result.SelectResult">
         SELECT
-            distinct pst.teach_clazz_name id, pst.teach_clazz_name name
+            distinct pstd.teach_clazz_name code, pstd.teach_clazz_name name
         FROM
-            paper_scan_task pst
+            paper_scan_task_detail pstd
         <where>
             pst.school_id = #{schoolId}
-            <if test="paperArchivesId != null">
-                and pst.paper_archives_id = #{paperArchivesId}
-            </if>
-            <if test="courseName != null and courseName != ''">
-                and pst.course_name = #{courseName}
-            </if>
+            and exsits (
+                select 1 from paper_scan_task pst where pstd.paper_scan_task_id = pst.id
+                <if test="paperArchivesId != null">
+                    and pst.paper_archives_id = #{paperArchivesId}
+                </if>
+                <if test="courseName != null and courseName != ''">
+                    and pst.course_name = #{courseName}
+                </if>
+            )
         </where>
     </select>
     <select id="getByPaperScanTaskId"
@@ -147,9 +152,10 @@
         SELECT
             pst.id paperScanTaskId,
             pst.scan_task_name paperScanTaskName,
+            pst.course_code courseCode,
             pst.course_name courseName,
-            pst.teacher_name teacherName,
-            pst.teach_clazz_name teachClazzName,
+            --pst.teacher_name teacherName,
+            --pst.teach_clazz_name teachClazzName,
             pa.archives_name paperArchivesName,
             bs.name semesterName
         FROM

+ 4 - 0
paper-library-common/pom.xml

@@ -176,5 +176,9 @@
             <artifactId>aspectjweaver</artifactId>
             <version>1.9.7</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 11 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/bean/result/LoginResult.java

@@ -65,6 +65,8 @@ public class LoginResult implements Serializable {
 
     @ApiModelProperty(name = "返回url")
     String returnUrl;
+    @ApiModelProperty(name = "是否开启条码识别")
+    Boolean openBarCode;
 
     public String getReturnUrl() {
         return returnUrl;
@@ -197,6 +199,15 @@ public class LoginResult implements Serializable {
         this.pwdCount = pwdCount;
     }
 
+
+    public Boolean getOpenBarCode() {
+        return openBarCode;
+    }
+
+    public void setOpenBarCode(Boolean openBarCode) {
+        this.openBarCode = openBarCode;
+    }
+
     public UserLoginCheckResult getUserLoginCheckResult() {
         return userLoginCheckResult;
     }

+ 1 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SysSettingConstant.java

@@ -15,6 +15,7 @@ public class SysSettingConstant {
     public static final String SYS_SMS_NOTIFICATION_ENABLE = "SMSNotificationEnable";
     public static final String SYS_TXT_CHARSET = "txtCharset";
     public static final String OCR_OPEN = "openOcr";
+    public static final String BAR_CODE_OPEN = "openBarCode";
     public static final String OCR_APP_ID = "ocrAppId";
     public static final String OCR_APP_KEY = "ocrAppKey";
     public static final String OCR_APP_SECRET = "ocrAppSecret";

+ 2 - 2
paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SystemConstant.java

@@ -97,7 +97,7 @@ public class SystemConstant {
      * 缓存配置
      */
     public static final String CACHE_NAME = "paperLibraryCache";
-    public static final String USER_SESSION = "user:session:cache";
+    public static final String ROLE_CACHE_NAME = "roleCache";
 
     /**
      * 鉴权
@@ -180,7 +180,7 @@ public class SystemConstant {
     }
 
     public static boolean strNotNull(String str) {
-        return str != null && str.length() > 0 && !str.equals("null");
+        return str != null && !"".equals(str.trim()) && str.length() > 0 && !str.equals("null");
     }
 
     /**

+ 10 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/entity/BasicStudent.java

@@ -58,6 +58,16 @@ public class BasicStudent extends BaseEntity implements Serializable {
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String clazzName;
 
+    public BasicStudent() {
+    }
+
+    public BasicStudent(Long schoolId, String studentName, String studentCode, Boolean enable) {
+        this.schoolId = schoolId;
+        this.studentName = studentName;
+        this.studentCode = studentCode;
+        this.enable = enable;
+    }
+
     public Long getSchoolId() {
         return schoolId;
     }

+ 21 - 5
paper-library-common/src/main/java/com/qmth/paper/library/common/entity/SysSetting.java

@@ -1,6 +1,7 @@
 package com.qmth.paper.library.common.entity;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@@ -10,6 +11,7 @@ import com.qmth.paper.library.common.bean.dto.syssetting.SettingObject;
 import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
 import com.qmth.paper.library.common.contant.SysSettingConstant;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -59,18 +61,19 @@ public class SysSetting extends BaseEntity implements Serializable {
     public static SysSetting init(Long schoolId) {
         List<SettingObject> settingObjects = new ArrayList<>();
         List<SimpleObject> simpleObjects1 = new ArrayList<>();
-        simpleObjects1.add(new SimpleObject(SysSettingConstant.SYS_VERIFICATION_CODE_LOGIN_ENABLE, "是否开启验证码登录", "false", 2, true));
-        simpleObjects1.add(new SimpleObject(SysSettingConstant.SYS_SMS_NOTIFICATION_ENABLE, "是否开启短信提醒功能", "false", 3, true));
+        simpleObjects1.add(new SimpleObject(SysSettingConstant.SYS_VERIFICATION_CODE_LOGIN_ENABLE, "验证码登录", "false", 2, true));
+        simpleObjects1.add(new SimpleObject(SysSettingConstant.SYS_SMS_NOTIFICATION_ENABLE, "短信提醒功能", "false", 3, true));
 
         settingObjects.add(new SettingObject("系统设置", 1, simpleObjects1));
 
         List<SimpleObject> simpleObjects2 = new ArrayList<>();
-        simpleObjects2.add(new SimpleObject(SysSettingConstant.OCR_OPEN, "是否启用OCR", "false", 1, true));
+        simpleObjects2.add(new SimpleObject(SysSettingConstant.OCR_OPEN, "OCR识别", "false", 1, true));
+        simpleObjects2.add(new SimpleObject(SysSettingConstant.BAR_CODE_OPEN, "条码识别", "false", 2, true));
 
-        settingObjects.add(new SettingObject("OCR设置", 2, simpleObjects2));
+        settingObjects.add(new SettingObject("识别设置", 2, simpleObjects2));
 
         List<SimpleObject> simpleObjects3 = new ArrayList<>();
-        simpleObjects3.add(new SimpleObject(SysSettingConstant.CHECK_OPEN_GLOBAL_MATCH, "是否开启全局匹配", "false", 1, true));
+        simpleObjects3.add(new SimpleObject(SysSettingConstant.CHECK_OPEN_GLOBAL_MATCH, "全局匹配", "false", 1, true));
 
         settingObjects.add(new SettingObject("图片检查设置", 3, simpleObjects3));
 
@@ -79,4 +82,17 @@ public class SysSetting extends BaseEntity implements Serializable {
         sysSetting.setParameterObject(JSON.toJSONString(settingObjects));
         return sysSetting;
     }
+
+    public static String parseParameterObject(SysSetting sysSetting, String key) {
+        if (sysSetting != null && StringUtils.isNotBlank(sysSetting.getParameterObject())) {
+            JSONObject object = JSON.parseObject(sysSetting.getParameterObject());
+            if (object.containsKey(key)) {
+                Object value = object.get(key);
+                if (value != null && "".equals(value)) {
+                    return String.valueOf(value);
+                }
+            }
+        }
+        return null;
+    }
 }

+ 42 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/enums/FlushCacheTypeEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.paper.library.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 机构类型enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/7/29
+ */
+public enum FlushCacheTypeEnum {
+
+    SYS_SETTING("学校参数"),
+
+    SYS_SETTING_GLOBAL("全局参数");
+
+    private String title;
+
+    private FlushCacheTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlushCacheTypeEnum e : FlushCacheTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 57 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/enums/RecognitionTypeEnum.java

@@ -0,0 +1,57 @@
+package com.qmth.paper.library.common.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 识别方式
+ */
+public enum RecognitionTypeEnum {
+
+    OCR("OCR识别"),
+
+    BAR_CODE("条码识别");
+
+    private String desc;
+
+    private RecognitionTypeEnum(String desc) {
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (RecognitionTypeEnum e : RecognitionTypeEnum.values()) {
+            if (Objects.equals(title, e.getDesc())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @return
+     */
+    public static List<EnumResult> listTypes() {
+        List<EnumResult> list = new ArrayList<EnumResult>();
+        for (RecognitionTypeEnum value : RecognitionTypeEnum.values()) {
+            EnumResult result = new EnumResult();
+            result.setName(value.name());
+            result.setOrdinal(value.ordinal());
+            result.setCode(null);
+            result.setDesc(value.getDesc());
+            list.add(result);
+        }
+        return list;
+    }
+
+}

+ 7 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/service/BasicStudentService.java

@@ -93,4 +93,11 @@ public interface BasicStudentService extends IService<BasicStudent> {
      * @return 结果
      */
     Map<String, Object> executeBasicStudentImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException;
+
+    /**
+     * 根据学号查询考生
+     * @param studentCode 学号
+     * @return
+     */
+    BasicStudent getBySchoolIdAndStudentCode(String studentCode);
 }

+ 15 - 1
paper-library-common/src/main/java/com/qmth/paper/library/common/service/CommonCacheService.java

@@ -1,7 +1,11 @@
 package com.qmth.paper.library.common.service;
 
+import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
+import com.qmth.paper.library.common.entity.SysRole;
+import com.qmth.paper.library.common.entity.SysRolePrivilege;
 import com.qmth.paper.library.common.entity.TBSession;
 
+import java.util.List;
 import java.util.Map;
 
 public interface CommonCacheService {
@@ -35,7 +39,7 @@ public interface CommonCacheService {
      * @param schoolId
      * @return
      */
-    Map<String, String> getSysSetting(Long schoolId);
+    Map<String, SimpleObject> getSysSetting(Long schoolId);
 
     /**
      * 删除系统参数数据
@@ -58,4 +62,14 @@ public interface CommonCacheService {
      * @return
      */
     String removeSysSettingGlobal();
+
+    /**
+     * 修改角色权限缓存
+     *
+     * @param roleId
+     * @return
+     */
+    public List<SysRolePrivilege> updateRolePrivilegeCache(Long roleId);
+
+    SysRole updateRoleCache(Long roleId);
 }

+ 2 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/service/LibraryCommonService.java

@@ -116,4 +116,6 @@ public interface LibraryCommonService {
     public LoginResult login(String password, SysUser sysUser, AppSourceEnum appSource) throws NoSuchAlgorithmException;
 
     public AuthOrgInfoDto authInfoCache(String code);
+
+    void flushCache(String type);
 }

+ 4 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/service/SysSettingService.java

@@ -2,9 +2,11 @@ package com.qmth.paper.library.common.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.paper.library.common.bean.dto.syssetting.SettingObject;
+import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
 import com.qmth.paper.library.common.entity.SysSetting;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -18,4 +20,6 @@ public interface SysSettingService extends IService<SysSetting> {
     boolean saveData(List<SettingObject> settingObjects);
 
     SysSetting getBySchoolId(Long schoolId);
+
+    List<SimpleObject> getRecognitionMode();
 }

+ 0 - 1
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/BasicAttachmentServiceImpl.java

@@ -55,7 +55,6 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
             String type = String.valueOf(jsonObject.get(SystemConstant.TYPE));
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.OSS)) {//删除阿里云附件
-                // TODO: 2021/8/18 fss删除逻辑
 //                ossUtil.ossDelete(jsonObject.get(SystemConstant.PATH).toString());
 //                if (Objects.nonNull(jsonObject.get(SystemConstant.PDF_PATH))) {
 //                    ossUtil.ossDelete(jsonObject.get(SystemConstant.PDF_PATH).toString());

+ 11 - 2
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/BasicStudentServiceImpl.java

@@ -83,9 +83,9 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
         }
         List<BasicStudent> basicStudentList = this.basicStudentMapper.listBindByStudentId(idList);
-        if(!basicStudentList.isEmpty()){
+        if (!basicStudentList.isEmpty()) {
             List<String> studentCodes = basicStudentList.stream().map(BasicStudent::getStudentCode).collect(Collectors.toList());
-            throw ExceptionResultEnum.ERROR.exception("有学生已绑定图片,学号:"+ String.join(",", studentCodes));
+            throw ExceptionResultEnum.ERROR.exception("有学生已绑定图片,学号:" + String.join(",", studentCodes));
         }
         // 删除基础学生
         return this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId, idList));
@@ -204,6 +204,15 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
         return map;
     }
 
+    @Override
+    public BasicStudent getBySchoolIdAndStudentCode(String studentCode) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        QueryWrapper<BasicStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicStudent::getSchoolId, schoolId)
+                .eq(BasicStudent::getStudentCode, studentCode);
+        return this.getOne(queryWrapper);
+    }
+
     /**
      * 学生保存助手方法(应对学生保存和导入批量保存)
      *

+ 35 - 10
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/CommonCacheServiceImpl.java

@@ -4,13 +4,8 @@ import com.alibaba.fastjson.JSON;
 import com.qmth.paper.library.common.bean.dto.syssetting.SettingObject;
 import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
 import com.qmth.paper.library.common.contant.SystemConstant;
-import com.qmth.paper.library.common.entity.SysSetting;
-import com.qmth.paper.library.common.entity.SysSettingGlobal;
-import com.qmth.paper.library.common.entity.TBSession;
-import com.qmth.paper.library.common.service.CommonCacheService;
-import com.qmth.paper.library.common.service.SysSettingGlobalService;
-import com.qmth.paper.library.common.service.SysSettingService;
-import com.qmth.paper.library.common.service.TBSessionService;
+import com.qmth.paper.library.common.entity.*;
+import com.qmth.paper.library.common.service.*;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.Cacheable;
@@ -30,9 +25,15 @@ public class CommonCacheServiceImpl implements CommonCacheService {
     @Resource
     SysSettingService sysSettingService;
 
+    @Resource
+    SysRoleService sysRoleService;
+
     @Resource
     SysSettingGlobalService sysSettingGlobalService;
 
+    @Resource
+    LibraryCommonService libraryCommonService;
+
     @Override
     @CachePut(value = SystemConstant.CACHE_NAME, key = "'tbSession' + #sessionId")
     public TBSession saveTbSession(String sessionId, TBSession tbSession) {
@@ -53,14 +54,14 @@ public class CommonCacheServiceImpl implements CommonCacheService {
 
     @Override
     @Cacheable(value = SystemConstant.CACHE_NAME, key = "'sysSetting' + #schoolId")
-    public Map<String, String> getSysSetting(Long schoolId) {
+    public Map<String, SimpleObject> getSysSetting(Long schoolId) {
         SysSetting sysSetting = sysSettingService.getBySchoolId(schoolId);
         String parameterObject = sysSetting.getParameterObject();
         List<SettingObject> settingObjects = JSON.parseArray(parameterObject, SettingObject.class);
-        Map<String, String> map = new HashMap<>();
+        Map<String, SimpleObject> map = new HashMap<>();
         for (SettingObject settingObject : settingObjects) {
             for (SimpleObject simpleObject : settingObject.getData()) {
-                map.put(simpleObject.getCode(), simpleObject.getValue());
+                map.put(simpleObject.getCode(), simpleObject);
             }
         }
         return map;
@@ -92,4 +93,28 @@ public class CommonCacheServiceImpl implements CommonCacheService {
     public String removeSysSettingGlobal() {
         return null;
     }
+
+    /**
+     * 修改角色权限缓存
+     *
+     * @param roleId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.ROLE_CACHE_NAME, key = "'rolePrivilege' + #roleId")
+    public List<SysRolePrivilege> updateRolePrivilegeCache(Long roleId) {
+        return libraryCommonService.getRolePrivilege(roleId);
+    }
+
+    /**
+     * 修改角色缓存
+     *
+     * @param roleId
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.ROLE_CACHE_NAME, key = "'role' + #roleId")
+    public SysRole updateRoleCache(Long roleId) {
+        return sysRoleService.getById(roleId);
+    }
 }

+ 19 - 4
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/LibraryCommonServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.paper.library.common.bean.dto.AuthOrgInfoDto;
 import com.qmth.paper.library.common.bean.dto.MenuDto;
 import com.qmth.paper.library.common.bean.dto.MenuPrivilegeDto;
 import com.qmth.paper.library.common.bean.dto.OrgDto;
+import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
 import com.qmth.paper.library.common.bean.result.*;
 import com.qmth.paper.library.common.contant.SysSettingConstant;
 import com.qmth.paper.library.common.contant.SystemConstant;
@@ -304,7 +305,6 @@ public class LibraryCommonServiceImpl implements LibraryCommonService {
                 Collections.sort(roleNames);
                 String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()), p.name());
                 tbSessionService.removeById(sessionId);
-                // todo xf session
             }
         } else {
             TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
@@ -473,8 +473,6 @@ public class LibraryCommonServiceImpl implements LibraryCommonService {
         roleNames.addAll(roleNamesSet);
         Collections.sort(roleNames);
         String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
-        //TODO 测试用
-//        String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
         TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
                 platform.name(), platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token,
@@ -482,7 +480,6 @@ public class LibraryCommonServiceImpl implements LibraryCommonService {
         tbSessionService.saveOrUpdate(tbSession);
         commonCacheService.saveTbSession(sessionId, tbSession);
 
-//        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, roleSource);
         LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNamesSet, appSource, roleSource);
         loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
@@ -494,6 +491,10 @@ public class LibraryCommonServiceImpl implements LibraryCommonService {
             pwdCount = 1;
         }
         loginResult.setUserLoginCheckResult(new UserLoginCheckResult(sysUser.getId(), mobileNumber, pwdCount));
+
+        // 设置条码识别参数
+        Map<String, SimpleObject> stringStringMap = commonCacheService.getSysSetting(sysUser.getSchoolId());
+        loginResult.setOpenBarCode(!stringStringMap.containsKey(SysSettingConstant.BAR_CODE_OPEN) ? false : Boolean.parseBoolean(stringStringMap.get(SysSettingConstant.BAR_CODE_OPEN).getValue()));
         return loginResult;
     }
 
@@ -554,4 +555,18 @@ public class LibraryCommonServiceImpl implements LibraryCommonService {
         }
         return authOrgInfoDto;
     }
+
+    @Override
+    public void flushCache(String type) {
+        if (type.equals(FlushCacheTypeEnum.SYS_SETTING.name())) {
+            Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+            commonCacheService.removeSysSetting(schoolId);
+            commonCacheService.getSysSetting(schoolId);
+        } else if (type.equals(FlushCacheTypeEnum.SYS_SETTING_GLOBAL.name())) {
+            commonCacheService.removeSysSettingGlobal();
+            commonCacheService.getSysSettingGlobal();
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("请传入正确的缓存类型");
+        }
+    }
 }

+ 10 - 4
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysRoleServiceImpl.java

@@ -51,7 +51,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
     SysRoleService sysRoleService;
 
     @Resource
-    LibraryCommonService commonService;
+    CommonCacheService commonCacheService;
 
     @Resource
     SysPrivilegeService sysPrivilegeService;
@@ -122,10 +122,16 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 int count = (int) sysRolePrivilegeList.stream().filter(s -> relatedList.contains(s.getPrivilegeId())).count();
                 role.updateInfo(sysUser.getId());
                 sysRoleService.updateById(role);
+                commonCacheService.updateRoleCache(role.getId());
 
                 if (count != sysRolePrivilegeList.size() || count != finalRelatedSet.size()) {
                     sysRolePrivilegeService.removeByRoleId(role.getId());
                     sysRolePrivilegeService.saveBatch(role);//角色权限
+
+                    commonCacheService.updateRolePrivilegeCache(role.getId());
+                    //绑定该角色的用户都需要清除鉴权缓存
+                    List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
+                    libraryCommonService.removeUserInfoBatch(sysUserRoleList.stream().map(SysUserRole::getUserId).collect(Collectors.toList()), true);
                 }
             } else {
                 role.insertInfo(sysUser.getId());
@@ -196,7 +202,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                     sysRolePrivilegeService.saveBatch(role);//角色权限
                     //绑定该角色的用户都需要清除鉴权缓存
                     List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
-                    commonService.removeUserInfoBatch(sysUserRoleList.stream().map(s -> s.getUserId()).collect(Collectors.toList()), true);
+                    libraryCommonService.removeUserInfoBatch(sysUserRoleList.stream().map(s -> s.getUserId()).collect(Collectors.toList()), true);
                 }
             } else {
                 role.insertInfo(sysUser.getId());
@@ -232,7 +238,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         if (!role.getEnable()) {
             List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
             for (SysUserRole s : sysUserRoleList) {
-                commonService.removeUserInfo(s.getUserId(), true);
+                libraryCommonService.removeUserInfo(s.getUserId(), true);
             }
         }
         return true;
@@ -248,7 +254,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         if (!role.getEnable()) {
             List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
             for (SysUserRole s : sysUserRoleList) {
-                commonService.removeUserInfo(s.getUserId(), true);
+                libraryCommonService.removeUserInfo(s.getUserId(), true);
             }
         }
         return true;

+ 38 - 2
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysSettingServiceImpl.java

@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.paper.library.common.bean.dto.syssetting.SettingObject;
+import com.qmth.paper.library.common.bean.dto.syssetting.SimpleObject;
+import com.qmth.paper.library.common.contant.SysSettingConstant;
 import com.qmth.paper.library.common.contant.SystemConstant;
 import com.qmth.paper.library.common.entity.SysSetting;
 import com.qmth.paper.library.common.enums.ExceptionResultEnum;
@@ -11,10 +13,14 @@ import com.qmth.paper.library.common.mapper.SysSettingMapper;
 import com.qmth.paper.library.common.service.CommonCacheService;
 import com.qmth.paper.library.common.service.SysSettingService;
 import com.qmth.paper.library.common.util.ServletUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -59,19 +65,33 @@ public class SysSettingServiceImpl extends ServiceImpl<SysSettingMapper, SysSett
         queryWrapper.lambda().eq(SysSetting::getSchoolId, schoolId);
         SysSetting sysSetting = this.getOne(queryWrapper);
 
+        String parameterObject = JSON.toJSONString(settingObjects);
         // 新增
         if (sysSetting == null) {
             sysSetting = new SysSetting();
             sysSetting.setId(SystemConstant.getDbUuid());
-            sysSetting.setParameterObject(JSON.toJSONString(settingObjects));
+            sysSetting.setParameterObject(parameterObject);
             sysSetting.setSchoolId(schoolId);
             sysSetting.setCreateId(userId);
             sysSetting.setCreateTime(System.currentTimeMillis());
         } else {
-            sysSetting.setParameterObject(JSON.toJSONString(settingObjects));
+            sysSetting.setParameterObject(parameterObject);
             sysSetting.setUpdateId(userId);
             sysSetting.setUpdateTime(System.currentTimeMillis());
 
+
+            String openOrc = SysSetting.parseParameterObject(sysSetting, SysSettingConstant.OCR_OPEN);
+            if (openOrc != null && Boolean.parseBoolean(openOrc)) {
+                Map<String, String> sysSettingGlobal = commonCacheService.getSysSettingGlobal();
+                if (!sysSettingGlobal.containsKey(SysSettingConstant.OCR_APP_ID) || StringUtils.isBlank(sysSettingGlobal.get(SysSettingConstant.OCR_APP_ID))) {
+                    throw ExceptionResultEnum.ERROR.exception("未设置OCR AppId,无法开启OCR识别");
+                } else if (!sysSettingGlobal.containsKey(SysSettingConstant.OCR_APP_KEY) || StringUtils.isBlank(sysSettingGlobal.get(SysSettingConstant.OCR_APP_KEY))) {
+                    throw ExceptionResultEnum.ERROR.exception("未设置OCR AppKey,无法开启OCR识别");
+                } else if (!sysSettingGlobal.containsKey(SysSettingConstant.OCR_APP_SECRET) || StringUtils.isBlank(sysSettingGlobal.get(SysSettingConstant.OCR_APP_SECRET))) {
+                    throw ExceptionResultEnum.ERROR.exception("未设置OCR AppSecret,无法开启OCR识别");
+                }
+            }
+
             commonCacheService.removeSysSetting(schoolId);
         }
         return this.saveOrUpdate(sysSetting);
@@ -83,4 +103,20 @@ public class SysSettingServiceImpl extends ServiceImpl<SysSettingMapper, SysSett
         queryWrapper.lambda().eq(SysSetting::getSchoolId, schoolId);
         return this.getOne(queryWrapper);
     }
+
+    @Override
+    public List<SimpleObject> getRecognitionMode() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Map<String, SimpleObject> stringStringMap = commonCacheService.getSysSetting(schoolId);
+        List<SimpleObject> list = new ArrayList<>();
+        for (Map.Entry<String, SimpleObject> entry : stringStringMap.entrySet()) {
+            if(SysSettingConstant.OCR_OPEN.equals(entry.getKey()) || SysSettingConstant.BAR_CODE_OPEN.equals(entry.getKey())){
+                SimpleObject simpleObject = entry.getValue();
+                if(Boolean.parseBoolean(simpleObject.getValue())){
+                    list.add(entry.getValue());
+                }
+            }
+        }
+        return list;
+    }
 }

+ 69 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/util/BarCodeUtils.java

@@ -0,0 +1,69 @@
+package com.qmth.paper.library.common.util;
+
+import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
+import com.google.zxing.BinaryBitmap;
+import com.google.zxing.DecodeHintType;
+import com.google.zxing.MultiFormatReader;
+import com.google.zxing.NotFoundException;
+import com.google.zxing.common.HybridBinarizer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.Hashtable;
+
+/**
+ * 条形码识别工具
+ */
+public class BarCodeUtils {
+
+    private static final Logger logger = LoggerFactory.getLogger(BarCodeUtils.class);
+
+    /**
+     * zxing 解码条码
+     *
+     * @param file 文件名
+     * @return
+     */
+    public static String decode(File file) throws IOException {
+        BufferedImage image;
+        image = ImageIO.read(file);
+        if (image == null) {
+            return null;
+        }
+        return decode(image);
+    }
+
+    /**
+     * zxing 解码条码
+     *
+     * @param image
+     * @return
+     */
+    public static String decode(BufferedImage image) {
+        String resultStr = null;
+        try {
+            BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
+            BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
+            com.google.zxing.Result result;
+            Hashtable<DecodeHintType, Object> hints = new Hashtable<>();
+            hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
+            result = new MultiFormatReader().decode(bitmap, hints);
+            resultStr = result.getText();
+        } catch (NotFoundException e) {
+            logger.error("未正确识别条码内容");
+        }
+        return resultStr;
+    }
+
+    public static void main(String[] args) throws Exception {
+        File file = new File("/Users/xiaofei/Downloads/a34e586b6d3667d766a87285d64d3827.jpeg");
+        String decode = BarCodeUtils.decode(file);
+        System.out.println(decode);
+
+    }
+
+}

+ 19 - 5
paper-library-common/src/main/java/com/qmth/paper/library/common/util/ExcelUtil.java

@@ -132,6 +132,7 @@ public class ExcelUtil {
             List<LinkedMultiValueMap<Integer, Object>> finalOList = new ArrayList<>();
             List<LinkedMultiValueMap<Integer, String>> finalColumnNameList = new ArrayList<>();
             List<LinkedMultiValueMap<Integer, ExcelError>> finalExcelErrorList = new ArrayList<>();
+            List<String> headList = new ArrayList<>();
             for (int y = 0; y < sheets; y++) {
                 //获取第一个表单sheet
                 XSSFSheet sheet = xb.getSheetAt(y);
@@ -151,11 +152,23 @@ public class ExcelUtil {
                         int lastcell = row.getLastCellNum();
                         o = clazz.get(y).newInstance();
                         Field[] fields = o.getClass().getDeclaredFields();
+
+                        // 只校验第一个sheet的第一行表头格式
+                        if (y == 0 && i == 0) {
+                            for (Field field : fields) {
+                                ExcelNote excelNote = field.getAnnotation(ExcelNote.class);
+                                if(Objects.nonNull(excelNote)) {
+                                    headList.add(excelNote.value());
+                                }
+                            }
+                        }
+
                         ExcelImportTempleteVaild excelImportTempleteVaild = o.getClass().getDeclaredAnnotation(ExcelImportTempleteVaild.class);
-                        if (Objects.nonNull(excelImportTempleteVaild) && excelImportTempleteVaild.value() && (lastcell > fields.length || sheets != clazz.size())) {
-                            throw ExceptionResultEnum.ERROR.exception("导入文件和模版不一致");
+                        if (y == 0 && i == 0 && Objects.nonNull(excelImportTempleteVaild) && excelImportTempleteVaild.value() && (lastcell != fields.length || sheets != clazz.size())) {
+                            throw ExceptionResultEnum.ERROR.exception("导入文件和模版不一致,正确格式为【" + String.join(",", headList) + "】");
                         }
                         boolean extend = fields[fields.length - 1].getName().contains(SystemConstant.EXTEND_COLUMN);
+                        int emptyRowSum = 0;
                         for (int j = firstcell; j < lastcell; j++) {
                             //获取第j列
                             Cell cell = row.getCell(j);
@@ -164,9 +177,10 @@ public class ExcelUtil {
                             } else {
                                 if (Objects.nonNull(cell)) {
                                     Object obj = convert(cell);
-                                    if (Objects.nonNull(obj)){
-                                        obj = obj.toString().trim();
+                                    if (obj == null || StringUtils.isBlank(obj.toString().trim())) {
+                                        emptyRowSum++;
                                     }
+
                                     if (extend) {
                                         if (j < fields.length - 1) {
                                             fields[j].setAccessible(true);
@@ -203,7 +217,7 @@ public class ExcelUtil {
                                 }
                             }
                         }
-                        if (i > 0) {
+                        if (i > 0 && emptyRowSum - (lastcell - firstcell) != 0) {
                             oList.add(y, o);
                         }
                     }

+ 4 - 5
paper-library/src/main/java/com/qmth/paper/library/api/ClientController.java

@@ -88,7 +88,6 @@ public class ClientController {
         }
         // 是否有客户端权限
         clientService.checkPrivilege(sysUser.getId());
-
         return ResultUtil.ok(libraryCommonService.login(login.getPassword(), sysUser, AppSourceEnum.PAPER_LIBRARY_CLIENT));
     }
 
@@ -96,12 +95,11 @@ public class ClientController {
     @PostMapping("/task/page")
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result page(@ApiParam(value = "档案") @RequestParam(required = false) Long paperArchivesId,
-                       @ApiParam(value = "课程") @RequestParam(required = false) String courseName,
-                       @ApiParam(value = "班级") @RequestParam(required = false) String teachClazzName,
+                       @ApiParam(value = "课程") @RequestParam(required = false) String courseCode,
                        @ApiParam(value = "是否我认领的任务") @RequestParam(required = false) Boolean isMine,
                        @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(clientService.pageScanTask(paperArchivesId, courseName, teachClazzName, isMine, pageNumber, pageSize));
+        return ResultUtil.ok(clientService.pageScanTask(paperArchivesId, courseCode, isMine, pageNumber, pageSize));
     }
 
     @ApiOperation(value = "(开始扫描)绑定扫描员")
@@ -116,11 +114,12 @@ public class ClientController {
     @PostMapping("/picture/upload")
     @ApiResponses({@ApiResponse(code = 200, message = "保存图片成功", response = Result.class)})
     public Result pictureUpload(@ApiParam(value = "扫描任务ID", required = true) @RequestParam Long paperScanTaskId,
+                                @ApiParam(value = "学号") @RequestParam(required = false) String studentCode,
                                 @ApiParam(value = "正面图片", required = true) @RequestParam MultipartFile frontFile,
                                 @ApiParam(value = "正面图片md5", required = true) @RequestParam String frontMd5,
                                 @ApiParam(value = "背面图片", required = true) @RequestParam MultipartFile versoFile,
                                 @ApiParam(value = "背面图片md5", required = true) @RequestParam String versoMd5) {
-        return ResultUtil.ok(clientService.pictureUpload(paperScanTaskId, frontFile, frontMd5, versoFile, versoMd5));
+        return ResultUtil.ok(clientService.pictureUpload(paperScanTaskId, studentCode, frontFile, frontMd5, versoFile, versoMd5));
     }
 
     @ApiOperation(value = "任务结束/开启")

+ 7 - 5
paper-library/src/main/java/com/qmth/paper/library/api/PaperLibraryController.java

@@ -6,6 +6,7 @@ import com.qmth.paper.library.business.bean.result.EditResult;
 import com.qmth.paper.library.business.service.PaperLibraryService;
 import com.qmth.paper.library.common.contant.ApiPrefixConstant;
 import com.qmth.paper.library.common.contant.SystemConstant;
+import com.qmth.paper.library.common.enums.RecognitionTypeEnum;
 import com.qmth.paper.library.common.util.Result;
 import com.qmth.paper.library.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -136,16 +137,17 @@ public class PaperLibraryController {
         return ResultUtil.ok(paperLibraryService.listByStudentCode(studentCode, pageNumber, pageSize));
     }
 
-    @ApiOperation(value = "OCR识别")
-    @PostMapping("/ocr")
+    @ApiOperation(value = "识别")
+    @PostMapping("/recognition")
     @ApiResponses({@ApiResponse(code = 200, message = "识别成功", response = Result.class)})
-    public Result ocr(@ApiParam(value = "图片id") @RequestParam Long paperLibraryId,
+    public Result recognition(@ApiParam(value = "图片id") @RequestParam Long paperLibraryId,
                       @ApiParam(value = "图片正反面") @RequestParam Integer index,
                       @ApiParam(value = "x") @RequestParam Integer x,
                       @ApiParam(value = "y") @RequestParam Integer y,
                       @ApiParam(value = "width") @RequestParam Integer width,
                       @ApiParam(value = "height") @RequestParam Integer height,
-                      @ApiParam(value = "旋转角度") @RequestParam(defaultValue = "0") Integer rotate) {
-        return ResultUtil.ok(paperLibraryService.ocr(paperLibraryId, index, x, y, width, height, rotate), null);
+                      @ApiParam(value = "旋转角度") @RequestParam(defaultValue = "0") Integer rotate,
+                      @ApiParam(value = "识别方式") @RequestParam RecognitionTypeEnum type) {
+        return ResultUtil.ok(paperLibraryService.recognition(paperLibraryId, index, x, y, width, height, rotate, type), null);
     }
 }

+ 16 - 7
paper-library/src/main/java/com/qmth/paper/library/api/PaperScanTaskController.java

@@ -87,7 +87,7 @@ public class PaperScanTaskController {
     @RequestMapping(value = "/scan_task_import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     public Result paperScanTaskImportAsync(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
-                                           @ApiParam(value = "档案id", required = true) @RequestParam String paperArchivesId) throws Exception {
+                                           @ApiParam(value = "档案ID", required = true) @RequestParam String paperArchivesId) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = paperLibraryCommonService.saveTask(file, TaskTypeEnum.PAPER_SCAN_TASK_IMPORT);
         map.put(SystemConstant.SYS_USER, sysUser);
@@ -109,7 +109,7 @@ public class PaperScanTaskController {
     @ApiOperation(value = "扫描任务管理-任务详情查询")
     @RequestMapping(value = "/task_detail_page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findPaperScanTaskDetailPage(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId,
+    public Result findPaperScanTaskDetailPage(@ApiParam(value = "扫描任务ID", required = true) @RequestParam String paperScanTaskId,
                                               @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                               @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -119,7 +119,7 @@ public class PaperScanTaskController {
     @ApiOperation(value = "扫描任务管理-清除数据")
     @RequestMapping(value = "/clear_scan_data", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result clearScanData(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId) {
+    public Result clearScanData(@ApiParam(value = "扫描任务ID", required = true) @RequestParam String paperScanTaskId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         paperScanTaskService.clearScanData(SystemConstant.convertIdToLong(paperScanTaskId), sysUser);
         return ResultUtil.ok();
@@ -128,7 +128,7 @@ public class PaperScanTaskController {
     @ApiOperation(value = "扫描任务管理-解绑扫描员")
     @RequestMapping(value = "/unbind_scanner", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "解绑成功", response = EditResult.class)})
-    public Result unbindScanner(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId) {
+    public Result unbindScanner(@ApiParam(value = "扫描任务ID", required = true) @RequestParam String paperScanTaskId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         paperScanTaskService.unbindScanner(SystemConstant.convertIdToLong(paperScanTaskId), sysUser);
         return ResultUtil.ok();
@@ -137,7 +137,7 @@ public class PaperScanTaskController {
     @ApiOperation(value = "扫描任务管理-绑定进度详情")
     @RequestMapping(value = "/bind_progress_detail", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result bindProgressDetail(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId) {
+    public Result bindProgressDetail(@ApiParam(value = "扫描任务ID", required = true) @RequestParam String paperScanTaskId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(paperScanTaskService.findBindDetailByScanTaskId(SystemConstant.convertIdToLong(paperScanTaskId), sysUser));
     }
@@ -145,11 +145,20 @@ public class PaperScanTaskController {
     @ApiOperation(value = "扫描任务管理-释放正在绑定的任务")
     @RequestMapping(value = "/release_binding_task", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result releaseBindingTask(@ApiParam(value = "扫描任务id", required = true) @RequestParam String paperScanTaskId,
-                                     @ApiParam(value = "数据检察员id", required = true) @RequestParam String bindUserId) {
+    public Result releaseBindingTask(@ApiParam(value = "扫描任务ID", required = true) @RequestParam String paperScanTaskId,
+                                     @ApiParam(value = "数据检察员ID", required = true) @RequestParam String bindUserId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         paperScanTaskService.releaseBindingTask(SystemConstant.convertIdToLong(paperScanTaskId), SystemConstant.convertIdToLong(bindUserId), sysUser);
         return ResultUtil.ok();
     }
 
+    @ApiOperation(value = "扫描任务管理-批量导入考生")
+    @RequestMapping(value = "/import_student", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    public Result importStudent(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
+                                @ApiParam(value = "扫描任务ID", required = true) @RequestParam Long paperScanTaskId) throws Exception {
+        paperScanTaskService.importStudent(paperScanTaskId, file);
+        return ResultUtil.ok(true);
+    }
+
 }

+ 6 - 1
paper-library/src/main/java/com/qmth/paper/library/api/SysController.java

@@ -407,9 +407,14 @@ public class SysController {
 
     @ApiOperation(value = "获取服务器时间")
     @RequestMapping(value = "/get_system_time", method = RequestMethod.POST)
-    @Aac(auth = BOOL.FALSE)
     public Result getSystemTime() {
         return ResultUtil.ok(System.currentTimeMillis());
     }
 
+    @ApiOperation(value = "刷新缓存")
+    @RequestMapping(value = "/flush_cache", method = RequestMethod.POST)
+    public Result flushCache(String type) {
+        libraryCommonService.flushCache(type);
+        return ResultUtil.ok(true);
+    }
 }

+ 6 - 0
paper-library/src/main/java/com/qmth/paper/library/api/SysSettingController.java

@@ -50,4 +50,10 @@ public class SysSettingController {
         return ResultUtil.ok(sysSettingService.saveData(simpleObjectList));
     }
 
+    @ApiOperation(value = "查询识别方式")
+    @PostMapping("/recognition_mode")
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = EditResult.class)})
+    public Result recognitionMode() {
+        return ResultUtil.ok(sysSettingService.getRecognitionMode());
+    }
 }

+ 9 - 0
paper-library/src/main/resources/ehcache/ehcache.xml

@@ -41,5 +41,14 @@
     <!-- ehcache这种东西,简单实用,是很快速的,1小时上手可以用在项目里了,没什么难度的 -->
     <!-- ehcache这个技术,如果讲深了,里面的东西还是很多的,高级的feature,但是我们这里就不涉及了 -->
 
+    <cache
+            name="roleCache"
+            eternal="false"
+            maxElementsInMemory="1000"
+            overflowToDisk="false"
+            diskPersistent="false"
+            timeToIdleSeconds="0"
+            timeToLiveSeconds="0"
+            memoryStoreEvictionPolicy="LRU" />
 </ehcache>
 

+ 7 - 0
pom.xml

@@ -48,6 +48,7 @@
         <zip4j.version>1.3.3</zip4j.version>
         <baidu.ocr.version>4.16.11</baidu.ocr.version>
         <thumbnailator.version>0.4.8</thumbnailator.version>
+        <zxing.version>3.5.1</zxing.version>
     </properties>
 
     <dependencyManagement>
@@ -275,6 +276,12 @@
                 <artifactId>thumbnailator</artifactId>
                 <version>${thumbnailator.version}</version>
             </dependency>
+            <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
+            <dependency>
+                <groupId>com.google.zxing</groupId>
+                <artifactId>core</artifactId>
+                <version>${zxing.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 24 - 0
sql/1.0.2修改内容.txt

@@ -0,0 +1,24 @@
+1.修改接口(采集端图片上传):/api/admin/client/picture/upload?studentCode=    增加studentCode参数
+2.增加接口(刷新缓存):/api/admin/common/flush_cache?type=        type值为:学校系统设置:SYS_SETTING   超管全局系统设置:SYS_SETTING_GLOBAL
+3.增加接口(导入考生):/api/admin/paper/scan_task/import_student?paperScanTaskId=&file=
+4.修改接口(识别):/api/admin/paper/library/ocr 改名为/api/admin/paper/library/recognition?type=    并增加type参数(识别类型)。值:OCR或者BAR_CODE
+5.增加接口(查询已开启的识别方式):/api/admin/sys/setting/recognition_mode      权限绑在开始处理按钮
+
+
+
+ALTER TABLE paper_scan_task_detail`
+ADD COLUMN `teach_clazz_name` VARCHAR(100) NULL COMMENT '教学班' AFTER `student_id`;
+
+ALTER TABLE `paper_scan_task_detail`
+ADD COLUMN `teacher_name` VARCHAR(45) NULL COMMENT '任课老师' AFTER `teach_clazz_name`;
+
+ALTER TABLE paper_scan_task`
+ADD COLUMN `course_code` VARCHAR(45) NULL COMMENT '课程代码' AFTER `scan_task_name`;
+
+UPDATE `sys_privilege` SET `name` = '识别', `url` = '/api/admin/paper/library/recognition' WHERE (`id` = '35');
+
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('265', '导入考生', 'Import', 'LINK', '244', '12', 'AUTH', '266', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('266', '导入考生', '/api/admin/paper/scan_task/import_student', 'URL', '244', '10', 'AUTH',  '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('635', '刷新缓存', '/api/admin/common/flush_cache', 'URL', '149', '20', 'SYS', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`) VALUES ('414', '查询识别方式', '/api/admin/sys/setting/recognition_mode', 'URL', '409', '3', 'AUTH', '1', '1');
+UPDATE `sys_privilege` SET `related` = '27,28,34,35,42,414' WHERE (`id` = '22');

+ 223 - 216
sql/paper_library_db.sql

@@ -223,6 +223,7 @@ CREATE TABLE `paper_scan_task`  (
   `school_id` bigint(20) NOT NULL COMMENT '学校id',
   `paper_archives_id` bigint(20) NOT NULL COMMENT '档案表iid',
   `scan_task_name` varchar(64) NOT NULL COMMENT '扫描任务名称',
+  `course_code` VARCHAR(45) NULL COMMENT '课程代码',
   `course_name` varchar(64) DEFAULT NULL COMMENT '课程名称',
   `teacher_name` varchar(64) DEFAULT NULL COMMENT '任课教师',
   `teach_clazz_name` varchar(64) DEFAULT NULL COMMENT '教学班名称',
@@ -246,6 +247,8 @@ CREATE TABLE `paper_scan_task_detail`  (
   `school_id` bigint(20) NOT NULL COMMENT '学校id',
   `paper_scan_task_id` bigint(20) NOT NULL COMMENT '扫描任务id',
   `student_id` bigint(20) NOT NULL COMMENT '学生id',
+  `teach_clazz_name` VARCHAR(100) NULL COMMENT '教学班',
+  `teacher_name` VARCHAR(45) NULL COMMENT '任课老师',
   `is_bind` tinyint(1) DEFAULT 0 COMMENT '是否绑定图片(大于1张)',
   `create_id` bigint(20) DEFAULT NULL COMMENT '创建人',
   `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间',
@@ -297,222 +300,226 @@ CREATE TABLE `sys_privilege`  (
 -- ----------------------------
 -- Records of sys_privilege
 -- ----------------------------
-INSERT INTO `sys_privilege` VALUES (1, '基础配置', 'base', 'MENU', NULL, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (2, '用户管理', 'user', 'MENU', 1, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (4, '组织架构', 'OrganizationManage', 'MENU', 2, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (5, '用户管理', 'UserManage', 'MENU', 2, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (6, '角色管理', 'RoleManage', 'MENU', 2, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (7, '权限管理', 'MenuManage', 'MENU', 129, 6, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (8, '档案管理', 'archives', 'MENU', 1, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (9, '档案管理', 'ArchivesManage', 'MENU', 8, 1, NULL, '27,34,35,37,410', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (10, '列表', 'List', 'LIST', 9, 1, 'AUTH', '15', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (11, '新增', 'Add', 'BUTTON', 9, 2, 'AUTH', '16', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (12, '编辑', 'Edit', 'LINK', 9, 3, 'AUTH', '16', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (13, '查看', 'Detail', 'LINK', 9, 4, 'AUTH', '17,29', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (14, '删除', 'Delete', 'LINK', 9, 5, 'AUTH', '18', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (15, '查询接口', '/api/admin/paper/archives/page', 'URL', 9, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (16, '新增/编辑接口', '/api/admin/paper/archives/save', 'URL', 9, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (17, '查看详情接口', '/api/admin/paper/archives/page_detail', 'URL', 9, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (18, '删除接口', '/api/admin/paper/archives/delete', 'URL', 9, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (19, '数据检查', 'library', 'MENU', 1, 4, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (20, '数据检查', 'LibraryManage', 'MENU', 19, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (21, '列表', 'List', 'LIST', 20, 1, 'AUTH', '23,24,25,26,29,40,41,43,410', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (22, '开始处理', 'Deal', 'BUTTON', 20, 2, 'AUTH', '27,28,34,35,42', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (23, '未处理接口', '/api/admin/paper/library/page_unbind', 'URL', 20, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (24, '未处理数量接口', '/api/admin/paper/library/count_unbind', 'URL', 20, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (25, '已处理接口', '/api/admin/paper/library/page_bind', 'URL', 20, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (26, '已处理数量接口', '/api/admin/paper/library/count_bind', 'URL', 20, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (27, '绑定接口', '/api/admin/paper/library/bind', 'URL', 20, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (28, '开始处理接口', '/api/admin/paper/library/get_bind_data', 'URL', 20, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (29, '查询考生图片集合接口', '/api/admin/paper/library/list_student_picture', 'URL', 20, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (30, '查询条件', 'Condition', 'CONDITION', 9, 3, 'AUTH', '15', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (31, '查询条件', 'Condition', 'CONDITION', 20, 3, 'AUTH', '23,24,25,26,40,41,43', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (32, '查询', 'Select', 'BUTTON', 9, 1, 'AUTH', '15', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (33, '查询', 'Select', 'BUTTON', 20, 1, 'AUTH', '23,24,25,26,40,41,43', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (34, '根据扫描任务ID查询学生', '/api/admin/paper/library/page_student', 'URL', 20, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (35, 'ocr识别', '/api/admin/paper/library/ocr', 'URL', 20, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (36, '所有任务考生信息', 'AllData', 'BUTTON', 20, 3, 'AUTH', '37', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (37, '所有任务考生信息', '/api/admin/paper/library/list_by_student_code', 'URL', 20, 9, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (38, '批量下载', 'Download', 'BUTTON', 9, 6, 'AUTH', '39', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (39, '批量下载', '/api/admin/paper/archives/paper_download', 'URL', 9, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (40, '异常分页接口', '/api/admin/paper/library/page_abnormal', 'URL', 20, 10, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (41, '异常数量接口', '/api/admin/paper/library/count_abnormal', 'URL', 20, 11, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (42, '标记异常接口', '/api/admin/paper/library/abnormal', 'URL', 20, 12, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (43, '获取单条图片详情', '/api/admin/paper/library/get_paper_data', 'URL', 20, 13, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (49, '查询条件-档案管理员', '/api/admin/common/manager_user/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (50, '查询条件-学期', '/api/admin/common/semester/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (51, '查询条件-档案', '/api/admin/common/archives/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (52, '查询条件-档案管理部门', '/api/admin/common/manager_org/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (53, '查询条件-档案类型', '/api/admin/common/archives_type/query', 'URL', 149, 11, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (54, '查询条件-课程', '/api/admin/common/course/query', 'URL', 149, 12, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (55, '查询条件-教学班', '/api/admin/common/teach_clazz/query', 'URL', 149, 13, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (56, '查询条件-扫描任务', '/api/admin/common/scan_task/query', 'URL', 149, 14, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (57, '查询条件-学生查询条件级联查询(学生学院-专业-班级)', '/api/admin/common/basic_student/condition', 'URL', 149, 15, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (70, '异步任务查询', '/api/admin/data/t_b_task/query', 'URL', 149, 9, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (77, '查询', '/api/admin/sys/user/list', 'URL', 5, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (78, '新增/修改', '/api/admin/sys/user/save', 'URL', 5, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (79, '启用/禁用', '/api/admin/sys/user/enable', 'URL', 5, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (80, '重置密码', '/api/admin/sys/user/reset_password', 'URL', 5, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (81, '导入用户', '/api/admin/sys/user/import', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (82, '绑定角色', '/api/admin/sys/user/bind_roles', 'URL', 5, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (83, '查询', '/api/admin/sys/role/list', 'URL', 6, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (84, '删除', '/api/admin/sys/role/remove', 'URL', 6, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (85, '新增/修改', '/api/admin/sys/role/save', 'URL', 6, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (86, '启用/禁用', '/api/admin/sys/role/enable', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (87, '用户已绑定角色列表', '/api/admin/sys/role/get_user_roles', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (88, '查询', '/api/admin/sys/privilege/list', 'URL', 7, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (89, '新增/修改', '/api/admin/sys/privilege/save', 'URL', 7, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (90, '删除', '/api/admin/sys/privilege/remove', 'URL', 7, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (91, '角色已绑定权限列表', '/api/admin/sys/privilege/get_role_privileges', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (92, '查询', '/api/admin/sys/org/list', 'URL', 4, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (93, '新增/修改', '/api/admin/sys/org/save', 'URL', 4, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (94, '删除', '/api/admin/sys/org/remove', 'URL', 4, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (95, '启用/禁用', '/api/admin/sys/org/enable', 'URL', 4, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (111, '扫描管理', 'scanTask', 'MENU', 1, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (112, '系统管理', 'data', 'MENU', 1, 5, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (129, '公共接口', 'common', 'MENU', NULL, 11, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (130, '用户登录相关', 'login', 'MENU', 129, 1, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (131, '用户登录', '/api/admin/common/login', 'URL', 130, 1, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (132, '查询用户权限', '/api/admin/common/get_menu', 'URL', 130, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (133, '发送验证码', '/api/admin/common/get_verify_code', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (134, '修改密码', '/api/admin/sys/user/update_password', 'URL', 130, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (135, '用户登出', '/api/admin/common/logout', 'URL', 130, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (136, '模糊查询', 'query', 'MENU', 129, 2, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (144, '文件相关', 'file', 'MENU', 129, 3, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (145, '文件上传', '/api/admin/common/file/upload', 'URL', 144, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (146, '文件查询', '/api/admin/common/file/get_one', 'URL', 144, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (147, '文件下载', '/api/admin/common/file/download', 'URL', 144, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (148, '文件预览', '/api/admin/common/file/preview', 'URL', 144, 4, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (149, '系统相关', 'sys', 'MENU', 129, 4, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (150, '查询枚举类型', '/api/admin/common/get_enums', 'URL', 149, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (151, '查询学校列表', '/api/admin/common/school/list', 'URL', 149, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (152, '查询系统参数', '/api/admin/common/sys_config/get_one', 'URL', 149, 3, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (153, '根据学校代码查询学校信息', '/api/admin/common/school/query_by_school_code', 'URL', 149, 4, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (154, '其他', 'other', 'MENU', 129, 5, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (155, '用户导入(异步)', '/api/admin/sys/user/async/import', 'URL', 154, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (156, '用户导出', '/api/admin/sys/user/export', 'URL', 154, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (179, '查询考务规则', '/api/admin/basic/exam_rule/list', 'URL', 149, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (180, '查询可设置权限列表', '/api/admin/sys/privilege/list_auth', 'URL', 6, 6, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (181, '超管中心', 'admin', 'MENU', 129, 7, NULL, NULL, 0, 1, 1);
-INSERT INTO `sys_privilege` VALUES (182, '查询客服', '/api/admin/sys/user/list_customer', 'URL', 181, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (183, '新增客服', '/api/admin/sys/user/save_customer', 'URL', 181, 2, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (184, '查询用户可绑定角色', '/api/admin/sys/role/list_to_user', 'URL', 5, 7, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (185, '删除', 'Delete', 'LINK', 5, 6, 'AUTH', '186', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (186, '删除', '/api/admin/sys/user/remove', 'URL', 5, 8, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (195, '获取服务器时间', '/api/admin/common/get_system_time', 'URL', 129, 2, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (200, '扫描端', 'client', 'MENU', NULL, 1, NULL, '202,203,204,205', 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (201, '客户端登录', '/api/admin/client/user/login', 'URL', NULL, 1, 'NO_AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (202, '任务查询', '/api/admin/client/task/page', 'URL', 200, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (203, '开始扫描', '/api/admin/client/bind/user', 'URL', 200, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (204, '上传图片', '/api/admin/client/picture/upload', 'URL', 200, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (205, '开启/关闭', '/api/admin/client/task/enable', 'URL', 200, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (217, '查询', 'Select', 'BUTTON', 5, 1, 'AUTH', '77', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (218, '新增用户', 'Add', 'BUTTON', 5, 2, 'AUTH', '78', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (219, '编辑', 'Edit', 'LINK', 5, 1, 'AUTH', '78', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (220, '启用&禁用', 'Enable', 'LINK', 5, 2, 'AUTH', '79', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (221, '列表', 'List', 'LIST', 5, 1, 'AUTH', '77', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (222, '查询条件', 'Condition', 'CONDITION', 5, 1, 'AUTH', '184,87', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (223, '重置密码', 'Reset', 'LINK', 5, 3, 'AUTH', '80', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (225, '子部门', 'Add', 'LINK', 4, 1, 'AUTH', '93', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (226, '修改', 'Edit', 'LINK', 4, 2, 'AUTH', '93', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (227, '删除', 'Delete', 'LINK', 4, 3, 'AUTH', '94', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (228, '树形列表', 'List', 'LIST', 4, 1, 'AUTH', '92', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (229, '查询', 'Select', 'BUTTON', 6, 1, 'AUTH', '83,88', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (230, '添加角色', 'Add', 'BUTTON', 6, 2, 'AUTH', '85,89', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (231, '编辑', 'Edit', 'LINK', 6, 1, 'AUTH', '83,91', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (232, '删除', 'Delete', 'LINK', 6, 2, 'AUTH', '84,90', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (233, '列表', 'List', 'LIST', 6, 1, 'AUTH', '83', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (234, '查询条件', 'Condition', 'CONDITION', 4, 1, 'AUTH', '92', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (235, '查询条件', 'Condition', 'CONDITION', 6, 1, 'AUTH', '83', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (243, '批量导入', 'Export', 'BUTTON', 5, 3, 'AUTH', '81', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (244, '扫描任务管理', 'ScanTaskManage', 'MENU', 111, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (245, '新增/编辑', '/api/admin/paper/scan_task/save', 'URL', 244, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (246, '查询', '/api/admin/paper/scan_task/query', 'URL', 244, 2, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (247, '批量删除(物理)', '/api/admin/paper/scan_task/delete_batch', 'URL', 244, 3, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (248, '批量导入(异步)', '/api/admin/paper/scan_task/scan_task_import', 'URL', 244, 4, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (249, '任务详情查询', '/api/admin/paper/scan_task/task_detail_page', 'URL', 244, 5, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (250, '清除数据', '/api/admin/paper/scan_task/clear_scan_data', 'URL', 244, 6, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (251, '解绑扫描员', '/api/admin/paper/scan_task/unbind_scanner', 'URL', 244, 7, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (252, '绑定进度详情', '/api/admin/paper/scan_task/bind_progress_detail', 'URL', 244, 8, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (253, '释放正在绑定的任务', '/api/admin/paper/scan_task/release_binding_task', 'URL', 244, 9, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (254, '查询', 'Select', 'BUTTON', 244, 1, 'AUTH', '246', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (255, '列表', 'List', 'LIST', 244, 2, 'AUTH', '246', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (256, '删除', 'Delete', 'LINK', 244, 3, 'AUTH', '247', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (257, '查看详情', 'ScanTaskDetail', 'LINK', 244, 4, 'AUTH', '249', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (258, '清除数据', 'ClearScanData', 'LINK', 244, 5, 'AUTH', '250', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (259, '解绑扫描员', 'UnbindScanner', 'LINK', 244, 6, 'AUTH', '251', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (260, '绑定进度详情', 'ProgressDetail', 'LINK', 244, 7, 'AUTH', '252,253', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (262, '批量删除', 'DeleteBatch', 'BUTTON', 244, 9, 'AUTH', '247', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (263, '导入扫描任务', 'Import', 'BUTTON', 244, 10, 'AUTH', '248', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (264, '查询条件', 'Condition', 'CONDITION', 244, 11, 'AUTH', '246', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (358, '学生管理', 'StudentManage', 'MENU', 2, 6, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (362, '查询', '/api/admin/basic/student/query', 'URL', 358, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (363, '增/编辑', '/api/admin/basic/student/save', 'URL', 358, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (364, '批量删除(逻辑)', '/api/admin/basic/student/delete_batch', 'URL', 358, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (365, '批量导入(异步)', '/api/admin/basic/student/data_import', 'URL', 358, 4, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (370, '获取系统编码', '/api/admin/common/get_code', 'URL', 149, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (371, '根据类型查询机构', '/api/admin/sys/org/find_by_type', 'URL', 4, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (377, '查询', 'Select', 'BUTTON', 358, 1, 'AUTH', '362,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (378, '列表', 'List', 'LIST', 358, 1, 'AUTH', '362', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (379, '新增', 'Add', 'BUTTON', 358, 1, 'AUTH', '359,363,462', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (380, '编辑', 'Edit', 'LINK', 358, 1, 'AUTH', '359,363', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (381, '删除', 'Delete', 'LINK', 358, 1, 'AUTH', '364', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (382, '批量导入', 'Import', 'BUTTON', 358, 2, 'AUTH', '365', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (400, '查询条件', 'Condition', 'CONDITION', 358, 1, 'AUTH', '377', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (401, '档案类型管理', 'ArchivesTypeManage', 'MENU', 112, 3, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (402, '列表', 'List', 'LIST', 401, 1, 'AUTH', '406', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (403, '新增类型', 'Add', 'BUTTON', 401, 2, 'AUTH', '407', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (404, '编辑', 'Edit', 'LINK', 401, 3, 'AUTH', '407', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (405, '删除', 'Delete', 'LINK', 401, 4, 'AUTH', '408', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (406, '查询接口', '/api/admin/paper/archives_type/page', 'URL', 401, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (407, '新增/编辑接口', '/api/admin/paper/archives_type/save', 'URL', 401, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (408, '删除接口', '/api/admin/paper/archives_type/delete', 'URL', 401, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (409, '系统设置', 'SystemSetting', 'MENU', 112, 1, NULL, '410,411', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (410, '查询', '/api/admin/sys/setting/get', 'URL', 409, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (411, '新增/修改', '/api/admin/sys/setting/save', 'URL', 409, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (412, '查询全局系统设置参数', '/api/admin/sys/setting_global/get', 'URL', 149, 16, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (413, '新增/修改全局系统设置参数', '/api/admin/sys/setting_global/save', 'URL', 149, 17, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (507, '菜单管理', 'MenuManage', 'MENU', 1, 7, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (508, '自定义菜单', 'CustomMenu', 'MENU', 507, 1, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (510, '学期管理', 'SemesterManage', 'MENU', 112, 2, NULL, NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (511, '新建学期', 'Add', 'BUTTON', 510, 1, 'AUTH', '534', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (512, '编辑', 'Edit', 'LINK', 510, 1, 'AUTH', '534', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (513, '删除', 'Delete', 'LINK', 510, 2, 'AUTH', '535', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (514, '列表', 'List', 'LIST', 510, 1, 'AUTH', '533', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (527, '查询自定义菜单权限', '/api/admin/menu/custom/list', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (528, '学校已绑定自定义菜单权限列表', '/api/admin/menu/custom/get_school_custom_privileges', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (529, '学校新增/修改自定义菜单权限', '/api/admin/menu/custom/save', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (530, '查询', 'Select', 'BUTTON', 508, 1, 'AUTH', '527,528', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (531, '保存', 'Save', 'BUTTON', 508, 2, 'AUTH', '529', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (533, '查询', '/api/admin/basic/semester/page', 'URL', 510, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (534, '新增/编辑', '/api/admin/basic/semester/save', 'URL', 510, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (535, '删除', '/api/admin/basic/semester/delete', 'URL', 510, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (539, '共用接口-查询字典', '/api/admin/common/get_dictionary', 'URL', 149, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (547, '阅卷试卷上传待办计数接口', '/api/admin/work/structure/task/ready_count', 'URL', 16, 7, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (548, '阅卷试卷上传待办接口', '/api/admin/work/structure/task/ready', 'URL', 16, 8, 'SYS', '490', 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (549, '短信日志', 'SmsManage', 'MENU', 112, 4, NULL, NULL, 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (550, '查询', 'Select', 'BUTTON', 549, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (551, '查询', '/api/admin/basic/message/list', 'URL', 550, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (552, '查询短信类型', '/api/admin/basic/message/list_message_types', 'URL', 550, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (553, '短信失败重发', '/api/admin/basic/message/resend', 'URL', 550, 3, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (554, '查询条件', 'Condition', 'CONDITION', 549, 1, 'AUTH', NULL, 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (555, '列表', 'List', 'LIST', 549, 1, 'AUTH', '551,552', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (556, '短信失败重发', 'Send', 'LINK', 549, 1, 'AUTH', '553', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (558, '模糊查询', '/api/admin/basic/semester/list', 'URL', 510, 1, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (564, '考试试卷文件上传接口', '/api/admin/common/file/exam_paper_upload', 'URL', 144, 5, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (569, '根据条件删除(物理)', '/api/admin/basic/student/delete_by_condition', 'URL', 358, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (570, '根据条件删除', 'Delete', 'BUTTON', 358, 1, 'AUTH', '569', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (634, '发送验证码(绑定手机号)', '/api/admin/common/get_verify_code_for_bind', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (647, '成员管理', 'Manager', 'LINK', 6, 3, 'AUTH', '648,649', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (648, '新增/修改', '/api/admin/sys/role/group/save', 'URL', 647, 1, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (649, '查询', '/api/admin/sys/role/group/list', 'URL', 647, 2, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (675, '授权配置', 'AuthManage', 'MENU', 1, 6, NULL, NULL, 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (676, '授权配置-导出硬件信息按钮', 'Export', 'BUTTON', 675, 1, 'AUTH', '677,678,679', 1, 0, 0);
-INSERT INTO `sys_privilege` VALUES (677, '导出硬件信息', '/api/admin/auth/export/device/info', 'URL', 676, 1, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (678, '离线激活', '/api/admin/auth/offline/activation', 'URL', 676, 2, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (679, '查询激活信息', '/api/admin/auth/select', 'URL', 676, 3, 'AUTH', NULL, 1, 1, 0);
-INSERT INTO `sys_privilege` VALUES (757, '导入组织架构', '/api/admin/sys/org/import', 'URL', 4, 5, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` VALUES (758, '导入组织架构', 'Import', 'BUTTON', 4, 4, 'AUTH', '757', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1, '基础配置', 'base', 'MENU', NULL, 2, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (2, '用户管理', 'user', 'MENU', 1, 1, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (4, '组织架构', 'OrganizationManage', 'MENU', 2, 1, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (5, '用户管理', 'UserManage', 'MENU', 2, 2, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (6, '角色管理', 'RoleManage', 'MENU', 2, 3, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (7, '权限管理', 'MenuManage', 'MENU', 129, 6, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (8, '档案管理', 'archives', 'MENU', 1, 2, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (9, '档案管理', 'ArchivesManage', 'MENU', 8, 1, NULL, '27,34,35,37,410', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (10, '列表', 'List', 'LIST', 9, 1, 'AUTH', '15', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (11, '新增', 'Add', 'BUTTON', 9, 2, 'AUTH', '16', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (12, '编辑', 'Edit', 'LINK', 9, 3, 'AUTH', '16', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (13, '查看', 'Detail', 'LINK', 9, 4, 'AUTH', '17,29', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (14, '删除', 'Delete', 'LINK', 9, 5, 'AUTH', '18', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (15, '查询接口', '/api/admin/paper/archives/page', 'URL', 9, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (16, '新增/编辑接口', '/api/admin/paper/archives/save', 'URL', 9, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (17, '查看详情接口', '/api/admin/paper/archives/page_detail', 'URL', 9, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (18, '删除接口', '/api/admin/paper/archives/delete', 'URL', 9, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (19, '数据检查', 'library', 'MENU', 1, 4, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (20, '数据检查', 'LibraryManage', 'MENU', 19, 1, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (21, '列表', 'List', 'LIST', 20, 1, 'AUTH', '23,24,25,26,29,40,41,43,410', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (22, '开始处理', 'Deal', 'BUTTON', 20, 2, 'AUTH', '27,28,34,35,42,414', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (23, '未处理接口', '/api/admin/paper/library/page_unbind', 'URL', 20, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (24, '未处理数量接口', '/api/admin/paper/library/count_unbind', 'URL', 20, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (25, '已处理接口', '/api/admin/paper/library/page_bind', 'URL', 20, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (26, '已处理数量接口', '/api/admin/paper/library/count_bind', 'URL', 20, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (27, '绑定接口', '/api/admin/paper/library/bind', 'URL', 20, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (28, '开始处理接口', '/api/admin/paper/library/get_bind_data', 'URL', 20, 6, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (29, '查询考生图片集合接口', '/api/admin/paper/library/list_student_picture', 'URL', 20, 7, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (30, '查询条件', 'Condition', 'CONDITION', 9, 3, 'AUTH', '15', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (31, '查询条件', 'Condition', 'CONDITION', 20, 3, 'AUTH', '23,24,25,26,40,41,43', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (32, '查询', 'Select', 'BUTTON', 9, 1, 'AUTH', '15', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (33, '查询', 'Select', 'BUTTON', 20, 1, 'AUTH', '23,24,25,26,40,41,43', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (34, '根据扫描任务ID查询学生', '/api/admin/paper/library/page_student', 'URL', 20, 7, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (35, '识别', '/api/admin/paper/library/recognition', 'URL', 20, 8, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (36, '所有任务考生信息', 'AllData', 'BUTTON', 20, 3, 'AUTH', '37', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (37, '所有任务考生信息', '/api/admin/paper/library/list_by_student_code', 'URL', 20, 9, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (38, '批量下载', 'Download', 'BUTTON', 9, 6, 'AUTH', '39', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (39, '批量下载', '/api/admin/paper/archives/paper_download', 'URL', 9, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (40, '异常分页接口', '/api/admin/paper/library/page_abnormal', 'URL', 20, 10, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (41, '异常数量接口', '/api/admin/paper/library/count_abnormal', 'URL', 20, 11, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (42, '标记异常接口', '/api/admin/paper/library/abnormal', 'URL', 20, 12, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (43, '获取单条图片详情', '/api/admin/paper/library/get_paper_data', 'URL', 20, 13, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (49, '查询条件-档案管理员', '/api/admin/common/manager_user/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (50, '查询条件-学期', '/api/admin/common/semester/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (51, '查询条件-档案', '/api/admin/common/archives/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (52, '查询条件-档案管理部门', '/api/admin/common/manager_org/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (53, '查询条件-档案类型', '/api/admin/common/archives_type/query', 'URL', 149, 11, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (54, '查询条件-课程', '/api/admin/common/course/query', 'URL', 149, 12, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (55, '查询条件-教学班', '/api/admin/common/teach_clazz/query', 'URL', 149, 13, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (56, '查询条件-扫描任务', '/api/admin/common/scan_task/query', 'URL', 149, 14, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (57, '查询条件-学生查询条件级联查询(学生学院-专业-班级)', '/api/admin/common/basic_student/condition', 'URL', 149, 15, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (70, '异步任务查询', '/api/admin/data/t_b_task/query', 'URL', 149, 9, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (77, '查询', '/api/admin/sys/user/list', 'URL', 5, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (78, '新增/修改', '/api/admin/sys/user/save', 'URL', 5, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (79, '启用/禁用', '/api/admin/sys/user/enable', 'URL', 5, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (80, '重置密码', '/api/admin/sys/user/reset_password', 'URL', 5, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (81, '导入用户', '/api/admin/sys/user/import', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (82, '绑定角色', '/api/admin/sys/user/bind_roles', 'URL', 5, 6, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (83, '查询', '/api/admin/sys/role/list', 'URL', 6, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (84, '删除', '/api/admin/sys/role/remove', 'URL', 6, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (85, '新增/修改', '/api/admin/sys/role/save', 'URL', 6, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (86, '启用/禁用', '/api/admin/sys/role/enable', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (87, '用户已绑定角色列表', '/api/admin/sys/role/get_user_roles', 'URL', 5, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (88, '查询', '/api/admin/sys/privilege/list', 'URL', 7, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (89, '新增/修改', '/api/admin/sys/privilege/save', 'URL', 7, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (90, '删除', '/api/admin/sys/privilege/remove', 'URL', 7, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (91, '角色已绑定权限列表', '/api/admin/sys/privilege/get_role_privileges', 'URL', 6, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (92, '查询', '/api/admin/sys/org/list', 'URL', 4, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (93, '新增/修改', '/api/admin/sys/org/save', 'URL', 4, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (94, '删除', '/api/admin/sys/org/remove', 'URL', 4, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (95, '启用/禁用', '/api/admin/sys/org/enable', 'URL', 4, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (111, '扫描管理', 'scanTask', 'MENU', 1, 3, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (112, '系统管理', 'data', 'MENU', 1, 5, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (129, '公共接口', 'common', 'MENU', NULL, 11, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (130, '用户登录相关', 'login', 'MENU', 129, 1, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (131, '用户登录', '/api/admin/common/login', 'URL', 130, 1, 'NO_AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (132, '查询用户权限', '/api/admin/common/get_menu', 'URL', 130, 2, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (133, '发送验证码', '/api/admin/common/get_verify_code', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (134, '修改密码', '/api/admin/sys/user/update_password', 'URL', 130, 4, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (135, '用户登出', '/api/admin/common/logout', 'URL', 130, 5, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (136, '模糊查询', 'query', 'MENU', 129, 2, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (144, '文件相关', 'file', 'MENU', 129, 3, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (145, '文件上传', '/api/admin/common/file/upload', 'URL', 144, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (146, '文件查询', '/api/admin/common/file/get_one', 'URL', 144, 2, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (147, '文件下载', '/api/admin/common/file/download', 'URL', 144, 3, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (148, '文件预览', '/api/admin/common/file/preview', 'URL', 144, 4, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (149, '系统相关', 'sys', 'MENU', 129, 4, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (150, '查询枚举类型', '/api/admin/common/get_enums', 'URL', 149, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (151, '查询学校列表', '/api/admin/common/school/list', 'URL', 149, 2, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (152, '查询系统参数', '/api/admin/common/sys_config/get_one', 'URL', 149, 3, 'NO_AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (153, '根据学校代码查询学校信息', '/api/admin/common/school/query_by_school_code', 'URL', 149, 4, 'NO_AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (154, '其他', 'other', 'MENU', 129, 5, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (155, '用户导入(异步)', '/api/admin/sys/user/async/import', 'URL', 154, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (156, '用户导出', '/api/admin/sys/user/export', 'URL', 154, 2, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (179, '查询考务规则', '/api/admin/basic/exam_rule/list', 'URL', 149, 5, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (180, '查询可设置权限列表', '/api/admin/sys/privilege/list_auth', 'URL', 6, 6, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (181, '超管中心', 'admin', 'MENU', 129, 7, NULL, NULL, 0, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (182, '查询客服', '/api/admin/sys/user/list_customer', 'URL', 181, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (183, '新增客服', '/api/admin/sys/user/save_customer', 'URL', 181, 2, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (184, '查询用户可绑定角色', '/api/admin/sys/role/list_to_user', 'URL', 5, 7, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (185, '删除', 'Delete', 'LINK', 5, 6, 'AUTH', '186', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (186, '删除', '/api/admin/sys/user/remove', 'URL', 5, 8, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (195, '获取服务器时间', '/api/admin/common/get_system_time', 'URL', 129, 2, 'NO_AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (200, '扫描端', 'client', 'MENU', NULL, 1, NULL, '202,203,204,205', 1, 0, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (201, '客户端登录', '/api/admin/client/user/login', 'URL', NULL, 1, 'NO_AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (202, '任务查询', '/api/admin/client/task/page', 'URL', 200, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (203, '开始扫描', '/api/admin/client/bind/user', 'URL', 200, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (204, '上传图片', '/api/admin/client/picture/upload', 'URL', 200, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (205, '开启/关闭', '/api/admin/client/task/enable', 'URL', 200, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (217, '查询', 'Select', 'BUTTON', 5, 1, 'AUTH', '77', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (218, '新增用户', 'Add', 'BUTTON', 5, 2, 'AUTH', '78', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (219, '编辑', 'Edit', 'LINK', 5, 1, 'AUTH', '78', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (220, '启用&禁用', 'Enable', 'LINK', 5, 2, 'AUTH', '79', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (221, '列表', 'List', 'LIST', 5, 1, 'AUTH', '77', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (222, '查询条件', 'Condition', 'CONDITION', 5, 1, 'AUTH', '184,87', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (223, '重置密码', 'Reset', 'LINK', 5, 3, 'AUTH', '80', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (225, '子部门', 'Add', 'LINK', 4, 1, 'AUTH', '93', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (226, '修改', 'Edit', 'LINK', 4, 2, 'AUTH', '93', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (227, '删除', 'Delete', 'LINK', 4, 3, 'AUTH', '94', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (228, '树形列表', 'List', 'LIST', 4, 1, 'AUTH', '92', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (229, '查询', 'Select', 'BUTTON', 6, 1, 'AUTH', '83,88', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (230, '添加角色', 'Add', 'BUTTON', 6, 2, 'AUTH', '85,89', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (231, '编辑', 'Edit', 'LINK', 6, 1, 'AUTH', '83,91', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (232, '删除', 'Delete', 'LINK', 6, 2, 'AUTH', '84,90', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (233, '列表', 'List', 'LIST', 6, 1, 'AUTH', '83', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (234, '查询条件', 'Condition', 'CONDITION', 4, 1, 'AUTH', '92', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (235, '查询条件', 'Condition', 'CONDITION', 6, 1, 'AUTH', '83', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (243, '批量导入', 'Export', 'BUTTON', 5, 3, 'AUTH', '81', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (244, '扫描任务管理', 'ScanTaskManage', 'MENU', 111, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (245, '新增/编辑', '/api/admin/paper/scan_task/save', 'URL', 244, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (246, '查询', '/api/admin/paper/scan_task/query', 'URL', 244, 2, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (247, '批量删除(物理)', '/api/admin/paper/scan_task/delete_batch', 'URL', 244, 3, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (248, '批量导入(异步)', '/api/admin/paper/scan_task/scan_task_import', 'URL', 244, 4, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (249, '任务详情查询', '/api/admin/paper/scan_task/task_detail_page', 'URL', 244, 5, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (250, '清除数据', '/api/admin/paper/scan_task/clear_scan_data', 'URL', 244, 6, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (251, '解绑扫描员', '/api/admin/paper/scan_task/unbind_scanner', 'URL', 244, 7, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (252, '绑定进度详情', '/api/admin/paper/scan_task/bind_progress_detail', 'URL', 244, 8, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (253, '释放正在绑定的任务', '/api/admin/paper/scan_task/release_binding_task', 'URL', 244, 9, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (254, '查询', 'Select', 'BUTTON', 244, 1, 'AUTH', '246', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (255, '列表', 'List', 'LIST', 244, 2, 'AUTH', '246', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (256, '删除', 'Delete', 'LINK', 244, 3, 'AUTH', '247', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (257, '查看详情', 'ScanTaskDetail', 'LINK', 244, 4, 'AUTH', '249', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (258, '清除数据', 'ClearScanData', 'LINK', 244, 5, 'AUTH', '250', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (259, '解绑扫描员', 'UnbindScanner', 'LINK', 244, 6, 'AUTH', '251', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (260, '绑定进度详情', 'ProgressDetail', 'LINK', 244, 7, 'AUTH', '252,253', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (262, '批量删除', 'DeleteBatch', 'BUTTON', 244, 9, 'AUTH', '247', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (263, '导入扫描任务', 'Import', 'BUTTON', 244, 10, 'AUTH', '248', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (264, '查询条件', 'Condition', 'CONDITION', 244, 11, 'AUTH', '246', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (265, '导入考生', 'Import', 'LINK', 244, 12, 'AUTH', '266', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (266, '导入考生', '/api/admin/paper/scan_task/import_student', 'URL', 244, 10, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (358, '学生管理', 'StudentManage', 'MENU', 2, 6, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (362, '查询', '/api/admin/basic/student/query', 'URL', 358, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (363, '增/编辑', '/api/admin/basic/student/save', 'URL', 358, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (364, '批量删除(逻辑)', '/api/admin/basic/student/delete_batch', 'URL', 358, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (365, '批量导入(异步)', '/api/admin/basic/student/data_import', 'URL', 358, 4, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (370, '获取系统编码', '/api/admin/common/get_code', 'URL', 149, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (371, '根据类型查询机构', '/api/admin/sys/org/find_by_type', 'URL', 4, 5, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (377, '查询', 'Select', 'BUTTON', 358, 1, 'AUTH', '362,462', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (378, '列表', 'List', 'LIST', 358, 1, 'AUTH', '362', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (379, '新增', 'Add', 'BUTTON', 358, 1, 'AUTH', '359,363,462', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (380, '编辑', 'Edit', 'LINK', 358, 1, 'AUTH', '359,363', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (381, '删除', 'Delete', 'LINK', 358, 1, 'AUTH', '364', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (382, '批量导入', 'Import', 'BUTTON', 358, 2, 'AUTH', '365', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (400, '查询条件', 'Condition', 'CONDITION', 358, 1, 'AUTH', '377', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (401, '档案类型管理', 'ArchivesTypeManage', 'MENU', 112, 3, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (402, '列表', 'List', 'LIST', 401, 1, 'AUTH', '406', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (403, '新增类型', 'Add', 'BUTTON', 401, 2, 'AUTH', '407', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (404, '编辑', 'Edit', 'LINK', 401, 3, 'AUTH', '407', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (405, '删除', 'Delete', 'LINK', 401, 4, 'AUTH', '408', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (406, '查询接口', '/api/admin/paper/archives_type/page', 'URL', 401, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (407, '新增/编辑接口', '/api/admin/paper/archives_type/save', 'URL', 401, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (408, '删除接口', '/api/admin/paper/archives_type/delete', 'URL', 401, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (409, '系统设置', 'SystemSetting', 'MENU', 112, 1, NULL, '410,411', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (410, '查询', '/api/admin/sys/setting/get', 'URL', 409, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (411, '新增/修改', '/api/admin/sys/setting/save', 'URL', 409, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (412, '查询全局系统设置参数', '/api/admin/sys/setting_global/get', 'URL', 149, 16, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (413, '新增/修改全局系统设置参数', '/api/admin/sys/setting_global/save', 'URL', 149, 17, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (414, '查询识别方式', '/api/admin/sys/setting/recognition_mode', 'URL', 409, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (507, '菜单管理', 'MenuManage', 'MENU', 1, 7, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (508, '自定义菜单', 'CustomMenu', 'MENU', 507, 1, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (510, '学期管理', 'SemesterManage', 'MENU', 112, 2, NULL, NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (511, '新建学期', 'Add', 'BUTTON', 510, 1, 'AUTH', '534', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (512, '编辑', 'Edit', 'LINK', 510, 1, 'AUTH', '534', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (513, '删除', 'Delete', 'LINK', 510, 2, 'AUTH', '535', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (514, '列表', 'List', 'LIST', 510, 1, 'AUTH', '533', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (527, '查询自定义菜单权限', '/api/admin/menu/custom/list', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (528, '学校已绑定自定义菜单权限列表', '/api/admin/menu/custom/get_school_custom_privileges', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (529, '学校新增/修改自定义菜单权限', '/api/admin/menu/custom/save', 'URL', 508, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (530, '查询', 'Select', 'BUTTON', 508, 1, 'AUTH', '527,528', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (531, '保存', 'Save', 'BUTTON', 508, 2, 'AUTH', '529', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (533, '查询', '/api/admin/basic/semester/page', 'URL', 510, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (534, '新增/编辑', '/api/admin/basic/semester/save', 'URL', 510, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (535, '删除', '/api/admin/basic/semester/delete', 'URL', 510, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (539, '共用接口-查询字典', '/api/admin/common/get_dictionary', 'URL', 149, 7, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (547, '阅卷试卷上传待办计数接口', '/api/admin/work/structure/task/ready_count', 'URL', 16, 7, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (548, '阅卷试卷上传待办接口', '/api/admin/work/structure/task/ready', 'URL', 16, 8, 'SYS', '490', 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (549, '短信日志', 'SmsManage', 'MENU', 112, 4, NULL, NULL, 1, 0, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (550, '查询', 'Select', 'BUTTON', 549, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (551, '查询', '/api/admin/basic/message/list', 'URL', 550, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (552, '查询短信类型', '/api/admin/basic/message/list_message_types', 'URL', 550, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (553, '短信失败重发', '/api/admin/basic/message/resend', 'URL', 550, 3, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (554, '查询条件', 'Condition', 'CONDITION', 549, 1, 'AUTH', NULL, 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (555, '列表', 'List', 'LIST', 549, 1, 'AUTH', '551,552', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (556, '短信失败重发', 'Send', 'LINK', 549, 1, 'AUTH', '553', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (558, '模糊查询', '/api/admin/basic/semester/list', 'URL', 510, 1, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (564, '考试试卷文件上传接口', '/api/admin/common/file/exam_paper_upload', 'URL', 144, 5, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (569, '根据条件删除(物理)', '/api/admin/basic/student/delete_by_condition', 'URL', 358, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (570, '根据条件删除', 'Delete', 'BUTTON', 358, 1, 'AUTH', '569', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (634, '发送验证码(绑定手机号)', '/api/admin/common/get_verify_code_for_bind', 'URL', 130, 3, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (635, '刷新缓存', '/api/admin/common/flush_cache', 'URL', 149, 20, 'SYS', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (647, '成员管理', 'Manager', 'LINK', 6, 3, 'AUTH', '648,649', 1, 0, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (648, '新增/修改', '/api/admin/sys/role/group/save', 'URL', 647, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (649, '查询', '/api/admin/sys/role/group/list', 'URL', 647, 2, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (675, '授权配置', 'AuthManage', 'MENU', 1, 6, NULL, NULL, 1, 0, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (676, '授权配置-导出硬件信息按钮', 'Export', 'BUTTON', 675, 1, 'AUTH', '677,678,679', 1, 0, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (677, '导出硬件信息', '/api/admin/auth/export/device/info', 'URL', 676, 1, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (678, '离线激活', '/api/admin/auth/offline/activation', 'URL', 676, 2, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (679, '查询激活信息', '/api/admin/auth/select', 'URL', 676, 3, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (757, '导入组织架构', '/api/admin/sys/org/import', 'URL', 4, 5, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (758, '导入组织架构', 'Import', 'BUTTON', 4, 4, 'AUTH', '757', 1, 0, 1);
 
 -- ----------------------------
 -- Table structure for sys_role