From 241c058658bc939f403fb4191312159b0c005cc1 Mon Sep 17 00:00:00 2001 From: orange-form <3510245832@qq.com> Date: Thu, 29 Aug 2024 02:52:17 +0000 Subject: [PATCH] =?UTF-8?q?=E9=81=97=E6=BC=8F=E4=BA=86startOnly=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: orange-form <3510245832@qq.com> --- .../controller/FlowOperationController.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/OrangeFormsOpen-MybatisFlex/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java b/OrangeFormsOpen-MybatisFlex/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java index 4cb337dc..f2d925fb 100644 --- a/OrangeFormsOpen-MybatisFlex/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java +++ b/OrangeFormsOpen-MybatisFlex/common/common-flow/src/main/java/com/orangeforms/common/flow/controller/FlowOperationController.java @@ -87,6 +87,32 @@ public class FlowOperationController { private static final String SHOW_NAME = "showName"; private static final String INSTANCE_ID = "processInstanceId"; + /** + * 根据指定流程的主版本,发起一个流程实例。 + * + * @param processDefinitionKey 流程标识。 + * @return 应答结果对象。 + */ + @SaCheckPermission("flowOperation.all") + @OperationLog(type = SysOperationLogType.START_FLOW) + @PostMapping("/startOnly") + public ResponseResult startOnly(@MyRequestBody(required = true) String processDefinitionKey) { + // 1. 验证流程数据的合法性。 + ResponseResult flowEntryResult = flowOperationHelper.verifyAndGetFlowEntry(processDefinitionKey); + if (!flowEntryResult.isSuccess()) { + return ResponseResult.errorFrom(flowEntryResult); + } + // 2. 验证流程一个用户任务的合法性。 + FlowEntryPublish flowEntryPublish = flowEntryResult.getData().getMainFlowEntryPublish(); + ResponseResult taskInfoResult = + flowOperationHelper.verifyAndGetInitialTaskInfo(flowEntryPublish, false); + if (!taskInfoResult.isSuccess()) { + return ResponseResult.errorFrom(taskInfoResult); + } + flowApiService.start(flowEntryPublish.getProcessDefinitionId(), null); + return ResponseResult.success(); + } + /** * 获取开始节点之后的第一个任务节点的数据。 *