ExamPrintPlanController.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. package com.qmth.distributed.print.api;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.qmth.boot.api.constant.ApiConstant;
  5. import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto;
  6. import com.qmth.distributed.print.business.bean.dto.PrintTaskDto;
  7. import com.qmth.distributed.print.business.bean.dto.PrintTaskTotalDto;
  8. import com.qmth.distributed.print.business.bean.dto.RelatePaperDto;
  9. import com.qmth.distributed.print.business.bean.params.DeleteParams;
  10. import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
  11. import com.qmth.distributed.print.business.bean.params.RelatePaperParam;
  12. import com.qmth.distributed.print.business.bean.result.EditResult;
  13. import com.qmth.distributed.print.business.entity.ExamDetail;
  14. import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
  15. import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
  16. import com.qmth.distributed.print.business.service.ExamDetailService;
  17. import com.qmth.distributed.print.business.service.ExamPrintPlanService;
  18. import com.qmth.distributed.print.business.service.ExamTaskDetailService;
  19. import com.qmth.distributed.print.business.service.ExamTaskService;
  20. import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPdfTempleteService;
  21. import com.qmth.teachcloud.common.annotation.OperationLogDetail;
  22. import com.qmth.teachcloud.common.bean.params.ArraysParams;
  23. import com.qmth.teachcloud.common.contant.SystemConstant;
  24. import com.qmth.teachcloud.common.entity.SysUser;
  25. import com.qmth.teachcloud.common.entity.TBTask;
  26. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  27. import com.qmth.teachcloud.common.enums.TaskTypeEnum;
  28. import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
  29. import com.qmth.teachcloud.common.service.TBTaskService;
  30. import com.qmth.teachcloud.common.util.Result;
  31. import com.qmth.teachcloud.common.util.ResultUtil;
  32. import com.qmth.teachcloud.common.util.ServletUtil;
  33. import io.swagger.annotations.*;
  34. import org.springframework.validation.BindingResult;
  35. import org.springframework.validation.annotation.Validated;
  36. import org.springframework.web.bind.annotation.*;
  37. import javax.annotation.Resource;
  38. import javax.validation.Valid;
  39. import javax.validation.constraints.Max;
  40. import javax.validation.constraints.Min;
  41. import java.io.IOException;
  42. import java.util.*;
  43. import java.util.stream.Collectors;
  44. /**
  45. * <p>
  46. * 印刷计划管理 前端控制器
  47. * </p>
  48. *
  49. * @author xf
  50. * @since 2021-03-23
  51. */
  52. @Api(tags = "印刷计划管理Controller")
  53. @RestController
  54. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print")
  55. @Validated
  56. public class ExamPrintPlanController {
  57. @Resource
  58. private ExamPrintPlanService examPrintPlanService;
  59. @Resource
  60. private ExamTaskService examTaskService;
  61. @Resource
  62. private ExamTaskDetailService examTaskDetailService;
  63. @Resource
  64. private ExamDetailService examDetailService;
  65. @Resource
  66. TBTaskService tbTaskService;
  67. @Resource
  68. AsyncDownloadPdfTempleteService asyncDownloadPdfTempleteService;
  69. @ApiOperation(value = "印刷计划查询")
  70. @RequestMapping(value = "/list", method = RequestMethod.POST)
  71. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  72. public Result findPrintPlanPage(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  73. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  74. @ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
  75. @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status,
  76. @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
  77. @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
  78. @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  79. @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  80. if (semesterId == null) {
  81. throw ExceptionResultEnum.ERROR.exception("请选择学期");
  82. }
  83. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  84. if (Objects.isNull(printPlanIdList)) {
  85. printPlanIdList = new ArrayList<>();
  86. }
  87. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  88. return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId, SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), idList, status, startTime, endTime, pageNumber, pageSize));
  89. }
  90. @ApiOperation(value = "印刷计划模糊查询")
  91. @RequestMapping(value = "/query", method = RequestMethod.POST)
  92. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  93. public Result findPrintPlanQuery(@RequestParam(value = "source", required = false) String source,
  94. @RequestParam(value = "module", required = false) String module) {
  95. return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery(source, module));
  96. }
  97. @ApiOperation(value = "按类型查询模板")
  98. @RequestMapping(value = "/get_template", method = RequestMethod.POST)
  99. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  100. public Result findPrintPlanPage() {
  101. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  102. SysUser user = (SysUser) ServletUtil.getRequestUser();
  103. Long userId = user.getId();
  104. return ResultUtil.ok(examPrintPlanService.printPlanTemplateDatasource(schoolId, userId));
  105. }
  106. @ApiOperation(value = "印刷计划-新增/修改")
  107. @RequestMapping(value = "/save", method = RequestMethod.POST)
  108. @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)})
  109. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
  110. public Result savePrintPlan(@Valid @RequestBody PrintPlanParams printPlanParams, BindingResult bindingResult) {
  111. if (bindingResult.hasErrors()) {
  112. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  113. }
  114. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  115. printPlanParams.setSchoolId(schoolId);
  116. return ResultUtil.ok(examPrintPlanService.savePrintPlan(printPlanParams));
  117. }
  118. @ApiOperation(value = "印刷计划-删除")
  119. @RequestMapping(value = "/remove", method = RequestMethod.POST)
  120. @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = Result.class)})
  121. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.DELETE)
  122. public Result removePrintPlan(@Valid @RequestBody DeleteParams deleteParams, BindingResult bindingResult) {
  123. if (bindingResult.hasErrors()) {
  124. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  125. }
  126. return ResultUtil.ok(examPrintPlanService.removePrintPlan(deleteParams));
  127. }
  128. /**
  129. * 关联试卷管理-查询
  130. *
  131. * @param relateType
  132. * @param printPlanIdList 印刷计划id集合
  133. * @param courseCode
  134. * @param paperNumber
  135. * @param userName 命题老师
  136. * @return
  137. */
  138. @ApiOperation(value = "关联试卷管理-查询")
  139. @RequestMapping(value = "/relate_list", method = RequestMethod.POST)
  140. public Result relateList(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  141. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  142. @RequestParam(value = "relateType", required = false) String relateType,
  143. @RequestParam(value = "printPlanIdList", required = false) List<String> printPlanIdList,
  144. @RequestParam(value = "courseCode", required = false) String courseCode,
  145. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  146. @RequestParam(value = "userName", required = false) String userName,
  147. @RequestParam(value = "cardRuleId", required = false) Long cardRuleId) {
  148. if (semesterId == null) {
  149. throw ExceptionResultEnum.ERROR.exception("请选择学期");
  150. }
  151. if (Objects.isNull(printPlanIdList)) {
  152. printPlanIdList = new ArrayList<>();
  153. }
  154. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  155. List<ExamTaskDetailDto> examTasks = examTaskDetailService.list(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), relateType, idList, courseCode, paperNumber, userName, cardRuleId);
  156. return ResultUtil.ok(examTasks);
  157. }
  158. /**
  159. * 关联试卷管理-查询计划下命题任务共有的未曝光卷型
  160. *
  161. * @param relateType
  162. * @param printPlanIdList 印刷计划id集合
  163. * @param courseCode
  164. * @param paperNumber
  165. * @param userName 命题老师
  166. * @return
  167. */
  168. @ApiOperation(value = "关联试卷管理-查询计划下命题任务共有的未曝光卷型")
  169. @RequestMapping(value = "/list_relate_common_types", method = RequestMethod.POST)
  170. public Result relateCommonTypes(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  171. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  172. @RequestParam(value = "relateType", required = false) String relateType,
  173. @RequestParam(value = "printPlanIdList", required = false) List<String> printPlanIdList,
  174. @RequestParam(value = "courseCode", required = false) String courseCode,
  175. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  176. @RequestParam(value = "userName", required = false) String userName,
  177. @RequestParam(value = "cardRuleId", required = false) Long cardRuleId) {
  178. if (Objects.isNull(printPlanIdList)) {
  179. printPlanIdList = new ArrayList<>();
  180. }
  181. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  182. List<String> examTasks = examTaskDetailService.listRelateCommonTypes(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), relateType, idList, courseCode, paperNumber, userName, cardRuleId);
  183. return ResultUtil.ok(examTasks);
  184. }
  185. /**
  186. * 关联试卷管理-批量关联
  187. *
  188. * @param relateType
  189. * @param printPlanIdList 印刷计划id集合
  190. * @param courseCode
  191. * @param paperNumber
  192. * @param userName 命题老师
  193. * @return
  194. */
  195. @ApiOperation(value = "关联试卷管理-批量关联")
  196. @RequestMapping(value = "/relate_update_batch", method = RequestMethod.POST)
  197. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  198. public Result relateUpdateBatch(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  199. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  200. @RequestParam(value = "relateType", required = false) String relateType,
  201. @RequestParam(value = "printPlanIdList", required = false) List<String> printPlanIdList,
  202. @RequestParam(value = "courseCode", required = false) String courseCode,
  203. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  204. @RequestParam(value = "userName", required = false) String userName,
  205. @RequestParam(value = "cardRuleId", required = false) Long cardRuleId) throws IOException {
  206. if (Objects.isNull(printPlanIdList)) {
  207. printPlanIdList = new ArrayList<>();
  208. }
  209. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  210. List<ExamTaskDetailDto> examTasks = examTaskDetailService.list(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), relateType, idList, courseCode, paperNumber, userName, cardRuleId);
  211. for (ExamTaskDetailDto examTask : examTasks) {
  212. RelatePaperParam relatePaperParam = new RelatePaperParam();
  213. relatePaperParam.setExamDetailCourseIds(examTask.getExamDetailCourseIds());
  214. relatePaperParam.setExamTaskId(Long.valueOf(examTask.getId()));
  215. relatePaperParam.setPaperNumber(examTask.getPaperNumber());
  216. relatePaperParam.setPrintPlanId(Long.valueOf(examTask.getPrintPlanId()));
  217. relatePaperParam.setRelatePaperType(relateType);
  218. examTaskDetailService.updatePaper(relatePaperParam);
  219. }
  220. return ResultUtil.ok("true");
  221. }
  222. @ApiOperation(value = "关联试卷管理-查询-汇总数据")
  223. @RequestMapping(value = "/relate_total", method = RequestMethod.POST)
  224. public Result relateTotal(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  225. @ApiParam(value = "考试ID") @RequestParam(required = false) String examId,
  226. @RequestParam(value = "relateType", required = false) String relateType,
  227. @RequestParam(value = "printPlanIdList", required = false) List<String> printPlanIdList,
  228. @RequestParam(value = "courseCode", required = false) String courseCode,
  229. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  230. @RequestParam(value = "userName", required = false) String userName,
  231. @RequestParam(value = "cardRuleId", required = false) Long cardRuleId) {
  232. if (Objects.isNull(printPlanIdList)) {
  233. printPlanIdList = new ArrayList<>();
  234. }
  235. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  236. Map map = examTaskDetailService.listTotal(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), relateType, idList, courseCode, paperNumber, userName, cardRuleId);
  237. return ResultUtil.ok(map);
  238. }
  239. /**
  240. * 关联/更换试卷
  241. *
  242. * @param paperParam
  243. * @return
  244. */
  245. @ApiOperation(value = "关联/更换试卷")
  246. @RequestMapping(value = "/relate_update", method = RequestMethod.POST)
  247. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  248. public Result relateUpdate(@RequestBody RelatePaperParam paperParam) throws IOException {
  249. boolean isSuccess = examTaskDetailService.updatePaper(paperParam);
  250. return ResultUtil.ok(isSuccess);
  251. }
  252. /**
  253. * 查询所有试卷编号/关联卷型
  254. *
  255. * @param examTaskId
  256. * @return
  257. */
  258. @ApiOperation(value = "查询所有试卷编号/关联卷型")
  259. @RequestMapping(value = "/relate_get_paper_numbers", method = RequestMethod.POST)
  260. public Result relateGetPaperNumbers(@RequestParam(value = "examTaskId", required = true) Long examTaskId,
  261. @RequestParam(value = "printPlanId", required = true) Long printPlanId,
  262. @RequestParam(value = "courseCode", required = true) String courseCode) {
  263. List<RelatePaperDto> list = examTaskService.listPaperTypes(examTaskId, printPlanId, courseCode);
  264. return ResultUtil.ok(list);
  265. }
  266. /**
  267. * 印刷任务管理-查询
  268. *
  269. * @param printPlanId
  270. * @param status
  271. * @param courseCode
  272. * @param paperNumber
  273. * @param examPlace
  274. * @param examStartTime
  275. * @param examEndTime
  276. * @param printHouseId 印刷室id
  277. * @param pageNumber
  278. * @param pageSize
  279. * @return
  280. */
  281. @ApiOperation(value = "印刷任务管理-查询")
  282. @RequestMapping(value = "/task_list", method = RequestMethod.POST)
  283. public Result taskList(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  284. @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
  285. @RequestParam(value = "printPlanId", required = false) Long printPlanId,
  286. @RequestParam(value = "status", required = false) String status,
  287. @RequestParam(value = "courseCode", required = false) String courseCode,
  288. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  289. @RequestParam(value = "examPlace", required = false) String examPlace,
  290. @RequestParam(value = "examRoom", required = false) String examRoom,
  291. @RequestParam(value = "examStartTime", required = false) Long examStartTime,
  292. @RequestParam(value = "examEndTime", required = false) Long examEndTime,
  293. @RequestParam(value = "printStartTime", required = false) Long printStartTime,
  294. @RequestParam(value = "printEndTime", required = false) Long printEndTime,
  295. @RequestParam(value = "printHouseId", required = false) String printHouseId,
  296. @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  297. @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  298. if (semesterId == null) {
  299. throw ExceptionResultEnum.ERROR.exception("请选择学期");
  300. }
  301. IPage<PrintTaskDto> examTasks = examDetailService.listPrintTask(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, SystemConstant.convertIdToLong(printHouseId), pageNumber, pageSize);
  302. return ResultUtil.ok(examTasks);
  303. }
  304. /**
  305. * 提交印刷
  306. *
  307. * @param examDetail
  308. * @return
  309. */
  310. @ApiOperation(value = "印刷任务管理-提交印刷")
  311. @RequestMapping(value = "/task_submit", method = RequestMethod.POST)
  312. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  313. public Result taskSubmit(@RequestBody ExamDetail examDetail) throws IOException {
  314. boolean isSuccess = examDetailService.submitTask(examDetail);
  315. return ResultUtil.ok(isSuccess);
  316. }
  317. /**
  318. * 撤回
  319. *
  320. * @param examDetail
  321. * @return
  322. */
  323. @ApiOperation(value = "印刷任务管理-撤回提交")
  324. @RequestMapping(value = "/task_cancel", method = RequestMethod.POST)
  325. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  326. public Result taskCancel(@RequestBody ExamDetail examDetail) {
  327. boolean isSuccess = examDetailService.taskCancel(examDetail);
  328. return ResultUtil.ok(isSuccess);
  329. }
  330. /**
  331. * 重新提交
  332. *
  333. * @param examDetail
  334. * @return
  335. */
  336. @ApiOperation(value = "印刷任务管理-重新提交")
  337. @RequestMapping(value = "/task_resubmit", method = RequestMethod.POST)
  338. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  339. public Result taskResubmit(@RequestBody ExamDetail examDetail) throws IOException {
  340. boolean isSuccess = examDetailService.resubmitTask(examDetail);
  341. return ResultUtil.ok(isSuccess);
  342. }
  343. /**
  344. * 印刷任务管理-汇总数据查询
  345. *
  346. * @param printPlanId
  347. * @param status
  348. * @param courseCode
  349. * @param paperNumber
  350. * @param examPlace
  351. * @param examRoom
  352. * @param examStartTime
  353. * @param examEndTime
  354. * @return
  355. */
  356. @ApiOperation(value = "印刷任务管理-汇总数据查询")
  357. @RequestMapping(value = "/task_total_data", method = RequestMethod.POST)
  358. public Result taskTotalData(@RequestParam(value = "printPlanId", required = false) Long printPlanId,
  359. @RequestParam(value = "status", required = false) String status,
  360. @RequestParam(value = "courseCode", required = false) String courseCode,
  361. @RequestParam(value = "paperNumber", required = false) String paperNumber,
  362. @RequestParam(value = "examPlace", required = false) String examPlace,
  363. @RequestParam(value = "examRoom", required = false) String examRoom,
  364. @RequestParam(value = "examStartTime", required = false) Long examStartTime,
  365. @RequestParam(value = "examEndTime", required = false) Long examEndTime,
  366. @RequestParam(value = "printStartTime", required = false) Long printStartTime,
  367. @RequestParam(value = "printEndTime", required = false) Long printEndTime,
  368. @RequestParam(value = "printHouseId", required = false) String printHouseId) {
  369. PrintTaskTotalDto printTaskTotalDto = examDetailService.taskTotalData(printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, SystemConstant.convertIdToLong(printHouseId));
  370. return ResultUtil.ok(printTaskTotalDto);
  371. }
  372. /**
  373. * 印刷任务管理-查看印品
  374. *
  375. * @param map
  376. * @return
  377. */
  378. @ApiOperation(value = "印刷任务管理-查看印品")
  379. @RequestMapping(value = "/template_view", method = RequestMethod.POST)
  380. public Result tempalteViewPDF(@RequestBody Map<String, Long> map) {
  381. List<Map<String, String>> list = examPrintPlanService.tempalteView(map.get("printPlanId"));
  382. return ResultUtil.ok(list);
  383. }
  384. /**
  385. * 印刷任务管理-查看PDF
  386. *
  387. * @param map
  388. * @return
  389. */
  390. @ApiOperation(value = "印刷任务管理-查看PDF")
  391. @RequestMapping(value = "/task_view_pdf", method = RequestMethod.POST)
  392. public Result taskViewPDF(@RequestBody Map<String, Long> map) {
  393. List<JSONObject> list = examDetailService.taskViewPDF(map.get("examDetailId"));
  394. return ResultUtil.ok(list);
  395. }
  396. @ApiOperation(value = "印刷任务管理-批量下载PDF")
  397. @RequestMapping(value = "/task_download_pdf", method = RequestMethod.POST)
  398. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  399. public Result taskDownloadPdf(@ApiParam(value = "id数组", required = true) @Valid @RequestBody ArraysParams arraysParams, BindingResult bindingResult) throws Exception {
  400. if (bindingResult.hasErrors()) {
  401. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  402. }
  403. List<ExamDetail> examDetailList = examDetailService.listByIds(Arrays.asList(arraysParams.getIds()));
  404. for (ExamDetail ExamDetail : examDetailList) {
  405. if (ExamDetail.getStatus() == ExamDetailStatusEnum.NEW) {
  406. throw ExceptionResultEnum.ERROR.exception("状态为新建不能下载");
  407. }
  408. }
  409. Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.PRINT_PDF_DOWNLOAD, arraysParams, (SysUser) ServletUtil.getRequestUser());
  410. asyncDownloadPdfTempleteService.exportTask(map);
  411. TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
  412. return Objects.nonNull(tbTask) ? ResultUtil.ok(new EditResult(tbTask.getId())) : ResultUtil.error("创建任务失败");
  413. }
  414. /**
  415. * 印刷任务做废、恢复
  416. *
  417. * @param examDetail
  418. * @return
  419. */
  420. @ApiOperation(value = "印刷任务管理-做废/恢复")
  421. @RequestMapping(value = "/task_normal", method = RequestMethod.POST)
  422. @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
  423. public Result taskNormal(@RequestBody ExamDetail examDetail) {
  424. boolean isSuccess = examDetailService.taskNormal(examDetail);
  425. return ResultUtil.ok(isSuccess);
  426. }
  427. }