Przeglądaj źródła

Merge branch 'dev_v3.2.2' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev_v3.2.2

 Conflicts:
	distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java
xiaof 2 lat temu
rodzic
commit
efd2e6a544
51 zmienionych plików z 374 dodań i 8 usunięć
  1. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/GenericExamCardParams.java
  2. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java
  3. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/TeachClazzParams.java
  4. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeBatchParam.java
  5. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCollegeController.java
  6. 8 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  7. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java
  8. 4 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java
  9. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java
  10. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMessageController.java
  11. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicOperationLogController.java
  12. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicPrintConfigController.java
  13. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java
  14. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java
  15. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicTemplateController.java
  16. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/DownloadController.java
  17. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java
  18. 12 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  19. 10 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java
  20. 19 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  21. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  22. 50 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  23. 9 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java
  24. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java
  25. 4 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeModuleEvaluationController.java
  26. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperController.java
  27. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperDimensionController.java
  28. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperStructController.java
  29. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SsoController.java
  30. 17 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysAdminSetController.java
  31. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  32. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java
  33. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java
  34. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java
  35. 15 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java
  36. 4 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBSyncTaskController.java
  37. 5 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  38. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java
  39. 16 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java
  40. 9 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java
  41. 4 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncStmmsExamController.java
  42. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java
  43. 7 4
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java
  44. 7 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java
  45. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  46. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCollegeParams.java
  47. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCourseParams.java
  48. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicMajorParams.java
  49. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicSemesterParams.java
  50. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicStudentParams.java
  51. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysPrivilege.java

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/GenericExamCardParams.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.bean.params;
 
+import com.qmth.teachcloud.common.annotation.EditKey;
 import com.qmth.teachcloud.common.enums.CardCreateMethodEnum;
 
 /**
@@ -10,6 +11,7 @@ public class GenericExamCardParams {
     /**
      * exam_card主键ID
      */
+    @EditKey
     private Long id;
     private String title;
     private CardCreateMethodEnum createMethod;

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.distributed.print.business.enums.BackupMethodEnum;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import com.qmth.teachcloud.common.enums.DrawRuleEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
@@ -20,6 +21,7 @@ public class PrintPlanParams {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "印刷计划id")
+    @EditKey
     private Long id;
 
     @JsonSerialize(using = ToStringSerializer.class)

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/TeachClazzParams.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.DBVerify;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
@@ -19,6 +20,7 @@ public class TeachClazzParams {
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "班级id(修改时必填)")
     @DBVerify(value = "班级id")
+    @EditKey
     private Long id;
 
     @JsonSerialize(using = ToStringSerializer.class)

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeBatchParam.java

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.bean.params.analyze;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Range;
 
@@ -15,6 +16,7 @@ import javax.validation.constraints.NotNull;
 public class GradeBatchParam {
     @ApiModelProperty(value = "批次id")
     @JsonSerialize(using = ToStringSerializer.class)
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "学期id")

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCollegeController.java

