diff --git a/srs-admin/src/main/java/com/srs/web/controller/flowable/FlowTaskController.java b/srs-admin/src/main/java/com/srs/web/controller/flowable/FlowTaskController.java index 56d3f47..5c3ae57 100644 --- a/srs-admin/src/main/java/com/srs/web/controller/flowable/FlowTaskController.java +++ b/srs-admin/src/main/java/com/srs/web/controller/flowable/FlowTaskController.java @@ -58,6 +58,12 @@ public class FlowTaskController { return flowTaskService.todoList(queryVo); } + @ApiOperation(value = "获取待办数量统计", response = Integer.class) + @GetMapping(value = "/todoCount") + public AjaxResult todoCount(FlowQueryVo queryVo) { + return flowTaskService.todoCount(queryVo); + } + @ApiOperation(value = "获取已办任务", response = FlowTaskDto.class) @GetMapping(value = "/finishedList") public AjaxResult finishedList(FlowQueryVo queryVo) throws Exception { diff --git a/srs-flowable/src/main/java/com/srs/flowable/domain/vo/FlowQueryVo.java b/srs-flowable/src/main/java/com/srs/flowable/domain/vo/FlowQueryVo.java index e5ce179..6b3dfe1 100644 --- a/srs-flowable/src/main/java/com/srs/flowable/domain/vo/FlowQueryVo.java +++ b/srs-flowable/src/main/java/com/srs/flowable/domain/vo/FlowQueryVo.java @@ -35,5 +35,7 @@ public class FlowQueryVo { @ApiModelProperty("每页条数") private Integer pageSize; + @ApiModelProperty("流程分类(category)") + private String category; } diff --git a/srs-flowable/src/main/java/com/srs/flowable/service/IFlowTaskService.java b/srs-flowable/src/main/java/com/srs/flowable/service/IFlowTaskService.java index 9e6aa9e..48f944b 100644 --- a/srs-flowable/src/main/java/com/srs/flowable/service/IFlowTaskService.java +++ b/srs-flowable/src/main/java/com/srs/flowable/service/IFlowTaskService.java @@ -130,6 +130,14 @@ public interface IFlowTaskService { */ AjaxResult todoList(FlowQueryVo queryVo); + /** + * 待办任务数量统计 + * + * @param queryVo 请求参数 + * @return + */ + AjaxResult todoCount(FlowQueryVo queryVo); + /** * 已办任务列表 diff --git a/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java b/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java index dda1c40..5ac9c43 100644 --- a/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java +++ b/srs-flowable/src/main/java/com/srs/flowable/service/impl/FlowTaskServiceImpl.java @@ -785,6 +785,40 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask return AjaxResult.success(page); } + /** + * 待办任务数量统计 + * + * @param queryVo 请求参数 + * @return + */ + @Override + public AjaxResult todoCount(FlowQueryVo queryVo) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + TaskQuery taskQuery = taskService.createTaskQuery() + .active() + .includeProcessVariables() + .taskCandidateGroupIn(sysUser.getRoles().stream().map(role -> role.getRoleId().toString()).collect(Collectors.toList())) + .taskCandidateOrAssigned(sysUser.getUserId().toString()) + .orderByTaskCreateTime().desc(); + + List taskList = taskQuery.list(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + int count = 0; + for (Task task : taskList) { + ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() + .processDefinitionId(task.getProcessDefinitionId()) + .singleResult(); + String category = pd.getCategory(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(queryVo.getCategory())) { + if (!queryVo.getCategory().equals(category)) { + continue; + } + } + count++; + } + return AjaxResult.success(count); + } + /** * 已办任务列表