diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBaseBuildVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBaseBuildVariables.java index 9be63cd2..f9d12bf8 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBaseBuildVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsBaseBuildVariables.java @@ -14,8 +14,8 @@ import lombok.Data; public class JenkinsBaseBuildVariables extends DeployNodeFormVariables { @SchemaProperty( - title = "", - description = "审批人填写的意见", + title = "禅道任务号", + description = "禅道任务号", order = 0 ) private String taskId; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsJavaBuildVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsJavaBuildVariables.java index 7cee46de..61f44135 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsJavaBuildVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsJavaBuildVariables.java @@ -1,14 +1,15 @@ package com.qqchen.deploy.backend.deploy.dto.variables; -import com.qqchen.deploy.backend.workflow.dto.definition.node.fromVariables.DeployNodeFormVariables; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Jenkins构建变量 */ +@EqualsAndHashCode(callSuper = true) @Data -public class JenkinsJavaBuildVariables extends DeployNodeFormVariables { +public class JenkinsJavaBuildVariables extends JenkinsBaseBuildVariables { } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsNodeJsBuildVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsNodeJsBuildVariables.java index 64a6bdbb..1a8bfb26 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsNodeJsBuildVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/dto/variables/JenkinsNodeJsBuildVariables.java @@ -1,10 +1,12 @@ package com.qqchen.deploy.backend.deploy.dto.variables; import lombok.Data; +import lombok.EqualsAndHashCode; /** * Jenkins构建变量 */ +@EqualsAndHashCode(callSuper = true) @Data public class JenkinsNodeJsBuildVariables extends JenkinsBaseBuildVariables { diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/DeployNodeLocalVariables.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/DeployNodeLocalVariables.java index a8278684..6550f68c 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/DeployNodeLocalVariables.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/definition/node/localVariables/DeployNodeLocalVariables.java @@ -1,6 +1,8 @@ package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables; import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty; +import com.qqchen.deploy.backend.workflow.annotation.SchemaPropertyDataSource; +import com.qqchen.deploy.backend.workflow.annotation.SchemaPropertyDataSourceParam; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,5 +10,42 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) public class DeployNodeLocalVariables extends BaseNodeLocalVariables { + @SchemaProperty( + title = "绑定Jenkins视图", + description = "Jenkins视图", + required = true, + dataSource = @SchemaPropertyDataSource( + type = "api", + url = "/api/v1/jenkins-view/list", + valueField = "id", + labelField = "viewName", + dependsOn = {"externalSystemId"}, + params = { + @SchemaPropertyDataSourceParam(name = "externalSystemId", value = "${externalSystemId}") + } + ), + order = 2 + ) + private String viewId; + + + @SchemaProperty( + title = "绑定Jenkins任务", + description = "Jenkins任务", + required = true, + dataSource = @SchemaPropertyDataSource( + type = "api", + url = "/api/v1/jenkins-job/list", + valueField = "id", + labelField = "jobName", + dependsOn = {"externalSystemId", "viewId"}, + params = { + @SchemaPropertyDataSourceParam(name = "externalSystemId", value = "${externalSystemId}"), + @SchemaPropertyDataSourceParam(name = "viewId", value = "${viewId}") + } + ), + order = 3 + ) + private String jobId; } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java index 44cd6782..11d38344 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnums.java @@ -37,7 +37,6 @@ public enum NodeTypeEnums { "开始节点", // 节点显示名称 null, StartNodePanelVariables.class, - null, NodeUiVariables.class, BpmnNodeTypeEnums.START_EVENT, NodeCategoryEnums.EVENT, @@ -56,7 +55,6 @@ public enum NodeTypeEnums { "结束节点", null, EndNodePanelVariables.class, - null, NodeUiVariables.class, BpmnNodeTypeEnums.END_EVENT, NodeCategoryEnums.EVENT, @@ -67,7 +65,6 @@ public enum NodeTypeEnums { "脚本任务", ScriptNodeLocalVariables.class, ScriptNodePanelVariables.class, - ScriptNodeFormVariables.class, NodeUiVariables.class, BpmnNodeTypeEnums.SERVICE_TASK, NodeCategoryEnums.TASK, @@ -78,7 +75,6 @@ public enum NodeTypeEnums { "构建任务", DeployNodeLocalVariables.class, DeployNodePanelVariables.class, - DeployNodeFormVariables.class, NodeUiVariables.class, BpmnNodeTypeEnums.SERVICE_TASK, NodeCategoryEnums.TASK, @@ -89,7 +85,6 @@ public enum NodeTypeEnums { "网关节点", null, GatewayNodePanelVariables.class, - null, NodeUiVariables.class, BpmnNodeTypeEnums.EXCLUSIVE_GATEWAY, NodeCategoryEnums.GATEWAY, @@ -100,7 +95,6 @@ public enum NodeTypeEnums { "通知节点", NotificationNodeLocalVariables.class, NotificationNodePanelVariables.class, - null, NodeUiVariables.class, BpmnNodeTypeEnums.SERVICE_TASK, NodeCategoryEnums.TASK, @@ -111,7 +105,6 @@ public enum NodeTypeEnums { "审批节点", ApprovalNodeLocalVariables.class, ApprovalNodePanelVariables.class, - ApprovalNodeFormVariables.class, NodeUiVariables.class, BpmnNodeTypeEnums.USER_TASK, NodeCategoryEnums.TASK, @@ -260,7 +253,7 @@ public enum NodeTypeEnums { private final Class panelVariables; - private final Class formVariables; +// private final Class formVariables; private final Class uiVariables; @@ -275,7 +268,7 @@ public enum NodeTypeEnums { String name, Class localVariables, Class panelVariables, - Class formVariables, +// Class formVariables, Class uiVariables, BpmnNodeTypeEnums bpmnType, NodeCategoryEnums category, @@ -285,7 +278,7 @@ public enum NodeTypeEnums { this.name = name; this.localVariables = localVariables; this.panelVariables = panelVariables; - this.formVariables = formVariables; +// this.formVariables = formVariables; this.uiVariables = uiVariables; this.bpmnType = bpmnType; this.category = category; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java index 97c7840a..b4301fa0 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowNodeDefinitionServiceImpl.java @@ -108,10 +108,10 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl formVariables = nodeType.getFormVariables(); - if (formVariables != null) { - definedDTO.setFormVariablesSchema(generateSchema(formVariables)); - } +// Class formVariables = nodeType.getFormVariables(); +// if (formVariables != null) { +// definedDTO.setFormVariablesSchema(generateSchema(formVariables)); +// } Class uiVariables = nodeType.getUiVariables(); if (uiVariables != null) { 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 2cda6bed..3464d909 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 @@ -292,31 +292,31 @@ public class BpmnConverter { } // 添加localVariables变量 - if (node.getLocalVariables() != null) { - ExtensionElement fieldElement = new ExtensionElement(); - fieldElement.setName("field"); - fieldElement.setNamespace("http://flowable.org/bpmn"); - fieldElement.setNamespacePrefix("flowable"); - - // 创建field的子元素string - ExtensionElement stringElement = new ExtensionElement(); - stringElement.setName("string"); - stringElement.setNamespace("http://flowable.org/bpmn"); - stringElement.setNamespacePrefix("flowable"); - // 直接设置JSON内容,不使用CDATA - stringElement.setElementText(node.getLocalVariables().toString()); - - // 设置field的name属性 - Map> fieldAttributes = new HashMap<>(); - fieldAttributes.put("name", Collections.singletonList(createAttribute("name", "localVariables"))); - fieldElement.setAttributes(fieldAttributes); - - // 添加string子元素到field - fieldElement.addChildElement(stringElement); - - // 添加field到extensionElements - extensionElements.computeIfAbsent("field", k -> new ArrayList<>()).add(fieldElement); - } +// if (node.getLocalVariables() != null) { +// ExtensionElement fieldElement = new ExtensionElement(); +// fieldElement.setName("field"); +// fieldElement.setNamespace("http://flowable.org/bpmn"); +// fieldElement.setNamespacePrefix("flowable"); +// +// // 创建field的子元素string +// ExtensionElement stringElement = new ExtensionElement(); +// stringElement.setName("string"); +// stringElement.setNamespace("http://flowable.org/bpmn"); +// stringElement.setNamespacePrefix("flowable"); +// // 直接设置JSON内容,不使用CDATA +// stringElement.setElementText(node.getLocalVariables().toString()); +// +// // 设置field的name属性 +// Map> fieldAttributes = new HashMap<>(); +// fieldAttributes.put("name", Collections.singletonList(createAttribute("name", "localVariables"))); +// fieldElement.setAttributes(fieldAttributes); +// +// // 添加string子元素到field +// fieldElement.addChildElement(stringElement); +// +// // 添加field到extensionElements +// extensionElements.computeIfAbsent("field", k -> new ArrayList<>()).add(fieldElement); +// } } /**