反序列化问题。
This commit is contained in:
parent
dd07b181ce
commit
3c6bf11cad
@ -2,11 +2,10 @@ 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.graph.WorkflowDefinitionGraph;
|
||||
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.WorkflowTriggerTypeEnum;
|
||||
import jakarta.persistence.Column;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.BaseEventNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.BaseNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.EndNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.StartNodeLocalVariables;
|
||||
import lombok.Data;
|
||||
|
||||
public class NodeDefinitionContainer extends BaseEventNodeLocalVariables {
|
||||
|
||||
|
||||
|
||||
private BaseNodeLocalVariables
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 事件节点基础配置
|
||||
*/
|
||||
@Data
|
||||
public abstract class BaseEventNodeLocalVariables extends BaseNodeLocalVariables {
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
@ -7,7 +7,7 @@ import lombok.Data;
|
||||
* 事件节点基础配置
|
||||
*/
|
||||
@Data
|
||||
public class BaseNodeConfig {
|
||||
public class BaseNodeLocalVariables {
|
||||
|
||||
@SchemaProperty(
|
||||
title = "节点Code",
|
||||
@ -1,16 +1,13 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 基础节点配置
|
||||
*/
|
||||
@Data
|
||||
public class BaseTaskNodeConfig extends BaseNodeConfig {
|
||||
public class BaseTaskNodeLocalVariables extends BaseNodeLocalVariables {
|
||||
|
||||
@SchemaProperty(
|
||||
title = "执行委派者",
|
||||
@ -113,15 +110,6 @@ public class BaseTaskNodeConfig extends BaseNodeConfig {
|
||||
// private Boolean exclusive;
|
||||
//
|
||||
// /**
|
||||
// * 自定义属性
|
||||
// */
|
||||
// @SchemaProperty(
|
||||
// title = "自定义属性",
|
||||
// description = "节点的自定义属性配置"
|
||||
// )
|
||||
// private Map<String, Object> customProperties;
|
||||
//
|
||||
// /**
|
||||
// * 文档说明
|
||||
// */
|
||||
// @SchemaProperty(
|
||||
@ -0,0 +1,13 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 结束节点配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EndNodeLocalVariables extends BaseEventNodeLocalVariables {
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
@ -11,7 +11,7 @@ import java.util.Map;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GitCloneConfig extends BaseTaskNodeConfig {
|
||||
public class GitCloneLocalVariables extends BaseTaskNodeLocalVariables {
|
||||
/**
|
||||
* 仓库URL
|
||||
*/
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
@ -12,7 +12,7 @@ import java.util.Map;
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ScriptNodeConfig extends BaseTaskNodeConfig {
|
||||
public class ScriptNodeLocalVariables extends BaseTaskNodeLocalVariables {
|
||||
|
||||
|
||||
/**
|
||||
@ -0,0 +1,13 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 开始节点配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class StartNodeLocalVariables extends BaseEventNodeLocalVariables {
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.demo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 基于条件的网关配置基类
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public abstract class ConditionalGatewayConfig extends GatewayConfig {
|
||||
/**
|
||||
* 条件分支列表
|
||||
*/
|
||||
private List<ConditionalBranch> branches;
|
||||
|
||||
/**
|
||||
* 默认分支节点ID
|
||||
*/
|
||||
private String defaultNodeId;
|
||||
|
||||
@Data
|
||||
public static class ConditionalBranch {
|
||||
/**
|
||||
* 分支名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 条件表达式
|
||||
*/
|
||||
private String condition;
|
||||
|
||||
/**
|
||||
* 目标节点ID
|
||||
*/
|
||||
private String targetNodeId;
|
||||
|
||||
/**
|
||||
* 分支描述
|
||||
*/
|
||||
private String description;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.demo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 排他网关配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ExclusiveGatewayConfig extends ConditionalGatewayConfig {
|
||||
private final ExpressionParser expressionParser = new SpelExpressionParser();
|
||||
|
||||
@Override
|
||||
public List<String> getNextNodeIds(String context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.demo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 网关配置基类
|
||||
*/
|
||||
@Data
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = ExclusiveGatewayConfig.class, name = "EXCLUSIVE"),
|
||||
@JsonSubTypes.Type(value = ParallelGatewayConfig.class, name = "PARALLEL"),
|
||||
@JsonSubTypes.Type(value = InclusiveGatewayConfig.class, name = "INCLUSIVE")
|
||||
})
|
||||
public abstract class GatewayConfig {
|
||||
|
||||
/**
|
||||
* 网关名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 网关描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 获取下一个节点IDs
|
||||
*/
|
||||
public abstract List<String> getNextNodeIds(String context);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.demo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 包容网关配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class InclusiveGatewayConfig extends ConditionalGatewayConfig {
|
||||
|
||||
private final ExpressionParser expressionParser = new SpelExpressionParser();
|
||||
|
||||
@Override
|
||||
public List<String> getNextNodeIds(String context) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.demo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
* 并行网关配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ParallelGatewayConfig extends GatewayConfig {
|
||||
|
||||
@Override
|
||||
public List<String> getNextNodeIds(String context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.Map;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.List;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
|
||||
import lombok.Data;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.graph;
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
@ -1,12 +0,0 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 事件节点基础配置
|
||||
*/
|
||||
@Data
|
||||
public abstract class BaseEventNodeConfig extends BaseNodeConfig {
|
||||
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 结束节点配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class EndNodeConfig extends BaseEventNodeConfig {
|
||||
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 节点类型配置
|
||||
*/
|
||||
@Data
|
||||
public class NodeTypeSchemaConfig<C extends BaseNodeConfig> {
|
||||
/**
|
||||
* 节点类型代码
|
||||
*/
|
||||
@SchemaProperty(
|
||||
title = "节点类型代码",
|
||||
description = "节点类型的唯一标识",
|
||||
required = true
|
||||
)
|
||||
private NodeTypeEnums code;
|
||||
|
||||
/**
|
||||
* 节点类型名称
|
||||
*/
|
||||
@SchemaProperty(
|
||||
title = "节点类型名称",
|
||||
description = "节点类型的显示名称",
|
||||
required = true
|
||||
)
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 节点类型描述
|
||||
*/
|
||||
@SchemaProperty(
|
||||
title = "节点类型描述",
|
||||
description = "节点类型的详细描述"
|
||||
)
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 节点配置Schema
|
||||
*/
|
||||
@SchemaProperty(
|
||||
title = "配置Schema",
|
||||
description = "节点类型的配置Schema定义"
|
||||
)
|
||||
private C configSchema;
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.nodeConfig;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 开始节点配置
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class StartNodeConfig extends BaseEventNodeConfig {
|
||||
|
||||
}
|
||||
@ -2,7 +2,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.workflow.dto.graph.WorkflowDefinitionGraph;
|
||||
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.WorkflowTriggerTypeEnum;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package com.qqchen.deploy.backend.workflow.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import com.qqchen.deploy.backend.workflow.dto.graph.WorkflowNodeGraph;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@ -3,7 +3,7 @@ package com.qqchen.deploy.backend.workflow.hibernate;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.qqchen.deploy.backend.workflow.dto.graph.WorkflowDefinitionGraph;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph;
|
||||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
||||
import org.hibernate.usertype.UserType;
|
||||
|
||||
@ -5,7 +5,7 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowCategoryDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowDefinitionDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowExecutionDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowTriggerTypeDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.graph.WorkflowDefinitionGraph;
|
||||
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.WorkflowNodeInstanceStatusEnums;
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package com.qqchen.deploy.backend.workflow.util;
|
||||
|
||||
import com.qqchen.deploy.backend.workflow.constants.WorkFlowConstants;
|
||||
import com.qqchen.deploy.backend.workflow.dto.graph.*;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionEdge;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionGraph;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowDefinitionNode;
|
||||
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.bpmn.BpmnAutoLayout;
|
||||
|
||||
@ -5,8 +5,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.qqchen.deploy.backend.workflow.annotation.SchemaProperty;
|
||||
import com.qqchen.deploy.backend.workflow.dto.graph.WorkflowNodeGraph;
|
||||
import com.qqchen.deploy.backend.workflow.dto.nodeConfig.*;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.BaseNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.EndNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.ScriptNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.localVariables.StartNodeLocalVariables;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.workflow.WorkflowNodeGraph;
|
||||
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
@ -28,11 +31,11 @@ public class SchemaGenerator {
|
||||
private static Class<?> getConfigClassForNodeType(NodeTypeEnums nodeType) {
|
||||
switch (nodeType) {
|
||||
case START_EVENT:
|
||||
return StartNodeConfig.class;
|
||||
return StartNodeLocalVariables.class;
|
||||
case END_EVENT:
|
||||
return EndNodeConfig.class;
|
||||
return EndNodeLocalVariables.class;
|
||||
case SCRIPT_TASK:
|
||||
return ScriptNodeConfig.class;
|
||||
return ScriptNodeLocalVariables.class;
|
||||
// 其他节点类型的配置类
|
||||
// case USER_TASK:
|
||||
// case SERVICE_TASK:
|
||||
@ -43,7 +46,7 @@ public class SchemaGenerator {
|
||||
// TODO: 为其他节点类型添加对应的配置类
|
||||
// return BaseNodeConfig.class;
|
||||
default:
|
||||
return BaseNodeConfig.class;
|
||||
return BaseNodeLocalVariables.class;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user