BasicStudentController.java 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.teachcloud.common.bean.params.BasicStudentParams;
  4. import com.qmth.distributed.print.business.bean.result.EditResult;
  5. import com.qmth.teachcloud.common.service.BasicStudentService;
  6. import com.qmth.distributed.print.business.service.PrintCommonService;
  7. import com.qmth.distributed.print.business.templete.execute.AsyncStudentDataImportService;
  8. import com.qmth.teachcloud.common.contant.SystemConstant;
  9. import com.qmth.teachcloud.common.entity.SysUser;
  10. import com.qmth.teachcloud.common.entity.TBTask;
  11. import com.qmth.teachcloud.common.enums.TaskTypeEnum;
  12. import com.qmth.teachcloud.common.util.Result;
  13. import com.qmth.teachcloud.common.util.ResultUtil;
  14. import com.qmth.teachcloud.common.util.ServletUtil;
  15. import io.swagger.annotations.*;
  16. import org.springframework.validation.BindingResult;
  17. import org.springframework.web.bind.annotation.*;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import javax.annotation.Resource;
  20. import javax.validation.Valid;
  21. import java.util.*;
  22. /**
  23. * <p>
  24. * 学校id 前端控制器
  25. * </p>
  26. *
  27. * @author wangliang
  28. * @since 2021-08-02
  29. */
  30. @Api(tags = "学生管理controller")
  31. @RestController
  32. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/student")
  33. //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
  34. public class BasicStudentController {
  35. @Resource
  36. private BasicStudentService basicStudentService;
  37. @Resource
  38. private PrintCommonService printCommonService;
  39. @Resource
  40. private AsyncStudentDataImportService asyncStudentDataImportService;
  41. @ApiOperation(value = "学生基本信息管理-查询")
  42. @RequestMapping(value = "/query", method = RequestMethod.POST)
  43. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  44. public Result findBasicStudentList(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
  45. @ApiParam(value = "校区主键") @RequestParam(required = false) String campusId,
  46. @ApiParam(value = "班级主键") @RequestParam(required = false) String clazzId,
  47. @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
  48. @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
  49. Set<Long> clazzIdSet = new HashSet<>();
  50. if (SystemConstant.strNotNull(clazzId)){
  51. clazzIdSet.add(SystemConstant.convertIdToLong(clazzId));
  52. }else {
  53. clazzIdSet = null;
  54. }
  55. return ResultUtil.ok(basicStudentService.basicStudentPage(queryParams,SystemConstant.convertIdToLong(campusId),clazzIdSet, pageNumber, pageSize));
  56. }
  57. @ApiOperation(value = "学生基本信息管理-新增/编辑")
  58. @RequestMapping(value = "/save", method = RequestMethod.POST)
  59. @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = EditResult.class)})
  60. public Result saveBasicStudent(@Valid @RequestBody BasicStudentParams basicStudentParams, BindingResult bindingResult) {
  61. if (bindingResult.hasErrors()) {
  62. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  63. }
  64. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  65. return ResultUtil.ok(basicStudentService.saveBasicStudent(basicStudentParams,sysUser));
  66. }
  67. @ApiOperation(value = "学生基本信息管理-批量删除(逻辑)")
  68. @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
  69. @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
  70. public Result deleteBasicStudent(@ApiParam(value = "选择的要删除的学生id集合",required = true) @RequestParam List<Long> idList) {
  71. return ResultUtil.ok(basicStudentService.removeBasicStudentBatch(idList));
  72. }
  73. @ApiOperation(value = "学生基本信息管理-批量导入(异步)")
  74. @RequestMapping(value = "/data_import", method = RequestMethod.POST)
  75. @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
  76. public Result basicStudentImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
  77. SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
  78. Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STUDENT_IMPORT);
  79. map.put(SystemConstant.SYS_USER,sysUser);
  80. asyncStudentDataImportService.importTask(map);
  81. TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
  82. return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
  83. }
  84. }