反序列化问题。

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.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.enums.NodeCategoryEnums;
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
@ -33,13 +34,16 @@ public class WorkflowNodeDefinitionDTO extends BaseDTO {
private NodeCategoryEnums category;
@Schema(description = "节点UI")
private WorkflowNodeGraph graphVariables;
private NodeUiVariables uiVariables;
@Schema(description = "节点属性d")
private JsonNode localVariables;
@Schema(description = "节点属性")
private JsonNode panelVariablesSchema;
@Schema(description = "节点环境变量")
private JsonNode localVariablesSchema;
@Schema(description = "节点表单")
private JsonNode fromVariables;
private JsonNode fromVariablesSchema;
@Schema(description = "是否启用")
private Boolean enabled;

View File

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

View File

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

View File

@ -118,7 +118,7 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowN
}
Class<?> uiVariables = nodeType.getUiVariables();
if (formVariables != null) {
if (uiVariables != null) {
definedDTO.setUiVariables(generateSchema(uiVariables));
}
@ -167,8 +167,14 @@ public class WorkflowNodeDefinitionServiceImpl extends BaseServiceImpl<WorkflowN
required.add(field.getName());
}
if (annotation.defaultValue().length() > 0) {
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());
}
}
// 处理枚举
if (annotation.enumValues().length > 0) {

View File

@ -446,9 +446,10 @@ CREATE TABLE workflow_node_definition
node_name VARCHAR(100) NOT NULL COMMENT '节点名称',
description VARCHAR(500) COMMENT '节点描述',
category VARCHAR(50) NOT NULL COMMENT '节点分类',
graph_variables JSON NOT NULL COMMENT '节点UI',
local_variables JSON NOT NULL COMMENT '节点属性',
from_variables JSON COMMENT '节点表单',
ui_variables JSON NOT NULL COMMENT '节点UI',
panel_variables_schema JSON NOT NULL COMMENT '节点属性',
local_variables_schema JSON NOT NULL COMMENT '节点环境变量',
from_variables_schema JSON COMMENT '节点表单',
enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
create_time DATETIME NOT NULL COMMENT '创建时间',