From d64504284e078086d696adf2cc08151cab2fd379 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Mon, 6 Jan 2025 15:28:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=A3=B0=E9=81=93=E6=92=92=E6=97=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/constants/WorkFlowConstants.java | 6 +++--- .../workflow/delegate/BaseNodeDelegate.java | 20 ++++++++----------- ....java => GlobalNodeExecutionListener.java} | 11 ++++------ 3 files changed, 15 insertions(+), 22 deletions(-) rename backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/{GlobalExecutionListener.java => GlobalNodeExecutionListener.java} (89%) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/constants/WorkFlowConstants.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/constants/WorkFlowConstants.java index 7ac1a9d1..bcb71b2e 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/constants/WorkFlowConstants.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/constants/WorkFlowConstants.java @@ -12,17 +12,17 @@ public interface WorkFlowConstants { String ASYNC_CONTINUATION = "async-continuation"; - String WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME = "PREVIOUS_NODE_EXECUTION_STATUS"; + String WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME = "PREVIOUS_NODE_EXECUTION_STATE"; /** * 执行状态:成功 */ - String WORKFLOW_NODE_EXECUTION_STATUS_SUCCESS = "SUCCESS"; + String WORKFLOW_NODE_EXECUTION_STATE_SUCCESS = "SUCCESS"; /** * 执行状态:失败 */ - String WORKFLOW_NODE_EXECUTION_STATUS_FAILURE = "FAILURE"; + String WORKFLOW_NODE_EXECUTION_STATE_FAILURE = "FAILURE"; /** * 执行状态:中止 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/BaseNodeDelegate.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/BaseNodeDelegate.java index 8f39c9ef..01a5b489 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/BaseNodeDelegate.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/BaseNodeDelegate.java @@ -2,20 +2,16 @@ package com.qqchen.deploy.backend.workflow.delegate; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants; import lombok.extern.slf4j.Slf4j; -import org.flowable.bpmn.model.ServiceTask; -import org.flowable.engine.delegate.BpmnError; import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.JavaDelegate; import org.flowable.common.engine.api.delegate.Expression; import org.springframework.beans.factory.annotation.Autowired; -import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATUS_FAILURE; -import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATUS_SUCCESS; -import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME; +import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATE_FAILURE; +import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATE_SUCCESS; +import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME; -import java.util.Map; import java.util.Optional; /** @@ -60,12 +56,12 @@ public abstract class BaseNodeDelegate implements JavaDelegate { // 如果节点没有设置状态,默认设置成功状态 String status = getExecutionStatus(execution); if (status == null) { - setExecutionStatus(execution, WORKFLOW_NODE_EXECUTION_STATUS_SUCCESS); + setExecutionStatus(execution, WORKFLOW_NODE_EXECUTION_STATE_SUCCESS); } } catch (Exception e) { // 设置失败状态 - setExecutionStatus(execution, WORKFLOW_NODE_EXECUTION_STATUS_FAILURE); + setExecutionStatus(execution, WORKFLOW_NODE_EXECUTION_STATE_FAILURE); log.error("Task execution failed", e); } } @@ -77,7 +73,7 @@ public abstract class BaseNodeDelegate implements JavaDelegate { * @param status 状态值 */ protected void setExecutionStatus(DelegateExecution execution, String status) { - execution.setVariable(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME, status); + execution.setVariable(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME, status); log.debug("Set execution status: {}", status); } @@ -109,7 +105,7 @@ public abstract class BaseNodeDelegate implements JavaDelegate { */ private void clearPreviousNodeStatus(DelegateExecution execution) { // 只有在当前节点是ServiceTask时才清除状态 - execution.removeVariable(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME); + execution.removeVariable(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME); log.debug("Cleared previous node status for node: {}", execution.getCurrentActivityId()); } @@ -121,7 +117,7 @@ public abstract class BaseNodeDelegate implements JavaDelegate { */ protected String getExecutionStatus(DelegateExecution execution) { return Optional.ofNullable(execution.getVariables()) - .map(vars -> vars.get(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME)) + .map(vars -> vars.get(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME)) .map(Object::toString) .orElse(null); } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalExecutionListener.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalNodeExecutionListener.java similarity index 89% rename from backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalExecutionListener.java rename to backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalNodeExecutionListener.java index 1a833272..6bd97031 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalExecutionListener.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/listener/flowable/execution/GlobalNodeExecutionListener.java @@ -17,11 +17,11 @@ import jakarta.annotation.Resource; import java.time.LocalDateTime; import java.util.Optional; -import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME; +import static com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants.WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME; @Slf4j @Component("globalNodeExecutionListener") -public class GlobalExecutionListener implements ExecutionListener { +public class GlobalNodeExecutionListener implements ExecutionListener { @Resource @Lazy @@ -43,7 +43,7 @@ public class GlobalExecutionListener implements ExecutionListener { LocalDateTime startTime = null; LocalDateTime endTime = null; String nodeExecutionStatus = Optional.ofNullable(execution.getVariables()) - .map(vars -> vars.get(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME)) + .map(vars -> vars.get(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATE_VARIABLE_NAME)) .map(Object::toString) .orElse(null); switch (eventName) { @@ -55,7 +55,7 @@ public class GlobalExecutionListener implements ExecutionListener { if (StringUtils.isEmpty(nodeExecutionStatus)) { status = WorkflowNodeInstanceStatusEnums.COMPLETED; } else { - if (WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATUS_SUCCESS.equals(nodeExecutionStatus)) { + if (WorkFlowConstants.WORKFLOW_NODE_EXECUTION_STATE_SUCCESS.equals(nodeExecutionStatus)) { status = WorkflowNodeInstanceStatusEnums.COMPLETED; } else { status = WorkflowNodeInstanceStatusEnums.FAILED; @@ -77,8 +77,5 @@ public class GlobalExecutionListener implements ExecutionListener { .startTime(startTime) .endTime(endTime) .build()); - if (StringUtils.isNotEmpty(nodeExecutionStatus)) { - execution.removeVariable(WORKFLOW_PREVIOUS_NODE_EXECUTION_STATUS_VARIABLE_NAME); - } } } \ No newline at end of file