From 6e4c089625c346301254849e4c8ba54218ed3a1a Mon Sep 17 00:00:00 2001 From: weishengyou <2454197255@qq.com> Date: Wed, 1 Apr 2026 14:29:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(flowable):=20=E6=B7=BB=E5=8A=A0=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20=E5=9C=A8FlowQueryVo=E4=B8=AD=E6=96=B0?= =?UTF-8?q?=E5=A2=9Ecategory=E5=AD=97=E6=AE=B5=E7=94=A8=E4=BA=8E=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=88=86=E7=B1=BB=E7=AD=9B=E9=80=89=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=BE=85=E5=8A=9E=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=8C=89=E5=88=86=E7=B1=BB=E7=AD=9B=E9=80=89=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flowable/FlowTaskController.java | 6 ++++ .../srs/flowable/domain/vo/FlowQueryVo.java | 2 ++ .../flowable/service/IFlowTaskService.java | 8 +++++ .../service/impl/FlowTaskServiceImpl.java | 34 +++++++++++++++++++ 4 files changed, 50 insertions(+) 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); + } + /** * 已办任务列表