From e30e4fe447c2eea8ea0a00915753e2f769d124cd Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期一, 11 三月 2024 21:02:05 +0800
Subject: [PATCH] update 修改我的已办过滤抄送数据,添加已审批过得节点查询接口

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java |   63 +++++++++++++++----------------
 1 files changed, 31 insertions(+), 32 deletions(-)

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 cfd9ea2..a44502a 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
@@ -336,39 +336,18 @@
     @Override
     public TableDataInfo<TaskVo> getPageByTaskFinish(TaskBo taskBo, PageQuery pageQuery) {
         String userId = String.valueOf(LoginHelper.getUserId());
-        HistoricTaskInstanceQuery query = QueryUtils.hisTaskInstanceQuery();
-        query.taskAssignee(userId).finished().orderByHistoricTaskInstanceStartTime().desc();
-        if (StringUtils.isNotBlank(taskBo.getName())) {
-            query.taskNameLike("%" + taskBo.getName() + "%");
+        QueryWrapper<TaskVo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.like(StringUtils.isNotBlank(taskBo.getName()), "t.name_", taskBo.getName());
+        queryWrapper.like(StringUtils.isNotBlank(taskBo.getProcessDefinitionName()), "t.processDefinitionName", taskBo.getProcessDefinitionName());
+        queryWrapper.eq(StringUtils.isNotBlank(taskBo.getProcessDefinitionKey()), "t.processDefinitionKey", taskBo.getProcessDefinitionKey());
+        queryWrapper.eq("t.assignee_", userId);
+        Page<TaskVo> page = actTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper);
+
+        List<TaskVo> taskList = page.getRecords();
+        for (TaskVo task : taskList) {
+            task.setBusinessStatusName(BusinessStatusEnum.findByStatus(task.getBusinessStatus()));
         }
-        if (StringUtils.isNotBlank(taskBo.getProcessDefinitionName())) {
-            query.processDefinitionNameLike("%" + taskBo.getProcessDefinitionName() + "%");
-        }
-        if (StringUtils.isNotBlank(taskBo.getProcessDefinitionKey())) {
-            query.processDefinitionKey(taskBo.getProcessDefinitionKey());
-        }
-        List<HistoricTaskInstance> taskInstanceList = query.listPage(pageQuery.getFirstNum(), pageQuery.getPageSize());
-        List<HistoricProcessInstance> historicProcessInstanceList = null;
-        if (CollUtil.isNotEmpty(taskInstanceList)) {
-            Set<String> processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId);
-            historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list();
-        }
-        List<TaskVo> 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.findByStatus(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);
+        return new TableDataInfo<>(taskList, page.getTotal());
     }
 
     /**
@@ -742,4 +721,24 @@
         }
         return variableVoList;
     }
+
+    /**
+     * 鑾峰彇鍙┏鍥炲緱浠诲姟鑺傜偣
+     *
+     * @param processInstanceId 娴佺▼瀹炰緥id
+     */
+    @Override
+    public Set<TaskVo> getTaskNodeList(String processInstanceId) {
+        Set<TaskVo> list = new HashSet<>();
+        List<HistoricTaskInstance> historicTaskInstances = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
+        for (HistoricTaskInstance historicTaskInstance : historicTaskInstances) {
+            if (historicTaskInstance.getEndTime() != null) {
+                TaskVo taskVo = new TaskVo();
+                taskVo.setName(historicTaskInstance.getName());
+                taskVo.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey());
+                list.add(taskVo);
+            }
+        }
+        return list;
+    }
 }

--
Gitblit v1.9.3