反序列化问题。
This commit is contained in:
parent
debef2f881
commit
091ea4fe7b
@ -1,10 +1,9 @@
|
||||
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.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.WorkflowDefinitionStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -57,14 +56,9 @@ public class WorkflowDefinitionDTO extends BaseDTO {
|
||||
private WorkflowDefinitionGraph graph;
|
||||
|
||||
/**
|
||||
* 表单配置
|
||||
* 定义状态
|
||||
*/
|
||||
private JsonNode formConfig;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
private WorkflowStatusEnums status;
|
||||
private WorkflowDefinitionStatusEnums status;
|
||||
|
||||
/**
|
||||
* 流程描述
|
||||
|
||||
@ -2,7 +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.enums.WorkflowStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -30,5 +30,5 @@ public class WorkflowDesignDTO extends BaseDTO {
|
||||
*/
|
||||
private JsonNode graphJson;
|
||||
|
||||
private WorkflowStatusEnums status;
|
||||
private WorkflowDefinitionStatusEnums status;
|
||||
}
|
||||
|
||||
@ -8,24 +8,21 @@ public class Circle {
|
||||
@SchemaProperty(
|
||||
title = "半径",
|
||||
description = "圆的半径",
|
||||
required = true,
|
||||
defaultValue = "4"
|
||||
required = true
|
||||
)
|
||||
private Integer r;
|
||||
|
||||
@SchemaProperty(
|
||||
title = "填充颜色",
|
||||
description = "圆的填充颜色",
|
||||
required = true,
|
||||
defaultValue = "#ffffff"
|
||||
required = true
|
||||
)
|
||||
private String fill;
|
||||
|
||||
@SchemaProperty(
|
||||
title = "边框颜色",
|
||||
description = "圆的边框颜色",
|
||||
required = true,
|
||||
defaultValue = "#1890ff"
|
||||
required = true
|
||||
)
|
||||
private String stroke;
|
||||
}
|
||||
@ -1,6 +1,9 @@
|
||||
package com.qqchen.deploy.backend.workflow.dto.definition.workflow;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables;
|
||||
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
@ -34,11 +37,16 @@ public class WorkflowDefinitionNode {
|
||||
*/
|
||||
private String name;
|
||||
|
||||
@Schema(description = "节点UI")
|
||||
private JsonNode uiVariables;
|
||||
|
||||
private WorkflowNodeGraph graph;
|
||||
@Schema(description = "节点属性")
|
||||
private JsonNode panelVariables;
|
||||
|
||||
@Schema(description = "节点环境变量")
|
||||
private JsonNode localVariables;
|
||||
|
||||
@Schema(description = "节点表单")
|
||||
private JsonNode formVariables;
|
||||
|
||||
/**
|
||||
* 节点配置
|
||||
*/
|
||||
private Map<String, Object> localVariables;
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.qqchen.deploy.backend.framework.annotation.LogicDelete;
|
||||
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.WorkflowDefinitionStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowTriggerTypeEnum;
|
||||
import com.qqchen.deploy.backend.workflow.hibernate.WorkflowGraphType;
|
||||
import com.qqchen.deploy.backend.framework.domain.Entity;
|
||||
@ -88,7 +88,7 @@ public class WorkflowDefinition extends Entity<Long> {
|
||||
*/
|
||||
@Column(nullable = false)
|
||||
@Enumerated(EnumType.STRING)
|
||||
private WorkflowStatusEnums status;
|
||||
private WorkflowDefinitionStatusEnums status;
|
||||
|
||||
/**
|
||||
* 流程描述
|
||||
|
||||
@ -3,7 +3,7 @@ package com.qqchen.deploy.backend.workflow.enums;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum WorkflowStatusEnums {
|
||||
public enum WorkflowDefinitionStatusEnums {
|
||||
|
||||
DRAFT("DRAFT","草稿"),
|
||||
PUBLISHED("PUBLISHED","已发布"),
|
||||
@ -13,7 +13,7 @@ public enum WorkflowStatusEnums {
|
||||
|
||||
private final String description;
|
||||
|
||||
WorkflowStatusEnums(String code, String description) {
|
||||
WorkflowDefinitionStatusEnums(String code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
@ -2,12 +2,11 @@ package com.qqchen.deploy.backend.workflow.repository;
|
||||
|
||||
import com.qqchen.deploy.backend.framework.repository.IBaseRepository;
|
||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@ -27,5 +26,5 @@ public interface IWorkflowDefinitionRepository extends IBaseRepository<WorkflowD
|
||||
|
||||
Optional<WorkflowDefinition> findByKey(String businessKey);
|
||||
|
||||
Page<WorkflowDefinition> findByStatus(WorkflowStatusEnums workflowStatusEnums, Pageable pageable);
|
||||
Page<WorkflowDefinition> findByStatus(WorkflowDefinitionStatusEnums workflowStatusEnums, Pageable pageable);
|
||||
}
|
||||
|
||||
@ -8,8 +8,8 @@ import com.qqchen.deploy.backend.workflow.dto.WorkflowTriggerTypeDTO;
|
||||
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.WorkflowDefinitionStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository;
|
||||
import com.qqchen.deploy.backend.workflow.service.IWorkflowDefinitionService;
|
||||
import com.qqchen.deploy.backend.workflow.service.IWorkflowInstanceService;
|
||||
@ -279,7 +279,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefin
|
||||
|
||||
if (deployments.isEmpty()) {
|
||||
// 如果没有部署,直接更新状态
|
||||
definition.setStatus(WorkflowStatusEnums.DISABLED);
|
||||
definition.setStatus(WorkflowDefinitionStatusEnums.DISABLED);
|
||||
workflowDefinitionRepository.save(definition);
|
||||
return;
|
||||
}
|
||||
@ -300,7 +300,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefin
|
||||
}
|
||||
|
||||
// 4. 更新我们的流程定义状态
|
||||
definition.setStatus(WorkflowStatusEnums.DISABLED);
|
||||
definition.setStatus(WorkflowDefinitionStatusEnums.DISABLED);
|
||||
workflowDefinitionRepository.save(definition);
|
||||
|
||||
log.info("Successfully disabled workflow definition: {}, key: {}, hasHistory: {}",
|
||||
@ -329,7 +329,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl<WorkflowDefin
|
||||
definition.setBpmnXml(bpmnConverter.convertToXml(graph, definition.getKey()));
|
||||
Deployment deployment = this.deployWorkflow(definition);
|
||||
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
|
||||
definition.setStatus(WorkflowStatusEnums.PUBLISHED);
|
||||
definition.setStatus(WorkflowDefinitionStatusEnums.PUBLISHED);
|
||||
definition.setFlowVersion(1);
|
||||
definition.setProcessDefinitionId(processDefinition.getId());
|
||||
workflowDefinitionRepository.save(definition);
|
||||
|
||||
@ -8,14 +8,13 @@ import com.qqchen.deploy.backend.workflow.converter.WorkflowNodeInstanceConverte
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowHistoricalInstancesDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowInstanceStartRequest;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowNodeInstanceDTO;
|
||||
import com.qqchen.deploy.backend.workflow.dto.WorkflowTemplateWithInstancesDTO;
|
||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition;
|
||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance;
|
||||
import com.qqchen.deploy.backend.workflow.entity.WorkflowNodeInstance;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowNodeInstanceStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnums;
|
||||
import com.qqchen.deploy.backend.workflow.query.WorkflowDefinitionQuery;
|
||||
import com.qqchen.deploy.backend.workflow.query.WorkflowHistoricalInstancesQuery;
|
||||
import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository;
|
||||
@ -28,7 +27,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
import org.flowable.bpmn.model.SequenceFlow;
|
||||
import org.flowable.engine.HistoryService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
@ -193,7 +191,7 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl<WorkflowInstanc
|
||||
@Override
|
||||
public Page<WorkflowTemplateWithInstancesDTO> findTemplatesWithRecentInstances(WorkflowDefinitionQuery query) {
|
||||
Pageable pageable = PageRequest.of(query.getPageNum() - 1, query.getPageSize());
|
||||
Page<WorkflowDefinition> definitionPage = workflowDefinitionRepository.findByStatus(WorkflowStatusEnums.PUBLISHED, pageable);
|
||||
Page<WorkflowDefinition> definitionPage = workflowDefinitionRepository.findByStatus(WorkflowDefinitionStatusEnums.PUBLISHED, pageable);
|
||||
List<WorkflowTemplateWithInstancesDTO> result = definitionPage.getContent().stream().map(definition -> {
|
||||
List<WorkflowInstance> workflowInstances = workflowInstanceRepository.findTop1ByWorkflowDefinitionIdOrderByCreateTimeDesc(definition.getId());
|
||||
WorkflowTemplateWithInstancesDTO workflowTemplateWithInstancesDTO = new WorkflowTemplateWithInstancesDTO();
|
||||
|
||||
@ -139,9 +139,9 @@ public class BpmnConverter {
|
||||
if (element instanceof ServiceTask) {
|
||||
ServiceTask serviceTask = (ServiceTask) element;
|
||||
// 设置委托表达式
|
||||
String delegate = (String) node.getLocalVariables().get("delegate");
|
||||
serviceTask.setImplementationType("delegateExpression");
|
||||
serviceTask.setImplementation(delegate);
|
||||
// String delegate = (String) node.getLocalVariables().get("delegate");
|
||||
// serviceTask.setImplementationType("delegateExpression");
|
||||
// serviceTask.setImplementation(delegate);
|
||||
|
||||
// 配置重试策略
|
||||
ExtensionElement retryConfig = new ExtensionElement();
|
||||
@ -155,18 +155,18 @@ public class BpmnConverter {
|
||||
extensionElements.put("failedJobRetryTimeCycle", retryElements);
|
||||
|
||||
// 添加字段注入
|
||||
List<FieldExtension> fieldExtensions = new ArrayList<>();
|
||||
node.getLocalVariables().forEach((key, value) -> {
|
||||
if (value != null && !"delegate".equals(key)) {
|
||||
FieldExtension fieldExtension = new FieldExtension();
|
||||
fieldExtension.setFieldName(key);
|
||||
fieldExtension.setStringValue(String.valueOf(value));
|
||||
fieldExtensions.add(fieldExtension);
|
||||
}
|
||||
});
|
||||
// List<FieldExtension> fieldExtensions = new ArrayList<>();
|
||||
// node.getLocalVariables().forEach((key, value) -> {
|
||||
// if (value != null && !"delegate".equals(key)) {
|
||||
// FieldExtension fieldExtension = new FieldExtension();
|
||||
// fieldExtension.setFieldName(key);
|
||||
// fieldExtension.setStringValue(String.valueOf(value));
|
||||
// fieldExtensions.add(fieldExtension);
|
||||
// }
|
||||
// });
|
||||
|
||||
// 设置到服务任务
|
||||
serviceTask.setFieldExtensions(fieldExtensions);
|
||||
// serviceTask.setFieldExtensions(fieldExtensions);
|
||||
serviceTask.setExtensionElements(extensionElements);
|
||||
|
||||
// 添加错误边界事件
|
||||
|
||||
Loading…
Reference in New Issue
Block a user