@@ -2,11 +2,13 @@ package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicCollegeParams;
 import com.qmth.teachcloud.common.bean.result.BasicCollegeResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCollegeService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -37,6 +39,7 @@ public class BasicCollegeController {
     @ApiOperation(value = "学生学院管理-查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicCollegeList(@ApiParam(value = "学生学院名称") @RequestParam(required = false) String collegeName,
                                        @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) {
@@ -47,6 +50,7 @@ public class BasicCollegeController {
     @ApiOperation(value = "学生学院管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicCollege(@Valid @RequestBody BasicCollegeParams basicCollegeParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -58,6 +62,7 @@ public class BasicCollegeController {
     @ApiOperation(value = "学生学院管理-删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicCollege(@ApiParam(value = "学生学院id", required = true) @RequestParam List<String> idList) {
         if (idList.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的学生学院");

+ 8 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.enums.log.LevelEnum;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
@@ -58,6 +59,7 @@ public class BasicCourseController {
 
     @ApiOperation(value = "模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result query(@RequestParam(value = "param", required = false) String param,
                         @RequestParam(value = "printPlanId", required = false) List<String> printPlanId,
                         @RequestParam(value = "teachingRoomId", required = false) Long teachingRoomId) {
@@ -72,6 +74,7 @@ public class BasicCourseController {
 
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result remove(@RequestBody BasicCourse course) {
         boolean isSuccess = printCommonService.remove(course.getId());
         return ResultUtil.ok(isSuccess);
@@ -81,6 +84,7 @@ public class BasicCourseController {
     @ApiOperation(value = "课程管理-查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicCourseList(@ApiParam(value = "所属机构id") @RequestParam(required = false) String belongOrgId,
                                       @ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) String courseName,
                                       @ApiParam(value = "创建时间(起始位置)") @RequestParam(required = false) String startCreateTime,
@@ -93,6 +97,7 @@ public class BasicCourseController {
     @ApiOperation(value = "课程管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicCourse(@Valid @RequestBody BasicCourseParams basicCourseParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -104,6 +109,7 @@ public class BasicCourseController {
     @ApiOperation(value = "课程管理-批量删除")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result enableBasicCourse(@ApiParam(value = "选择的要删除的课程id集合", required = true) @RequestParam List<Long> idList) {
         return ResultUtil.ok(basicCourseService.removeBasicCourseBatch(idList));
     }
@@ -112,7 +118,7 @@ public class BasicCourseController {
     @RequestMapping(value = "/delete_by_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
     @OperationLogDetail(detail = "根据查询条件【所属机构id[{{belongOrgId}}],课程名称(模糊查询)[{{courseName}}],创建时间(起始位置)[{{startCreateTime}}]," +
-            "创建时间(终止位置)[{{endCreateTime}}],状态[{{enable}}],启用&禁用操作[{{enableOperate}}]】批量启用/禁用课程",level = LevelEnum.TERTIARY,operationType = OperationTypeEnum.EDIT)
+            "创建时间(终止位置)[{{endCreateTime}}],状态[{{enable}}],启用&禁用操作[{{enableOperate}}]】批量启用/禁用课程",level = LevelEnum.TERTIARY,operationType = OperationTypeEnum.EDIT,customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result enableBasicCourseByQuery(@ApiParam(value = "所属机构id") @RequestParam(required = false) String belongOrgId,
                                            @ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) String courseName,
                                            @ApiParam(value = "创建时间(起始位置)") @RequestParam(required = false) String startCreateTime,
@@ -127,6 +133,7 @@ public class BasicCourseController {
     @ApiOperation(value = "课程基本信息管理-批量导入(异步)")
     @RequestMapping(value = "/data_import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result basicCourseImportAsync(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.COURSE_IMPORT);

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java

@@ -4,9 +4,11 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.BasicExamService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.enums.ExamModelEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -42,6 +44,7 @@ public class BasicExamController {
     @ApiOperation(value = "考试管理-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result pageExam(@RequestParam(value = "semesterId", required = false) Long semesterId,
                            @RequestParam(value = "enable", required = false) Boolean enable,
                            @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -57,6 +60,7 @@ public class BasicExamController {
     @ApiOperation(value = "考试模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result query(@RequestParam(value = "semesterId", required = false) Long semesterId,
                         @RequestParam(value = "examModel", required = false) List<ExamModelEnum> examModels,
                         @RequestParam(value = "inUsed", required = false) Boolean inUsed) {
@@ -71,6 +75,7 @@ public class BasicExamController {
     @ApiOperation(value = "考试管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicExam(@Valid @RequestBody BasicExam basicExam, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -86,6 +91,7 @@ public class BasicExamController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@ApiParam(value = "考试ID", required = true) @RequestParam Long id,
                          @ApiParam(value = "启用/禁用", required = true) @RequestParam Boolean enable) {
         boolean isSuccess = basicExamService.enable(id, enable);
@@ -100,6 +106,7 @@ public class BasicExamController {
     @ApiOperation(value = "考试管理-删除(逻辑)")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicSemester(@ApiParam(value = "考试id", required = true) @RequestParam String id) {
         return ResultUtil.ok(basicExamService.deleteBasicExamById(SystemConstant.convertIdToLong(id)));
     }
@@ -112,6 +119,7 @@ public class BasicExamController {
     @ApiOperation(value = "考试管理-设置为当前使用考试")
     @RequestMapping(value = "/set_in_used", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result saveBasicExam(@RequestParam("id") Long id) {
         return ResultUtil.ok(basicExamService.setInUsed(id));
     }

+ 4 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java

@@ -4,7 +4,9 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.service.BasicExamRuleService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -38,6 +40,7 @@ public class BasicExamRuleController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list() {
         return ResultUtil.ok(basicExamRuleService.getBySchoolId());
     }
@@ -50,6 +53,7 @@ public class BasicExamRuleController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@RequestBody BasicExamRule examRule) {
         return ResultUtil.ok(String.valueOf(basicExamRuleService.saveExamRule(examRule)), null);
     }

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java

@@ -2,10 +2,12 @@ package com.qmth.distributed.print.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicMajorParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicMajorService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.util.Result;
@@ -40,6 +42,7 @@ public class BasicMajorController {
     @ApiOperation(value = "专业管理-查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicMajorList(@ApiParam(value = "专业名称") @RequestParam(required = false) String majorName,
                                      @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) {
@@ -50,6 +53,7 @@ public class BasicMajorController {
     @ApiOperation(value = "专业管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicMajor(@Valid @RequestBody BasicMajorParams basicMajorParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -61,6 +65,7 @@ public class BasicMajorController {
     @ApiOperation(value = "专业管理-删除(逻辑)")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicMajor(@ApiParam(value = "专业id", required = true) @RequestParam List<String> idList) {
         if (idList.size() == 0){
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的专业");

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMessageController.java

@@ -8,6 +8,7 @@ import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.service.BasicMessageService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncCourseDataImportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
@@ -15,6 +16,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.EnumResult;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -60,6 +62,7 @@ public class BasicMessageController {
      */
     @ApiOperation(value = "查询短信类型")
     @RequestMapping(value = "/list_message_types", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listType() {
         List<EnumResult> list = basicMessageService.listMessageTypes();
         return ResultUtil.ok(list);
@@ -75,6 +78,7 @@ public class BasicMessageController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "messageType", required = false) MessageEnum messageType,
                        @RequestParam(value = "sendStatus", required = false) Boolean sendStatus,
                        @RequestParam(value = "mobileNumber", required = false) String mobileNumber,
@@ -92,6 +96,7 @@ public class BasicMessageController {
      */
     @ApiOperation(value = "短信失败重发")
     @RequestMapping(value = "/resend", method = RequestMethod.POST)
+    @OperationLogDetail
     public Result list(@RequestParam(value = "id", required = false) Long id) {
         basicMessageService.resendSmsTaskById(id);
         return ResultUtil.ok(true, null);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicOperationLogController.java

@@ -34,7 +34,7 @@ public class BasicOperationLogController {
     @ApiOperation(value = "日志管理-分页查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    @OperationLogDetail(detail = "日志管理-查询",customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findOperationLogPage(@ApiParam(value = "操作类型") @RequestParam(required = false) CustomizedOperationTypeEnum customizedOperationType,
                                        @ApiParam(value = "操作时间 - 起始") @RequestParam(required = false) Long startTime,
                                        @ApiParam(value = "操作时间 - 终止") @RequestParam(required = false) Long endTime,

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicPrintConfigController.java

@@ -4,9 +4,11 @@ package com.qmth.distributed.print.api;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.BasicPrintConfigDto;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.entity.BasicPrintConfig;
 import com.qmth.distributed.print.business.service.BasicPrintConfigService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -46,6 +48,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "分页查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "examId", required = false) Long examId,
                        @RequestParam(value = "enable", required = false) Boolean enable,
                        @RequestParam(value = "createStartTime", required = false) Long createStartTime,
@@ -63,6 +66,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@RequestBody BasicPrintConfig basicPrintConfig) {
         boolean isSuccess = basicPrintConfigService.savePrintConfig(basicPrintConfig);
         return ResultUtil.ok(isSuccess);
@@ -74,6 +78,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestParam(value = "id", required = false) Long id,
                          @RequestParam(value = "enable", required = false) Boolean enable) {
         boolean isSuccess = basicPrintConfigService.enable(id, enable);
@@ -86,6 +91,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result delete(@RequestParam(value = "id", required = false) List<Long> idList) {
         boolean isSuccess = basicPrintConfigService.delete(idList);
         return ResultUtil.ok(isSuccess);
@@ -97,6 +103,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "查询orgId印品")
     @RequestMapping(value = "/get_by_exam_id_and_org_id", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getByOrgId(@RequestParam(value = "examId") Long examId,
                              @RequestParam(value = "orgId") Long orgId) {
         BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndOrgId(examId, orgId);
@@ -109,6 +116,7 @@ public class BasicPrintConfigController {
      */
     @ApiOperation(value = "查询考试下设置印品的机构集合")
     @RequestMapping(value = "/list_org_id_by_exam_id", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listOrgIdsByExamId(@RequestParam(value = "id", required = false) Long id,
                              @RequestParam(value = "examId") Long examId) {
         List<String> orgIds = basicPrintConfigService.listOrgIdsByExamId(id, examId);

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java

@@ -3,6 +3,8 @@ package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -36,6 +38,7 @@ public class BasicSemesterController {
     @ApiOperation(value = "学期管理-查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicSemesterList(@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) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -50,6 +53,7 @@ public class BasicSemesterController {
     @ApiOperation(value = "学期模糊查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "inUsed", required = false) Boolean inUsed) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         return ResultUtil.ok(basicSemesterService.list(schoolId, inUsed));
@@ -58,6 +62,7 @@ public class BasicSemesterController {
     @ApiOperation(value = "学期管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicSemester(@Valid @RequestBody BasicSemesterParams basicSemesterParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -68,6 +73,7 @@ public class BasicSemesterController {
     @ApiOperation(value = "学期管理-删除(逻辑)")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicSemester(@ApiParam(value = "学期id", required = true) @RequestParam String id) {
         return ResultUtil.ok(basicSemesterService.deleteBasicSemesterById(SystemConstant.convertIdToLong(id)));
     }
@@ -80,6 +86,7 @@ public class BasicSemesterController {
     @ApiOperation(value = "学期管理-设置为当前使用学期")
     @RequestMapping(value = "/set_in_used", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result saveBasicSemester(@RequestParam("id") Long id) {
         return ResultUtil.ok(basicSemesterService.setInUsed(id));
     }

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java

@@ -2,9 +2,11 @@ package com.qmth.distributed.print.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.BasicStudentParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncStudentDataImportService;
@@ -52,6 +54,7 @@ public class BasicStudentController {
     @ApiOperation(value = "学生基本信息管理-查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicStudentList(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
                                        @ApiParam(value = "学院主键") @RequestParam(required = false) String collegeId,
                                        @ApiParam(value = "专业主键") @RequestParam(required = false) String majorId,
@@ -70,6 +73,7 @@ public class BasicStudentController {
     @ApiOperation(value = "学生基本信息管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveBasicStudent(@Valid @RequestBody BasicStudentParams basicStudentParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -81,6 +85,7 @@ public class BasicStudentController {
     @ApiOperation(value = "学生基本信息管理-批量删除(物理)")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicStudent(@ApiParam(value = "选择的要删除的学生id集合", required = true) @RequestParam List<String> idList) {
         return ResultUtil.ok(basicStudentService.removeBasicStudentBatch(idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList())));
     }
@@ -88,6 +93,7 @@ public class BasicStudentController {
     @ApiOperation(value = "学生基本信息管理-根据条件删除(物理)")
     @RequestMapping(value = "/delete_by_condition", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBasicStudentByCondition(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
                                                 @ApiParam(value = "学院主键") @RequestParam(required = false) String collegeId,
                                                 @ApiParam(value = "专业主键") @RequestParam(required = false) String majorId,
@@ -107,6 +113,7 @@ public class BasicStudentController {
     @ApiOperation(value = "学生基本信息管理-批量导入(异步)")
     @RequestMapping(value = "/data_import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result basicStudentImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STUDENT_IMPORT);

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicTemplateController.java

@@ -6,8 +6,10 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.TemplateDto;
 import com.qmth.distributed.print.business.entity.BasicTemplate;
 import com.qmth.distributed.print.business.service.BasicTemplateService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ClassifyEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -51,6 +53,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "enable", required = false) Boolean enable,
                        @RequestParam(value = "type", required = false) String type,
                        @RequestParam(value = "name", required = false) String name,
@@ -71,6 +74,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "根据ID查询单个信息")
     @RequestMapping(value = "/get_one", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getOne(@RequestParam("id") Long id) {
         BasicTemplate basicTemplate = basicTemplateService.getOne(id);
         return ResultUtil.ok(basicTemplate);
@@ -84,6 +88,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@RequestBody String data) throws Exception {
         boolean isSuccess = basicTemplateService.saveTemplate(data);
         return ResultUtil.ok(isSuccess);
@@ -97,6 +102,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestBody BasicTemplate template) {
         boolean isSuccess = basicTemplateService.enable(template);
         return ResultUtil.ok(isSuccess);
@@ -110,6 +116,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result enable(@RequestParam(value = "id", required = true) Long id) {
         return ResultUtil.ok(basicTemplateService.remove(id));
     }
@@ -122,6 +129,7 @@ public class BasicTemplateController {
      */
     @ApiOperation(value = "读取模板内容")
     @RequestMapping(value = "/read_content", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result readContent(@RequestParam Long id) {
         return ResultUtil.ok(basicTemplateService.preview(id), null);
     }

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/DownloadController.java

@@ -5,10 +5,12 @@ import com.qmth.distributed.print.business.bean.params.DownloadPaperFileParam;
 import com.qmth.distributed.print.business.service.DownloadService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPaperFileBatchService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
@@ -51,6 +53,7 @@ public class DownloadController {
     @ApiOperation(value = "分页查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Object page(@ApiParam(value = "学期ID", required = false) @RequestParam(required = false) Long semesterId,
                        @ApiParam(value = "考试ID", required = false) @RequestParam(required = false) Long examId,
                        @ApiParam(value = "学院ID", required = false) @RequestParam(required = false) Long orgId,
@@ -69,6 +72,7 @@ public class DownloadController {
     @ApiOperation(value = "单课程下载")
     @RequestMapping(value = "/download_one", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "单课程下载", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void downloadOne(HttpServletResponse response, @ApiParam(value = "任务ID", required = false) @RequestParam(required = false) Long id) throws Exception {
         downloadService.paperDownload(response, id);
     }
@@ -76,6 +80,7 @@ public class DownloadController {
     @ApiOperation(value = "批量下载")
     @RequestMapping(value = "/download_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "批量下载", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Object downloadBatch(@Valid @RequestBody DownloadPaperFileParam downloadPaperFileParam, BindingResult bindingResult) throws Exception {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -10,12 +10,15 @@ import com.qmth.distributed.print.business.bean.params.GenericExamCardParams;
 import com.qmth.distributed.print.business.entity.ExamCard;
 import com.qmth.distributed.print.business.service.BasicPrintConfigService;
 import com.qmth.distributed.print.business.service.ExamCardService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicPrintConfig;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -62,6 +65,7 @@ public class ExamCardController {
      */
     @ApiOperation(value = "分页查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result page(@RequestParam(value = "type", defaultValue = "GENERIC") String type,
                        @RequestParam(value = "title", required = false) String title,
                        @RequestParam(value = "createMethod", required = false) String createMethod,
@@ -81,6 +85,7 @@ public class ExamCardController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save_generic", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@RequestBody GenericExamCardParams params) throws Exception {
         Long id = examCardService.saveGeneric(params);
         return ResultUtil.ok(String.valueOf(id),"");

+ 12 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -7,9 +7,11 @@ import com.qmth.distributed.print.business.service.ExamStudentService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationExportTemplateService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
@@ -62,6 +64,7 @@ public class ExamDetailController {
     @ApiOperation(value = "异步考务数据批量导入接口")
     @RequestMapping(value = "/data_import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result examinationImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                          @ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId) throws Exception {
         Map<String, Object> map = printCommonService.saveTask(SystemConstant.convertIdToLong(printPlanId), file, TaskTypeEnum.EXAMINATION_IMPORT);
@@ -73,6 +76,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-查询")
     @RequestMapping(value = "/data_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExaminationBrief(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                                        @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                        @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
@@ -98,6 +102,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-汇总数据查询")
     @RequestMapping(value = "/data_total", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findSummarizedData(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                                      @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                      @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
@@ -121,6 +126,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-查看明细")
     @RequestMapping(value = "/data_detail", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExaminationDetail(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                                         @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                         @ApiParam(value = "印刷计划主键集合") @RequestParam(required = false) List<String> printPlanIdList,
@@ -146,6 +152,7 @@ public class ExamDetailController {
     @ApiOperation(value = "查看考生明细")
     @RequestMapping(value = "/get_student_detail", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getStudentDetail(@ApiParam(value = "考生表主键") @RequestParam(required = false) Long id) {
         Map<String, Object> map = examStudentService.getStudentDetail(id);
         return ResultUtil.ok(map);
@@ -155,6 +162,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-查看明细弹窗")
     @RequestMapping(value = "/data_detail_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExaminationDetailById(@ApiParam(value = "考务场次id", required = true) @RequestParam String examDetailId,
                                             @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) {
@@ -165,6 +173,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-考点模糊查询")
     @RequestMapping(value = "/data_place_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExamPlaceDatasource(@RequestParam(value = "param", required = false) String param,
                                           @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
         if (Objects.isNull(printPlanId)) {
@@ -177,6 +186,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-考场模糊查询")
     @RequestMapping(value = "/data_room_query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExamRoomDatasource(@RequestParam(value = "param", required = false) String param,
                                          @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
         if (Objects.isNull(printPlanId)) {
@@ -189,6 +199,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-模板下载")
     @RequestMapping(value = "/template_download", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void downLoadExaminationTemplate() throws IOException {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         examDetailService.downLoadExaminationTemplate(schoolId, ServletUtil.getResponse());
@@ -197,6 +208,7 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-结果导出")
     @RequestMapping(value = "/data_export", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
     public Result dataExport(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                              @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                              @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,

+ 10 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java

@@ -8,8 +8,10 @@ import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
 import com.qmth.distributed.print.business.service.ExamPaperStructureService;
 import com.qmth.distributed.print.business.templete.execute.AsyncCloudMarkingTaskService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -48,6 +50,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@ApiParam(value = "学期ID", required = false) @RequestParam(required = false) Long semesterId,
                        @ApiParam(value = "考试ID", required = false) @RequestParam(required = false) Long examId,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -66,6 +69,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "上传试卷结构、标答")
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result upload(@RequestParam("examPaperStructure") String examPaperStructure,
                          @RequestParam("md5") String md5,
                          @RequestParam("keys") String keys,
@@ -77,6 +81,7 @@ public class ExamPaperStructureController {
     @ApiOperation(value = "评卷参数-提交")
     @RequestMapping(value = "/submit", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result submitExamPaperParams(@RequestBody String evaluationParameters) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         ExamPaperStructure examPaperStructure = examPaperStructureService.submitExamPaperParams(evaluationParameters, sysUser);
@@ -94,6 +99,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "上传试卷标答文件")
     @RequestMapping(value = "/upload_answer", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result uploadAnswer(@RequestParam("id") String id,
                                @RequestParam("md5") String md5,
                                @RequestParam("file") MultipartFile file) {
@@ -111,6 +117,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "设置科组长")
     @RequestMapping(value = "/bind_mark_leader", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result bindMarkLeader(@RequestBody String data) {
         ExamPaperStructure examPaperStructure = examPaperStructureService.bindMarkLeader(data);
         // 异步同步到云阅卷
@@ -125,6 +132,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "更新客观题答案")
     @RequestMapping(value = "/update_objective_answer", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result updateObjectiveAnswer(@RequestBody String body) {
         JSONObject object = JSONObject.parseObject(body, JSONObject.class);
         Long id = object.getLong("id");
@@ -142,6 +150,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "试卷结构预览")
     @RequestMapping(value = "/preview_structure", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result preStructure(@RequestParam("id") Long id) {
         List<Map> list = examPaperStructureService.preStructure(id);
         return ResultUtil.ok(list);
@@ -151,6 +160,7 @@ public class ExamPaperStructureController {
     @ApiOperation(value = "评卷参数设置-获取题卡图片")
     @RequestMapping(value = "/find_jpg_file", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findCardJpgFileByPaperNumber(@ApiParam(value = "考试id", required = true) @RequestParam String examId,
                                                @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
                                                @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,

+ 19 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -19,12 +19,14 @@ import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.distributed.print.business.service.ExamTaskDetailService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPdfTempleteService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -76,6 +78,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                                     @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                     @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
@@ -96,6 +99,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findPrintPlanQuery(@RequestParam(value = "source", required = false) String source,
                                      @RequestParam(value = "module", required = false) String module) {
         return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery(source, module));
@@ -104,6 +108,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "按类型查询模板")
     @RequestMapping(value = "/get_template", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findPrintPlanPage() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser user = (SysUser) ServletUtil.getRequestUser();
@@ -114,6 +119,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划-新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result savePrintPlan(@Valid @RequestBody PrintPlanParams printPlanParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -126,6 +132,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划-删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result removePrintPlan(@Valid @RequestBody DeleteParams deleteParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -147,6 +154,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "关联试卷管理-查询")
     @RequestMapping(value = "/relate_list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result relateList(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                              @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                              @RequestParam(value = "relateType", required = false) String relateType,
@@ -173,6 +181,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "关联/更换试卷")
     @RequestMapping(value = "/relate_update", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result relateUpdate(@RequestBody RelatePaperParam paperParam) throws IOException {
         boolean isSuccess = examTaskDetailService.updatePaper(paperParam);
         return ResultUtil.ok(isSuccess);
@@ -186,6 +195,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "查询所有试卷编号/关联卷型")
     @RequestMapping(value = "/relate_get_paper_numbers", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result relateGetPaperNumbers(@RequestParam(value = "examTaskId", required = true) Long examTaskId,
                                         @RequestParam(value = "printPlanId", required = true) Long printPlanId,
                                         @RequestParam(value = "courseCode", required = true) String courseCode) {
@@ -210,6 +220,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-查询")
     @RequestMapping(value = "/task_list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskList(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
                            @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                            @RequestParam(value = "printPlanId", required = false) Long printPlanId,
@@ -237,6 +248,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-提交印刷")
     @RequestMapping(value = "/task_submit", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskSubmit(@RequestBody ExamDetail examDetail) throws IOException {
         boolean isSuccess = examDetailService.submitTask(examDetail);
         return ResultUtil.ok(isSuccess);
@@ -250,6 +262,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-撤回提交")
     @RequestMapping(value = "/task_cancel", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskCancel(@RequestBody ExamDetail examDetail) {
         boolean isSuccess = examDetailService.taskCancel(examDetail);
         return ResultUtil.ok(isSuccess);
@@ -264,6 +277,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-重新提交")
     @RequestMapping(value = "/task_resubmit", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskResubmit(@RequestBody ExamDetail examDetail) throws IOException {
         boolean isSuccess = examDetailService.resubmitTask(examDetail);
         return ResultUtil.ok(isSuccess);
@@ -284,6 +298,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-汇总数据查询")
     @RequestMapping(value = "/task_total_data", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskTotalData(@RequestParam(value = "printPlanId", required = false) Long printPlanId,
                                 @RequestParam(value = "status", required = false) String status,
                                 @RequestParam(value = "courseCode", required = false) String courseCode,
@@ -307,6 +322,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-查看印品")
     @RequestMapping(value = "/template_view", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result tempalteViewPDF(@RequestBody Map<String, Long> map) {
         List<Map<String, String>> list = examPrintPlanService.tempalteView(map.get("printPlanId"));
         return ResultUtil.ok(list);
@@ -320,6 +336,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-查看PDF")
     @RequestMapping(value = "/task_view_pdf", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskViewPDF(@RequestBody Map<String, Long> map) {
         List<JSONObject> list = examDetailService.taskViewPDF(map.get("examDetailId"));
         return ResultUtil.ok(list);
@@ -328,6 +345,7 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷任务管理-批量下载PDF")
     @RequestMapping(value = "/task_download_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskDownloadPdf(@ApiParam(value = "id数组", required = true) @Valid @RequestBody ArraysParams arraysParams, BindingResult bindingResult) throws Exception {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -352,6 +370,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-做废/恢复")
     @RequestMapping(value = "/task_normal", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskNormal(@RequestBody ExamDetail examDetail) {
         boolean isSuccess = examDetailService.taskNormal(examDetail);
         return ResultUtil.ok(isSuccess);

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -4,7 +4,9 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -45,6 +47,7 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-计划查询")
     @RequestMapping(value = "/list_sync", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                                     @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
                                     @ApiParam(value = "印刷计划ID") @RequestParam(required = false) Long printPlanId,
@@ -64,6 +67,7 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-合并推送-云阅卷考试ID列表")
     @RequestMapping(value = "/list_relate_ids", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
                                     @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -81,6 +85,7 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-合并推送-多计划合并同步")
     @RequestMapping(value = "/sync_data_merge", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result syncDataCloud(@RequestBody SyncDataParam syncDataParam) {
         examPrintPlanService.syncDataMerge(syncDataParam);
         return ResultUtil.ok(true);
@@ -96,6 +101,7 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-批量同步")
     @RequestMapping(value = "/sync_data_cloud_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result syncDataCloudBatch(@RequestBody SyncDataParam syncDataParam) {
         examPrintPlanService.syncDataCloudBatch(syncDataParam);
         return ResultUtil.ok(true);
@@ -112,6 +118,7 @@ public class ExamPrintPlanSyncController {
     @ApiOperation(value = "印刷计划合并管理-同步失败-单个手动同步")
     @RequestMapping(value = "/sync_data_cloud", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result syncDataCloud(@RequestParam(value = "printPlanId") Long printPlanId,
                                 @RequestParam(value = "thirdRelateId", required = false) Long thirdRelateId) {
         examPrintPlanService.syncDataCloud(printPlanId, thirdRelateId);

+ 50 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.api;
 
-import com.alibaba.fastjson.JSON;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailCardDto;
@@ -11,25 +10,30 @@ import com.qmth.distributed.print.business.bean.params.ApproveFormParams;
 import com.qmth.distributed.print.business.bean.params.ExamTaskApplyParam;
 import com.qmth.distributed.print.business.bean.params.ExamTaskPrintParams;
 import com.qmth.distributed.print.business.bean.params.ExamTaskReApplyParam;
+import com.qmth.distributed.print.business.bean.result.CalculateNotifyResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncTaskReviewSampleExportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.sun.jna.platform.unix.X11;
 import io.swagger.annotations.*;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
+import org.redisson.MapWriterTask;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
@@ -120,6 +124,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-分页查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(required = false) String semesterId,
                        @RequestParam(required = false) String examId,
                        @RequestParam(required = false) Boolean enable,
@@ -142,6 +147,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "试卷编号模糊查询")
     @RequestMapping(value = "/paper_number_query", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result paperNumberQuery(@RequestParam(value = "param", required = false) String param,
                                    @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
 
@@ -157,6 +163,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题老师模糊查询")
     @RequestMapping(value = "/user_query", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result userQuery(@RequestParam(value = "param", required = false) String param) {
         return ResultUtil.ok(examTaskService.listUser(param));
     }
@@ -166,6 +173,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-更改/指派命题老师")
     @RequestMapping(value = "/assign_user", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result assignUser(@RequestBody ExamTask examTask) {
         return ResultUtil.ok(examTaskService.assignUser(examTask));
     }
@@ -175,6 +183,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestBody ExamTask examTask) {
         return ResultUtil.ok(examTaskService.enable(examTask));
     }
@@ -184,6 +193,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-新建命题任务")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result save(@RequestBody ExamTask examTask) {
         examTaskService.saveExamTaskNew(examTask);
         return ResultUtil.ok(true);
@@ -194,6 +204,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-批量新建命题任务-文件导入")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result importFile(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) {
         BasicAttachment basicAttachment = null;
         try {
@@ -222,6 +233,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-批量新建命题任务-保存")
     @RequestMapping(value = "/save_batch", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result saveBatch(@RequestBody ExamTask task) {
         examTaskService.saveBatch(task);
         return ResultUtil.ok(true);
@@ -252,6 +264,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-分页查询")
     @RequestMapping(value = "/apply_list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskApplyList(@RequestParam(value = "semesterId", required = false) Long semesterId,
                                 @RequestParam(value = "examId", required = false) Long examId,
                                 @RequestParam(value = "auditStatus", required = false) String auditStatus,
@@ -274,6 +287,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "根据命题任务ID查询任务详情数据")
     @RequestMapping(value = "/exam_task_get_one", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result applyGetOne(@RequestParam(value = "examTaskId") Long examTaskId) {
         ExamTaskDto examTaskDto = examTaskService.getByExamTaskId(examTaskId);
         return ResultUtil.ok(examTaskDto);
@@ -287,6 +301,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "根据命题任务ID查询任务详情数据")
     @RequestMapping(value = "/apply_get_one", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result applyGetOne(@RequestParam(value = "examTaskId") Long examTaskId,
                               @RequestParam(value = "source", required = false) String source) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -326,6 +341,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-暂存/提交")
     @RequestMapping(value = "/apply_save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result taskApplySave(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
         boolean isSuccess = examTaskService.saveExamTaskDetail(examTaskDetail);
         ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
@@ -339,6 +355,7 @@ public class ExamTaskController {
 
     @ApiOperation(value = "审核-印刷员驳回后命题老师修改")
     @RequestMapping(value = "/apply_resave", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskReApplySave(@RequestBody ExamTaskReApplyParam examTaskReApplyParam) {
         examTaskService.applyResave(examTaskReApplyParam);
         return ResultUtil.ok();
@@ -352,6 +369,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-撤销申请")
     @RequestMapping(value = "/apply_status", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskApplyStatus(@RequestBody ExamTask examTask) {
         return ResultUtil.ok(examTaskService.status(examTask));
     }
@@ -374,6 +392,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库审核-查询-未审核")
     @RequestMapping(value = "/review_list_unaudited", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskReviewListUnaudited(@RequestParam(value = "semesterId", required = false) Long semesterId,
                                           @RequestParam(value = "examId", required = false) Long examId,
                                           @RequestParam(value = "courseCode", required = false) String courseCode,
@@ -408,6 +427,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库审核-查询-已审核")
     @RequestMapping(value = "/review_list_audited", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskReviewListAudited(@RequestParam(value = "semesterId", required = false) Long semesterId,
                                         @RequestParam(value = "examId", required = false) Long examId,
                                         @RequestParam(value = "reviewStatus", required = false) String reviewStatus,
@@ -432,6 +452,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库审核-查询-已审核数量")
     @RequestMapping(value = "/review_list_audited_count", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskReviewListAuditedCount() {
         int taskReviewAuditedCount = examTaskService.listTaskReviewAudited(null, null, null, null, null, null, null, null, null, null, null, null, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE).getRecords().size();
         long paperCount = examPaperStructureService.countByPropositionTeacherId(true);
@@ -447,6 +468,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "审核")
     @RequestMapping(value = "/review_save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result taskReviewSave(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
         List<Long> examTaskIdList = new ArrayList<>();
         examTaskIdList.add(taskReviewLog.getExamTaskId());
@@ -473,6 +495,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库审核-批量审核")
     @RequestMapping(value = "/review_save_batch", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result taskReviewSaveBatch(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
         List<Long> examTaskIdList = Arrays.asList(taskReviewLog.getExamTaskIds());
         if (!CollectionUtils.isEmpty(examTaskIdList)) {
@@ -503,6 +526,7 @@ public class ExamTaskController {
 
     @ApiOperation(value = "导出审核样本")
     @RequestMapping(value = "/review_export", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
     public Result taskReviewExport(@Valid @RequestBody ArraysParams arraysParams, BindingResult bindingResult) throws
             Exception {
         if (bindingResult.hasErrors()) {
@@ -529,6 +553,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询")
     @RequestMapping(value = "/paper_list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskPaperList(@RequestParam(value = "semesterId", required = false) Long semesterId,
                                 @RequestParam(value = "examId", required = false) Long examId,
                                 @RequestParam(value = "courseCode", required = false) String courseCode,
@@ -550,6 +575,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "下载")
     @RequestMapping(value = "/paper_download", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void taskPaperDownload(HttpServletResponse response, @RequestParam Long examTaskId) throws Exception {
         examTaskService.paperDownload(response, examTaskId);
     }
@@ -562,6 +588,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-启用/禁用")
     @RequestMapping(value = "/paper_enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskPaperEnable(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
         boolean isSuccess = examTaskDetailService.enable(examTaskDetail);
         // 启用,触发考场生成pdf
@@ -586,6 +613,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-卷库修改")
     @RequestMapping(value = "/paper_update", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskPaperUpdate(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
         boolean isSuccess = examTaskDetailService.paperUpdate(examTaskDetail);
         if (isSuccess) {
@@ -609,6 +637,7 @@ public class ExamTaskController {
     @ApiOperation(value = "卷库查询-批量下载试卷PDF、题卡")
     @RequestMapping(value = "/paper_card_download_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result paperCardDownloadPdf(@RequestParam(value = "semesterId", required = false) Long semesterId,
                                        @RequestParam(value = "examId", required = false) Long examId,
                                        @RequestParam(value = "courseCode", required = false) String courseCode,
@@ -629,6 +658,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-命题申请-班级列表")
     @RequestMapping(value = "/list_task_apply_class", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskApplyClass(@RequestParam(value = "courseCode") String courseCode) {
         return ResultUtil.ok(examTaskPrintService.listExamTaskClass(courseCode));
     }
@@ -641,6 +671,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "命题任务管理-命题申请-暂存")
     @RequestMapping(value = "/stage_task_apply", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result stageTaskApply(@RequestBody ExamTaskApplyTemp examTaskApplyTemp) {
         ExamTaskApplyTemp task = examTaskApplyTempService.stageTaskApply(examTaskApplyTemp);
         return ResultUtil.ok(task);
@@ -654,7 +685,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-新建任务-保存")
     @RequestMapping(value = "/submit_task_apply", method = RequestMethod.POST)
-//    @OperationLogDetail(detail = "入库申请-新建任务(一步到位)",level = LevelEnum.PRIMARY)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result submitTaskApply(@RequestBody ExamTaskApplyTemp examTaskApplyTemp) throws IOException {
         ExamTask examTask = examTaskService.submitTaskApply(examTaskApplyTemp);
         if (!examTask.getReview()) {
@@ -672,6 +703,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-新建命题任务-暂存/提交")
     @RequestMapping(value = "/save_task_apply", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result saveTaskApply(@RequestBody ExamTaskApplyParam examTaskApplyParam) throws IOException {
         ExamTask examTask = examTaskService.saveExamTaskAndExamTaskDetail(examTaskApplyParam);
         if (examTaskApplyParam.getExamTaskDetail().getOperateType().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
@@ -690,6 +722,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "入库申请-新建命题任务-取消/删除")
     @RequestMapping(value = "/remove_task_apply", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result removeTaskApply(@RequestParam(value = "examTaskId") Long examTaskId) {
         examTaskService.removeByExamTaskId(examTaskId);
         return ResultUtil.ok(true, "");
@@ -703,6 +736,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "切换题卡")
     @RequestMapping(value = "/switch_card", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result switchCard(@RequestParam(value = "examTaskId") Long examTaskId) {
         examTaskService.switchCard(examTaskId);
         return ResultUtil.ok(true, "");
@@ -718,6 +752,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-查看列表")
     @RequestMapping(value = "/list_task_print", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskPrintStudent(@RequestParam(value = "printPlanId") Long printPlanId,
                                        @RequestParam(value = "courseCode") String courseCode,
                                        @RequestParam(value = "paperNumber") String paperNumber) {
@@ -732,6 +767,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-扩展字段列表")
     @RequestMapping(value = "/list_task_print_extend_fields", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskPrintExtendFields() {
         return ResultUtil.ok(examTaskPrintService.listTaskPrintExtendFields());
     }
@@ -744,6 +780,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-班级列表")
     @RequestMapping(value = "/list_task_print_class", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskPrintClass(@RequestParam(value = "printPlanId") String printPlanId,
                                      @RequestParam(value = "courseCode") String courseCode,
                                      @RequestParam(value = "paperNumber") String paperNumber,
@@ -758,6 +795,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-印刷室列表")
     @RequestMapping(value = "/list_task_print_house", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskPrintHouse() {
         return ResultUtil.ok(examTaskPrintService.listHouse());
     }
@@ -770,6 +808,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务")
     @RequestMapping(value = "/save_task_print", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result createTaskPrint(@RequestBody ExamTaskPrint examTaskPrint) {
         examTaskPrintService.createTaskPrint(examTaskPrint);
         return ResultUtil.ok(true, "");
@@ -783,6 +822,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-批量提交印刷任务")
     @RequestMapping(value = "/submit_task_print", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result submitTaskPrint(@RequestBody ExamTaskPrintParams examTaskPrintParams) throws IOException {
         examTaskPrintService.submitTaskPrint(examTaskPrintParams);
         return ResultUtil.ok(true, "");
@@ -796,6 +836,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-查看考生")
     @RequestMapping(value = "/list_task_print_student", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listTaskPrintStudent(@RequestParam(value = "classId") String classId,
                                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
@@ -811,6 +852,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "卷库查询-发布印刷任务-删除")
     @RequestMapping(value = "/remove_task_print", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result listTaskPrintStudent(@RequestParam(value = "examTaskPrintId") Long examTaskPrintId) {
         examTaskPrintService.remove(examTaskPrintId);
         return ResultUtil.ok(true, "");
@@ -819,6 +861,7 @@ public class ExamTaskController {
     @ApiOperation(value = "题卡标题查询")
     @RequestMapping(value = "/find_card_title", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findCardTitle(@ApiParam(value = "题卡规则id", required = true) @RequestParam String cardRuleId) {
         return ResultUtil.ok((Object) examTaskService.findCardTitle(SystemConstant.convertIdToLong(cardRuleId)));
     }
@@ -826,6 +869,7 @@ public class ExamTaskController {
     @ApiOperation(value = "命题任务-审批-获取试卷审批表数据")
     @RequestMapping(value = "/find_approve_form_json", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findApproveFormJson(@ApiParam(value = "命题任务id", required = true) @RequestParam String examTaskId) {
         return ResultUtil.ok((Object) examTaskService.findExamTaskApprovalForm(SystemConstant.convertIdToLong(examTaskId)));
     }
@@ -833,6 +877,7 @@ public class ExamTaskController {
     @ApiOperation(value = "命题任务-审批-获取试卷审批表pdf")
     @RequestMapping(value = "/find_approve_form_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void findApproveFormPdf(@Valid @RequestBody ApproveFormParams approveFormParams, BindingResult bindingResult) throws Exception {
         if (bindingResult.hasErrors()) {
             throw ExceptionResultEnum.ERROR.exception(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -844,6 +889,7 @@ public class ExamTaskController {
     @ApiOperation(value = "命题任务-考试对象查询")
     @RequestMapping(value = "/find_exam_object", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExamObject(@ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
         return ResultUtil.ok((Object) examTaskService.findExamObjectDtoByPaperNumber(paperNumber));
     }
@@ -852,6 +898,7 @@ public class ExamTaskController {
     @RequestMapping(value = "/find_exam_task_student_object", method = RequestMethod.POST)
     @Transactional(rollbackFor = Exception.class)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findExamTaskStudentObject(@RequestParam ExamObjectType examObjectType,
                                             @RequestParam(required = false) String courseCode) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -862,6 +909,7 @@ public class ExamTaskController {
     @RequestMapping(value = "/exam_task_exam_student_import", method = RequestMethod.POST)
     @Transactional(rollbackFor = Exception.class)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result examTaskExamStudentImport(@RequestParam MultipartFile file) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(examTaskService.examTaskExamStudentImport(file, requestUser));

+ 9 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java

@@ -7,9 +7,11 @@ import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchResult;
 import com.qmth.distributed.print.business.entity.GradeBatch;
 import com.qmth.distributed.print.business.service.GradeBatchService;
 import com.qmth.distributed.print.business.templete.execute.AsyncTeachCloudReportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -48,6 +50,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradeBatchPage(@ApiParam(value = "分析批次名称") @RequestParam(required = false) String gradeBatchName,
                                      @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) {
@@ -59,6 +62,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次-新建")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveGradeBatch(@Valid @RequestBody GradeBatchParam gradeBatchParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -70,6 +74,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次-删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = SystemConstant.PUSH_OPERATE_NOTICE, response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteGradeBatch(@ApiParam(value = "选择的要删除的成绩分析批次id", required = true) @RequestParam String id) {
         GradeBatch gradeBatch = gradeBatchService.getById(SystemConstant.convertIdToLong(id));
         if(gradeBatch == null){
@@ -87,6 +92,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次课程-考务数据下载")
     @RequestMapping(value = "/download", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void downloadFile(@RequestParam Long batchId) throws IOException {
         gradeBatchService.downloadFile(batchId, ServletUtil.getResponse());
     }
@@ -101,6 +107,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次课程-考务数据导入")
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "上传成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result upload(@RequestParam Long batchId,
                          @RequestParam MultipartFile file) throws IOException, NoSuchFieldException {
         gradeBatchService.uploadFile(batchId, file);
@@ -115,6 +122,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次课程-批次同步")
     @RequestMapping(value = "/push", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "同步成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result batchSync(@RequestParam Long batchId) {
         GradeBatch gradeBatch = gradeBatchService.getById(batchId);
         if(gradeBatch == null){
@@ -132,6 +140,7 @@ public class GradeBatchController {
     @ApiOperation(value = "成绩分析批次课程-开始计算")
     @RequestMapping(value = "/start_calc", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "同步成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result startCalc(@RequestParam Long batchId) {
         GradeBatch gradeBatch = gradeBatchService.getById(batchId);
         if(gradeBatch == null){

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java

@@ -7,9 +7,11 @@ import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperRe
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.templete.execute.AsyncTeachCloudReportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -49,6 +51,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradeBatchPaperPage(@ApiParam(value = "批次id", required = true) @RequestParam String batchId,
                                           @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                           @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName,
@@ -65,6 +68,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-查询开课学院")
     @RequestMapping(value = "/find_teach_college", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradeBatchPaperPage(@ApiParam(value = "考试id") @RequestParam(required = false) String examId) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(gradeBatchPaperService.findTeachCollegeList(requestUser.getSchoolId(), SystemConstant.convertIdToLong(examId)));
@@ -73,6 +77,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-查询可分析试卷")
     @RequestMapping(value = "/able", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findAbleAnalyzePaperList(@ApiParam(value = "批次id", required = true) @RequestParam String batchId,
                                            @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                            @ApiParam(value = "学院id") @RequestParam(required = false) String collegeId,
@@ -89,6 +94,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-新建")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveGradeBatchPaper(@Valid @RequestBody GradeBatchPaperParam gradeBatchPaperParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -101,6 +107,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteGradeBatchPaper(@ApiParam(value = "批次ID", required = true) @RequestParam Long batchId,
                                         @ApiParam(value = "选择的要删除的成绩分析课程id集合", required = true) @RequestParam List<String> idList) {
         gradeBatchPaperService.deleteGradeBatchPaper(batchId, idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList()));
@@ -115,6 +122,7 @@ public class GradeBatchPaperController {
     @ApiOperation(value = "成绩分析批次课程-发布")
     @RequestMapping(value = "/publish", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "发布成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result publish(@RequestParam Long batchId, @RequestParam Long gradeBatchPaperId) {
         GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.getById(gradeBatchPaperId);
         if (gradeBatchPaper == null) {

+ 4 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeModuleEvaluationController.java

@@ -5,9 +5,11 @@ import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleEvalua
 import com.qmth.distributed.print.business.bean.result.analyze.GradeModuleEvaluationResult;
 import com.qmth.distributed.print.business.service.GradeModuleEvaluationService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -42,6 +44,7 @@ public class GradeModuleEvaluationController {
     @ApiOperation(value = "成绩分析模块评价-查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeModuleEvaluationResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradeModuleEvaluationList(@ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                                 @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) {
 
@@ -55,6 +58,7 @@ public class GradeModuleEvaluationController {
     @ApiOperation(value = "成绩分析模块评价-新建模块评价")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result saveGradeModuleEvaluationBatch(@Valid @RequestBody GradeModuleEvaluationParam gradeModuleEvaluationParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperController.java

@@ -6,8 +6,10 @@ import com.qmth.distributed.print.business.bean.result.analyze.GradeInitResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradePaperDefineResult;
 import com.qmth.distributed.print.business.service.GradeInitializeService;
 import com.qmth.distributed.print.business.service.GradePaperService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -43,6 +45,7 @@ public class GradePaperController {
     @ApiOperation(value = "成绩分析课程数据初始化")
     @RequestMapping(value = "/initialize", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeInitResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradePaperInitialize(@ApiParam(value = "学期id") @RequestParam(required = false) String semesterId,
                                            @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                                            @ApiParam(value = "课程编号") @RequestParam(required = false) String courseCode,
@@ -56,6 +59,7 @@ public class GradePaperController {
     @ApiOperation(value = "成绩分析课程-查询定义")
     @RequestMapping(value = "/paper_define", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradePaperDefineResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradePaperDefine(@ApiParam(value = "课程编号", required = true) @RequestParam String paperNumber,
                                        @ApiParam(value = "课程编号", required = true) @RequestParam String paperType) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
@@ -66,6 +70,7 @@ public class GradePaperController {
     @ApiOperation(value = "成绩分析课程-新建定义")
     @RequestMapping(value = "/save_define", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveGradePaperDefine(@Valid @RequestBody GradePaperDefineParam gradePaperDefineParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperDimensionController.java

@@ -3,11 +3,13 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDimensionParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradePaperDimensionResult;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.enums.DimensionEnum;
 import com.qmth.distributed.print.business.service.GradePaperDimensionService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -41,6 +43,7 @@ public class GradePaperDimensionController {
     @ApiOperation(value = "成绩分析维度-查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradePaperDimensionResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradePaperDimensionList(@ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                               @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) {
 
@@ -54,6 +57,7 @@ public class GradePaperDimensionController {
     @ApiOperation(value = "成绩分析维度-新建维度")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result saveGradePaperDimensionBatch(@Valid @RequestBody GradePaperDimensionParam gradePaperDimensionParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -66,6 +70,7 @@ public class GradePaperDimensionController {
     @ApiOperation(value = "成绩分析维度-导入")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result gradePaperDimensionImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                             @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                             @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType,
@@ -93,6 +98,7 @@ public class GradePaperDimensionController {
     @ApiOperation(value = "成绩分析维度-模板导出")
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
     public Result gradePaperDimensionExport(@ApiParam(value = "课程编号", required = true) @RequestParam String courseCode,
                                             @ApiParam(value = "课程名称", required = true) @RequestParam String courseName,
                                             @ApiParam(value = "维度类型", required = true) @RequestParam DimensionEnum dimensionType) throws Exception {

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperStructController.java

@@ -4,9 +4,11 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.analyze.GradePaperStructParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradePaperStructResult;
 import com.qmth.distributed.print.business.service.GradePaperStructService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -14,6 +16,7 @@ import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.annotation.ApplicationScope;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -40,6 +43,7 @@ public class GradePaperStructController {
     @ApiOperation(value = "成绩分析试卷结构-查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradePaperStructResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findGradePaperStructList(@ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                            @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) {
 
@@ -53,6 +57,7 @@ public class GradePaperStructController {
     @ApiOperation(value = "成绩分析试卷结构-新建试卷结构")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveGradePaperStructBatch(@Valid @RequestBody GradePaperStructParam gradePaperStructParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -65,6 +70,7 @@ public class GradePaperStructController {
     @ApiOperation(value = "成绩分析试卷结构-导入")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result gradePaperStructImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                          @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                          @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType,
@@ -81,6 +87,7 @@ public class GradePaperStructController {
     @ApiOperation(value = "成绩分析试卷结构-模板导出")
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
     public Result gradePaperStructExport(@ApiParam(value = "课程编号", required = true) @RequestParam String paperNumber,
                                          @ApiParam(value = "课程名称", required = true) @RequestParam String paperType) throws Exception {
 
@@ -95,6 +102,7 @@ public class GradePaperStructController {
     @ApiOperation(value = "成绩分析试卷结构-更新试卷机构")
     @RequestMapping(value = "/change_paper_structure", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result updateExamCloudPaperStruct(@ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                                              @ApiParam(value = "试卷类型") @RequestParam(required = false) String paperType) {
         if (SystemConstant.isOneNull(paperNumber)){

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SsoController.java

@@ -4,10 +4,12 @@ package com.qmth.distributed.print.api;
 import com.alibaba.fastjson.JSON;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.SsoService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -43,6 +45,7 @@ public class SsoController {
      */
     @ApiOperation(value = "评卷员单点登录")
     @RequestMapping(value = "/marker_login", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result markerLogin() {
         Map<String, Object> map = ssoService.markerLoginInfo();
         return ResultUtil.ok(map);
@@ -55,6 +58,7 @@ public class SsoController {
      */
     @ApiOperation(value = "评卷员单点登录")
     @RequestMapping(value = "/marker_leader_login", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result markerLeaderLogin() {
         Map<String, Object> map = ssoService.markerLeaderLoginInfo();
         return ResultUtil.ok(map);
@@ -63,6 +67,7 @@ public class SsoController {
     @ApiOperation(value = "题库单点登录")
     @ApiResponses({@ApiResponse(code = 200, message = "题库单点登录", response = Result.class)})
     @RequestMapping(value = "/question_library_login", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result questionLibraryLogin(@ApiParam(value = "登录名", required = true) @RequestParam String loginName,
                                        @ApiParam(value = "真实姓名", required = true) @RequestParam String realName,
                                        @ApiParam(value = "角色", required = true) @RequestParam RoleTypeEnum role,
@@ -86,6 +91,7 @@ public class SsoController {
     @ApiOperation(value = "教研分析单点登录")
     @ApiResponses({@ApiResponse(code = 200, message = "教研分析单点登录", response = Result.class)})
     @RequestMapping(value = "/analysis_login", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result analysisLogin(@ApiParam(value = "登录名", required = true) @RequestParam String loginName,
                                 @ApiParam(value = "角色", required = true) @RequestParam RoleTypeEnum role,
                                 @ApiParam(value = "学院名称", required = true) @RequestParam String orgName,

+ 17 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysAdminSetController.java

@@ -6,11 +6,14 @@ import com.qmth.distributed.print.business.backup.MySQLDatabaseBackup;
 import com.qmth.distributed.print.business.bean.params.SysAdminSetParam;
 import com.qmth.distributed.print.business.bean.result.CustomPrivilegeResult;
 import com.qmth.distributed.print.business.bean.result.SysAdminSetResult;
+import com.qmth.teachcloud.common.annotation.EditKey;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.dto.PrivilegeDto;
 import com.qmth.teachcloud.common.bean.result.SysConfigResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -72,6 +75,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "数据还原")
     @ApiResponses({@ApiResponse(code = 200, message = "数据还原信息", response = ResultUtil.class)})
     @RequestMapping(value = "/backup", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result sysadminBackup(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) throws Exception {
         mySQLDatabaseBackup.exportDatabaseTool();
         mySQLDatabaseBackup.deleteDbTool(SystemConstant.PRINT_DELETE_DATA_FILE_NAME, schoolId);
@@ -81,6 +85,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "同步配置查询")
     @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/sync/select", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result sysadminSyncSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         SysConfig sysConfigQuestionHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.QUESTION_HOST_URL);
         SysConfig sysConfigCloudmarkHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.CLOUDMARK_HOST_URL);
@@ -111,6 +116,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = ResultUtil.class)})
     @RequestMapping(value = "/sync/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result sysadminSyncSave(@Valid @RequestBody SysAdminSetParam sysAdminSetParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -133,6 +139,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "系统试卷规格配置查询")
     @ApiResponses({@ApiResponse(code = 200, message = "系统试卷规格配置信息", response = CustomPrivilegeResult.class)})
     @RequestMapping(value = "/paper/sys/select", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result sysadminPaperSysSelect() {
         SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SYS_PDF_SIZE_LIST);
         Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置全局上传试卷规格"));
@@ -146,6 +153,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "试卷规格配置查询")
     @ApiResponses({@ApiResponse(code = 200, message = "试卷规格配置信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/paper/select", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result sysadminPaperSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         SysConfig sysConfigPdfSize = commonCacheService.addSysConfigCache(schoolId, SystemConstant.PDF_SIZE_LIST);
         List<String> pdfSize = null;
@@ -166,6 +174,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "试卷规格配置信息", response = ResultUtil.class)})
     @RequestMapping(value = "/paper/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result sysadminPaperSave(@Valid @RequestBody SysAdminSetParam sysAdminSetParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -190,6 +199,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "用户验证查询")
     @ApiResponses({@ApiResponse(code = 200, message = "用户验证信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/user/select", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result sysadminUserSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         SysConfig sysConfigAccount = commonCacheService.addSysConfigCache(schoolId, SystemConstant.ACCOUNT_SMS_VERIFY);
         SysConfig sysConfigTeachcloudExchangeHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL);
@@ -211,6 +221,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "用户验证信息", response = ResultUtil.class)})
     @RequestMapping(value = "/user/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result sysadminUserSave(@Valid @RequestBody SysAdminSetParam sysAdminSetParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -233,6 +244,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "查询自定义菜单权限")
     @ApiResponses({@ApiResponse(code = 200, message = "菜单权限信息", response = CustomPrivilegeResult.class)})
     @RequestMapping(value = "/menu/custom/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result customMenuList() {
         List<PrivilegeDto> customPrivilegeList = sysPrivilegeService.addCustomList();
         return ResultUtil.ok(new CustomPrivilegeResult(customPrivilegeList));
@@ -242,6 +254,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "菜单权限信息", response = ResultUtil.class)})
     @RequestMapping(value = "/menu/custom/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result schoolPrivilegeSave(@Valid @RequestBody SysAdminSetParam tSchoolPrivilegeParam, BindingResult bindingResult) throws NoSuchAlgorithmException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -308,6 +321,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "学校已绑定自定义菜单权限列表")
     @ApiResponses({@ApiResponse(code = 200, message = "菜单权限信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/menu/custom/get_school_custom_privileges", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getSchoolPrivileges(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         List<TSchoolPrivilege> tSchoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(schoolId);
         List<String> privilegeIdList = tSchoolPrivilegeList.stream().map(s -> String.valueOf(s.getPrivilegeId())).collect(Collectors.toList());
@@ -319,6 +333,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "查询自定义角色权限")
     @ApiResponses({@ApiResponse(code = 200, message = "角色权限信息", response = CustomPrivilegeResult.class)})
     @RequestMapping(value = "/role/custom/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result customRoleList() {
         List<SysRole> sysRoleList = commonCacheService.addCustomRoleCache();
         CustomPrivilegeResult customPrivilegeResult = new CustomPrivilegeResult();
@@ -330,6 +345,7 @@ public class SysAdminSetController {
     @ApiResponses({@ApiResponse(code = 200, message = "角色权限信息", response = ResultUtil.class)})
     @RequestMapping(value = "/role/custom/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result schoolRoleSave(@Valid @RequestBody SysAdminSetParam tSchoolPrivilegeParam, BindingResult bindingResult) throws NoSuchAlgorithmException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -381,6 +397,7 @@ public class SysAdminSetController {
     @ApiOperation(value = "学校已绑定自定义角色权限列表")
     @ApiResponses({@ApiResponse(code = 200, message = "角色权限信息", response = SysAdminSetResult.class)})
     @RequestMapping(value = "/role/custom/get_school_custom_roles", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getSchoolRoles(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         List<TSchoolRole> tSchoolRoleList = commonCacheService.addSchoolRoleCache(schoolId);
         List<String> roleIdList = tSchoolRoleList.stream().map(s -> String.valueOf(s.getRoleId())).collect(Collectors.toList());

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -16,6 +16,7 @@ import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.util.PdfUtil;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.bean.result.UserLoginCheckResult;
@@ -23,6 +24,7 @@ import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.FileUtil;
@@ -116,6 +118,7 @@ public class SysController {
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "用户信息", response = LoginResult.class)})
     @Aac(auth = BOOL.FALSE)
+    @OperationLogDetail(detail = "用户登录",customizedOperationType = CustomizedOperationTypeEnum.LOGIN)
     public Result login(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody LoginParam login, BindingResult bindingResult) throws NoSuchAlgorithmException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -244,6 +247,7 @@ public class SysController {
     @ApiOperation(value = "登出")
     @RequestMapping(value = "/logout", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(detail = "用户登出(注销)",customizedOperationType = CustomizedOperationTypeEnum.LOGOUT)
     public Result logout() throws NoSuchAlgorithmException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         teachcloudCommonService.removeUserInfo(sysUser.getId(), false);
@@ -560,6 +564,7 @@ public class SysController {
     @ApiOperation(value = "文件下载接口")
     @RequestMapping(value = "/file/download", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result fileDownload(@ApiParam(value = "任务id", required = true) @RequestParam String id,
                                @ApiParam(value = "下载文件类型", required = true) @RequestParam DownloadFileEnum type) {
         String path = null;
@@ -597,6 +602,7 @@ public class SysController {
     @ApiOperation(value = "文件预览接口")
     @RequestMapping(value = "/file/preview", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result filePreview(@ApiParam(value = "附件id", required = false, defaultValue = "") @RequestParam(value = "id", required = false, defaultValue = "") String id) {
         if (StringUtils.isBlank(id)) {
             throw ExceptionResultEnum.ERROR.exception("没有附件");
@@ -819,6 +825,7 @@ public class SysController {
      */
     @ApiOperation(value = "获取用户阅卷角色")
     @RequestMapping(value = "/get_open_role", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getOpenRole() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SpecialPrivilegeEnum userSpecialPrivilege = sysUserService.findUserSpecialPrivilegeByUserId(sysUser.getId(), sysUser.getSchoolId());

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -4,11 +4,13 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncSysOrgImportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.Result;
@@ -53,6 +55,7 @@ public class SysOrgController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "specialPrivilege", required = false) SpecialPrivilegeEnum specialPrivilege,
                        @RequestParam(value = "withoutPrintingRoom", required = false) boolean withoutPrintingRoom) {
         return ResultUtil.ok(sysOrgService.listOrgTree(specialPrivilege,withoutPrintingRoom));
@@ -66,6 +69,7 @@ public class SysOrgController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@Valid @RequestBody SysOrg org, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -81,6 +85,7 @@ public class SysOrgController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestBody SysOrg org) {
         return ResultUtil.ok(printCommonService.enable(org));
     }
@@ -93,6 +98,7 @@ public class SysOrgController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result remove(@RequestBody SysOrg org) {
         return ResultUtil.ok(printCommonService.sysOrgRemove(org.getId()));
     }
@@ -104,6 +110,7 @@ public class SysOrgController {
      */
     @ApiOperation(value = "根据类型查询机构")
     @RequestMapping(value = "/find_by_type", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findByType(@ApiParam(value = "机构类型") @RequestParam(required = false) String orgType) {
         return ResultUtil.ok(sysOrgService.findDeepByOrgIdAndType(orgType));
     }
@@ -111,6 +118,7 @@ public class SysOrgController {
     @ApiOperation(value = "机构管理-批量导入(异步)")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result sysOrgImportAsync(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.ORG_IMPORT);

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java

@@ -1,8 +1,10 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -34,6 +36,7 @@ public class SysPrivilegeController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list() {
         return ResultUtil.ok(sysPrivilegeService.listPrivilegeTreeNew());
     }
@@ -45,6 +48,7 @@ public class SysPrivilegeController {
      */
     @ApiOperation(value = "查询需要授权的菜单")
     @RequestMapping(value = "/list_auth", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listAuth() {
         return ResultUtil.ok(sysPrivilegeService.listPrivilegeTreeAuth());
     }
@@ -57,6 +61,7 @@ public class SysPrivilegeController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@RequestBody SysPrivilege privilege) {
         return ResultUtil.ok(sysPrivilegeService.savePrivilege(privilege));
     }
@@ -69,6 +74,7 @@ public class SysPrivilegeController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result remove(@RequestBody SysPrivilege privilege) {
         return ResultUtil.ok(sysPrivilegeService.remove(privilege.getId()));
     }
@@ -81,6 +87,7 @@ public class SysPrivilegeController {
      */
     @ApiOperation(value = "角色已绑定权限列表")
     @RequestMapping(value = "/get_role_privileges", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getRolePrivileges(@RequestParam(value = "roleId", required = true) Long roleId) {
         return ResultUtil.ok(sysPrivilegeService.getRolePrivileges(roleId));
     }

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java

@@ -1,8 +1,10 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysRole;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.SysRoleService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -46,6 +48,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "name", required = false) String name,
                        @RequestParam(value = "enable", required = false) Boolean enable,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -60,6 +63,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "新增用户时查询角色方法")
     @RequestMapping(value = "/list_to_user", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listToUser() {
         return ResultUtil.ok(sysRoleService.listToUser());
     }
@@ -72,6 +76,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@Valid @RequestBody SysRole role, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -87,6 +92,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestBody SysRole role) throws NoSuchAlgorithmException {
         return ResultUtil.ok(sysRoleService.enableReport(role));
     }
@@ -99,6 +105,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result remove(@RequestParam(value = "id", required = true) Long id) {
         return ResultUtil.ok(sysRoleService.removeReport(id));
     }
@@ -111,6 +118,7 @@ public class SysRoleController {
      */
     @ApiOperation(value = "用户已绑定角色列表")
     @RequestMapping(value = "/get_user_roles", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getUserRoles(@RequestParam(value = "userId", required = true) Long userId) {
         return ResultUtil.ok(sysRoleService.getUserRoles(userId));
     }

+ 15 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -8,12 +8,14 @@ import com.qmth.distributed.print.business.service.CloudUserPushService;
 import com.qmth.distributed.print.business.service.CloudUserPushStatusService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncSysUserDataImportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -76,6 +78,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam(value = "userInfo", required = false) String userInfo,
                        @RequestParam(value = "orgId", required = false) String orgId,
                        @RequestParam(value = "roleId", required = false) String roleId,
@@ -94,6 +97,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "查询")
     @RequestMapping(value = "/list_customer", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listCustomer(@RequestParam(value = "realName", required = false) String realName,
                                @RequestParam(value = "enable", required = false) Boolean enable,
                                @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -110,6 +114,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "根据科目查询命题老师")
     @RequestMapping(value = "/user_list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result userQuery(@RequestParam(value = "courseCode", required = false) String courseCode,
                             @RequestParam(value = "param", required = false) String param) {
         return ResultUtil.ok(sysUserService.listUser(courseCode, param));
@@ -123,6 +128,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result save(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody UserSaveParams userSaveParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -143,6 +149,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "新增客服")
     @RequestMapping(value = "/save_customer", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result saveCustomer(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody UserSaveParams userSaveParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -158,6 +165,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result enable(@RequestBody SysUser user) throws NoSuchAlgorithmException, IllegalAccessException {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         if (sysUserService.enable(user)) {
@@ -169,6 +177,7 @@ public class SysUserController {
     @ApiOperation(value = "课程管理-批量删除")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteBatch(@ApiParam(value = "删除对象ID集合", required = true) @RequestParam List<Long> idList) {
         return ResultUtil.ok(sysUserService.removeBasicCourseBatch(idList));
     }
@@ -181,6 +190,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result remove(@RequestParam(value = "id", required = true) Long id) throws NoSuchAlgorithmException {
         return ResultUtil.ok(sysUserService.remove(id));
     }
@@ -193,6 +203,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "重置密码")
     @RequestMapping(value = "/reset_password", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result resetPassword(@RequestBody SysUser user) throws NoSuchAlgorithmException {
         return ResultUtil.ok(sysUserService.resetPassword(user.getId()));
     }
@@ -205,6 +216,7 @@ public class SysUserController {
     @ApiOperation(value = "修改密码")
     @RequestMapping(value = "/update_password", method = RequestMethod.POST)
     @Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
+    @OperationLogDetail(detail = "修改密码",customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result updatePassword(@RequestBody SysUser user) throws NoSuchAlgorithmException {
         return ResultUtil.ok(sysUserService.updatePassword(user));
     }
@@ -217,6 +229,7 @@ public class SysUserController {
      */
     @ApiOperation(value = "绑定角色")
     @RequestMapping(value = "/bind_roles", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result bindRoles(@RequestBody SysUser sysUser) {
         return ResultUtil.ok(sysUserService.bindRoles(sysUser));
     }
@@ -224,6 +237,7 @@ public class SysUserController {
     @ApiOperation(value = "用户管理-批量导入(异步)")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result sysUserImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.USER_IMPORT);
@@ -237,6 +251,7 @@ public class SysUserController {
     @ApiOperation(value = "用户管理-用户推送(异步)")
     @RequestMapping(value = "/push", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result sysUserPush() throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long schoolId = sysUser.getSchoolId();

+ 4 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TBSyncTaskController.java

@@ -3,12 +3,14 @@ package com.qmth.distributed.print.api;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.result.SyncListResult;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -43,6 +45,7 @@ public class TBSyncTaskController {
     @ApiOperation(value = "同步管理查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result syncQuery(@ApiParam(value = "任务状态") @RequestParam(required = false) TaskStatusEnum status,
                             @ApiParam(value = "同步类型") @RequestParam(required = false) PushTypeEnum type,
                             @ApiParam(value = "同步数据结果") @RequestParam(required = false) TaskResultEnum result,
@@ -61,6 +64,7 @@ public class TBSyncTaskController {
     @ApiOperation(value = "重新同步")
     @RequestMapping(value = "/resync", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "重新同步", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result syncQuery(@ApiParam(value = "任务ID") @RequestParam(required = false) Long id) throws IllegalAccessException {
         tbSyncTaskService.resync(id);
         return ResultUtil.ok(true);

+ 5 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
@@ -15,6 +16,7 @@ import com.qmth.teachcloud.common.enums.MqTagEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.Result;
@@ -56,6 +58,7 @@ public class TBTaskController {
     @ApiOperation(value = "任务管理查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskQuery(@ApiParam(value = "印刷计划id", required = false) @RequestParam(required = false) String printPlanId,
                             @ApiParam(value = "任务状态", required = false) @RequestParam(required = false) TaskStatusEnum status,
                             @ApiParam(value = "任务类型", required = false) @RequestParam(required = false) TaskTypeEnum type,
@@ -80,6 +83,7 @@ public class TBTaskController {
     @ApiOperation(value = "重新生成pdf")
     @RequestMapping(value = "/reset_create_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "重新生成pdf", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result resetCreatePdf(@ApiParam(value = "任务id", required = true) @RequestParam String id) throws IOException {
         Long taskId = Long.parseLong(id);
         TBTask tbTask = tbTaskService.getById(taskId);
@@ -103,6 +107,7 @@ public class TBTaskController {
     @ApiOperation(value = "任务管理查询接口")
     @PostMapping("/query_result")
     @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskQuery(@ApiParam(value = "任务状态", required = false) @RequestParam(required = false) TaskStatusEnum status,
                             @ApiParam(value = "任务类型", required = false) @RequestParam(required = false) TaskTypeEnum type,
                             @ApiParam(value = "任务数据结果", required = false) @RequestParam(required = false) TaskResultEnum result,

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java

@@ -7,11 +7,13 @@ import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.TCStatisticsService;
 import com.qmth.distributed.print.business.templete.execute.AsyncStatisticsDataImportService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -59,6 +61,7 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-导入")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @RequestMapping(value = "/import", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result dataImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                              @ApiParam(value = "考试id", required = true) @RequestParam String examId) throws Exception {
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STATISTICS_IMPORT);
@@ -71,6 +74,7 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-列表")
     @ApiResponses({@ApiResponse(code = 200, message = "命题统计信息", response = TCStatisticsDto.class)})
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@ApiParam(value = "学期id") @RequestParam(required = false) String semesterId,
                        @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
                        @ApiParam(value = "学院id") @RequestParam(required = false) String collegeId,
@@ -87,6 +91,7 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-刷新数据")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @RequestMapping(value = "/freshen", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result freshen(@ApiParam(value = "考试id", required = true) @RequestParam String examId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         tcStatisticsService.refreshTCStatisticByExamIdAndRequestUser(SystemConstant.convertIdToLong(examId),sysUser);
@@ -96,6 +101,7 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-删除数据")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result delete(@Valid @RequestBody ArraysParams arraysParams, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());

+ 16 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java

@@ -22,6 +22,7 @@ import com.qmth.distributed.print.business.service.ActivitiService;
 import com.qmth.distributed.print.business.service.TFCustomFlowEntityService;
 import com.qmth.distributed.print.business.service.TFCustomFlowService;
 import com.qmth.distributed.print.business.service.TFFlowApproveService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -29,6 +30,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
@@ -87,6 +89,7 @@ public class TFCustomFlowController {
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result save(@Valid @RequestBody CustomFlowSaveDto customFlowSaveDto, BindingResult bindingResult) throws NoSuchAlgorithmException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -163,6 +166,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "审批流程")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/task/approve", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result taskApprove(@Valid @RequestBody FlowTaskApproveParam flowTaskApproveParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -180,6 +184,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程审批记录列表")
     @ApiResponses({@ApiResponse(code = 200, message = "流程审批记录信息", response = FlowApproveListResult.class)})
     @RequestMapping(value = "/approve/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskApproveList(@ApiParam(value = "状态", required = false) @RequestParam(required = false) FlowStatusEnum status,
                                   @ApiParam(value = "提交人名称", required = false) @RequestParam(required = false) String teacherUserName,
                                   @ApiParam(value = "教研室", required = false) @RequestParam(required = false) String teachingRoomId,
@@ -194,6 +199,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程列表")
     @ApiResponses({@ApiResponse(code = 200, message = "流程信息", response = TFCustomFlow.class)})
     @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@ApiParam(value = "流程名称", required = false) @RequestParam(required = false) String name,
                        @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) {
@@ -203,6 +209,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程编辑")
     @ApiResponses({@ApiResponse(code = 200, message = "流程信息", response = ResultUtil.class)})
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result edit(@ApiParam(value = "自定义流程id", required = true) @RequestParam String id) {
         TFCustomFlow tfCustomFlow = tfCustomFlowService.getById(SystemConstant.convertIdToLong(id));
         Optional.ofNullable(tfCustomFlow).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("自定义流程数据为空"));
@@ -215,6 +222,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程逻辑删除")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result enable(@Valid @RequestBody CustomFlowParam customFlowParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -257,6 +265,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "查看流程信息")
     @ApiResponses({@ApiResponse(code = 200, message = "审批流程信息", response = FlowViewResult.class)})
     @RequestMapping(value = "/view", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result view(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
         return ResultUtil.ok(activitiService.getFlowView(SystemConstant.convertIdToLong(flowId)));
     }
@@ -264,6 +273,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程审批记录逻辑删除")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/approve/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result approveEnable(@Valid @RequestBody CustomFlowParam customFlowParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -277,6 +287,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程终止")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/end", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UN_KNOW)
     public Result end(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
         activitiService.flowEnd(flowId);
         return ResultUtil.ok();
@@ -285,6 +296,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "获取所有流程节点")
     @ApiResponses({@ApiResponse(code = 200, message = "流程节点", response = FlowTaskResult.class)})
     @RequestMapping(value = "/task/all", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskAll(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
         return ResultUtil.ok(activitiService.getTaskAll(flowId));
     }
@@ -292,6 +304,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "流程节点转他人审批")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/task/approver/exchange", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result taskApproverExchange(@ApiParam(value = "审批人id", required = true) @RequestParam String userId,
                                        @ApiParam(value = "流程节点id", required = true) @RequestParam String taskId) {
         return ResultUtil.ok(activitiService.taskApproverExchange(userId, taskId));
@@ -300,6 +313,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "获取当前流程节点信息")
     @ApiResponses({@ApiResponse(code = 200, message = "当前流程节点信息", response = TaskInfoResult.class)})
     @RequestMapping(value = "/task/info", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result taskInfo(@ApiParam(value = "流程节点id", required = true) @RequestParam String taskId) {
         return ResultUtil.ok(activitiService.getTaskInfo(SystemConstant.convertIdToLong(taskId)));
     }
@@ -307,6 +321,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "重命名自定义流程名称")
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
     @RequestMapping(value = "/rename", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
     public Result rename(@Valid @RequestBody CustomFlowRenameParam customFlowRenameParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -323,6 +338,7 @@ public class TFCustomFlowController {
     @ApiOperation(value = "根据流程类型获取流程节点")
     @ApiResponses({@ApiResponse(code = 200, message = "当前流程节点信息", response = FlowInfoResult.class)})
     @RequestMapping(value = "/get_flow_info_by_type", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getFlowInfoByType(@ApiParam(value = "流程类型", required = false) @RequestParam(required = false) TFCustomTypeEnum type,
                                     @ApiParam(value = "流程id", required = false) @RequestParam(required = false) String flowId) {
         if (Objects.isNull(type) && Objects.isNull(flowId)) {

+ 9 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -16,6 +16,7 @@ import com.qmth.distributed.print.business.service.TSyncExamStudentScoreService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScoreBatchDownloadService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScoreExportService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScorePushService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -23,6 +24,7 @@ import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -35,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
+import java.net.CacheRequest;
 import java.util.*;
 
 /**
@@ -76,6 +79,7 @@ public class TSyncExamStudentScoreController {
     @ApiOperation(value = "成绩归档查询列表")
     @ApiResponses({@ApiResponse(code = 200, message = "成绩查询信息", response = TSyncExamStudentScoreResult.class)})
     @RequestMapping(value = "/score/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
                        @ApiParam(value = "考试ID", required = true) @RequestParam(required = true) String examId,
                        @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
@@ -88,6 +92,7 @@ public class TSyncExamStudentScoreController {
     @ApiOperation(value = "成绩导出")
     @ApiResponses({@ApiResponse(code = 200, message = "同步信息", response = TBTask.class)})
     @RequestMapping(value = "/score/export", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
     public Result export(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
                          @ApiParam(value = "考试ID", required = true) @RequestParam(required = true) String examId,
                          @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
@@ -98,6 +103,7 @@ public class TSyncExamStudentScoreController {
     @ApiOperation(value = "成绩查询同步")
     @ApiResponses({@ApiResponse(code = 200, message = "同步异步任务信息", response = TBSyncTask.class)})
     @RequestMapping(value = "/score/sync", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result sync(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
                        @ApiParam(value = "考试ID", required = true) @RequestParam String examId,
                        @ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode) {
@@ -126,6 +132,7 @@ public class TSyncExamStudentScoreController {
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = EditResult.class)})
     @RequestMapping(value = "/score/download", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public void download(@ApiParam(value = "主键", required = true) @RequestParam String id) throws Exception {
         TSyncExamStudentScore tSyncExamStudentScore = downloadOrPreview(id, ImageTrajectoryEnum.DOWNLOAD);
         tSyncExamStudentScoreService.createZipFile(tSyncExamStudentScore);
@@ -135,6 +142,7 @@ public class TSyncExamStudentScoreController {
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = EditResult.class)})
     @RequestMapping(value = "/score/preview", method = RequestMethod.POST)
     @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result preview(@ApiParam(value = "主键", required = true) @RequestParam String id) throws Exception {
         TSyncExamStudentScore tSyncExamStudentScore = downloadOrPreview(id, ImageTrajectoryEnum.PREVIEW);
         return ResultUtil.ok(tSyncExamStudentScore.getTrailUrls().isEmpty() ? new ArrayList<>() : tSyncExamStudentScore.getTrailUrls());
@@ -143,6 +151,7 @@ public class TSyncExamStudentScoreController {
     @ApiOperation(value = "成绩动态轨迹图一键下载")
     @ApiResponses({@ApiResponse(code = 200, message = "同步信息", response = TBTask.class)})
     @RequestMapping(value = "/score/batch_download", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result batchDownload(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
                                 @ApiParam(value = "考试ID", required = false) @RequestParam(required = false) String examId,
                                 @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,

+ 4 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncStmmsExamController.java

@@ -2,7 +2,9 @@ package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.TSyncStmmsExamService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.ApiOperation;
@@ -29,6 +31,7 @@ public class TSyncStmmsExamController {
      */
     @ApiOperation(value = "查询云阅卷考试")
     @PostMapping("/list")
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result listExam() {
         return ResultUtil.ok(tSyncStmmsExamService.listExam());
     }
@@ -38,6 +41,7 @@ public class TSyncStmmsExamController {
      */
     @ApiOperation(value = "同步云阅卷考试")
     @PostMapping("/sync")
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result syncExam() {
         return ResultUtil.ok(tSyncStmmsExamService.syncExam());
     }

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java

@@ -4,8 +4,10 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.TeachClazzParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.TeachClazzService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -37,6 +39,7 @@ public class TeachClazzController {
     @ApiOperation(value = "教学班级-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findTeachClazzPage(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId,
                                      @ApiParam(value = "班级名称(模糊查询)") @RequestParam(required = false) String teachClazzName,
                                      @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -47,6 +50,7 @@ public class TeachClazzController {
     @ApiOperation(value = "教学班级-编辑教学班级")
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
     public Result createTeachClazz(@Valid @RequestBody TeachClazzParams teachClazzParams, BindingResult bindingResult) throws IllegalAccessException {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         if (bindingResult.hasErrors()) {
@@ -59,6 +63,7 @@ public class TeachClazzController {
     @ApiOperation(value = "教学班级-批量删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteTeachClazz(@ApiParam(value = "选择的要删除的班级id集合", required = true) @RequestParam List<Long> idList) {
         return ResultUtil.ok(teachClazzService.deleteTeachClazzBatch(idList));
     }
@@ -66,6 +71,7 @@ public class TeachClazzController {
     @ApiOperation(value = "教学班级-查找教学课程")
     @RequestMapping(value = "/find_teach_course", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findTeachCourse() {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(teachClazzService.findTeachCourseByUserId(requestUser.getId()));

+ 7 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java

@@ -7,6 +7,7 @@ import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.enums.log.LevelEnum;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.enums.log.OperationUnitEnum;
@@ -41,7 +42,8 @@ public class TeachCourseController {
     @ApiOperation(value = "教学课程-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    @OperationLogDetail(detail = "根据查询条件课程名称[{{courseName}}]模糊查询教学课程,查询第[{{pageNumber}}]页,每页查[{{pageSize}}]个", operationType = OperationTypeEnum.SELECT, operationUnit = OperationUnitEnum.TEACH_COURSE)
+//    @OperationLogDetail(detail = "根据查询条件课程名称[{{courseName}}]模糊查询教学课程,查询第[{{pageNumber}}]页,每页查[{{pageSize}}]个", operationType = OperationTypeEnum.SELECT, operationUnit = OperationUnitEnum.TEACH_COURSE,customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findTeachCoursePage(@ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) String courseName,
                                       @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) {
@@ -52,7 +54,8 @@ public class TeachCourseController {
     @ApiOperation(value = "教学课程-创建教学课程")
     @RequestMapping(value = "/create", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
-    @OperationLogDetail(detail = "创建教学课程,参数[{{teachCourseParams}}]", level = LevelEnum.TERTIARY, operationType = OperationTypeEnum.EDIT, operationUnit = OperationUnitEnum.TEACH_COURSE)
+//    @OperationLogDetail(detail = "创建教学课程,参数[{{teachCourseParams}}]", level = LevelEnum.TERTIARY, operationType = OperationTypeEnum.EDIT, operationUnit = OperationUnitEnum.TEACH_COURSE)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result createTeachCourse(@Valid @RequestBody TeachCourseParams teachCourseParams, BindingResult bindingResult) throws IllegalAccessException {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         if (bindingResult.hasErrors()) {
@@ -65,7 +68,7 @@ public class TeachCourseController {
     @ApiOperation(value = "教学课程-查找基础课程")
     @RequestMapping(value = "/find_basic_course", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    @OperationLogDetail(detail = "用户查找可被创建课程的基础课程信息", operationType = OperationTypeEnum.SELECT)
+    @OperationLogDetail(detail = "用户查找可被创建课程的基础课程信息", operationType = OperationTypeEnum.SELECT, customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findBasicCourse() {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(teachCourseService.findBasicCourseByUser(requestUser));
@@ -74,7 +77,7 @@ public class TeachCourseController {
     @ApiOperation(value = "教学课程-批量删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    @OperationLogDetail(detail = "用户根据教学课程id集合[{{idList}}]批量删除教学课程", level = LevelEnum.TERTIARY, operationType = OperationTypeEnum.DELETE, operationUnit = OperationUnitEnum.TEACH_COURSE)
+    @OperationLogDetail(detail = "用户根据教学课程id集合[{{idList}}]批量删除教学课程", level = LevelEnum.TERTIARY, operationType = OperationTypeEnum.DELETE, operationUnit = OperationUnitEnum.TEACH_COURSE, customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteTeachCourse(@ApiParam(value = "选择的要删除的课程id集合", required = true) @RequestParam List<Long> idList) {
         return ResultUtil.ok(teachCourseService.deleteTeachCourseBatch(idList));
     }

+ 7 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java

@@ -7,9 +7,11 @@ import com.qmth.distributed.print.business.bean.params.TeachStudentBatchParam;
 import com.qmth.distributed.print.business.bean.params.TeachStudentParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.TeachStudentService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -44,6 +46,7 @@ public class TeachStudentController {
     @ApiOperation(value = "教学学生-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result findTeachStudentPage(@ApiParam(value = "教学班级id", required = true) @RequestParam String teachClazzId,
                                        @ApiParam(value = "学生信息(学号、姓名)") @RequestParam(required = false) String studentInfo,
                                        @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -54,6 +57,7 @@ public class TeachStudentController {
     @ApiOperation(value = "教学学生-创建教学学生")
     @RequestMapping(value = "/create", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result createTeachStudent(@Valid @RequestBody TeachStudentParams teachStudentParams, BindingResult bindingResult) throws IllegalAccessException {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
@@ -66,6 +70,7 @@ public class TeachStudentController {
     @ApiOperation(value = "教学学生-从课程班级批量添加学生")
     @RequestMapping(value = "/create_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
     public Result createTeachStudentBatchByDictionary(@Valid @RequestBody TeachStudentBatchParam teachStudentBatchParam, BindingResult bindingResult) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         if (bindingResult.hasErrors()) {
@@ -85,6 +90,7 @@ public class TeachStudentController {
     @ApiOperation(value = "教学学生-批量导入")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
     public Result teachStudentImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                      @ApiParam(value = "教学班级id", required = true) @RequestParam String teachClazzId) throws IOException, NoSuchFieldException {
 
@@ -96,6 +102,7 @@ public class TeachStudentController {
     @ApiOperation(value = "教学学生-批量删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
     public Result deleteTeachStudent(@ApiParam(value = "选择的要删除的学生id集合", required = true) @RequestParam List<Long> idList) {
         return ResultUtil.ok(teachStudentService.deleteTeachStudentBatch(idList));
     }

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -7,9 +7,11 @@ import com.qmth.distributed.print.business.enums.ExamPaperStructureStatusEnum;
 import com.qmth.distributed.print.business.service.ExamPaperStructureService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.GradeInitializeService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -51,6 +53,7 @@ public class WorkController {
     @ApiOperation(value = "获取待办接口")
     @RequestMapping(value = "/exam/task/ready", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getFlowTaskReady(@ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                    @ApiParam(value = "数量", required = true) @RequestParam @Min(2) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -60,6 +63,7 @@ public class WorkController {
     @ApiOperation(value = "获取待办计数接口")
     @RequestMapping(value = "/exam/task/ready_count", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result getFlowTaskReadyCount() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         return ResultUtil.ok(examTaskService.getFlowTaskReadyList(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), SystemConstant.getHeadOrUserSchoolId(), sysUser.getOrgId(), sysUser.getId()).getRecords().size());
@@ -72,6 +76,7 @@ public class WorkController {
      */
     @ApiOperation(value = "阅卷待办任务-数量")
     @RequestMapping(value = "/structure/task/ready_count", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result countStructure() {
         return ResultUtil.ok(examPaperStructureService.countByPropositionTeacherId(false));
     }
@@ -83,6 +88,7 @@ public class WorkController {
      */
     @ApiOperation(value = "阅卷待办任务-列表")
     @RequestMapping(value = "/structure/task/ready", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(2) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         return ResultUtil.ok(examPaperStructureService.listByPropositionTeacherId(null, null, pageNumber, pageSize, new String[]{ExamPaperStructureStatusEnum.FINISH.name()}, false));
@@ -93,6 +99,7 @@ public class WorkController {
      */
     @ApiOperation(value = "教研待办任务-数量")
     @RequestMapping(value = "/grade/task/ready_count", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result countReport() {
         return ResultUtil.ok(gradeInitializeService.countByPropositionTeacherId(GradeAnalyzePaperStatusEnum.SETTING_GRADE_PAPER_PARAM, false));
     }
@@ -102,6 +109,7 @@ public class WorkController {
      */
     @ApiOperation(value = "教研待办任务-列表")
     @RequestMapping(value = "/grade/task/ready", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     public Result gradeList(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                             @RequestParam @Min(2) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         return ResultUtil.ok(gradeInitializeService.listNeedAnalyzedPaperToWork((SysUser) ServletUtil.getRequestUser(), pageNumber, pageSize, GradeAnalyzePaperStatusEnum.SETTING_GRADE_PAPER_PARAM, false));

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCollegeParams.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.DBVerify;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 
@@ -17,6 +18,7 @@ public class BasicCollegeParams {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "学院id(编辑时必填)")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "学院名称")

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicCourseParams.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.bean.params;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
@@ -19,6 +20,7 @@ public class BasicCourseParams {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "课程id(编辑时必填)")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "课程名称")

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicMajorParams.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.DBVerify;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 import org.hibernate.validator.constraints.Range;
@@ -18,6 +19,7 @@ public class BasicMajorParams {
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "专业id(编辑时必填)")
     @DBVerify(value = "专业id(编辑时必填)")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "专业名称")

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicSemesterParams.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.DBVerify;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
@@ -22,6 +23,7 @@ public class BasicSemesterParams implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "学期id(编辑时必填)")
     @DBVerify(value = "学期id(编辑时必填)")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "学期名称")

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicStudentParams.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.bean.params;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.DBVerify;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
 
@@ -18,6 +19,7 @@ public class BasicStudentParams {
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "学生id(修改时必填)")
     @DBVerify(value = "学生id(修改时必填)")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "学生名称")

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysPrivilege.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.annotation.EditKey;
 import com.qmth.teachcloud.common.enums.PrivilegeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -26,6 +27,7 @@ public class SysPrivilege implements Serializable, Comparable<SysPrivilege> {
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
+    @EditKey
     private Long id;
 
     @ApiModelProperty(value = "名称")