From 5d7081e7ad1e9586fbc77cfdf87252dd0ba75eff Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Wed, 28 Jan 2026 11:17:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=A0=B9=E6=8D=AE=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9id=E6=9F=A5taskId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EngineFlowController.java | 20 +++++++++++++++++++ .../api/feign/RemoteFlowEngineService.java | 6 ++++++ .../controller/ProcessInstanceController.java | 11 ++++++++++ .../task/service/IProcessInstanceService.java | 3 +++ .../impl/ProcessInstanceServiceImpl.java | 5 +++++ .../spdm/controller/SpdmFlowController.java | 10 ++++++++++ .../honeycom/spdm/dto/FlowParamDto.java | 5 +++++ .../spdm/feign/RemoteFlowServiceFeign.java | 2 ++ 8 files changed, 62 insertions(+) diff --git a/honeycom-flow/honeycom-flow-engine/honeycom-flow-engine-biz/src/main/java/com/honeycombis/honeycom/flow/engine/controller/EngineFlowController.java b/honeycom-flow/honeycom-flow-engine/honeycom-flow-engine-biz/src/main/java/com/honeycombis/honeycom/flow/engine/controller/EngineFlowController.java index 7623d97..58d04fa 100644 --- a/honeycom-flow/honeycom-flow-engine/honeycom-flow-engine-biz/src/main/java/com/honeycombis/honeycom/flow/engine/controller/EngineFlowController.java +++ b/honeycom-flow/honeycom-flow-engine/honeycom-flow-engine-biz/src/main/java/com/honeycombis/honeycom/flow/engine/controller/EngineFlowController.java @@ -21,6 +21,7 @@ import com.honeycombis.honeycom.flow.task.utils.NodeUtil; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.flowable.bpmn.BpmnAutoLayout; import org.flowable.bpmn.converter.BpmnXMLConverter; import org.flowable.bpmn.model.BpmnModel; @@ -222,6 +223,25 @@ public class EngineFlowController { return R.ok(pageResultDto); } + /** + * 通过审批节点的 nodeId 查询 taskId + */ + @Inner(value = false) + @PostMapping("/getTaskIdForSpdm") + public R getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto) { + HistoricActivityInstanceQuery historicActivityInstanceQuery = historyService + .createHistoricActivityInstanceQuery(); + HistoricActivityInstanceQuery activityInstanceQuery = historicActivityInstanceQuery + .activityId(taskParamDto.getNodeId()) + .processInstanceId(taskParamDto.getProcessInstanceId()); + + List list = activityInstanceQuery.list(); + if (CollectionUtils.isNotEmpty(list)) { + return R.ok(list.get(0).getTaskId()); + } + return R.ok(); + } + /** * 查询用户待办任务 * @param taskQueryParamDto 查询参数 diff --git a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-api/src/main/java/com/honeycombis/honeycom/flow/task/api/feign/RemoteFlowEngineService.java b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-api/src/main/java/com/honeycombis/honeycom/flow/task/api/feign/RemoteFlowEngineService.java index f6ea3a6..e909fa1 100644 --- a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-api/src/main/java/com/honeycombis/honeycom/flow/task/api/feign/RemoteFlowEngineService.java +++ b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-api/src/main/java/com/honeycombis/honeycom/flow/task/api/feign/RemoteFlowEngineService.java @@ -76,6 +76,12 @@ public interface RemoteFlowEngineService { @PostMapping("/flow/queryCompletedTask") R> queryCompletedTask(@RequestBody TaskQueryParamDto paramDto); + /** + * 通过审批节点的 nodeId 查询 taskId + */ + @PostMapping("/flow/getTaskIdForSpdm") + R getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto); + /** * 完成任务 * @param taskParamDto 任务参数 diff --git a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/controller/ProcessInstanceController.java b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/controller/ProcessInstanceController.java index 16ded43..f65feb6 100644 --- a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/controller/ProcessInstanceController.java +++ b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/controller/ProcessInstanceController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.honeycombis.honeycom.common.core.util.R; import com.honeycombis.honeycom.common.security.annotation.Inner; import com.honeycombis.honeycom.flow.task.dto.ProcessInstanceParamDto; +import com.honeycombis.honeycom.flow.task.dto.TaskParamDto; import com.honeycombis.honeycom.flow.task.dto.TaskQueryParamDto; import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord; import com.honeycombis.honeycom.flow.task.service.IProcessInstanceService; @@ -68,6 +69,16 @@ public class ProcessInstanceController { return processInstanceService.queryMineEndTask(taskQueryParamDto); } + /** + * 通过审批节点的 nodeId 查询 taskId + */ + @Inner(false) + @SneakyThrows + @PostMapping("getTaskIdForSpdm") + public R getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto) { + return processInstanceService.getTaskIdForSpdm(taskParamDto); + } + /** * 查询我发起的 * @param taskQueryParamDto diff --git a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/IProcessInstanceService.java b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/IProcessInstanceService.java index b6566bf..0b8cbf2 100644 --- a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/IProcessInstanceService.java +++ b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/IProcessInstanceService.java @@ -3,6 +3,7 @@ package com.honeycombis.honeycom.flow.task.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.honeycombis.honeycom.common.core.util.R; import com.honeycombis.honeycom.flow.task.dto.ProcessInstanceParamDto; +import com.honeycombis.honeycom.flow.task.dto.TaskParamDto; import com.honeycombis.honeycom.flow.task.dto.TaskQueryParamDto; import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord; import com.honeycombis.honeycom.flow.task.vo.NodeFormatParamVo; @@ -33,6 +34,8 @@ public interface IProcessInstanceService { */ R queryMineEndTask(TaskQueryParamDto taskQueryParamDto); + R getTaskIdForSpdm(TaskParamDto taskParamDto); + /** * 流程结束 * @param processsInstanceId diff --git a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/impl/ProcessInstanceServiceImpl.java b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/impl/ProcessInstanceServiceImpl.java index b0382f1..a64f318 100644 --- a/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/impl/ProcessInstanceServiceImpl.java +++ b/honeycom-flow/honeycom-flow-task/honeycom-flow-task-biz/src/main/java/com/honeycombis/honeycom/flow/task/service/impl/ProcessInstanceServiceImpl.java @@ -227,6 +227,11 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { return R.ok(pageResultDto); } + @Override + public R getTaskIdForSpdm(TaskParamDto taskParamDto) { + return flowEngineService.getTaskIdForSpdm(taskParamDto); + } + /** * 流程结束 * @param processsInstanceId diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmFlowController.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmFlowController.java index e64d1eb..1b1c7c6 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmFlowController.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/controller/SpdmFlowController.java @@ -158,4 +158,14 @@ public class SpdmFlowController { return R.ok(); } + @Operation(summary = "通过审批节点的 nodeId 查询 taskId") + @PostMapping(value = "/getTaskIdByNodeId") + public R getTaskIdByNodeId(@RequestBody FlowParamDto flowParamDto) { + TaskParamDto taskParamDto = new TaskParamDto(); + taskParamDto.setProcessInstanceId(flowParamDto.getProcessInstanceId()); + taskParamDto.setNodeId(flowParamDto.getNodeId()); + R r = remoteFlowServiceFeign.getTaskIdForSpdm(taskParamDto, flowParamDto.getTenantId()); + return R.ok(r.getData()); + } + } diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/dto/FlowParamDto.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/dto/FlowParamDto.java index b05b32a..3cdaf34 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/dto/FlowParamDto.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/dto/FlowParamDto.java @@ -27,6 +27,11 @@ public class FlowParamDto { */ private String processInstanceId; + /** + * 节点id + */ + private String nodeId; + /** * 租户id */ diff --git a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteFlowServiceFeign.java b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteFlowServiceFeign.java index 7b617e9..7a1636b 100644 --- a/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteFlowServiceFeign.java +++ b/honeycom-spdm/src/main/java/com/honeycombis/honeycom/spdm/feign/RemoteFlowServiceFeign.java @@ -32,4 +32,6 @@ public interface RemoteFlowServiceFeign { @PostMapping("/process-instance/formatStartNodeShowInner") R queryFlowNodeDetail(@RequestBody NodeFormatParamVo nodeFormatParamVo, @RequestHeader(CommonConstants.TENANT_ID) String tenantId); + @PostMapping("/process-instance/getTaskIdForSpdm") + R getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto, @RequestHeader(CommonConstants.TENANT_ID) String tenantId); }