feat:根据审批节点id查taskId

This commit is contained in:
2026-01-28 11:17:35 +08:00
parent 3819057382
commit 5d7081e7ad
8 changed files with 62 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import com.honeycombis.honeycom.flow.task.utils.NodeUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.flowable.bpmn.BpmnAutoLayout; import org.flowable.bpmn.BpmnAutoLayout;
import org.flowable.bpmn.converter.BpmnXMLConverter; import org.flowable.bpmn.converter.BpmnXMLConverter;
import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.BpmnModel;
@@ -222,6 +223,25 @@ public class EngineFlowController {
return R.ok(pageResultDto); 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<HistoricActivityInstance> list = activityInstanceQuery.list();
if (CollectionUtils.isNotEmpty(list)) {
return R.ok(list.get(0).getTaskId());
}
return R.ok();
}
/** /**
* 查询用户待办任务 * 查询用户待办任务
* @param taskQueryParamDto 查询参数 * @param taskQueryParamDto 查询参数

View File

@@ -76,6 +76,12 @@ public interface RemoteFlowEngineService {
@PostMapping("/flow/queryCompletedTask") @PostMapping("/flow/queryCompletedTask")
R<Page<TaskDto>> queryCompletedTask(@RequestBody TaskQueryParamDto paramDto); R<Page<TaskDto>> queryCompletedTask(@RequestBody TaskQueryParamDto paramDto);
/**
* 通过审批节点的 nodeId 查询 taskId
*/
@PostMapping("/flow/getTaskIdForSpdm")
R<String> getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto);
/** /**
* 完成任务 * 完成任务
* @param taskParamDto 任务参数 * @param taskParamDto 任务参数

View File

@@ -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.core.util.R;
import com.honeycombis.honeycom.common.security.annotation.Inner; import com.honeycombis.honeycom.common.security.annotation.Inner;
import com.honeycombis.honeycom.flow.task.dto.ProcessInstanceParamDto; 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.dto.TaskQueryParamDto;
import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord; import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord;
import com.honeycombis.honeycom.flow.task.service.IProcessInstanceService; import com.honeycombis.honeycom.flow.task.service.IProcessInstanceService;
@@ -68,6 +69,16 @@ public class ProcessInstanceController {
return processInstanceService.queryMineEndTask(taskQueryParamDto); return processInstanceService.queryMineEndTask(taskQueryParamDto);
} }
/**
* 通过审批节点的 nodeId 查询 taskId
*/
@Inner(false)
@SneakyThrows
@PostMapping("getTaskIdForSpdm")
public R getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto) {
return processInstanceService.getTaskIdForSpdm(taskParamDto);
}
/** /**
* 查询我发起的 * 查询我发起的
* @param taskQueryParamDto * @param taskQueryParamDto

View File

@@ -3,6 +3,7 @@ package com.honeycombis.honeycom.flow.task.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.honeycombis.honeycom.common.core.util.R; import com.honeycombis.honeycom.common.core.util.R;
import com.honeycombis.honeycom.flow.task.dto.ProcessInstanceParamDto; 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.dto.TaskQueryParamDto;
import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord; import com.honeycombis.honeycom.flow.task.entity.ProcessInstanceRecord;
import com.honeycombis.honeycom.flow.task.vo.NodeFormatParamVo; import com.honeycombis.honeycom.flow.task.vo.NodeFormatParamVo;
@@ -33,6 +34,8 @@ public interface IProcessInstanceService {
*/ */
R queryMineEndTask(TaskQueryParamDto taskQueryParamDto); R queryMineEndTask(TaskQueryParamDto taskQueryParamDto);
R getTaskIdForSpdm(TaskParamDto taskParamDto);
/** /**
* 流程结束 * 流程结束
* @param processsInstanceId * @param processsInstanceId

View File

@@ -227,6 +227,11 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
return R.ok(pageResultDto); return R.ok(pageResultDto);
} }
@Override
public R getTaskIdForSpdm(TaskParamDto taskParamDto) {
return flowEngineService.getTaskIdForSpdm(taskParamDto);
}
/** /**
* 流程结束 * 流程结束
* @param processsInstanceId * @param processsInstanceId

View File

@@ -158,4 +158,14 @@ public class SpdmFlowController {
return R.ok(); 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<String> r = remoteFlowServiceFeign.getTaskIdForSpdm(taskParamDto, flowParamDto.getTenantId());
return R.ok(r.getData());
}
} }

View File

@@ -27,6 +27,11 @@ public class FlowParamDto {
*/ */
private String processInstanceId; private String processInstanceId;
/**
* 节点id
*/
private String nodeId;
/** /**
* 租户id * 租户id
*/ */

View File

@@ -32,4 +32,6 @@ public interface RemoteFlowServiceFeign {
@PostMapping("/process-instance/formatStartNodeShowInner") @PostMapping("/process-instance/formatStartNodeShowInner")
R queryFlowNodeDetail(@RequestBody NodeFormatParamVo nodeFormatParamVo, @RequestHeader(CommonConstants.TENANT_ID) String tenantId); R queryFlowNodeDetail(@RequestBody NodeFormatParamVo nodeFormatParamVo, @RequestHeader(CommonConstants.TENANT_ID) String tenantId);
@PostMapping("/process-instance/getTaskIdForSpdm")
R<String> getTaskIdForSpdm(@RequestBody TaskParamDto taskParamDto, @RequestHeader(CommonConstants.TENANT_ID) String tenantId);
} }