123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package cn.com.qmth.scancentral.controller.admin;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import com.qmth.boot.api.annotation.Aac;
- import com.qmth.boot.api.constant.ApiConstant;
- import com.qmth.boot.core.exception.ParameterException;
- import cn.com.qmth.scancentral.controller.BaseController;
- import cn.com.qmth.scancentral.service.AsyncTaskService;
- import cn.com.qmth.scancentral.util.Calculator;
- import cn.com.qmth.scancentral.vo.asynctask.AsyncProgressVo;
- import cn.com.qmth.scancentral.vo.asynctask.AsyncTaskVo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- @RestController
- @Api(tags = "异步任务接口")
- @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/async-task")
- @Aac(strict = false, auth = true)
- public class AsyncTaskController extends BaseController {
- @Autowired
- private AsyncTaskService asyncTaskService;
- @ApiOperation(value = "异步任务进度查询")
- @PostMapping("progress")
- public AsyncProgressVo progress(@RequestParam String taskId) {
- AsyncTaskVo vo = asyncTaskService.getTask(taskId);
- if (vo == null) {
- throw new ParameterException("未找到导出任务");
- }
- vo.setProgress(Calculator.percentageDouble(vo.getProgressCount(), vo.getTotalCount()));
- if (vo.getProgress() == 100 && vo.getProgressCount() != vo.getTotalCount()) {
- vo.setProgress(99.99);
- }
- AsyncProgressVo ret = new AsyncProgressVo();
- ret.setErrMsg(vo.getErrMsg());
- ret.setProgress(vo.getProgress());
- ret.setStatus(vo.getStatus());
- return ret;
- }
- }
|