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/mapper/ActTaskMapper.java | 9 ++++
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java | 12 +++++
ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/ActTaskMapper.xml | 20 ++++++++-
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TaskVo.java | 5 ++
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 63 +++++++++++++++----------------
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActTaskService.java | 9 ++++
6 files changed, 82 insertions(+), 36 deletions(-)
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 06727f2..9f50cdc 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
@@ -17,13 +17,13 @@
import org.dromara.workflow.domain.vo.VariableVo;
import org.dromara.workflow.service.IActTaskService;
import org.dromara.workflow.utils.QueryUtils;
-import org.dromara.workflow.utils.WorkflowUtils;
import org.flowable.engine.TaskService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* 浠诲姟绠$悊 鎺у埗灞�
@@ -257,4 +257,14 @@
public R<List<VariableVo>> getProcessInstVariable(@PathVariable String taskId) {
return R.ok(actTaskService.getInstanceVariable(taskId));
}
+
+ /**
+ * 鑾峰彇鍙┏鍥炲緱浠诲姟鑺傜偣
+ *
+ * @param processInstanceId 娴佺▼瀹炰緥id
+ */
+ @GetMapping("/getTaskNodeList/{processInstanceId}")
+ public R<Set<TaskVo>> getNodeList(@PathVariable String processInstanceId) {
+ return R.ok(actTaskService.getTaskNodeList(processInstanceId));
+ }
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TaskVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TaskVo.java
index b8a230f..0210b57 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TaskVo.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TaskVo.java
@@ -82,6 +82,11 @@
private Date createTime;
/**
+ * 宸插姙浠诲姟-鍒涘缓鏃堕棿
+ */
+ private Date startTime;
+
+ /**
* 缁撴潫鏃堕棿
*/
private Date endTime;
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/ActTaskMapper.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/ActTaskMapper.java
index e7094f5..5682862 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/ActTaskMapper.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/mapper/ActTaskMapper.java
@@ -28,6 +28,15 @@
Page<TaskVo> getTaskWaitByPage(@Param("page") Page<TaskVo> page, @Param(Constants.WRAPPER) Wrapper<TaskVo> queryWrapper);
/**
+ * 鑾峰彇宸插姙
+ *
+ * @param page 鍒嗛〉
+ * @param queryWrapper 鏉′欢
+ * @return 缁撴灉
+ */
+ Page<TaskVo> getTaskFinishByPage(@Param("page") Page<TaskVo> page, @Param(Constants.WRAPPER) Wrapper<TaskVo> queryWrapper);
+
+ /**
* 鏌ヨ褰撳墠鐢ㄦ埛鐨勬妱閫�
*
* @param page 鍒嗛〉
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 45c3de2..72a5ea1 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
@@ -8,6 +8,7 @@
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* 浠诲姟 鏈嶅姟灞�
@@ -142,4 +143,12 @@
* @return 缁撴灉
*/
List<VariableVo> getInstanceVariable(String taskId);
+
+ /**
+ * 鑾峰彇鍙┏鍥炲緱浠诲姟鑺傜偣
+ *
+ * @param processInstanceId 娴佺▼瀹炰緥id
+ * @return 缁撴灉
+ */
+ Set<TaskVo> getTaskNodeList(String processInstanceId);
}
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;
+ }
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/ActTaskMapper.xml b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/ActTaskMapper.xml
index a36f880..342ce09 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/ActTaskMapper.xml
+++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/ActTaskMapper.xml
@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.workflow.mapper.ActTaskMapper">
- <resultMap type="org.dromara.workflow.domain.vo.TaskVo" id="TaskWaitingVoResult">
+ <resultMap type="org.dromara.workflow.domain.vo.TaskVo" id="TaskVoResult">
<result property="id" column="ID_"/>
<result property="name" column="NAME_"/>
<result property="description" column="DESCRIPTION_"/>
@@ -15,6 +15,7 @@
<result property="taskDefinitionId" column="TASK_DEF_ID_"/>
<result property="processDefinitionId" column="PROC_DEF_ID_"/>
<result property="createTime" column="CREATE_TIME_"/>
+ <result property="startTime" column="START_TIME_"/>
<result property="endTime" column="END_TIME_"/>
<result property="taskDefinitionKey" column="TASK_DEF_KEY_"/>
<result property="dueDate" column="DUE_DATE_"/>
@@ -28,7 +29,7 @@
<result property="processDefinitionKey" column="processDefinitionName"/>
</resultMap>
- <select id="getTaskWaitByPage" resultMap="TaskWaitingVoResult">
+ <select id="getTaskWaitByPage" resultMap="TaskVoResult">
select *
from (SELECT RES.*,
AHP.BUSINESS_STATUS_,
@@ -41,7 +42,20 @@
ORDER BY RES.CREATE_TIME_ DESC) t ${ew.getCustomSqlSegment}
</select>
- <select id="getTaskCopyByPage" resultMap="TaskWaitingVoResult">
+ <select id="getTaskFinishByPage" resultMap="TaskVoResult">
+ select *
+ from (SELECT HTI.*,
+ AHP.BUSINESS_STATUS_,
+ ARP.NAME_ AS processDefinitionName,
+ ARP.KEY_ AS processDefinitionKey
+ FROM ACT_HI_TASKINST HTI
+ INNER JOIN ACT_HI_PROCINST AHP ON HTI.PROC_INST_ID_ = AHP.PROC_INST_ID_
+ INNER JOIN ACT_RE_PROCDEF ARP ON ARP.ID_ = HTI.PROC_DEF_ID_
+ WHERE HTI.PARENT_TASK_ID_ IS NULL
+ ORDER BY HTI.START_TIME_ DESC) t ${ew.getCustomSqlSegment}
+ </select>
+
+ <select id="getTaskCopyByPage" resultMap="TaskVoResult">
select *
from (SELECT AHT.*,
AHP.BUSINESS_STATUS_,
--
Gitblit v1.9.3