AsyncTaskController.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cn.com.qmth.scancentral.controller.admin;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.PostMapping;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import com.qmth.boot.api.annotation.Aac;
  8. import com.qmth.boot.api.constant.ApiConstant;
  9. import com.qmth.boot.core.exception.ParameterException;
  10. import cn.com.qmth.scancentral.controller.BaseController;
  11. import cn.com.qmth.scancentral.service.AsyncTaskService;
  12. import cn.com.qmth.scancentral.util.Calculator;
  13. import cn.com.qmth.scancentral.vo.asynctask.AsyncProgressVo;
  14. import cn.com.qmth.scancentral.vo.asynctask.AsyncTaskVo;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. @RestController
  18. @Api(tags = "异步任务接口")
  19. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/async-task")
  20. @Aac(strict = false, auth = true)
  21. public class AsyncTaskController extends BaseController {
  22. @Autowired
  23. private AsyncTaskService asyncTaskService;
  24. @ApiOperation(value = "异步任务进度查询")
  25. @PostMapping("progress")
  26. public AsyncProgressVo progress(@RequestParam String taskId) {
  27. AsyncTaskVo vo = asyncTaskService.getTask(taskId);
  28. if (vo == null) {
  29. throw new ParameterException("未找到导出任务");
  30. }
  31. vo.setProgress(Calculator.percentageDouble(vo.getProgressCount(), vo.getTotalCount()));
  32. if (vo.getProgress() == 100 && vo.getProgressCount() != vo.getTotalCount()) {
  33. vo.setProgress(99.99);
  34. }
  35. AsyncProgressVo ret = new AsyncProgressVo();
  36. ret.setErrMsg(vo.getErrMsg());
  37. ret.setProgress(vo.getProgress());
  38. ret.setStatus(vo.getStatus());
  39. return ret;
  40. }
  41. }