增加节点面板查询
This commit is contained in:
parent
aba4f837ed
commit
a1ef6c1dc2
@ -225,6 +225,11 @@
|
||||
<!-- <artifactId>flowable-spring-boot-starter-rest</artifactId>-->
|
||||
<!-- <version>${flowable.version}</version>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>com.networknt</groupId>
|
||||
<artifactId>json-schema-validator</artifactId>
|
||||
<version>1.0.86</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@ -54,6 +54,18 @@ public class WorkflowDefinition extends Entity<Long> {
|
||||
@Column(name = "graph_json", columnDefinition = "json")
|
||||
private JsonNode graphJson;
|
||||
|
||||
/**
|
||||
* 表单配置JSON
|
||||
* 包含:
|
||||
* - 流程级别的表单配置
|
||||
* - 流程变量定义
|
||||
* - 表单验证规则
|
||||
* - 表单布局配置
|
||||
*/
|
||||
@Type(JsonType.class)
|
||||
@Column(name = "form_config", columnDefinition = "json")
|
||||
private JsonNode formConfig;
|
||||
|
||||
@Column(nullable = false)
|
||||
@Enumerated(EnumType.STRING)
|
||||
private WorkflowStatusEnums status;
|
||||
|
||||
@ -71,7 +71,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefin
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public WorkflowDefinitionDTO saveWorkflowDesign(WorkflowDefinitionDTO dto) throws Exception {
|
||||
// 转换图形JSON为BPMN XML
|
||||
String bpmnXml = bpmnConverter.convertToBpmnXml(dto.getGraphJson().toString(), dto.getKey());
|
||||
String bpmnXml = bpmnConverter.convertToBpmnXml(dto.getGraphJson(), dto.getKey());
|
||||
|
||||
dto.setFlowVersion(1);
|
||||
dto.setBpmnXml(bpmnXml);
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package com.qqchen.deploy.backend.workflow.util;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.networknt.schema.JsonSchema;
|
||||
import com.networknt.schema.JsonSchemaFactory;
|
||||
import com.networknt.schema.SpecVersion;
|
||||
import com.networknt.schema.ValidationMessage;
|
||||
import com.qqchen.deploy.backend.framework.exception.BusinessException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class JsonSchemaValidator {
|
||||
private final JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7);
|
||||
|
||||
/**
|
||||
* 验证JSON数据是否符合Schema
|
||||
*/
|
||||
public void validate(JsonNode data, JsonNode schema) {
|
||||
try {
|
||||
JsonSchema jsonSchema = factory.getSchema(schema);
|
||||
Set<ValidationMessage> errors = jsonSchema.validate(data);
|
||||
|
||||
if (!errors.isEmpty()) {
|
||||
String errorMessages = errors.stream()
|
||||
.map(ValidationMessage::getMessage)
|
||||
.collect(Collectors.joining(", "));
|
||||
throw new IllegalStateException("JSON Schema validation failed: " + errorMessages);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("JSON Schema validation error", e);
|
||||
throw new IllegalStateException("JSON Schema validation error: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -399,6 +399,7 @@ CREATE TABLE workflow_definition (
|
||||
graph_json JSON COMMENT 'x6 JSON内容',
|
||||
status VARCHAR(32) NOT NULL COMMENT '状态',
|
||||
description VARCHAR(255) NULL COMMENT '流程描述',
|
||||
form_config JSON COMMENT '表单配置JSON',
|
||||
|
||||
CONSTRAINT UK_workflow_definition_key_version UNIQUE (`key`, flow_version)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流定义表';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user