ExamTaskQueryController.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.distributed.print.business.bean.result.EditResult;
  4. import com.qmth.distributed.print.business.entity.ExamTask;
  5. import com.qmth.distributed.print.business.entity.ExamTaskDetail;
  6. import com.qmth.distributed.print.business.enums.MakeMethodEnum;
  7. import com.qmth.distributed.print.business.service.*;
  8. import com.qmth.teachcloud.common.annotation.OperationLogDetail;
  9. import com.qmth.teachcloud.common.contant.SystemConstant;
  10. import com.qmth.teachcloud.common.entity.SysUser;
  11. import com.qmth.teachcloud.common.entity.TBTask;
  12. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  13. import com.qmth.teachcloud.common.enums.MessageEnum;
  14. import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
  15. import com.qmth.teachcloud.common.util.Result;
  16. import com.qmth.teachcloud.common.util.ResultUtil;
  17. import com.qmth.teachcloud.common.util.ServletUtil;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.annotations.ApiResponse;
  21. import io.swagger.annotations.ApiResponses;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.*;
  24. import javax.annotation.Resource;
  25. import javax.servlet.http.HttpServletResponse;
  26. import javax.validation.constraints.Max;
  27. import javax.validation.constraints.Min;
  28. import java.io.IOException;
  29. import java.util.Map;
  30. import java.util.Objects;
  31. /**
  32. * <p>
  33. * 卷库查询 前端控制器
  34. * </p>
  35. *
  36. * @author xf
  37. * @since 2021-03-23
  38. */
  39. @Api(tags = "卷库查询Controller")
  40. @RestController
  41. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/task")
  42. @Validated
  43. public class ExamTaskQueryController {
  44. @Resource
  45. private ExamTaskService examTaskService;
  46. @Resource
  47. private ExamTaskDetailService examTaskDetailService;
  48. @Resource
  49. private PrintCommonService printCommonService;
  50. @Resource
  51. private BasicMessageService basicMessageService;
  52. @Resource
  53. ActivitiService activitiService;
  54. /**
  55. * 卷库查询
  56. *
  57. * @param courseCode 课程代码
  58. * @param paperNumber 试卷编号
  59. * @param startTime 开始时间
  60. * @param endTime 结束时间
  61. * @param pageNumber 分页参数
  62. * @param pageSize 分页参数
  63. * @return Result
  64. */
  65. @ApiOperation(value = "卷库查询")
  66. @RequestMapping(value = "/paper_list", method = RequestMethod.POST)
  67. public Result taskPaperList(@RequestParam(value = "semesterId", required = false) Long semesterId,
  68. @RequestParam(value = "examId", required = false) Long examId,
  69. @RequestParam(value = "courseCode", required = false) String courseCode,
  70. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  71. @RequestParam(value = "startTime", required = false) Long startTime,
  72. @RequestParam(value = "endTime", required = false) Long endTime,
  73. @RequestParam(value = "makeMethod", required = false) MakeMethodEnum makeMethod,
  74. @RequestParam(value = "cardRuleId", required = false) String cardRuleId,
  75. @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  76. @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  77. if (semesterId == null) {
  78. throw ExceptionResultEnum.ERROR.exception("请选择学期");
  79. }
  80. return ResultUtil.ok(examTaskService.listTaskPaper(semesterId, examId, courseCode, paperNumber, startTime, endTime, makeMethod, SystemConstant.convertIdToLong(cardRuleId), pageNumber, pageSize));
  81. }
  82. /**
  83. * 下载
  84. *
  85. * @param examTaskId 命题任务ID
  86. */
  87. @ApiOperation(value = "下载")
  88. @RequestMapping(value = "/paper_download", method = RequestMethod.POST)
  89. public void taskPaperDownload(HttpServletResponse response, @RequestParam Long examTaskId) throws Exception {
  90. examTaskService.paperDownload(response, examTaskId);
  91. }
  92. /**
  93. * 卷库查询-启用/禁用
  94. *
  95. * @param examTaskDetail 命题任务详情对象
  96. * @return Result
  97. */
  98. @ApiOperation(value = "卷库查询-启用/禁用")
  99. @RequestMapping(value = "/paper_enable", method = RequestMethod.POST)
  100. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  101. public Result taskPaperEnable(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
  102. boolean isSuccess = examTaskDetailService.enable(examTaskDetail);
  103. // 启用,触发考场生成pdf
  104. if (examTaskDetail.getEnable()) {
  105. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  106. ExamTask examTask = examTaskService.getById(examTaskDetail.getId());
  107. // 校验课程关联考场,是否已经提交打印
  108. Boolean isCreate = printCommonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
  109. // 校验是否可以提交打印状态
  110. if (isCreate) {
  111. printCommonService.checkData(examTask.getSchoolId(), examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
  112. }
  113. }
  114. return ResultUtil.ok(isSuccess);
  115. }
  116. /**
  117. * 卷库查询-卷库修改
  118. *
  119. * @param examTaskDetail 命题任务详情对象
  120. * @return Result
  121. */
  122. @ApiOperation(value = "卷库查询-卷库修改")
  123. @RequestMapping(value = "/paper_update", method = RequestMethod.POST)
  124. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  125. public Result taskPaperUpdate(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
  126. Map<String, Object> map = examTaskDetailService.paperUpdate(examTaskDetail);
  127. Boolean isSuccess = (Boolean) map.get(SystemConstant.SUCCESS);
  128. if (isSuccess) {
  129. ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
  130. if (Objects.nonNull(examTask.getReview()) && examTask.getReview()) {
  131. // 发送短信
  132. basicMessageService.sendNoticeTaskAuditCreateOrReview(examTask, MessageEnum.NOTICE_OF_AUDIT_REVIEW);
  133. } else {
  134. /* SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  135. // 校验课程关联考场,是否已经提交打印
  136. Boolean isCreate = printCommonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
  137. // 校验是否可以提交打印状态
  138. if (isCreate) {
  139. printCommonService.checkData(examTask.getSchoolId(), examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
  140. }*/
  141. }
  142. Boolean sendFlowStartMq = (Boolean) map.get(SystemConstant.SEND_FLOW_START_MQ);
  143. Boolean sendFlowMq = (Boolean) map.get(SystemConstant.SEND_FLOW_MQ);
  144. if (Objects.nonNull(sendFlowStartMq) && sendFlowStartMq) {
  145. activitiService.sendFlowStartMsg(examTask.getFlowId());
  146. } else if (Objects.nonNull(sendFlowMq) && sendFlowMq) {
  147. activitiService.sendFlowTaskApproveMsg(map);
  148. }
  149. }
  150. return ResultUtil.ok(isSuccess);
  151. }
  152. @ApiOperation(value = "卷库查询-批量下载试卷PDF、题卡")
  153. @RequestMapping(value = "/paper_card_download_pdf", method = RequestMethod.POST)
  154. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  155. public Result paperCardDownloadPdf(@RequestParam(value = "semesterId", required = false) Long semesterId,
  156. @RequestParam(value = "examId", required = false) Long examId,
  157. @RequestParam(value = "courseCode", required = false) String courseCode,
  158. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  159. @RequestParam(value = "cardRuleId", required = false) Long cardRuleId,
  160. @RequestParam(value = "makeMethod", required = false) MakeMethodEnum makeMethod,
  161. @RequestParam(value = "startTime", required = false) Long startTime,
  162. @RequestParam(value = "endTime", required = false) Long endTime) {
  163. TBTask tbTask = examTaskService.taskDownloadPdf(semesterId, examId, courseCode, paperNumber, cardRuleId, makeMethod, startTime, endTime);
  164. return Objects.nonNull(tbTask) ? ResultUtil.ok(new EditResult(tbTask.getId())) : ResultUtil.error("创建任务失败");
  165. }
  166. /**
  167. * 卷库查询-作废
  168. *
  169. * @param id 命题任务ID
  170. * @return Result
  171. */
  172. @ApiOperation(value = "卷库查询-作废")
  173. @RequestMapping(value = "/cancel", method = RequestMethod.POST)
  174. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  175. public Result cancel(@RequestParam Long id,
  176. @RequestParam String cancelRemark) {
  177. boolean isSuccess = examTaskDetailService.cancel(id, cancelRemark);
  178. return ResultUtil.ok(isSuccess);
  179. }
  180. }