反序列化问题。

This commit is contained in:
dengqichen 2024-12-19 17:37:54 +08:00
parent 25e40d57d3
commit 05c7ff74f8
5 changed files with 45 additions and 34 deletions

View File

@ -2,6 +2,7 @@ package com.qqchen.deploy.backend.workflow.dto;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.qqchen.deploy.backend.framework.dto.BaseDTO; import com.qqchen.deploy.backend.framework.dto.BaseDTO;
import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables;
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph;
import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums;
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
@ -33,13 +34,16 @@ public class WorkflowNodeDefinitionDTO extends BaseDTO {
private NodeCategoryEnums category; private NodeCategoryEnums category;
@Schema(description = "节点UI") @Schema(description = "节点UI")
private WorkflowNodeGraph graphVariables; private NodeUiVariables uiVariables;
@Schema(description = "节点属性d") @Schema(description = "节点属性")
private JsonNode localVariables; private JsonNode panelVariablesSchema;
@Schema(description = "节点环境变量")
private JsonNode localVariablesSchema;
@Schema(description = "节点表单") @Schema(description = "节点表单")
private JsonNode fromVariables; private JsonNode fromVariablesSchema;
@Schema(description = "是否启用") @Schema(description = "是否启用")
private Boolean enabled; private Boolean enabled;

View File

@ -12,6 +12,7 @@ public class BaseNodeLocalVariables {
@SchemaProperty( @SchemaProperty(
title = "委派者", title = "委派者",
description = "委派者", description = "委派者",
defaultValue = "com.qqchen.deploy.backend.workflow.delegate.ShellTaskDelegate",
required = true required = true
) )
private String delegate; private String delegate;

View File

@ -3,6 +3,7 @@ package com.qqchen.deploy.backend.workflow.entity;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
import com.qqchen.deploy.backend.framework.domain.Entity; import com.qqchen.deploy.backend.framework.domain.Entity;
import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables;
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph; import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph;
import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums; import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums;
import com.vladmihalcea.hibernate.type.json.JsonType; import com.vladmihalcea.hibernate.type.json.JsonType;
@ -14,11 +15,6 @@ import jakarta.persistence.Table;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
/**
* 工作流节点定义
* 用于定义工作流中可用的节点类型包含 Flowable 引擎配置和前端 X6 图形配置
*/
@Data @Data
@jakarta.persistence.Entity @jakarta.persistence.Entity
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -43,17 +39,20 @@ public class WorkflowNodeDefinition extends Entity<Long> {
@Type(JsonType.class) @Type(JsonType.class)
@Column(name = "graph_variables", columnDefinition = "text", nullable = false) @Column(name = "ui_variables", columnDefinition = "text", nullable = false)
private WorkflowNodeGraph graphVariables; private NodeUiVariables uiVariables;
@Type(JsonType.class) @Type(JsonType.class)
@Column(name = "local_variables", columnDefinition = "text", nullable = false) @Column(name = "panel_variables_schema", columnDefinition = "text", nullable = false)
private JsonNode localVariables; private JsonNode panelVariablesSchema;
@Type(JsonType.class) @Type(JsonType.class)
@Column(name = "from_variables", columnDefinition = "text", nullable = false) @Column(name = "local_variables_schema", columnDefinition = "text", nullable = false)
private JsonNode fromVariables; private JsonNode localVariablesSchema;
@Type(JsonType.class)
@Column(name = "from_variables_schema", columnDefinition = "text", nullable = false)
private JsonNode fromVariablesSchema;
@Column(nullable = false) @Column(nullable = false)
private Boolean enabled = true; private Boolean enabled = true;

View File

@ -118,7 +118,7 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowN
} }
Class<?> uiVariables = nodeType.getUiVariables(); Class<?> uiVariables = nodeType.getUiVariables();
if (formVariables != null) { if (uiVariables != null) {
definedDTO.setUiVariables(generateSchema(uiVariables)); definedDTO.setUiVariables(generateSchema(uiVariables));
} }
@ -167,7 +167,13 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowN
required.add(field.getName()); required.add(field.getName());
} }
if (annotation.defaultValue().length() > 0) { if (annotation.defaultValue().length() > 0) {
property.put("default", annotation.defaultValue()); if (jsonType.equals("integer")) {
property.put("default", Integer.parseInt(annotation.defaultValue()));
} else if (jsonType.equals("number")) {
property.put("default", Double.parseDouble(annotation.defaultValue()));
} else {
property.put("default", annotation.defaultValue());
}
} }
// 处理枚举 // 处理枚举

View File

@ -440,23 +440,24 @@ CREATE TABLE workflow_definition
-- 创建工作流节点定义表 -- 创建工作流节点定义表
CREATE TABLE workflow_node_definition CREATE TABLE workflow_node_definition
( (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
node_type VARCHAR(50) NOT NULL COMMENT '节点类型', node_type VARCHAR(50) NOT NULL COMMENT '节点类型',
node_code VARCHAR(50) NOT NULL COMMENT '节点编码', node_code VARCHAR(50) NOT NULL COMMENT '节点编码',
node_name VARCHAR(100) NOT NULL COMMENT '节点名称', node_name VARCHAR(100) NOT NULL COMMENT '节点名称',
description VARCHAR(500) COMMENT '节点描述', description VARCHAR(500) COMMENT '节点描述',
category VARCHAR(50) NOT NULL COMMENT '节点分类', category VARCHAR(50) NOT NULL COMMENT '节点分类',
graph_variables JSON NOT NULL COMMENT '节点UI', ui_variables JSON NOT NULL COMMENT '节点UI',
local_variables JSON NOT NULL COMMENT '节点属性', panel_variables_schema JSON NOT NULL COMMENT '节点属性',
from_variables JSON COMMENT '节点表单', local_variables_schema JSON NOT NULL COMMENT '节点环境变量',
enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用', from_variables_schema JSON COMMENT '节点表单',
enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
create_time DATETIME NOT NULL COMMENT '创建时间', create_time DATETIME NOT NULL COMMENT '创建时间',
create_by VARCHAR(50) NOT NULL COMMENT '创建人', create_by VARCHAR(50) NOT NULL COMMENT '创建人',
update_time DATETIME NOT NULL COMMENT '更新时间', update_time DATETIME NOT NULL COMMENT '更新时间',
update_by VARCHAR(50) NOT NULL COMMENT '更新人', update_by VARCHAR(50) NOT NULL COMMENT '更新人',
version INT NOT NULL DEFAULT 1 COMMENT '版本号', version INT NOT NULL DEFAULT 1 COMMENT '版本号',
deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除', deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除',
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE KEY uk_node_type (node_type) UNIQUE KEY uk_node_type (node_type)
) ENGINE = InnoDB ) ENGINE = InnoDB