From 091ea4fe7bcaa381a32fe6efd43d3bf5d9c16c5f Mon Sep 17 00:00:00 2001 From: dengqichen Date: Fri, 20 Dec 2024 14:04:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/dto/WorkflowDefinitionDTO.java | 12 +++------ .../workflow/dto/WorkflowDesignDTO.java | 4 +-- .../definition/node/uiVariables/Circle.java | 9 +++---- .../workflow/WorkflowDefinitionNode.java | 18 +++++++++---- .../workflow/entity/WorkflowDefinition.java | 4 +-- ...ava => WorkflowDefinitionStatusEnums.java} | 4 +-- .../IWorkflowDefinitionRepository.java | 5 ++-- .../impl/WorkflowDefinitionServiceImpl.java | 8 +++--- .../impl/WorkflowInstanceServiceImpl.java | 6 ++--- .../backend/workflow/util/BpmnConverter.java | 26 +++++++++---------- 10 files changed, 46 insertions(+), 50 deletions(-) rename backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/{WorkflowStatusEnums.java => WorkflowDefinitionStatusEnums.java} (74%) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java index 0a6b4be2..992efdcf 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java @@ -1,10 +1,9 @@ package com.qqchen.deploy.backend.workflow.dto; -import com.fasterxml.jackson.databind.JsonNode; import com.qqchen.deploy.backend.framework.dto.BaseDTO; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph; import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -57,14 +56,9 @@ public class WorkflowDefinitionDTO extends BaseDTO { private WorkflowDefinitionGraph graph; /** - * 表单配置 + * 定义状态 */ - private JsonNode formConfig; - - /** - * 流程状态 - */ - private WorkflowStatusEnums status; + private WorkflowDefinitionStatusEnums status; /** * 流程描述 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDesignDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDesignDTO.java index 7d3efd37..0e7a3b3c 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDesignDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDesignDTO.java @@ -2,7 +2,7 @@ package com.qqchen.deploy.backend.workflow.dto; import com.fasterxml.jackson.databind.JsonNode; import com.qqchen.deploy.backend.framework.dto.BaseDTO; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import lombok.Data; /** @@ -30,5 +30,5 @@ public class WorkflowDesignDTO extends BaseDTO { */ private JsonNode graphJson; - private WorkflowStatusEnums status; + private WorkflowDefinitionStatusEnums status; } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/uiVariables/Circle.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/uiVariables/Circle.java index 17e375bf..a0a9bbed 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/uiVariables/Circle.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/uiVariables/Circle.java @@ -8,24 +8,21 @@ public class Circle { @SchemaProperty( title = "半径", description = "圆的半径", - required = true, - defaultValue = "4" + required = true ) private Integer r; @SchemaProperty( title = "填充颜色", description = "圆的填充颜色", - required = true, - defaultValue = "#ffffff" + required = true ) private String fill; @SchemaProperty( title = "边框颜色", description = "圆的边框颜色", - required = true, - defaultValue = "#1890ff" + required = true ) private String stroke; } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/workflow/WorkflowDefinitionNode.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/workflow/WorkflowDefinitionNode.java index 847aa0af..37c86675 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/workflow/WorkflowDefinitionNode.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/workflow/WorkflowDefinitionNode.java @@ -1,6 +1,9 @@ package com.qqchen.deploy.backend.workflow.dto.definition.workflow; +import com.fasterxml.jackson.databind.JsonNode; +import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Map; @@ -34,11 +37,16 @@ public class WorkflowDefinitionNode { */ private String name; + @Schema(description = "节点UI") + private JsonNode uiVariables; - private WorkflowNodeGraph graph; + @Schema(description = "节点属性") + private JsonNode panelVariables; + + @Schema(description = "节点环境变量") + private JsonNode localVariables; + + @Schema(description = "节点表单") + private JsonNode formVariables; - /** - * 节点配置 - */ - private Map localVariables; } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java index 1d2c3d00..91d29537 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph; import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum; import com.qqchen.deploy.backend.workflow.hibernate.WorkflowGraphType; import com.qqchen.deploy.backend.framework.domain.Entity; @@ -88,7 +88,7 @@ public class WorkflowDefinition extends Entity { */ @Column(nullable = false) @Enumerated(EnumType.STRING) - private WorkflowStatusEnums status; + private WorkflowDefinitionStatusEnums status; /** * 流程描述 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnums.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnums.java similarity index 74% rename from backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnums.java rename to backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnums.java index fbdff7f7..4fef5d02 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnums.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnums.java @@ -3,7 +3,7 @@ package com.qqchen.deploy.backend.workflow.enums; import lombok.Getter; @Getter -public enum WorkflowStatusEnums { +public enum WorkflowDefinitionStatusEnums { DRAFT("DRAFT","草稿"), PUBLISHED("PUBLISHED","已发布"), @@ -13,7 +13,7 @@ public enum WorkflowStatusEnums { private final String description; - WorkflowStatusEnums(String code, String description) { + WorkflowDefinitionStatusEnums(String code, String description) { this.code = code; this.description = description; } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java index 1d3aaa1d..69355dfa 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java @@ -2,12 +2,11 @@ package com.qqchen.deploy.backend.workflow.repository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import java.util.List; import java.util.Optional; /** @@ -27,5 +26,5 @@ public interface IWorkflowDefinitionRepository extends IBaseRepository findByKey(String businessKey); - Page findByStatus(WorkflowStatusEnums workflowStatusEnums, Pageable pageable); + Page findByStatus(WorkflowDefinitionStatusEnums workflowStatusEnums, Pageable pageable); } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java index a2e34518..87227867 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java @@ -8,8 +8,8 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowTriggerTypeDTO; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; import com.qqchen.deploy.backend.workflow.enums.WorkflowCategoryEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums; import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums; import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository; import com.qqchen.deploy.backend.workflow.service.IWorkflowDefinitionService; import com.qqchen.deploy.backend.workflow.service.IWorkflowInstanceService; @@ -279,7 +279,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl findTemplatesWithRecentInstances(WorkflowDefinitionQuery query) { Pageable pageable = PageRequest.of(query.getPageNum() - 1, query.getPageSize()); - Page definitionPage = workflowDefinitionRepository.findByStatus(WorkflowStatusEnums.PUBLISHED, pageable); + Page definitionPage = workflowDefinitionRepository.findByStatus(WorkflowDefinitionStatusEnums.PUBLISHED, pageable); List result = definitionPage.getContent().stream().map(definition -> { List workflowInstances = workflowInstanceRepository.findTop1ByWorkflowDefinitionIdOrderByCreateTimeDesc(definition.getId()); WorkflowTemplateWithInstancesDTO workflowTemplateWithInstancesDTO = new WorkflowTemplateWithInstancesDTO(); diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/BpmnConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/BpmnConverter.java index d07a9cfb..8315c1f4 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/BpmnConverter.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/util/BpmnConverter.java @@ -139,9 +139,9 @@ public class BpmnConverter { if (element instanceof ServiceTask) { ServiceTask serviceTask = (ServiceTask) element; // 设置委托表达式 - String delegate = (String) node.getLocalVariables().get("delegate"); - serviceTask.setImplementationType("delegateExpression"); - serviceTask.setImplementation(delegate); +// String delegate = (String) node.getLocalVariables().get("delegate"); +// serviceTask.setImplementationType("delegateExpression"); +// serviceTask.setImplementation(delegate); // 配置重试策略 ExtensionElement retryConfig = new ExtensionElement(); @@ -155,18 +155,18 @@ public class BpmnConverter { extensionElements.put("failedJobRetryTimeCycle", retryElements); // 添加字段注入 - List fieldExtensions = new ArrayList<>(); - node.getLocalVariables().forEach((key, value) -> { - if (value != null && !"delegate".equals(key)) { - FieldExtension fieldExtension = new FieldExtension(); - fieldExtension.setFieldName(key); - fieldExtension.setStringValue(String.valueOf(value)); - fieldExtensions.add(fieldExtension); - } - }); +// List fieldExtensions = new ArrayList<>(); +// node.getLocalVariables().forEach((key, value) -> { +// if (value != null && !"delegate".equals(key)) { +// FieldExtension fieldExtension = new FieldExtension(); +// fieldExtension.setFieldName(key); +// fieldExtension.setStringValue(String.valueOf(value)); +// fieldExtensions.add(fieldExtension); +// } +// }); // 设置到服务任务 - serviceTask.setFieldExtensions(fieldExtensions); +// serviceTask.setFieldExtensions(fieldExtensions); serviceTask.setExtensionElements(extensionElements); // 添加错误边界事件