From 411ceeafc0a33d3ef09f1121690940e4082ddfdb Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Tue, 12 Dec 2023 22:20:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.6.0=201.=20=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/sql/easy_retry_mysql.sql | 3 + .../persistence/mapper/WorkflowMapper.java | 19 ++++ .../mapper/WorkflowNodeMapper.java | 18 ++++ .../mapper/WorkflowTaskBatchMapper.java | 18 ++++ .../datasource/persistence/po/Workflow.java | 77 ++++++++++++++++ .../persistence/po/WorkflowNode.java | 91 +++++++++++++++++++ .../persistence/po/WorkflowTaskBatch.java | 81 +++++++++++++++++ .../resources/mysql/mapper/WorkflowMapper.xml | 19 ++++ .../mysql/mapper/WorkflowNodeMapper.xml | 22 +++++ .../mysql/mapper/WorkflowTaskBatchMapper.xml | 20 ++++ .../web/controller/WorkflowController.java | 56 ++++++++++++ .../web/model/request/WorkflowRequestVO.java | 65 +++++++++++++ .../server/web/service/WorkflowService.java | 13 +++ .../web/service/impl/WorkflowServiceImpl.java | 19 ++++ 14 files changed, 521 insertions(+) create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowMapper.java create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowNodeMapper.java create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowTaskBatchMapper.java create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/Workflow.java create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowNode.java create mode 100644 easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowTaskBatch.java create mode 100644 easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowMapper.xml create mode 100644 easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowNodeMapper.xml create mode 100644 easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowTaskBatchMapper.xml create mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/controller/WorkflowController.java create mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/model/request/WorkflowRequestVO.java create mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/WorkflowService.java create mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/WorkflowServiceImpl.java diff --git a/doc/sql/easy_retry_mysql.sql b/doc/sql/easy_retry_mysql.sql index 0fbbdfd2..b7e70ffb 100644 --- a/doc/sql/easy_retry_mysql.sql +++ b/doc/sql/easy_retry_mysql.sql @@ -446,7 +446,10 @@ CREATE TABLE `workflow` `namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id', `group_name` varchar(64) NOT NULL COMMENT '组名称', `workflow_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '工作流状态 0、关闭、1、开启', + `trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间', + `trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长', `execution_at` bigint(13) NOT NULL DEFAULT '0' COMMENT '任务执行时间', + `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒', `flow_info` JSON NOT NULL COMMENT '流程信息', `create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowMapper.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowMapper.java new file mode 100644 index 00000000..4d727ad0 --- /dev/null +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/mapper/WorkflowMapper.java @@ -0,0 +1,19 @@ +package com.aizuda.easy.retry.template.datasource.persistence.mapper; + +import com.aizuda.easy.retry.template.datasource.persistence.po.Workflow; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *
+ * 工作流 Mapper 接口 + *
+ * + * @author xiaowoniu + * @since 2023-12-12 + * @since : 2.6.0 + */ +@Mapper +public interface WorkflowMapper extends BaseMapper+ * 工作流节点 Mapper 接口 + *
+ * + * @author xiaowoniu + * @since 2023-12-12 + */ +@Mapper +public interface WorkflowNodeMapper extends BaseMapper+ * 工作流批次 Mapper 接口 + *
+ * + * @author xiaowoniu + * @since 2023-12-12 + */ +@Mapper +public interface WorkflowTaskBatchMapper extends BaseMapper+ * 工作流 + *
+ * + * @author : xiaowoniu + * @date : 2023-12-12 + * @since : 2.6.0 + */ +@Getter +@Setter +@TableName("workflow") +public class Workflow implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 命名空间id + */ + private String namespaceId; + + /** + * 组名称 + */ + private String groupName; + + /** + * 工作流状态 0、关闭、1、开启 + */ + private Byte workflowStatus; + + /** + * 任务执行时间 + */ + private Long executionAt; + + /** + * 流程信息 + */ + private String flowInfo; + + /** + * 创建时间 + */ + private LocalDateTime createDt; + + /** + * 修改时间 + */ + private LocalDateTime updateDt; + + /** + * 逻辑删除 1、删除 + */ + private Byte deleted; + + /** + * 扩展字段 + */ + private String extAttrs; +} diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowNode.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowNode.java new file mode 100644 index 00000000..581281de --- /dev/null +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowNode.java @@ -0,0 +1,91 @@ +package com.aizuda.easy.retry.template.datasource.persistence.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *+ * 工作流节点 + *
+ * + * @author xiaowoniu + * @since 2023-12-12 + */ +@Getter +@Setter +@TableName("workflow_node") +public class WorkflowNode implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 命名空间id + */ + private String namespaceId; + + /** + * 组名称 + */ + private String groupName; + + /** + * 任务信息id + */ + private Long jobId; + + /** + * 1、任务节点 2、条件节点 + */ + private Byte nodeType; + + /** + * 1、SpEl、2、Aviator 3、QL + */ + private Byte expressionType; + + /** + * 失败策略 1、跳过 2、阻塞 + */ + private Byte failStrategy; + + /** + * 工作流节点状态 0、关闭、1、开启 + */ + private Byte workflowNodeStatus; + + /** + * 节点表达式 + */ + private String nodeExpression; + + /** + * 创建时间 + */ + private LocalDateTime createDt; + + /** + * 修改时间 + */ + private LocalDateTime updateDt; + + /** + * 逻辑删除 1、删除 + */ + private Byte deleted; + + /** + * 扩展字段 + */ + private String extAttrs; +} diff --git a/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowTaskBatch.java b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowTaskBatch.java new file mode 100644 index 00000000..3c673f53 --- /dev/null +++ b/easy-retry-datasource/easy-retry-datasource-template/src/main/java/com/aizuda/easy/retry/template/datasource/persistence/po/WorkflowTaskBatch.java @@ -0,0 +1,81 @@ +package com.aizuda.easy.retry.template.datasource.persistence.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *+ * 工作流批次 + *
+ * + * @author xiaowoniu + * @since 2023-12-12 + */ +@Getter +@Setter +@TableName("workflow_task_batch") +public class WorkflowTaskBatch implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 命名空间id + */ + private String namespaceId; + + /** + * 组名称 + */ + private String groupName; + + /** + * 工作流任务id + */ + private Long workflowId; + + /** + * 任务批次状态 0、失败 1、成功 + */ + private Byte taskBatchStatus; + + /** + * 操作原因 + */ + private Byte operationReason; + + /** + * 任务执行时间 + */ + private Long executionAt; + + /** + * 创建时间 + */ + private LocalDateTime createDt; + + /** + * 修改时间 + */ + private LocalDateTime updateDt; + + /** + * 逻辑删除 1、删除 + */ + private Byte deleted; + + /** + * 扩展字段 + */ + private String extAttrs; +} diff --git a/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowMapper.xml b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowMapper.xml new file mode 100644 index 00000000..54ca9224 --- /dev/null +++ b/easy-retry-datasource/easy-retry-mysql-datasource/src/main/resources/mysql/mapper/WorkflowMapper.xml @@ -0,0 +1,19 @@ + + +