ExamDetailController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  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.service.ExamDetailService;
  5. import com.qmth.distributed.print.business.service.ExamStudentService;
  6. import com.qmth.distributed.print.business.service.PrintCommonService;
  7. import com.qmth.distributed.print.business.templete.execute.AsyncExaminationExportTemplateService;
  8. import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
  9. import com.qmth.teachcloud.common.contant.SystemConstant;
  10. import com.qmth.teachcloud.common.entity.TBTask;
  11. import com.qmth.teachcloud.common.enums.TaskTypeEnum;
  12. import com.qmth.teachcloud.common.service.TBTaskService;
  13. import com.qmth.teachcloud.common.service.TeachcloudCommonService;
  14. import com.qmth.teachcloud.common.util.Result;
  15. import com.qmth.teachcloud.common.util.ResultUtil;
  16. import com.qmth.teachcloud.common.util.ServletUtil;
  17. import io.swagger.annotations.*;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestMethod;
  20. import org.springframework.web.bind.annotation.RequestParam;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import javax.annotation.Resource;
  24. import java.io.IOException;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.Objects;
  28. import java.util.Set;
  29. import java.util.stream.Collectors;
  30. /**
  31. * <p>
  32. * 考务数据 前端控制器
  33. * </p>
  34. *
  35. * @author xf
  36. * @since 2021-03-23
  37. */
  38. @Api(tags = "考务数据管理Controller")
  39. @RestController
  40. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
  41. public class ExamDetailController {
  42. @Resource
  43. private TBTaskService tbTaskService;
  44. @Resource
  45. private AsyncExaminationImportTemplateService asyncExaminationImportTemplateService;
  46. @Resource
  47. private AsyncExaminationExportTemplateService asyncExaminationExportTemplateService;
  48. @Resource
  49. private ExamDetailService examDetailService;
  50. @Resource
  51. private PrintCommonService printCommonService;
  52. @Resource
  53. private ExamStudentService examStudentService;
  54. @Resource
  55. TeachcloudCommonService teachcloudCommonService;
  56. @ApiOperation(value = "异步考务数据批量导入接口")
  57. @RequestMapping(value = "/data_import", method = RequestMethod.POST)
  58. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  59. public Result examinationImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
  60. @ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId) throws Exception {
  61. Map<String, Object> map = printCommonService.saveTask(SystemConstant.convertIdToLong(printPlanId), file, TaskTypeEnum.EXAMINATION_IMPORT);
  62. asyncExaminationImportTemplateService.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. @RequestMapping(value = "/data_list", method = RequestMethod.POST)
  68. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  69. public Result findExaminationBrief(@ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
  70. @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
  71. @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
  72. @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
  73. @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
  74. @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode,
  75. @ApiParam(value = "考试日期-起始") @RequestParam(required = false) Long startDate,
  76. @ApiParam(value = "考试日期-终止") @RequestParam(required = false) Long endDate,
  77. @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
  78. @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
  79. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  80. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  81. Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
  82. return ResultUtil.ok(examDetailService.findExaminationBriefPage(schoolId,
  83. idList, courseCode, paperNumber, examPlace, examRoom, packageCode,startDate,endDate, pageNumber, pageSize, orgIds));
  84. }
  85. @ApiOperation(value = "考务数据导入-汇总数据查询")
  86. @RequestMapping(value = "/data_total", method = RequestMethod.POST)
  87. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  88. public Result findSummarizedData(@ApiParam(value = "印刷计划id集合") @RequestParam(required = false) List<String> printPlanIdList,
  89. @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
  90. @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
  91. @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
  92. @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
  93. @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode,
  94. @ApiParam(value = "考试日期-起始") @RequestParam(required = false) Long startDate,
  95. @ApiParam(value = "考试日期-终止") @RequestParam(required = false) Long endDate) {
  96. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  97. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  98. Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
  99. return ResultUtil.ok(examDetailService.findSummarizedData(schoolId, idList, courseCode, paperNumber, examPlace, examRoom, packageCode,startDate,endDate, orgIds));
  100. }
  101. @ApiOperation(value = "考务数据导入-查看明细")
  102. @RequestMapping(value = "/data_detail", method = RequestMethod.POST)
  103. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  104. public Result findExaminationDetail(@ApiParam(value = "印刷计划主键集合") @RequestParam(required = false) List<String> printPlanIdList,
  105. @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
  106. @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
  107. @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
  108. @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
  109. @ApiParam(value = "学生查询参数") @RequestParam(required = false) String studentParams,
  110. @ApiParam(value = "考试日期-起始") @RequestParam(required = false) Long startDate,
  111. @ApiParam(value = "考试日期-终止") @RequestParam(required = false) Long endDate,
  112. @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
  113. @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
  114. List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
  115. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  116. return ResultUtil.ok(examDetailService.findExaminationDetail(schoolId, idList,
  117. courseCode, paperNumber, examPlace, examRoom, studentParams,startDate,endDate, pageNumber, pageSize));
  118. }
  119. @ApiOperation(value = "查看考生明细")
  120. @RequestMapping(value = "/get_student_detail", method = RequestMethod.POST)
  121. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  122. public Result getStudentDetail(@ApiParam(value = "考生表主键") @RequestParam(required = false) Long id) {
  123. Map<String, Object> map = examStudentService.getStudentDetail(id);
  124. return ResultUtil.ok(map);
  125. }
  126. @ApiOperation(value = "考务数据导入-查看明细弹窗")
  127. @RequestMapping(value = "/data_detail_list", method = RequestMethod.POST)
  128. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  129. public Result findExaminationDetailById(@ApiParam(value = "考务场次id", required = true) @RequestParam String examDetailId,
  130. @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
  131. @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
  132. return ResultUtil.ok(examDetailService.findExaminationDetail(SystemConstant.convertIdToLong(examDetailId), pageNumber, pageSize));
  133. }
  134. @ApiOperation(value = "考务数据导入-考点模糊查询")
  135. @RequestMapping(value = "/data_place_query", method = RequestMethod.POST)
  136. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  137. public Result findExamPlaceDatasource(@RequestParam(value = "param", required = false) String param,
  138. @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
  139. return ResultUtil.ok(examDetailService.findExamPlaceDatasource(param, printPlanId));
  140. }
  141. @ApiOperation(value = "考务数据导入-考场模糊查询")
  142. @RequestMapping(value = "/data_room_query", method = RequestMethod.POST)
  143. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  144. public Result findExamRoomDatasource(@RequestParam(value = "param", required = false) String param,
  145. @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
  146. return ResultUtil.ok(examDetailService.findExamRoomDatasource(param, printPlanId));
  147. }
  148. @ApiOperation(value = "考务数据导入-模板下载")
  149. @RequestMapping(value = "/template_download", method = RequestMethod.POST)
  150. @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = EditResult.class)})
  151. public void downLoadExaminationTemplate() throws IOException {
  152. Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
  153. examDetailService.downLoadExaminationTemplate(schoolId, ServletUtil.getResponse());
  154. }
  155. @ApiOperation(value = "考务数据导入-结果导出")
  156. @RequestMapping(value = "/data_export", method = RequestMethod.POST)
  157. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  158. public Result dataExport(@ApiParam(value = "印刷计划id") @RequestParam(required = false) String printPlanId,
  159. @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
  160. @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
  161. @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
  162. @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
  163. @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode) {
  164. Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
  165. Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.EXAMINATION_EXPORT, SystemConstant.convertIdToLong(printPlanId));
  166. map.put("printPlanId", printPlanId);
  167. map.put("courseCode", courseCode);
  168. map.put("paperNumber", paperNumber);
  169. map.put("examPlace", examPlace);
  170. map.put("examRoom", examRoom);
  171. map.put("packageCode", packageCode);
  172. map.put("orgIds", orgIds);
  173. asyncExaminationExportTemplateService
  174. .exportTask(map);
  175. TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
  176. return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
  177. }
  178. }