增加节点面板查询
This commit is contained in:
parent
aba4f837ed
commit
a1ef6c1dc2
@ -225,6 +225,11 @@
|
|||||||
<!-- <artifactId>flowable-spring-boot-starter-rest</artifactId>-->
|
<!-- <artifactId>flowable-spring-boot-starter-rest</artifactId>-->
|
||||||
<!-- <version>${flowable.version}</version>-->
|
<!-- <version>${flowable.version}</version>-->
|
||||||
<!-- </dependency>-->
|
<!-- </dependency>-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.networknt</groupId>
|
||||||
|
<artifactId>json-schema-validator</artifactId>
|
||||||
|
<version>1.0.86</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@ -54,6 +54,18 @@ public class WorkflowDefinition extends Entity<Long> {
|
|||||||
@Column(name = "graph_json", columnDefinition = "json")
|
@Column(name = "graph_json", columnDefinition = "json")
|
||||||
private JsonNode graphJson;
|
private JsonNode graphJson;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 表单配置JSON
|
||||||
|
* 包含:
|
||||||
|
* - 流程级别的表单配置
|
||||||
|
* - 流程变量定义
|
||||||
|
* - 表单验证规则
|
||||||
|
* - 表单布局配置
|
||||||
|
*/
|
||||||
|
@Type(JsonType.class)
|
||||||
|
@Column(name = "form_config", columnDefinition = "json")
|
||||||
|
private JsonNode formConfig;
|
||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
private WorkflowStatusEnums status;
|
private WorkflowStatusEnums status;
|
||||||
|
|||||||
@ -71,7 +71,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefin
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public WorkflowDefinitionDTO saveWorkflowDesign(WorkflowDefinitionDTO dto) throws Exception {
|
public WorkflowDefinitionDTO saveWorkflowDesign(WorkflowDefinitionDTO dto) throws Exception {
|
||||||
// 转换图形JSON为BPMN XML
|
// 转换图形JSON为BPMN XML
|
||||||
String bpmnXml = bpmnConverter.convertToBpmnXml(dto.getGraphJson().toString(), dto.getKey());
|
String bpmnXml = bpmnConverter.convertToBpmnXml(dto.getGraphJson(), dto.getKey());
|
||||||
|
|
||||||
dto.setFlowVersion(1);
|
dto.setFlowVersion(1);
|
||||||
dto.setBpmnXml(bpmnXml);
|
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内容',
|
graph_json JSON COMMENT 'x6 JSON内容',
|
||||||
status VARCHAR(32) NOT NULL COMMENT '状态',
|
status VARCHAR(32) NOT NULL COMMENT '状态',
|
||||||
description VARCHAR(255) NULL COMMENT '流程描述',
|
description VARCHAR(255) NULL COMMENT '流程描述',
|
||||||
|
form_config JSON COMMENT '表单配置JSON',
|
||||||
|
|
||||||
CONSTRAINT UK_workflow_definition_key_version UNIQUE (`key`, flow_version)
|
CONSTRAINT UK_workflow_definition_key_version UNIQUE (`key`, flow_version)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流定义表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流定义表';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user