根据流程实例ID,获取当前处理的taskId

This commit is contained in:
Echo 2024-03-22 19:24:37 +08:00
parent 38cddda869
commit b676451409
3 changed files with 31 additions and 0 deletions

View File

@ -148,4 +148,11 @@ public class BpmTaskController {
return success(taskService.getChildrenTaskList(parentId));
}
@GetMapping("getCurrentTaskIdByProcessInstanceId")
@Operation(summary = "根据流程实例ID获取当前处理的taskId")
@Parameter(name = "processInstanceId", description = "流程实例 ID", required = true)
public CommonResult<String> getCurrentTaskIdByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) {
return success(taskService.getCurrentTaskIdByProcessInstanceId(processInstanceId));
}
}

View File

@ -192,4 +192,11 @@ public interface BpmTaskService {
*/
List<BpmTaskSubSignRespVO> getChildrenTaskList(String parentId);
/**
* 根据流程实例ID获取当前处理的taskId
* @param processInstanceId 流程实例ID
* @return 当前任务的taskId
*/
String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ;
}

View File

@ -36,6 +36,7 @@ import org.flowable.engine.HistoryService;
import org.flowable.engine.ManagementService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.DelegationState;
@ -1166,4 +1167,20 @@ public class BpmTaskServiceImpl implements BpmTaskService {
return BpmTaskConvert.INSTANCE.convertList(taskExtList, userMap, idTaskMap);
}
public String getCurrentTaskIdByProcessInstanceId(String processInstanceId) {
TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(processInstanceId).active();
List<Task> tasks = taskQuery.list();
if (!tasks.isEmpty()) {
Task currentTask = tasks.get(0);
System.out.println("当前任务节点ID: " + currentTask.getId());
System.out.println("当前任务节点名称: " + currentTask.getName());
System.out.println("当前任务节点创建时间: " + currentTask.getCreateTime());
System.out.println("当前任务节点分配给: " + currentTask.getAssignee());
return currentTask.getId() ;
} else {
System.out.println("没有找到当前进行中的任务节点");
throw exception(TASK_NOT_EXISTS);
}
}
}