diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java index e30d054f..fb957235 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowDefinitionDTO.java @@ -1,7 +1,7 @@ package com.qqchen.deploy.backend.workflow.dto; import com.qqchen.deploy.backend.framework.dto.BaseDTO; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -37,7 +37,7 @@ public class WorkflowDefinitionDTO extends BaseDTO { * 工作流状态 */ @NotNull(message = "工作流状态不能为空") - private WorkflowStatusEnum status; + private WorkflowDefinitionStatusEnum status; /** * 版本号 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowInstanceDTO.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowInstanceDTO.java index e84ce18d..0bb20128 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowInstanceDTO.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/dto/WorkflowInstanceDTO.java @@ -1,7 +1,7 @@ package com.qqchen.deploy.backend.workflow.dto; import com.qqchen.deploy.backend.framework.dto.BaseDTO; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,9 +25,9 @@ public class WorkflowInstanceDTO extends BaseDTO { private String businessKey; /** - * 状态 + * 工作流状态 */ - private WorkflowStatusEnum status; + private WorkflowInstanceStatusEnum status; /** * 开始时间 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/DefaultWorkflowEngine.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/DefaultWorkflowEngine.java index 02fb8c08..af03928a 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/DefaultWorkflowEngine.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/DefaultWorkflowEngine.java @@ -10,7 +10,8 @@ import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; import com.qqchen.deploy.backend.workflow.enums.NodeStatusEnum; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnum; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import com.qqchen.deploy.backend.workflow.repository.INodeInstanceRepository; import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository; import com.qqchen.deploy.backend.workflow.repository.IWorkflowInstanceRepository; @@ -51,14 +52,16 @@ public class DefaultWorkflowEngine implements WorkflowEngine { throw new WorkflowEngineException(ResponseCode.WORKFLOW_NOT_FOUND); } - if (definition.getStatus() != WorkflowStatusEnum.PUBLISHED) { + // 检查工作流定义状态 + if (definition.getStatus() != WorkflowDefinitionStatusEnum.PUBLISHED) { throw new WorkflowEngineException(ResponseCode.WORKFLOW_NOT_PUBLISHED); } // 2. 创建工作流实例 WorkflowInstance instance = new WorkflowInstance(); instance.setDefinition(definition); - instance.setStatus(WorkflowStatusEnum.RUNNING); + // 设置工作流实例状态 + instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); instance.setStartTime(LocalDateTime.now()); workflowInstanceRepository.save(instance); @@ -82,7 +85,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { .orElseThrow(() -> new WorkflowEngineException(ResponseCode.WORKFLOW_NODE_NOT_FOUND)); WorkflowInstance instance = nodeInstance.getWorkflowInstance(); - if (instance.getStatus() != WorkflowStatusEnum.RUNNING) { + // 检查工作流实例状态 + if (instance.getStatus() != WorkflowInstanceStatusEnum.RUNNING) { throw new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_RUNNING); } @@ -137,7 +141,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { WorkflowInstance instance = workflowInstanceRepository.findById(instanceId) .orElseThrow(() -> new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_FOUND)); - if (instance.getStatus() != WorkflowStatusEnum.RUNNING) { + // 检查工作流实例状态 + if (instance.getStatus() != WorkflowInstanceStatusEnum.RUNNING) { throw new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_RUNNING); } @@ -156,7 +161,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { nodeInstanceRepository.save(node); } - instance.setStatus(WorkflowStatusEnum.TERMINATED); + // 更新工作流实例状态 + instance.setStatus(WorkflowInstanceStatusEnum.TERMINATED); instance.setEndTime(LocalDateTime.now()); instance.setError(reason); workflowInstanceRepository.save(instance); @@ -168,7 +174,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { WorkflowInstance instance = workflowInstanceRepository.findById(instanceId) .orElseThrow(() -> new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_FOUND)); - if (instance.getStatus() != WorkflowStatusEnum.RUNNING) { + // 检查工作流实例状态 + if (instance.getStatus() != WorkflowInstanceStatusEnum.RUNNING) { throw new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_RUNNING); } @@ -181,7 +188,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { nodeInstanceRepository.save(node); } - instance.setStatus(WorkflowStatusEnum.PAUSED); + // 更新工作流实例状态 + instance.setStatus(WorkflowInstanceStatusEnum.PAUSED); workflowInstanceRepository.save(instance); } @@ -191,7 +199,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { WorkflowInstance instance = workflowInstanceRepository.findById(instanceId) .orElseThrow(() -> new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_FOUND)); - if (instance.getStatus() != WorkflowStatusEnum.PAUSED) { + // 检查工作流实例状态 + if (instance.getStatus() != WorkflowInstanceStatusEnum.PAUSED) { throw new WorkflowEngineException(ResponseCode.WORKFLOW_INSTANCE_NOT_RUNNING); } @@ -205,7 +214,8 @@ public class DefaultWorkflowEngine implements WorkflowEngine { executeNode(node.getId()); } - instance.setStatus(WorkflowStatusEnum.RUNNING); + // 更新工作流实例状态 + instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); workflowInstanceRepository.save(instance); } diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/EndNodeExecutor.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/EndNodeExecutor.java index d57331aa..6b09a340 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/EndNodeExecutor.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/EndNodeExecutor.java @@ -9,7 +9,7 @@ import com.qqchen.deploy.backend.workflow.entity.NodeInstance; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; import com.qqchen.deploy.backend.workflow.enums.NodeStatusEnum; import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnum; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import com.qqchen.deploy.backend.workflow.repository.IWorkflowInstanceRepository; import jakarta.annotation.Resource; import lombok.Data; @@ -40,8 +40,8 @@ public class EndNodeExecutor implements NodeExecutor { nodeInstance.setEndTime(LocalDateTime.now()); // 2. 完成工作流实例 - WorkflowInstance instance = context.getInstance(); - instance.setStatus(WorkflowStatusEnum.COMPLETED); + WorkflowInstance instance = nodeInstance.getWorkflowInstance(); + instance.setStatus(WorkflowInstanceStatusEnum.COMPLETED); instance.setEndTime(LocalDateTime.now()); workflowInstanceRepository.save(instance); diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java index 6d8dd5d2..bad16ddf 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowDefinition.java @@ -2,7 +2,7 @@ package com.qqchen.deploy.backend.workflow.entity; import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -43,7 +43,7 @@ public class WorkflowDefinition extends Entity { */ @Enumerated(EnumType.ORDINAL) @Column(nullable = false) - private WorkflowStatusEnum status = WorkflowStatusEnum.DRAFT; + private WorkflowDefinitionStatusEnum status = WorkflowDefinitionStatusEnum.DRAFT; /** * 是否启用 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowInstance.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowInstance.java index 6ffa1ec9..2657bd71 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowInstance.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/entity/WorkflowInstance.java @@ -2,7 +2,7 @@ package com.qqchen.deploy.backend.workflow.entity; import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import jakarta.persistence.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -38,11 +38,11 @@ public class WorkflowInstance extends Entity { private String businessKey; /** - * 状态 + * 工作流状态 */ @Enumerated(EnumType.ORDINAL) @Column(nullable = false) - private WorkflowStatusEnum status = WorkflowStatusEnum.RUNNING; + private WorkflowInstanceStatusEnum status = WorkflowInstanceStatusEnum.CREATED; /** * 开始时间 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnum.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnum.java index 9fcd788d..1477441b 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnum.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/NodeTypeEnum.java @@ -15,7 +15,10 @@ public enum NodeTypeEnum { TASK(2, "TASK", "任务节点"), GATEWAY(3, "GATEWAY", "网关节点"), SUB_PROCESS(4, "SUB_PROCESS", "子流程节点"), - SHELL(5, "SHELL", "Shell脚本节点"); + SHELL(5, "SHELL", "Shell脚本节点"), + APPROVAL(6, "APPROVAL", "审批节点"), + JENKINS(7, "JENKINS", "Jenkins任务节点"), + GIT(8, "GIT", "Git操作节点"); private final int value; private final String code; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnum.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnum.java new file mode 100644 index 00000000..534d4d30 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowDefinitionStatusEnum.java @@ -0,0 +1,29 @@ +package com.qqchen.deploy.backend.workflow.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 工作流定义状态枚举 + */ +@Getter +@AllArgsConstructor +public enum WorkflowDefinitionStatusEnum { + + DRAFT(0, "DRAFT", "草稿"), + PUBLISHED(1, "PUBLISHED", "已发布"), + DISABLED(2, "DISABLED", "已禁用"); + + private final int value; + private final String code; + private final String description; + + public static WorkflowDefinitionStatusEnum fromValue(int value) { + for (WorkflowDefinitionStatusEnum status : values()) { + if (status.getValue() == value) { + return status; + } + } + throw new IllegalArgumentException("No matching WorkflowDefinitionStatusEnum for value: " + value); + } +} diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnum.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowInstanceStatusEnum.java similarity index 52% rename from backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnum.java rename to backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowInstanceStatusEnum.java index 96dfaded..986db199 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowStatusEnum.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/enums/WorkflowInstanceStatusEnum.java @@ -4,37 +4,39 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * 工作流状态枚举 + * 工作流实例状态枚举 */ @Getter @AllArgsConstructor -public enum WorkflowStatusEnum { +public enum WorkflowInstanceStatusEnum { - // 工作流定义状态 - DRAFT(0, "DRAFT", "草稿"), - PUBLISHED(1, "PUBLISHED", "已发布"), - DISABLED(2, "DISABLED", "已禁用"), - - // 工作流实例状态 - CREATED(3, "CREATED", "已创建"), - PENDING(4, "PENDING", "等待执行"), - RUNNING(5, "RUNNING", "执行中"), + CREATED(0, "CREATED", "已创建"), + PENDING(1, "PENDING", "等待执行"), + RUNNING(2, "RUNNING", "执行中"), + COMPLETED(3, "COMPLETED", "已完成"), + FAILED(4, "FAILED", "执行失败"), + CANCELLED(5, "CANCELLED", "已取消"), PAUSED(6, "PAUSED", "已暂停"), - COMPLETED(7, "COMPLETED", "已完成"), - FAILED(8, "FAILED", "执行失败"), - CANCELLED(9, "CANCELLED", "已取消"), - SUSPENDED(10, "SUSPENDED", "已暂停"), - TERMINATED(11, "TERMINATED", "已终止"); + TERMINATED(7, "TERMINATED", "已终止"); private final int value; private final String code; private final String description; + public static WorkflowInstanceStatusEnum fromValue(int value) { + for (WorkflowInstanceStatusEnum status : values()) { + if (status.getValue() == value) { + return status; + } + } + throw new IllegalArgumentException("No matching WorkflowInstanceStatusEnum for value: " + value); + } + /** * 判断是否为终态 */ public boolean isFinalStatus() { - return this == COMPLETED || this == FAILED || this == CANCELLED || this == SUSPENDED || this == TERMINATED; + return this == COMPLETED || this == FAILED || this == CANCELLED || this == TERMINATED; } /** @@ -62,6 +64,6 @@ public enum WorkflowStatusEnum { * 判断是否可以取消 */ public boolean canCancel() { - return this == PENDING || this == RUNNING || this == PAUSED; + return this == RUNNING || this == PAUSED || this == PENDING; } -} \ No newline at end of file +} diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowDefinitionQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowDefinitionQuery.java index d302d2c9..1506ae2d 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowDefinitionQuery.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowDefinitionQuery.java @@ -3,7 +3,7 @@ package com.qqchen.deploy.backend.workflow.query; import com.qqchen.deploy.backend.framework.annotation.QueryField; import com.qqchen.deploy.backend.framework.enums.QueryType; import com.qqchen.deploy.backend.framework.query.BaseQuery; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,6 +17,9 @@ public class WorkflowDefinitionQuery extends BaseQuery { @QueryField(field = "code", type = QueryType.LIKE) private String code; + /** + * 工作流状态 + */ @QueryField(field = "status") - private WorkflowStatusEnum status; + private WorkflowDefinitionStatusEnum status; } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowInstanceQuery.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowInstanceQuery.java index 4c0c06e3..ad6950b7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowInstanceQuery.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/query/WorkflowInstanceQuery.java @@ -3,7 +3,7 @@ package com.qqchen.deploy.backend.workflow.query; import com.qqchen.deploy.backend.framework.annotation.QueryField; import com.qqchen.deploy.backend.framework.enums.QueryType; import com.qqchen.deploy.backend.framework.query.BaseQuery; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,6 +17,9 @@ public class WorkflowInstanceQuery extends BaseQuery { @QueryField(field = "definitionId") private Long definitionId; + /** + * 工作流状态 + */ @QueryField(field = "status") - private WorkflowStatusEnum status; + private WorkflowInstanceStatusEnum status; } \ No newline at end of file diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java index 0a7cd949..de87d35e 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowDefinitionRepository.java @@ -2,7 +2,7 @@ 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.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -44,12 +44,10 @@ public interface IWorkflowDefinitionRepository extends IBaseRepository findAllVersionsByCode(@Param("code") String code); /** - * 根据状态查询工作流定义列表 - * - * @param status 状态 - * @return 工作流定义列表 + * 查询指定状态的工作流定义 */ - List findByStatusAndDeletedFalse(WorkflowStatusEnum status); + @Query("SELECT d FROM WorkflowDefinition d WHERE d.status = :status AND d.deleted = false") + List findByStatus(@Param("status") WorkflowDefinitionStatusEnum status); /** * 检查编码是否已存在 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowInstanceRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowInstanceRepository.java index 3e370b56..2fb225f7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowInstanceRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/repository/IWorkflowInstanceRepository.java @@ -2,7 +2,7 @@ package com.qqchen.deploy.backend.workflow.repository; import com.qqchen.deploy.backend.framework.repository.IBaseRepository; import com.qqchen.deploy.backend.workflow.entity.WorkflowInstance; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowInstanceStatusEnum; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -19,7 +19,12 @@ public interface IWorkflowInstanceRepository extends IBaseRepository findByStatusIn(@Param("statuses") List statuses); + List findByStatusIn(@Param("statuses") List statuses); + + /** + * 根据工作流定义ID和状态查询工作流实例数量 + */ + long countByDefinitionIdAndStatus(Long definitionId, WorkflowInstanceStatusEnum status); /** * 查询项目环境的工作流实例 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java index 208b8d64..c9bde1b6 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/service/impl/WorkflowDefinitionServiceImpl.java @@ -6,7 +6,7 @@ import com.qqchen.deploy.backend.framework.service.impl.BaseServiceImpl; import com.qqchen.deploy.backend.workflow.converter.WorkflowDefinitionConverter; import com.qqchen.deploy.backend.workflow.dto.WorkflowDefinitionDTO; import com.qqchen.deploy.backend.workflow.entity.WorkflowDefinition; -import com.qqchen.deploy.backend.workflow.enums.WorkflowStatusEnum; +import com.qqchen.deploy.backend.workflow.enums.WorkflowDefinitionStatusEnum; import com.qqchen.deploy.backend.workflow.repository.INodeDefinitionRepository; import com.qqchen.deploy.backend.workflow.repository.IWorkflowDefinitionRepository; import com.qqchen.deploy.backend.workflow.service.IWorkflowDefinitionService; @@ -45,7 +45,8 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_NOT_FOUND)); // 只有草稿状态可以修改 - if (current.getStatus() != WorkflowStatusEnum.DRAFT) { + if (current.getStatus() != WorkflowDefinitionStatusEnum.DRAFT) { throw new BusinessException(ResponseCode.WORKFLOW_NOT_DRAFT); } @@ -95,7 +96,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_NOT_FOUND)); // 验证当前状态 - if (current.getStatus() != WorkflowStatusEnum.DRAFT) { + if (current.getStatus() != WorkflowDefinitionStatusEnum.DRAFT) { throw new BusinessException(ResponseCode.WORKFLOW_NOT_DRAFT); } @@ -105,7 +106,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_NOT_FOUND)); // 验证当前状态 - if (current.getStatus() != WorkflowStatusEnum.PUBLISHED) { + if (current.getStatus() != WorkflowDefinitionStatusEnum.PUBLISHED) { throw new BusinessException(ResponseCode.WORKFLOW_NOT_PUBLISHED); } // 更新状态 - current.setStatus(WorkflowStatusEnum.DISABLED); + current.setStatus(WorkflowDefinitionStatusEnum.DISABLED); current = workflowDefinitionRepository.save(current); return workflowDefinitionConverter.toDto(current); @@ -138,12 +139,12 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_NOT_FOUND)); // 验证当前状态 - if (current.getStatus() != WorkflowStatusEnum.DISABLED) { + if (current.getStatus() != WorkflowDefinitionStatusEnum.DISABLED) { throw new BusinessException(ResponseCode.WORKFLOW_NOT_DISABLED); } // 更新状态 - current.setStatus(WorkflowStatusEnum.PUBLISHED); + current.setStatus(WorkflowDefinitionStatusEnum.PUBLISHED); current = workflowDefinitionRepository.save(current); return workflowDefinitionConverter.toDto(current); @@ -219,7 +220,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_NOT_FOUND)); // 2. 检查工作流定义状态 - if (definition.getStatus() != WorkflowStatusEnum.PUBLISHED) { + if (definition.getStatus() != WorkflowDefinitionStatusEnum.PUBLISHED) { throw new BusinessException(ResponseCode.WORKFLOW_NOT_PUBLISHED); } if (!definition.getEnabled()) { @@ -54,7 +55,7 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.WORKFLOW_INSTANCE_NOT_FOUND)); // 2. 检查状态 - if (instance.getStatus() != WorkflowStatusEnum.CREATED) { + if (instance.getStatus() != WorkflowInstanceStatusEnum.CREATED) { throw new BusinessException(ResponseCode.WORKFLOW_INSTANCE_NOT_RUNNING); } // 3. 更新状态 - instance.setStatus(WorkflowStatusEnum.RUNNING); + instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); instance.setStartTime(LocalDateTime.now()); instance = workflowInstanceRepository.save(instance); @@ -98,7 +99,7 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl(); // variables.put("key1", "value1"); @@ -72,7 +73,7 @@ // WorkflowInstanceDTO result = workflowInstanceService.createInstance(1L, "TEST-KEY", variables); // // assertNotNull(result); -// assertEquals(WorkflowStatusEnum.CREATED, result.getStatus()); +// assertEquals(WorkflowInstanceStatusEnum.CREATED, result.getStatus()); // assertEquals("TEST-KEY", result.getBusinessKey()); // verify(workflowDefinitionRepository).findById(1L); // verify(workflowInstanceRepository).save(any(WorkflowInstance.class)); @@ -90,7 +91,7 @@ // // @Test // void createInstance_WorkflowNotPublished_ThrowsException() { -// definition.setStatus(WorkflowStatusEnum.DRAFT); +// definition.setStatus(WorkflowDefinitionStatusEnum.DRAFT); // when(workflowDefinitionRepository.findById(anyLong())).thenReturn(Optional.of(definition)); // // BusinessException exception = assertThrows(BusinessException.class, @@ -106,7 +107,7 @@ // WorkflowInstanceDTO result = workflowInstanceService.startInstance(1L); // // assertNotNull(result); -// assertEquals(WorkflowStatusEnum.RUNNING, result.getStatus()); +// assertEquals(WorkflowInstanceStatusEnum.RUNNING, result.getStatus()); // assertNotNull(result.getStartTime()); // verify(workflowInstanceRepository).findById(1L); // verify(workflowInstanceRepository).save(any(WorkflowInstance.class)); @@ -123,7 +124,7 @@ // // @Test // void startInstance_NotCreated_ThrowsException() { -// instance.setStatus(WorkflowStatusEnum.RUNNING); +// instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); // when(workflowInstanceRepository.findById(anyLong())).thenReturn(Optional.of(instance)); // // BusinessException exception = assertThrows(BusinessException.class, @@ -133,42 +134,42 @@ // // @Test // void pauseInstance_Success() { -// instance.setStatus(WorkflowStatusEnum.RUNNING); +// instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); // when(workflowInstanceRepository.findById(anyLong())).thenReturn(Optional.of(instance)); // when(workflowInstanceRepository.save(any(WorkflowInstance.class))).thenReturn(instance); // // WorkflowInstanceDTO result = workflowInstanceService.pauseInstance(1L); // // assertNotNull(result); -// assertEquals(WorkflowStatusEnum.PAUSED, result.getStatus()); +// assertEquals(WorkflowInstanceStatusEnum.PAUSED, result.getStatus()); // verify(workflowInstanceRepository).findById(1L); // verify(workflowInstanceRepository).save(any(WorkflowInstance.class)); // } // // @Test // void resumeInstance_Success() { -// instance.setStatus(WorkflowStatusEnum.PAUSED); +// instance.setStatus(WorkflowInstanceStatusEnum.PAUSED); // when(workflowInstanceRepository.findById(anyLong())).thenReturn(Optional.of(instance)); // when(workflowInstanceRepository.save(any(WorkflowInstance.class))).thenReturn(instance); // // WorkflowInstanceDTO result = workflowInstanceService.resumeInstance(1L); // // assertNotNull(result); -// assertEquals(WorkflowStatusEnum.RUNNING, result.getStatus()); +// assertEquals(WorkflowInstanceStatusEnum.RUNNING, result.getStatus()); // verify(workflowInstanceRepository).findById(1L); // verify(workflowInstanceRepository).save(any(WorkflowInstance.class)); // } // // @Test // void terminateInstance_Success() { -// instance.setStatus(WorkflowStatusEnum.RUNNING); +// instance.setStatus(WorkflowInstanceStatusEnum.RUNNING); // when(workflowInstanceRepository.findById(anyLong())).thenReturn(Optional.of(instance)); // when(workflowInstanceRepository.save(any(WorkflowInstance.class))).thenReturn(instance); // // WorkflowInstanceDTO result = workflowInstanceService.terminateInstance(1L, "Test reason"); // // assertNotNull(result); -// assertEquals(WorkflowStatusEnum.TERMINATED, result.getStatus()); +// assertEquals(WorkflowInstanceStatusEnum.TERMINATED, result.getStatus()); // assertEquals("Test reason", result.getError()); // assertNotNull(result.getEndTime()); // verify(workflowInstanceRepository).findById(1L); @@ -177,7 +178,7 @@ // // @Test // void terminateInstance_AlreadyTerminated_ThrowsException() { -// instance.setStatus(WorkflowStatusEnum.TERMINATED); +// instance.setStatus(WorkflowInstanceStatusEnum.TERMINATED); // when(workflowInstanceRepository.findById(anyLong())).thenReturn(Optional.of(instance)); // // BusinessException exception = assertThrows(BusinessException.class,