TCStatisticsController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
  4. import com.qmth.distributed.print.business.bean.result.EditResult;
  5. import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
  6. import com.qmth.distributed.print.business.service.PrintCommonService;
  7. import com.qmth.distributed.print.business.service.TCStatisticsService;
  8. import com.qmth.distributed.print.business.templete.execute.AsyncStatisticsDataImportService;
  9. import com.qmth.teachcloud.common.annotation.OperationLogDetail;
  10. import com.qmth.teachcloud.common.bean.params.ArraysParams;
  11. import com.qmth.teachcloud.common.contant.SystemConstant;
  12. import com.qmth.teachcloud.common.entity.SysUser;
  13. import com.qmth.teachcloud.common.entity.TBTask;
  14. import com.qmth.teachcloud.common.enums.TaskTypeEnum;
  15. import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
  16. import com.qmth.teachcloud.common.util.Result;
  17. import com.qmth.teachcloud.common.util.ResultUtil;
  18. import com.qmth.teachcloud.common.util.ServletUtil;
  19. import io.swagger.annotations.*;
  20. import org.slf4j.Logger;
  21. import org.slf4j.LoggerFactory;
  22. import org.springframework.validation.BindingResult;
  23. import org.springframework.validation.annotation.Validated;
  24. import org.springframework.web.bind.annotation.*;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import javax.annotation.Resource;
  27. import javax.validation.Valid;
  28. import javax.validation.constraints.Max;
  29. import javax.validation.constraints.Min;
  30. import java.util.Arrays;
  31. import java.util.Map;
  32. import java.util.Objects;
  33. /**
  34. * <p>
  35. * 命题统计表 前端控制器
  36. * </p>
  37. *
  38. * @author wangliang
  39. * @since 2021-09-09
  40. */
  41. @Api(tags = "命题统计Controller")
  42. @RestController
  43. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_STATISTICS)
  44. @Validated
  45. //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
  46. public class TCStatisticsController {
  47. private final static Logger log = LoggerFactory.getLogger(TCStatisticsController.class);
  48. @Resource
  49. TCStatisticsService tcStatisticsService;
  50. @Resource
  51. PrintCommonService printCommonService;
  52. @Resource
  53. AsyncStatisticsDataImportService asyncStatisticsDataImportService;
  54. @ApiOperation(value = "命题计划统计-导入")
  55. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  56. @RequestMapping(value = "/import", method = RequestMethod.POST)
  57. @OperationLogDetail(operationType = OperationTypeEnum.IMPORT)
  58. public Result dataImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
  59. @ApiParam(value = "考试id", required = true) @RequestParam String examId) throws Exception {
  60. Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STATISTICS_IMPORT);
  61. map.put("examId",examId);
  62. asyncStatisticsDataImportService.importTask(map);
  63. TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
  64. return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
  65. }
  66. @ApiOperation(value = "命题计划统计-列表")
  67. @ApiResponses({@ApiResponse(code = 200, message = "命题统计信息", response = TCStatisticsDto.class)})
  68. @RequestMapping(value = "/list", method = RequestMethod.POST)
  69. public Result list(@ApiParam(value = "学期id") @RequestParam(required = false) String semesterId,
  70. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  71. @ApiParam(value = "学院id") @RequestParam(required = false) String collegeId,
  72. @ApiParam(value = "部门id") @RequestParam(required = false) String teachingRoomId,
  73. @ApiParam(value = "完成状态") @RequestParam(required = false) StatisticsStatusEnum status,
  74. @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName,
  75. @ApiParam(value = "任课老师名称") @RequestParam(required = false) String teacherName,
  76. @ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  77. @ApiParam(value = "数量", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  78. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  79. return ResultUtil.ok(tcStatisticsService.findExamTaskPrintStatistic(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(teachingRoomId), status, courseName, teacherName, sysUser.getSchoolId(), sysUser.getId(),pageNumber,pageSize));
  80. }
  81. @ApiOperation(value = "命题计划统计-刷新数据")
  82. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  83. @RequestMapping(value = "/freshen", method = RequestMethod.POST)
  84. @OperationLogDetail(operationType = OperationTypeEnum.OTHER)
  85. public Result freshen(@ApiParam(value = "考试id", required = true) @RequestParam String examId) {
  86. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  87. tcStatisticsService.refreshTCStatisticByExamIdAndRequestUser(SystemConstant.convertIdToLong(examId),sysUser);
  88. return ResultUtil.ok();
  89. }
  90. @ApiOperation(value = "命题计划统计-删除数据")
  91. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  92. @RequestMapping(value = "/delete", method = RequestMethod.POST)
  93. @OperationLogDetail(operationType = OperationTypeEnum.DELETE)
  94. public Result delete(@Valid @RequestBody ArraysParams arraysParams, BindingResult bindingResult) {
  95. if (bindingResult.hasErrors()) {
  96. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  97. }
  98. return ResultUtil.ok(tcStatisticsService.deleteData(Arrays.asList(arraysParams.getIds())));
  99. }
  100. }