package edp.davinci.controller; import edp.core.annotation.CurrentUser; import edp.davinci.common.controller.BaseController; import edp.davinci.core.common.Constants; import edp.davinci.core.common.ResultMap; import edp.davinci.core.enums.CronJobStatusEnum; import edp.davinci.dto.cronJobDto.CronJobBaseInfo; import edp.davinci.dto.cronJobDto.CronJobInfo; import edp.davinci.model.QualityAuditor; import edp.davinci.model.QualityTask; import edp.davinci.model.User; import edp.davinci.service.CronJobService; import edp.davinci.service.QualityAuditorService; import edp.davinci.service.QualityTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.List; @Api(value = "/qualityTask", tags = "qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ApiResponses(@ApiResponse(code = 404, message = "qualityTask not found")) @Slf4j @RestController @RequestMapping(value = Constants.BASE_API_PATH + "/qualityTask", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) public class QualityTaskController extends BaseController { @Autowired private QualityTaskService qualityTaskService; @Autowired private QualityAuditorService qualityAuditorService; @Autowired private CronJobService cronJobService; /** * 获取 质量任务 * * @param user * @param request * @return */ @ApiOperation(value = "get qualityTask") @GetMapping(value = "/getQualityTask") public ResponseEntity getQualityTask(@ApiIgnore @CurrentUser User user, HttpServletRequest request) { List qualityTasks = qualityTaskService.getQualityTask(); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityTasks)); } /** * 增加 质量任务 * * @param qualityTask * @param bindingResult * @param user * @param request * @return */ @ApiOperation(value = "create qualityTask") @PostMapping(value = "/createQualityTask", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity createQualityTask(@Valid @RequestBody QualityTask qualityTask, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (bindingResult.hasErrors()) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage()); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } qualityTask = qualityTaskService.createQualityTask(qualityTask); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payload(qualityTask)); } /** * 修改 qualityTask * * @param id * @param qualityTask * @param bindingResult * @param user * @param request * @return */ @ApiOperation(value = "update qualityTask") @PutMapping(value = "/updateQualityTask/{id}", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity updateQualityTask(@PathVariable Long id, @Valid @RequestBody QualityTask qualityTask, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (invalidId(id) || !id.equals(qualityTask.getId())) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id"); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } if (bindingResult.hasErrors()) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage()); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } qualityTaskService.updateQualityTask(qualityTask); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } /** * 删除 qualityTask * * @param id * @param user * @param request * @return */ @ApiOperation(value = "delete qualityTask") @DeleteMapping("/deleteQualityTask/{id}") public ResponseEntity deleteQualityTask(@PathVariable Long id, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { if (invalidId(id)) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message("Invalid dataSubject id"); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } qualityTaskService.deleteQualityTask(id); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } /** * 立即稽核 * * @param id * @param request * @return */ @ApiOperation(value = "auditor") @PutMapping(value = "/auditor/{id}", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity auditor(@PathVariable Long id, HttpServletRequest request) { // 1. 根据任务id,查询质量任务 qualityTaskService.auditor(id); // 2. return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } /** * 设置调度 * * @param cronJob * @param request * @return */ @ApiOperation(value = "setDispatch") @PutMapping(value = "/setDispatch/{id}", consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity setDispatch(@PathVariable Long id,@RequestBody CronJobInfo cronJob, @ApiIgnore BindingResult bindingResult, @ApiIgnore @CurrentUser User user, HttpServletRequest request) { // 1. 保存任务 if (bindingResult.hasErrors()) { ResultMap resultMap = new ResultMap(tokenUtils).failAndRefreshToken(request).message(bindingResult.getFieldErrors().get(0).getDefaultMessage()); return ResponseEntity.status(resultMap.getCode()).body(resultMap); } cronJob.setConfig("{}"); CronJobInfo jobInfo = cronJobService.createCronJob(cronJob, user); // 2. 更新定时规则id到任务中 QualityTask qualityTask = new QualityTask(); qualityTask.setId(id); qualityTask.setCronJobId(jobInfo.getId()); qualityTaskService.updateQualityTask(qualityTask); // 3. 执行 if(cronJob.getJobStatus().equals(CronJobStatusEnum.START)){ // 启动 激活 // cronJobService.executeCronJob() cronJobService.startCronJob(jobInfo.getId(),user); } return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request)); } /** * 质量报告 * * @param user * @param request * @return */ @ApiOperation(value = "get qualityReport") @GetMapping(value = "/qualityReport") public ResponseEntity qualityReport(@ApiIgnore @CurrentUser User user, HttpServletRequest request) { List qualityAuditors = qualityAuditorService.getQualityAuditors(); return ResponseEntity.ok(new ResultMap(tokenUtils).successAndRefreshToken(request).payloads(qualityAuditors)); } public static void main(String[] args) { int resultLimit = 10000; int limit = -1; int count = limit > resultLimit ? resultLimit : limit > 0 ? limit : resultLimit; System.out.println(count); } }