ExamPrintPlanController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.qmth.distributed.print.api;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.qmth.boot.api.annotation.Aac;
  4. import com.qmth.boot.api.annotation.BOOL;
  5. import com.qmth.boot.api.constant.ApiConstant;
  6. import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto;
  7. import com.qmth.distributed.print.business.bean.dto.PrintTaskDto;
  8. import com.qmth.distributed.print.business.bean.dto.PrintTaskTotalDto;
  9. import com.qmth.distributed.print.business.bean.dto.RelatePaperDto;
  10. import com.qmth.distributed.print.business.bean.params.DeleteParams;
  11. import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
  12. import com.qmth.distributed.print.business.bean.params.RelatePaperParam;
  13. import com.qmth.distributed.print.business.entity.ExamDetail;
  14. import com.qmth.distributed.print.business.entity.ExamPrintPlan;
  15. import com.qmth.distributed.print.business.entity.SysUser;
  16. import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
  17. import com.qmth.distributed.print.business.service.ExamDetailService;
  18. import com.qmth.distributed.print.business.service.ExamPrintPlanService;
  19. import com.qmth.distributed.print.business.service.ExamTaskDetailService;
  20. import com.qmth.distributed.print.business.service.ExamTaskService;
  21. import com.qmth.distributed.print.business.util.ServletUtil;
  22. import com.qmth.distributed.print.common.contant.SystemConstant;
  23. import com.qmth.distributed.print.common.util.Result;
  24. import com.qmth.distributed.print.common.util.ResultUtil;
  25. import io.swagger.annotations.*;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.validation.BindingResult;
  28. import org.springframework.web.bind.annotation.*;
  29. import javax.annotation.Resource;
  30. import javax.servlet.http.HttpServletRequest;
  31. import javax.validation.Valid;
  32. import java.io.IOException;
  33. import java.util.List;
  34. /**
  35. * <p>
  36. * 印刷计划管理 前端控制器
  37. * </p>
  38. *
  39. * @author xf
  40. * @since 2021-03-23
  41. */
  42. @Api(tags = "印刷计划管理Controller")
  43. @RestController
  44. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
  45. @Aac(auth = BOOL.FALSE)
  46. public class ExamPrintPlanController {
  47. @Resource
  48. private ExamPrintPlanService examPrintPlanService;
  49. @Autowired
  50. private ExamTaskService examTaskService;
  51. @Autowired
  52. private ExamTaskDetailService examTaskDetailService;
  53. @Autowired
  54. private ExamDetailService examDetailService;
  55. @ApiOperation(value = "印刷计划查询")
  56. @RequestMapping(value = "/list", method = RequestMethod.POST)
  57. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  58. public Result findPrintPlanPage(@ApiParam(value = "印刷计划id") @RequestParam(required = false) String printPlanId,
  59. @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status,
  60. @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
  61. @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
  62. @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
  63. @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
  64. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  65. return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId, SystemConstant.convertIdToLong(printPlanId), status, startTime, endTime, pageNumber, pageSize));
  66. }
  67. @ApiOperation(value = "印刷计划模糊查询")
  68. @RequestMapping(value = "/query", method = RequestMethod.POST)
  69. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  70. public Result findPrintPlanQuery() {
  71. return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery());
  72. }
  73. @ApiOperation(value = "按类型查询模板")
  74. @RequestMapping(value = "/get_template", method = RequestMethod.POST)
  75. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  76. public Result findPrintPlanPage() {
  77. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  78. SysUser user = (SysUser) ServletUtil.getRequestUser();
  79. Long userId = user.getId();
  80. return ResultUtil.ok(examPrintPlanService.printPlanTemplateDatasource(schoolId, userId));
  81. }
  82. @ApiOperation(value = "印刷计划-新增/修改")
  83. @RequestMapping(value = "/save", method = RequestMethod.POST)
  84. @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
  85. public Result savePrintPlan(@Valid @RequestBody PrintPlanParams printPlanParams, BindingResult bindingResult) {
  86. if (bindingResult.hasErrors()) {
  87. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  88. }
  89. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  90. printPlanParams.setSchoolId(schoolId);
  91. return ResultUtil.ok(examPrintPlanService.savePrintPlan(printPlanParams));
  92. }
  93. @ApiOperation(value = "印刷计划-删除")
  94. @RequestMapping(value = "/remove", method = RequestMethod.POST)
  95. @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = Result.class)})
  96. public Result removePrintPlan(@Valid @RequestBody DeleteParams deleteParams, BindingResult bindingResult) {
  97. if (bindingResult.hasErrors()) {
  98. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  99. }
  100. return ResultUtil.ok(examPrintPlanService.removePrintPlan(deleteParams));
  101. }
  102. /**
  103. * 关联试卷管理-查询
  104. *
  105. * @param relateType
  106. * @param printPlanId
  107. * @param courseCode
  108. * @param paperNumber
  109. * @param pageNumber
  110. * @param pageSize
  111. * @return
  112. */
  113. @ApiOperation(value = "关联试卷管理-查询")
  114. @RequestMapping(value = "/relate_list", method = RequestMethod.POST)
  115. public Result relateList(@RequestParam(value = "relateType", required = false) String relateType,
  116. @RequestParam(value = "printPlanId", required = false) Long printPlanId,
  117. @RequestParam(value = "courseCode", required = false) String courseCode,
  118. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  119. @RequestParam Integer pageNumber,
  120. @RequestParam Integer pageSize) {
  121. IPage<ExamTaskDetailDto> examTasks = examTaskDetailService.list(relateType, printPlanId, courseCode, paperNumber, pageNumber, pageSize);
  122. return ResultUtil.ok(examTasks);
  123. }
  124. /**
  125. * 关联/更换试卷
  126. *
  127. * @param paperParam
  128. * @return
  129. */
  130. @ApiOperation(value = "关联/更换试卷")
  131. @RequestMapping(value = "/relate_update", method = RequestMethod.POST)
  132. public Result relateUpdate(@RequestBody RelatePaperParam paperParam) {
  133. boolean isSuccess = examTaskDetailService.updatePaper(paperParam);
  134. return ResultUtil.ok(isSuccess);
  135. }
  136. /**
  137. * 查询所有试卷编号/关联卷型
  138. *
  139. * @param courseCode
  140. * @return
  141. */
  142. @ApiOperation(value = "查询所有试卷编号/关联卷型")
  143. @RequestMapping(value = "/relate_get_paper_numbers", method = RequestMethod.POST)
  144. public Result relateGetPaperNumbers(@RequestParam(value = "courseCode", required = true) String courseCode) {
  145. List<RelatePaperDto> list = examTaskService.listPaperTypes(courseCode);
  146. return ResultUtil.ok(list);
  147. }
  148. /**
  149. * 印刷任务管理-查询
  150. *
  151. * @param printPlanId
  152. * @param status
  153. * @param courseCode
  154. * @param paperNumber
  155. * @param examPlace
  156. * @param examStartTime
  157. * @param examEndTime
  158. * @param pageNumber
  159. * @param pageSize
  160. * @return
  161. */
  162. @ApiOperation(value = "印刷任务管理-查询")
  163. @RequestMapping(value = "/task_list", method = RequestMethod.POST)
  164. public Result taskList(@RequestParam(value = "printPlanId", required = false) Long printPlanId,
  165. @RequestParam(value = "status", required = false) String status,
  166. @RequestParam(value = "courseCode", required = false) String courseCode,
  167. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  168. @RequestParam(value = "examPlace", required = false) String examPlace,
  169. @RequestParam(value = "examRoom", required = false) String examRoom,
  170. @RequestParam(value = "examStartTime", required = false) Long examStartTime,
  171. @RequestParam(value = "examEndTime", required = false) Long examEndTime,
  172. @RequestParam Integer pageNumber,
  173. @RequestParam Integer pageSize) {
  174. IPage<PrintTaskDto> examTasks = examDetailService.listPrintTask(printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, pageNumber, pageSize);
  175. return ResultUtil.ok(examTasks);
  176. }
  177. /**
  178. * 提交印刷
  179. * @param examDetail
  180. * @return
  181. */
  182. @ApiOperation(value = "印刷任务管理-提交印刷")
  183. @RequestMapping(value = "/task_submit", method = RequestMethod.POST)
  184. public Result taskSubmit(@RequestBody ExamDetail examDetail) throws IOException {
  185. boolean isSuccess = examDetailService.submitTask(examDetail);
  186. return ResultUtil.ok(isSuccess);
  187. }
  188. /**
  189. * 撤回
  190. * @param examDetail
  191. * @return
  192. */
  193. @ApiOperation(value = "印刷任务管理-撤回提交")
  194. @RequestMapping(value = "/task_cancel", method = RequestMethod.POST)
  195. public Result taskCancel(@RequestBody ExamDetail examDetail) {
  196. boolean isSuccess = examDetailService.taskCancel(examDetail);
  197. return ResultUtil.ok(isSuccess);
  198. }
  199. /**
  200. * 重新提交
  201. * @param examDetail
  202. * @return
  203. */
  204. @ApiOperation(value = "印刷任务管理-重新提交")
  205. @RequestMapping(value = "/task_resubmit", method = RequestMethod.POST)
  206. public Result taskResubmit(@RequestBody ExamDetail examDetail) throws IOException {
  207. boolean isSuccess = examDetailService.resubmitTask(examDetail);
  208. return ResultUtil.ok(isSuccess);
  209. }
  210. /**
  211. * 印刷任务管理-汇总数据查询
  212. *
  213. * @param printPlanId
  214. * @param status
  215. * @param courseCode
  216. * @param paperNumber
  217. * @param examPlace
  218. * @param examRoom
  219. * @param examStartTime
  220. * @param examEndTime
  221. * @return
  222. */
  223. @ApiOperation(value = "印刷任务管理-汇总数据查询")
  224. @RequestMapping(value = "/task_total_data", method = RequestMethod.POST)
  225. public Result taskTotalData(@RequestParam(value = "printPlanId", required = false) Long printPlanId,
  226. @RequestParam(value = "status", required = false) String status,
  227. @RequestParam(value = "courseCode", required = false) String courseCode,
  228. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  229. @RequestParam(value = "examPlace", required = false) String examPlace,
  230. @RequestParam(value = "examRoom", required = false) String examRoom,
  231. @RequestParam(value = "examStartTime", required = false) Long examStartTime,
  232. @RequestParam(value = "examEndTime", required = false) Long examEndTime) {
  233. PrintTaskTotalDto printTaskTotalDto = examDetailService.taskTotalData(printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime);
  234. return ResultUtil.ok(printTaskTotalDto);
  235. }
  236. /**
  237. * 印刷任务管理-查看PDF
  238. *
  239. * @param examDetailId
  240. * @return
  241. */
  242. @ApiOperation(value = "印刷任务管理-查看PDF")
  243. @RequestMapping(value = "/task_view_pdf", method = RequestMethod.POST)
  244. public Result taskViewPDF(@RequestParam Long examDetailId) {
  245. String path = examDetailService.taskViewPDF(examDetailId);
  246. return ResultUtil.ok(path);
  247. }
  248. }