From f58f12c603c06feea5c33e40648c06c7b9c990bd Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Tue, 4 Jul 2023 21:36:38 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=A7=9F=E6=88=B7=E6=89=80=E6=9C=89=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=EF=BC=8C=E5=B7=B2=E5=8A=9E=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ActTaskController.java | 20 +++++ .../workflow/service/IActTaskService.java | 17 ++++ .../service/impl/ActTaskServiceImpl.java | 84 +++++++++++++++++++ 3 files changed, 121 insertions(+) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java index 2d6ff6c24..9b42af828 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java @@ -70,6 +70,16 @@ public class ActTaskController extends BaseController { return iActTaskService.getTaskWaitByPage(taskBo); } + /** + * 查询当前租户所有待办任务 + * + * @param taskBo 参数 + */ + @GetMapping("/getAllTaskWaitByPage") + public TableDataInfo getAllTaskWaitByPage(TaskBo taskBo) { + return iActTaskService.getAllTaskWaitByPage(taskBo); + } + /** * 查询当前用户的已办任务 * @@ -80,6 +90,16 @@ public class ActTaskController extends BaseController { return iActTaskService.getTaskFinishByPage(taskBo); } + /** + * 查询当前租户所有已办任务 + * + * @param taskBo 参数 + */ + @GetMapping("/getAllTaskFinishByPage") + public TableDataInfo getAllTaskFinishByPage(TaskBo taskBo) { + return iActTaskService.getAllTaskFinishByPage(taskBo); + } + /** * 签收(拾取)任务 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActTaskService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActTaskService.java index 0aabbc40a..fea6ac4ee 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActTaskService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActTaskService.java @@ -37,6 +37,15 @@ public interface IActTaskService { */ TableDataInfo getTaskWaitByPage(TaskBo taskBo); + /** + * 查询当前租户所有待办任务 + * + * @param taskBo 参数 + * @return 结果 + */ + TableDataInfo getAllTaskWaitByPage(TaskBo taskBo); + + /** * 查询当前用户的已办任务 * @@ -45,6 +54,14 @@ public interface IActTaskService { */ TableDataInfo getTaskFinishByPage(TaskBo taskBo); + /** + * 查询当前租户所有已办任务 + * + * @param taskBo 参数 + * @return 结果 + */ + TableDataInfo getAllTaskFinishByPage(TaskBo taskBo); + /** * 委派任务 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 394141015..a689b3862 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -201,6 +201,48 @@ public class ActTaskServiceImpl implements IActTaskService { return new TableDataInfo<>(list, count); } + /** + * 查询当前租户所有待办任务 + * + * @param taskBo 参数 + */ + @Override + public TableDataInfo getAllTaskWaitByPage(TaskBo taskBo) { + TaskQuery query = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()); + if (StringUtils.isNotBlank(taskBo.getName())) { + query.taskNameLike("%" + taskBo.getName() + "%"); + } + if (StringUtils.isNotBlank(taskBo.getProcessDefinitionName())) { + query.processDefinitionNameLike("%" + taskBo.getProcessDefinitionName() + "%"); + } + if (StringUtils.isNotBlank(taskBo.getProcessDefinitionKey())) { + query.processDefinitionKey(taskBo.getProcessDefinitionKey()); + } + List taskList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize()); + List processInstanceList = null; + if (CollUtil.isNotEmpty(taskList)) { + Set processInstanceIds = StreamUtils.toSet(taskList, Task::getProcessInstanceId); + processInstanceList = runtimeService.createProcessInstanceQuery().processInstanceIds(processInstanceIds).list(); + } + List list = new ArrayList<>(); + for (Task task : taskList) { + TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class); + if (CollUtil.isNotEmpty(processInstanceList)) { + processInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> { + taskVo.setBusinessStatus(e.getBusinessStatus()); + taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus())); + taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey()); + taskVo.setProcessDefinitionName(e.getProcessDefinitionName()); + }); + } + taskVo.setAssignee(StringUtils.isNotBlank(task.getAssignee()) ? Long.valueOf(task.getAssignee()) : null); + taskVo.setParticipantVo(WorkflowUtils.getCurrentTaskParticipant(task.getId())); + list.add(taskVo); + } + long count = query.count(); + return new TableDataInfo<>(list, count); + } + /** * 查询当前用户的已办任务 * @@ -244,6 +286,48 @@ public class ActTaskServiceImpl implements IActTaskService { return new TableDataInfo<>(list, count); } + /** + * 查询当前租户所有已办任务 + * + * @param taskBo 参数 + */ + @Override + public TableDataInfo getAllTaskFinishByPage(TaskBo taskBo) { + HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery() + .taskTenantId(TenantHelper.getTenantId()).finished().orderByHistoricTaskInstanceStartTime().desc(); + if (StringUtils.isNotBlank(taskBo.getName())) { + query.taskNameLike("%" + taskBo.getName() + "%"); + } + if (StringUtils.isNotBlank(taskBo.getProcessDefinitionName())) { + query.processDefinitionNameLike("%" + taskBo.getProcessDefinitionName() + "%"); + } + if (StringUtils.isNotBlank(taskBo.getProcessDefinitionKey())) { + query.processDefinitionKey(taskBo.getProcessDefinitionKey()); + } + List taskInstanceList = query.listPage(taskBo.getPageNum(), taskBo.getPageSize()); + List historicProcessInstanceList = null; + if (CollUtil.isNotEmpty(taskInstanceList)) { + Set processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId); + historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceIds(processInstanceIds).list(); + } + List list = new ArrayList<>(); + for (HistoricTaskInstance task : taskInstanceList) { + TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class); + if (CollUtil.isNotEmpty(historicProcessInstanceList)) { + historicProcessInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> { + taskVo.setBusinessStatus(e.getBusinessStatus()); + taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus())); + taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey()); + taskVo.setProcessDefinitionName(e.getProcessDefinitionName()); + }); + } + taskVo.setAssignee(StringUtils.isNotBlank(task.getAssignee()) ? Long.valueOf(task.getAssignee()) : null); + list.add(taskVo); + } + long count = query.count(); + return new TableDataInfo<>(list, count); + } + /** * 委派任务 *