diff --git a/OrangeFormsOpen-MybatisPlus/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java b/OrangeFormsOpen-MybatisPlus/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java index 981fe6ac..8a72dbd8 100644 --- a/OrangeFormsOpen-MybatisPlus/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java +++ b/OrangeFormsOpen-MybatisPlus/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java @@ -532,6 +532,30 @@ public class FlowOperationController { return ResponseResult.success(StreamUtils.copyToString(in, StandardCharsets.UTF_8)); } + /** + * 获取指定流程定义的指定任务Id的formKey。 + * + * @param processInstanceId 流程实例Id。 + * @param taskId 流程任务Id。 + * @return formKey数据。 + */ + @GetMapping("/viewTaskFormKey") + public ResponseResult viewTaskFormKey( + @RequestParam String processInstanceId, @RequestParam String taskId) throws IOException { + TaskInfo task = flowApiService.getTaskById(taskId); + if (task == null) { + task = flowApiService.getHistoricTaskInstance(processInstanceId, taskId); + if (task == null) { + return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST); + } + } + UserTask userTask = flowApiService.getUserTask(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + if (userTask == null) { + return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST); + } + return ResponseResult.success(userTask.getFormKey()); + } + /** * 获取流程图高亮数据。 *