QualityTaskController.java 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. package edp.davinci.controller;
  2. import edp.core.annotation.CurrentUser;
  3. import edp.davinci.common.controller.BaseController;
  4. import edp.davinci.core.common.Constants;
  5. import edp.davinci.core.common.ResultMap;
  6. import edp.davinci.core.enums.CronJobStatusEnum;
  7. import edp.davinci.dto.cronJobDto.CronJobBaseInfo;
  8. import edp.davinci.dto.cronJobDto.CronJobInfo;
  9. import edp.davinci.model.QualityAuditor;
  10. import edp.davinci.model.QualityTask;
  11. import edp.davinci.model.User;
  12. import edp.davinci.service.CronJobService;
  13. import edp.davinci.service.QualityAuditorService;
  14. import edp.davinci.service.QualityTaskService;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import io.swagger.annotations.ApiResponse;
  18. import io.swagger.annotations.ApiResponses;
  19. import lombok.extern.slf4j.Slf4j;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.http.MediaType;
  22. import org.springframework.http.ResponseEntity;
  23. import org.springframework.validation.BindingResult;
  24. import org.springframework.web.bind.annotation.*;
  25. import springfox.documentation.annotations.ApiIgnore;
  26. import javax.servlet.http.HttpServletRequest;
  27. import javax.validation.Valid;
  28. import java.util.List;
  29. @Api(value = "/qualityTask", tags = "qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  30. @ApiResponses(@ApiResponse(code = 404, message = "qualityTask not found"))
  31. @Slf4j
  32. @RestController
  33. @RequestMapping(value = Constants.BASE_API_PATH + "/qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  34. public class QualityTaskController extends BaseController
  35. {
  36. @Autowired
  37. private QualityTaskService qualityTaskService;
  38. @Autowired
  39. private QualityAuditorService qualityAuditorService;
  40. @Autowired
  41. private CronJobService cronJobService;
  42. /**
  43. * 获取 质量任务
  44. *
  45. * @param user
  46. * @param request
  47. * @return
  48. */
  49. @ApiOperation(value = "get qualityTask")
  50. @GetMapping(value = "/getQualityTask")
  51. public ResponseEntity getQualityTask(@ApiIgnore @CurrentUser User user,
  52. HttpServletRequest request)
  53. {
  54. List<QualityTask> qualityTasks = qualityTaskService.getQualityTask();
  55. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityTasks));
  56. }
  57. /**
  58. * 增加 质量任务
  59. *
  60. * @param qualityTask
  61. * @param bindingResult
  62. * @param user
  63. * @param request
  64. * @return
  65. */
  66. @ApiOperation(value = "create qualityTask")
  67. @PostMapping(value = "/createQualityTask", consumes = MediaType.APPLICATION_JSON_VALUE)
  68. public ResponseEntity createQualityTask(@Valid @RequestBody QualityTask qualityTask,
  69. @ApiIgnore BindingResult bindingResult,
  70. @ApiIgnore @CurrentUser User user,
  71. HttpServletRequest request)
  72. {
  73. if (bindingResult.hasErrors())
  74. {
  75. ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
  76. return ResponseEntity.status(resultMap.getCode()).body(resultMap);
  77. }
  78. qualityTask = qualityTaskService.createQualityTask(qualityTask);
  79. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payload(qualityTask));
  80. }
  81. /**
  82. * 修改 qualityTask
  83. *
  84. * @param id
  85. * @param qualityTask
  86. * @param bindingResult
  87. * @param user
  88. * @param request
  89. * @return
  90. */
  91. @ApiOperation(value = "update qualityTask")
  92. @PutMapping(value = "/updateQualityTask/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
  93. public ResponseEntity updateQualityTask(@PathVariable Long id,
  94. @Valid @RequestBody QualityTask qualityTask,
  95. @ApiIgnore BindingResult bindingResult,
  96. @ApiIgnore @CurrentUser User user,
  97. HttpServletRequest request)
  98. {
  99. if (invalidId(id) || !id.equals(qualityTask.getId()))
  100. {
  101. ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id");
  102. return ResponseEntity.status(resultMap.getCode()).body(resultMap);
  103. }
  104. if (bindingResult.hasErrors())
  105. {
  106. ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
  107. return ResponseEntity.status(resultMap.getCode()).body(resultMap);
  108. }
  109. qualityTaskService.updateQualityTask(qualityTask);
  110. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
  111. }
  112. /**
  113. * 删除 qualityTask
  114. *
  115. * @param id
  116. * @param user
  117. * @param request
  118. * @return
  119. */
  120. @ApiOperation(value = "delete qualityTask")
  121. @DeleteMapping("/deleteQualityTask/{id}")
  122. public ResponseEntity deleteQualityTask(@PathVariable Long id,
  123. @ApiIgnore @CurrentUser User user,
  124. HttpServletRequest request)
  125. {
  126. if (invalidId(id))
  127. {
  128. ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id");
  129. return ResponseEntity.status(resultMap.getCode()).body(resultMap);
  130. }
  131. qualityTaskService.deleteQualityTask(id);
  132. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
  133. }
  134. /**
  135. * 立即稽核
  136. *
  137. * @param id
  138. * @param request
  139. * @return
  140. */
  141. @ApiOperation(value = "auditor")
  142. @PutMapping(value = "/auditor/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
  143. public ResponseEntity auditor(@PathVariable Long id, HttpServletRequest request)
  144. {
  145. // 1. 根据任务id,查询质量任务
  146. qualityTaskService.auditor(id);
  147. // 2.
  148. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
  149. }
  150. /**
  151. * 设置调度
  152. *
  153. * @param cronJob
  154. * @param request
  155. * @return
  156. */
  157. @ApiOperation(value = "setDispatch")
  158. @PutMapping(value = "/setDispatch/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
  159. public ResponseEntity setDispatch(@PathVariable Long id,@RequestBody CronJobInfo cronJob, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request)
  160. {
  161. // 1. 保存任务
  162. if (bindingResult.hasErrors())
  163. {
  164. ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage());
  165. return ResponseEntity.status(resultMap.getCode()).body(resultMap);
  166. }
  167. cronJob.setConfig("{}");
  168. CronJobInfo jobInfo = cronJobService.createCronJob(cronJob, user);
  169. // 2. 更新定时规则id到任务中
  170. QualityTask qualityTask = new QualityTask();
  171. qualityTask.setId(id);
  172. qualityTask.setCronJobId(jobInfo.getId());
  173. qualityTaskService.updateQualityTask(qualityTask);
  174. // 3. 执行
  175. if(cronJob.getJobStatus().equals(CronJobStatusEnum.START)){ // 启动 激活
  176. // cronJobService.executeCronJob()
  177. cronJobService.startCronJob(jobInfo.getId(),user);
  178. }
  179. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request));
  180. }
  181. /**
  182. * 质量报告
  183. *
  184. * @param user
  185. * @param request
  186. * @return
  187. */
  188. @ApiOperation(value = "get qualityReport")
  189. @GetMapping(value = "/qualityReport")
  190. public ResponseEntity qualityReport(@ApiIgnore @CurrentUser User user,
  191. HttpServletRequest request)
  192. {
  193. List<QualityAuditor> qualityAuditors = qualityAuditorService.getQualityAuditors();
  194. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityAuditors));
  195. }
  196. public static void main(String[] args)
  197. {
  198. int resultLimit = 10000;
  199. int limit = -1;
  200. int count = limit > resultLimit ? resultLimit : limit > 0 ? limit : resultLimit;
  201. System.out.println(count);
  202. }
  203. }