-- -------------------------------------------------------------------------------------- -- 系统基础表 -- -------------------------------------------------------------------------------------- -- 租户表 CREATE TABLE sys_tenant ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', code VARCHAR(50) NOT NULL COMMENT '租户编码', name VARCHAR(100) NOT NULL COMMENT '租户名称', address VARCHAR(255) NULL COMMENT '租户地址', contact_name VARCHAR(50) NULL COMMENT '联系人姓名', contact_phone VARCHAR(20) NULL COMMENT '联系人电话', email VARCHAR(100) NULL COMMENT '联系人邮箱', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', CONSTRAINT UK_tenant_code UNIQUE (code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表'; -- 部门表 CREATE TABLE sys_department ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', code VARCHAR(50) NOT NULL COMMENT '部门编码', name VARCHAR(100) NOT NULL COMMENT '部门名称', description VARCHAR(255) NULL COMMENT '部门描述', leader_id BIGINT NULL COMMENT '部门负责人ID', leader_name VARCHAR(50) NULL COMMENT '部门负责人姓名', parent_id BIGINT NULL COMMENT '父部门ID', sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', CONSTRAINT UK_department_code UNIQUE (code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表'; -- 用户表 CREATE TABLE sys_user ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', username VARCHAR(50) NOT NULL COMMENT '用户名', password VARCHAR(255) NOT NULL COMMENT '密码', nickname VARCHAR(50) NULL COMMENT '昵称', email VARCHAR(100) NULL COMMENT '邮箱', phone VARCHAR(20) NULL COMMENT '手机号', department_id BIGINT NULL COMMENT '所属部门ID', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', CONSTRAINT UK_user_username UNIQUE (username), CONSTRAINT FK_user_department FOREIGN KEY (department_id) REFERENCES sys_department(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表'; -- 系统参数表 CREATE TABLE sys_param ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', code VARCHAR(100) NOT NULL COMMENT '参数编码', name VARCHAR(100) NOT NULL COMMENT '参数名称', value TEXT COMMENT '参数值', type VARCHAR(50) NOT NULL COMMENT '参数类型', description VARCHAR(255) NULL COMMENT '参数描述', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', CONSTRAINT UK_sys_param_code UNIQUE (code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统参数表'; -- -------------------------------------------------------------------------------------- -- 权限管理相关表 -- -------------------------------------------------------------------------------------- -- 菜单表 CREATE TABLE sys_menu ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', name VARCHAR(100) NOT NULL COMMENT '菜单名称', path VARCHAR(200) NULL COMMENT '路由路径', component VARCHAR(255) NULL COMMENT '组件路径', icon VARCHAR(100) NULL COMMENT '菜单图标', permission VARCHAR(100) NULL COMMENT '权限标识', type TINYINT NOT NULL COMMENT '菜单类型(1:目录 2:菜单 3:按钮)', parent_id BIGINT NULL COMMENT '父菜单ID', sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序', hidden BIT NOT NULL DEFAULT 0 COMMENT '是否隐藏(0:显示,1:隐藏)', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', INDEX IDX_parent_id (parent_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表'; -- 角色表 CREATE TABLE sys_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', code VARCHAR(100) NOT NULL COMMENT '角色编码', name VARCHAR(100) NOT NULL COMMENT '角色名称', type TINYINT NOT NULL DEFAULT 2 COMMENT '角色类型(1:系统角色,2:自定义角色)', description VARCHAR(255) NULL COMMENT '角色描述', sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序', CONSTRAINT UK_role_code UNIQUE (code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表'; -- 角色标签表 CREATE TABLE sys_role_tag ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', name VARCHAR(50) NOT NULL COMMENT '标签名称', color VARCHAR(20) NULL COMMENT '标签颜色' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色标签表'; -- 角色标签关联表 CREATE TABLE sys_role_tag_relation ( role_id BIGINT NOT NULL COMMENT '角色ID', tag_id BIGINT NOT NULL COMMENT '标签ID', PRIMARY KEY (role_id, tag_id), CONSTRAINT FK_role_tag_role FOREIGN KEY (role_id) REFERENCES sys_role (id), CONSTRAINT FK_role_tag_tag FOREIGN KEY (tag_id) REFERENCES sys_role_tag (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色标签关联表'; -- 用户角色关联表 CREATE TABLE sys_user_role ( user_id BIGINT NOT NULL COMMENT '用户ID', role_id BIGINT NOT NULL COMMENT '角色ID', CONSTRAINT UK_user_role UNIQUE (user_id, role_id), CONSTRAINT FK_user_role_user FOREIGN KEY (user_id) REFERENCES sys_user (id), CONSTRAINT FK_user_role_role FOREIGN KEY (role_id) REFERENCES sys_role (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表'; -- 角色菜单关联表 CREATE TABLE sys_role_menu ( role_id BIGINT NOT NULL COMMENT '角色ID', menu_id BIGINT NOT NULL COMMENT '菜单ID', PRIMARY KEY (role_id, menu_id), CONSTRAINT FK_role_menu_role FOREIGN KEY (role_id) REFERENCES sys_role (id), CONSTRAINT FK_role_menu_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色菜单关联表'; -- 权限模板表 CREATE TABLE sys_permission_template ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', code VARCHAR(100) NOT NULL COMMENT '模板编码', name VARCHAR(100) NOT NULL COMMENT '模板名称', type TINYINT NOT NULL DEFAULT 1 COMMENT '模板类型(1:系统模板,2:自定义模板)', description VARCHAR(255) NULL COMMENT '模板描述', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', CONSTRAINT UK_template_code UNIQUE (code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限模板表'; -- 模板菜单关联表 CREATE TABLE sys_template_menu ( template_id BIGINT NOT NULL COMMENT '模板ID', menu_id BIGINT NOT NULL COMMENT '菜单ID', PRIMARY KEY (template_id, menu_id), CONSTRAINT FK_template_menu_template FOREIGN KEY (template_id) REFERENCES sys_permission_template (id), CONSTRAINT FK_template_menu_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='模板菜单关联表'; -- 权限表 CREATE TABLE sys_permission ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', menu_id BIGINT NOT NULL COMMENT '关联的菜单ID', code VARCHAR(100) NOT NULL COMMENT '权限编码', name VARCHAR(100) NOT NULL COMMENT '权限名称', type VARCHAR(50) NOT NULL DEFAULT 'FUNCTION' COMMENT '权限类型(MENU:菜单,FUNCTION:功能,API:接口)', sort INT NULL DEFAULT 0 COMMENT '排序', CONSTRAINT UK_permission_code UNIQUE (code), CONSTRAINT FK_permission_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id), INDEX IDX_menu_id (menu_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统权限表'; -- -------------------------------------------------------------------------------------- -- 外部系统集成相关表 -- -------------------------------------------------------------------------------------- -- 外部系统表 CREATE TABLE sys_external_system ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', name VARCHAR(100) NOT NULL COMMENT '系统名称', type VARCHAR(50) NOT NULL COMMENT '系统类型(JENKINS/GIT/ZENTAO等)', url VARCHAR(255) NOT NULL COMMENT '系统访问地址', remark TEXT NULL COMMENT '备注说明', sort INT NULL DEFAULT 0 COMMENT '排序', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', auth_type VARCHAR(50) NOT NULL COMMENT '认证方式(BASIC/TOKEN/OAUTH等)', username VARCHAR(100) NULL COMMENT '用户名', password VARCHAR(255) NULL COMMENT '密码', token VARCHAR(255) NULL COMMENT '访问令牌', sync_status VARCHAR(50) NULL COMMENT '同步状态(SUCCESS/FAILED/RUNNING)', last_sync_time DATETIME(6) NULL COMMENT '最后同步时间', last_connect_time DATETIME(6) NULL COMMENT '最近连接成功时间', config JSON NULL COMMENT '系统特有配置', CONSTRAINT UK_external_system_name UNIQUE (name), CONSTRAINT UK_external_system_type_url UNIQUE (type, url) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='外部系统表'; -- 代码仓库组表 CREATE TABLE deploy_repo_group ( -- 基础字段 id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 name VARCHAR(100) NOT NULL COMMENT '仓库组名', description VARCHAR(500) NULL COMMENT '仓库组描述', parent_id BIGINT NULL COMMENT '父级仓库组ID', full_name VARCHAR(255) NULL COMMENT '完整名称(包含层级关系)', full_path VARCHAR(255) NULL COMMENT '完整路径', path VARCHAR(200) NOT NULL COMMENT '仓库组路径', external_system_id BIGINT NOT NULL COMMENT '外部系统ID', avatar_url VARCHAR(255) NULL COMMENT '头像URL', web_url VARCHAR(255) NULL COMMENT '网页URL', visibility ENUM('private', 'internal', 'public') NOT NULL DEFAULT 'private' COMMENT '可见性:private-私有,internal-内部,public-公开', sort INT DEFAULT 0 COMMENT '排序号', repo_group_id BIGINT NOT NULL COMMENT 'Git系统中的组ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码仓库组表'; -- 代码仓库项目表 CREATE TABLE deploy_repo_project ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', name VARCHAR(255) NOT NULL COMMENT '项目名称', path VARCHAR(255) NOT NULL COMMENT '项目路径', description TEXT NULL COMMENT '项目描述', visibility VARCHAR(50) NULL COMMENT '可见性', default_branch VARCHAR(100) NULL COMMENT '默认分支', web_url VARCHAR(500) NULL COMMENT 'Web URL', ssh_url VARCHAR(500) NULL COMMENT 'SSH URL', http_url VARCHAR(500) NULL COMMENT 'HTTP URL', last_activity_at DATETIME(6) NULL COMMENT '最后活动时间', name_with_namespace VARCHAR(500) NULL COMMENT '带命名空间的名称', path_with_namespace VARCHAR(500) NULL COMMENT '带命名空间的路径', created_at DATETIME(6) NULL COMMENT '创建时间', external_system_id BIGINT NOT NULL COMMENT '外部系统ID', repo_group_id BIGINT NOT NULL COMMENT '项目ID', repo_project_id BIGINT NOT NULL COMMENT '项目ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', CONSTRAINT FK_repo_project_external_system FOREIGN KEY (external_system_id) REFERENCES sys_external_system (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Git仓库项目表'; -- 代码仓库分支表 CREATE TABLE deploy_repo_branch ( -- 基础字段 id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 name VARCHAR(100) NOT NULL COMMENT '分支名称', is_default_branch BIT DEFAULT 0 COMMENT '是否为默认分支:0-否,1-是', can_push BIT DEFAULT 1 COMMENT '是否可推送:0-否,1-是', developers_can_push BIT DEFAULT 1 COMMENT '开发者是否可推送:0-否,1-是', developers_can_merge BIT DEFAULT 1 COMMENT '开发者是否可合并:0-否,1-是', last_commit_id VARCHAR(64) NULL COMMENT '最新提交ID', commit_message TEXT NULL COMMENT '最新提交信息', commit_author VARCHAR(100) NULL COMMENT '最新提交作者', commit_date DATETIME(6) NULL COMMENT '最新提交时间', last_update_time DATETIME(6) NULL COMMENT '分支最后更新时间', last_commit_time DATETIME(6) NULL COMMENT '分支最后提交时间', web_url VARCHAR(1000) NULL COMMENT '网页URL', project_id BIGINT NOT NULL COMMENT '所属项目ID', external_system_id BIGINT NOT NULL COMMENT '外部系统ID', repo_project_id BIGINT NOT NULL COMMENT 'GitLab的真实project_id', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除' ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='代码仓库分支表'; -- -------------------------------------------------------------------------------------- -- 工作流相关表 -- -------------------------------------------------------------------------------------- -- 工作流分类表 CREATE TABLE workflow_category ( -- 主键 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', -- 基础信息 name VARCHAR(100) NOT NULL COMMENT '分类名称', code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一,如SCRIPT_EXECUTION)', description VARCHAR(500) NULL COMMENT '分类描述', icon VARCHAR(50) NULL COMMENT '图标', sort INT NOT NULL DEFAULT 0 COMMENT '排序', -- 支持的触发方式(JSON数组,如["MANUAL","SCHEDULED"]) supported_triggers JSON NULL COMMENT '支持的触发方式列表', -- 状态 enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用', -- 审计字段 create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', -- 约束和索引 UNIQUE KEY uk_code (code), INDEX idx_enabled (enabled), INDEX idx_deleted (deleted), INDEX idx_sort (sort) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流分类表'; CREATE TABLE form_category ( -- 主键 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', -- 基础信息 name VARCHAR(100) NOT NULL COMMENT '分类名称', code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一)', description VARCHAR(500) NULL COMMENT '分类描述', icon VARCHAR(50) NULL COMMENT '图标', sort INT NOT NULL DEFAULT 0 COMMENT '排序', -- 状态 enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用', -- 审计字段 create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', -- 约束和索引 UNIQUE KEY uk_code (code), INDEX idx_enabled (enabled), INDEX idx_deleted (deleted), INDEX idx_sort (sort) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '表单分类表'; -- 表单定义表 CREATE TABLE form_definition ( -- 主键 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', -- 基础信息 name VARCHAR(255) NOT NULL COMMENT '表单名称', `key` VARCHAR(255) NOT NULL COMMENT '表单标识(业务唯一)', form_version INT NOT NULL DEFAULT 1 COMMENT '表单版本号', category_id BIGINT NULL COMMENT '表单分类ID(外键关联form_category)', description TEXT NULL COMMENT '表单描述', -- 表单配置 `schema` JSON NOT NULL COMMENT '表单Schema(前端设计器导出的JSON结构)', tags JSON NULL COMMENT '标签(用于分类和搜索)', -- 表单属性 status VARCHAR(50) NOT NULL DEFAULT 'DRAFT' COMMENT '状态(DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)', is_template BIT NOT NULL DEFAULT 0 COMMENT '是否为模板', -- 审计字段 create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', -- 约束和索引 UNIQUE KEY uk_key_version (`key`, form_version), INDEX idx_category_id (category_id), INDEX idx_status (status), INDEX idx_is_template (is_template), INDEX idx_deleted (deleted), -- 外键约束 CONSTRAINT fk_form_definition_category FOREIGN KEY (category_id) REFERENCES form_category(id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '表单定义表'; -- 工作流定义表 CREATE TABLE workflow_definition ( -- 主键 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', -- 基础信息 name VARCHAR(255) NOT NULL COMMENT '流程名称', `key` VARCHAR(255) NOT NULL COMMENT '流程标识', category_id BIGINT NULL COMMENT '流程分类ID(外键关联workflow_category)', form_definition_id BIGINT NULL COMMENT '启动表单ID(外键关联form_definition)', process_definition_id VARCHAR(100) NULL COMMENT '工作流定义ID', flow_version INT NOT NULL COMMENT '流程版本', description TEXT COMMENT '流程描述', -- 流程配置 bpmn_xml TEXT COMMENT 'BPMN XML内容', graph JSON COMMENT '流程图数据,包含节点和连线的位置、样式等信息', -- 流程属性 status VARCHAR(50) NOT NULL COMMENT '流程状态(DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)', -- 审计字段 create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', -- 约束和索引 UNIQUE KEY uk_key_version (`key`, flow_version), INDEX idx_category_id (category_id), INDEX idx_form_definition_id (form_definition_id), INDEX idx_status (status), INDEX idx_deleted (deleted), CONSTRAINT fk_workflow_definition_category FOREIGN KEY (category_id) REFERENCES workflow_category(id), CONSTRAINT fk_workflow_definition_form FOREIGN KEY (form_definition_id) REFERENCES form_definition(id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='工作流定义表'; -- 创建工作流节点定义表 CREATE TABLE workflow_node_definition ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', node_type VARCHAR(50) NOT NULL COMMENT '节点类型', node_code VARCHAR(50) NOT NULL COMMENT '节点编码', node_name VARCHAR(100) NOT NULL COMMENT '节点名称', description VARCHAR(500) COMMENT '节点描述', category VARCHAR(50) COMMENT '节点分类', ui_variables JSON NOT NULL COMMENT '节点UI', panel_variables_schema JSON NOT NULL COMMENT '节点属性', local_variables_schema JSON NOT NULL COMMENT '节点环境变量', form_variables_schema JSON COMMENT '节点表单', enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用', create_time DATETIME NOT NULL COMMENT '创建时间', create_by VARCHAR(50) NOT NULL COMMENT '创建人', update_time DATETIME NOT NULL COMMENT '更新时间', update_by VARCHAR(50) NOT NULL COMMENT '更新人', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除', PRIMARY KEY (id), UNIQUE KEY uk_node_type (node_type) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='工作流节点定义表'; -- 表单数据表 CREATE TABLE form_data ( -- 主键 id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', -- 关联表单定义 form_definition_id BIGINT NOT NULL COMMENT '表单定义ID', form_key VARCHAR(255) NOT NULL COMMENT '表单标识(冗余存储,避免JOIN)', form_version INT NOT NULL COMMENT '表单版本(冗余存储,用于历史追溯)', category_id BIGINT NULL COMMENT '表单分类ID(冗余存储,便于统计和查询)', -- 业务关联(松耦合) business_key VARCHAR(255) NULL COMMENT '业务标识(如工作流实例ID、订单号等)', business_type VARCHAR(50) NULL COMMENT '业务类型(WORKFLOW-工作流、ORDER-订单、STANDALONE-独立表单)', -- 表单数据 data JSON NOT NULL COMMENT '表单填写数据(用户提交的实际数据)', schema_snapshot JSON NOT NULL COMMENT '表单Schema快照(用于历史追溯,确保数据可还原)', -- 提交信息 submitter VARCHAR(255) NULL COMMENT '提交人', submit_time DATETIME(6) NULL COMMENT '提交时间', -- 状态 status VARCHAR(50) NOT NULL DEFAULT 'SUBMITTED' COMMENT '状态(DRAFT-草稿、SUBMITTED-已提交、COMPLETED-已完成、REJECTED-已拒绝)', -- 审计字段 create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', -- 索引 INDEX idx_form_definition_id (form_definition_id), INDEX idx_form_key (form_key), INDEX idx_category_id (category_id), INDEX idx_business_key (business_key), INDEX idx_business_type (business_type), INDEX idx_submitter (submitter), INDEX idx_status (status), INDEX idx_submit_time (submit_time), INDEX idx_deleted (deleted) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '表单数据表'; -- 工作流实例表 CREATE TABLE workflow_instance ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', process_instance_id VARCHAR(64) NOT NULL COMMENT '流程实例ID', process_definition_id VARCHAR(64) NOT NULL COMMENT '流程定义ID', workflow_definition_id BIGINT NOT NULL COMMENT '工作流定义ID', business_key VARCHAR(64) NULL COMMENT '业务标识', form_data_id BIGINT NULL COMMENT '启动表单数据ID(外键关联form_data)', status VARCHAR(100) NOT NULL COMMENT '实例状态', variables TEXT NULL COMMENT '流程变量(JSON)', graph_snapshot JSON NULL COMMENT '流程图数据快照(启动时保存,用于画布还原)', start_time DATETIME(6) NULL COMMENT '开始时间', end_time DATETIME(6) NULL COMMENT '结束时间', INDEX idx_form_data_id (form_data_id), CONSTRAINT fk_workflow_instance_form_data FOREIGN KEY (form_data_id) REFERENCES form_data(id) -- CONSTRAINT FK_workflow_instance_definition FOREIGN KEY (process_definition_id) REFERENCES workflow_definition(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流实例表'; -- 工作流节点实例表 CREATE TABLE workflow_node_instance ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', workflow_definition_id BIGINT NOT NULL COMMENT '工作流定义ID', workflow_instance_id BIGINT NOT NULL COMMENT '工作流实例ID', process_instance_id VARCHAR(64) NOT NULL COMMENT '流程实例ID', execution_id VARCHAR(100) NOT NULL COMMENT '执行实例ID', node_id VARCHAR(64) NOT NULL COMMENT '节点ID', node_name VARCHAR(100) NOT NULL COMMENT '节点名称', node_type VARCHAR(32) NOT NULL COMMENT '节点类型', status VARCHAR(32) NOT NULL COMMENT '节点状态', start_time DATETIME(6) NULL COMMENT '开始时间', end_time DATETIME(6) NULL COMMENT '结束时间', variables TEXT NULL COMMENT '节点变量(JSON)', error_message TEXT NULL COMMENT '错误信息', CONSTRAINT FK_workflow_node_instance_instance FOREIGN KEY (workflow_instance_id) REFERENCES workflow_instance (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流节点实例表'; -- 工作流日志表 CREATE TABLE workflow_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(255) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(255) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', workflow_instance_id BIGINT NULL COMMENT '工作流实例ID', node_instance_id BIGINT NULL COMMENT '节点实例ID', log_type VARCHAR(32) NOT NULL COMMENT '日志类型', log_level VARCHAR(32) NOT NULL COMMENT '日志级别', content TEXT NOT NULL COMMENT '日志内容', CONSTRAINT FK_workflow_log_instance FOREIGN KEY (workflow_instance_id) REFERENCES workflow_instance (id), CONSTRAINT FK_workflow_log_node_instance FOREIGN KEY (node_instance_id) REFERENCES workflow_node_instance (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流日志表'; -- -------------------------------------------------------------------------------------- -- 项目管理相关表 -- -------------------------------------------------------------------------------------- -- 应用分类表 CREATE TABLE deploy_application_category ( -- 基础字段 id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除', -- 业务字段 code VARCHAR(50) NOT NULL COMMENT '分类编码', name VARCHAR(100) NOT NULL COMMENT '分类名称', description VARCHAR(500) NULL COMMENT '分类描述', icon VARCHAR(50) NULL COMMENT '图标', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', sort INT NOT NULL DEFAULT 0 COMMENT '排序号', UNIQUE INDEX uk_code (code) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='应用分类表'; -- 应用表 CREATE TABLE deploy_application ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 app_code VARCHAR(50) NOT NULL COMMENT '应用编码', app_name VARCHAR(100) NOT NULL COMMENT '应用名称', app_desc VARCHAR(255) NULL COMMENT '应用描述', language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS', repo_project_id BIGINT NULL COMMENT '代码仓库项目ID', application_category_id BIGINT NULL COMMENT '所属应用分类ID', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', sort INT NOT NULL DEFAULT 0 COMMENT '排序号', -- 基础字段 create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除', -- 索引 INDEX idx_application_category_id (application_category_id) COMMENT '应用分类ID索引', UNIQUE INDEX uk_app_code (application_category_id, app_code) COMMENT '分类下应用编码唯一', -- 外键约束 CONSTRAINT fk_application_category FOREIGN KEY (application_category_id) REFERENCES deploy_application_category (id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='应用表'; -- 环境表 CREATE TABLE deploy_environment ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 tenant_code VARCHAR(50) DEFAULT NULL COMMENT '租户编码', env_code VARCHAR(50) NOT NULL COMMENT '环境编码', env_name VARCHAR(100) NOT NULL COMMENT '环境名称', env_desc VARCHAR(255) NULL COMMENT '环境描述', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)', sort INT NOT NULL DEFAULT 0 COMMENT '排序号', -- 基础字段 create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', -- 索引 UNIQUE INDEX uk_env_code (env_code) COMMENT '环境编码唯一' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='环境表'; -- 团队表 CREATE TABLE deploy_team ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', team_code VARCHAR(50) NOT NULL COMMENT '团队编码', team_name VARCHAR(100) NOT NULL COMMENT '团队名称', description VARCHAR(500) NULL COMMENT '团队描述', owner_id BIGINT NULL COMMENT '团队负责人用户ID', owner_name VARCHAR(50) NULL COMMENT '团队负责人姓名(冗余)', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用', sort INT NOT NULL DEFAULT 0 COMMENT '排序号', UNIQUE INDEX uk_team_code (team_code), INDEX idx_owner (owner_id), CONSTRAINT fk_team_owner FOREIGN KEY (owner_id) REFERENCES sys_user(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队表'; -- 团队成员表 CREATE TABLE deploy_team_member ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', team_id BIGINT NOT NULL COMMENT '团队ID', user_id BIGINT NOT NULL COMMENT '用户ID', user_name VARCHAR(50) NULL COMMENT '用户名(冗余)', role_in_team VARCHAR(50) NULL COMMENT '团队角色(如:开发、测试、运维、负责人)', join_time DATETIME(6) NULL COMMENT '加入时间', UNIQUE INDEX uk_team_user (team_id, user_id), INDEX idx_user (user_id), CONSTRAINT fk_team_member_team FOREIGN KEY (team_id) REFERENCES deploy_team(id), CONSTRAINT fk_team_member_user FOREIGN KEY (user_id) REFERENCES sys_user(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队成员表'; -- 团队应用关联表 CREATE TABLE deploy_team_application ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', team_id BIGINT NOT NULL COMMENT '团队ID', application_id BIGINT NOT NULL COMMENT '应用ID', UNIQUE INDEX uk_team_app (team_id, application_id), INDEX idx_application (application_id), CONSTRAINT fk_team_app_team FOREIGN KEY (team_id) REFERENCES deploy_team(id), CONSTRAINT fk_team_app_application FOREIGN KEY (application_id) REFERENCES deploy_application(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队应用关联表'; CREATE TABLE deploy_log ( -- 基础字段 id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', -- 业务字段 workflow_instance_id BIGINT NULL COMMENT '工作流实例ID', environment_id BIGINT NOT NULL COMMENT '环境ID', application_id BIGINT NOT NULL COMMENT '应用ID', deploy_version VARCHAR(100) NOT NULL COMMENT '部署版本号', form_variables TEXT NULL COMMENT '部署参数(JSON)', deploy_variables TEXT NULL COMMENT '部署参数(JSON)', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除' ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='部署日志表'; CREATE TABLE deploy_app_config ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', build_type VARCHAR(50) NOT NULL, build_variables TEXT NOT NULL, form_variables_schema TEXT NULL, language_type VARCHAR(50) NOT NULL, workflow_definition_id BIGINT NOT NULL, environment_id BIGINT NOT NULL, application_id BIGINT NOT NULL, enabled BIT NOT NULL, create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除' ); -- -------------------------------------------------------------------------------------- -- 通知渠道表 -- -------------------------------------------------------------------------------------- -- 通知渠道配置表 CREATE TABLE sys_notification_channel ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', name VARCHAR(100) NOT NULL COMMENT '渠道名称(如:研发部企业微信群)', channel_type VARCHAR(50) NOT NULL COMMENT '渠道类型(WEWORK, FEISHU, DINGTALK, SMS, EMAIL, SLACK)', config JSON NOT NULL COMMENT '渠道配置(JSON格式,不同渠道存储不同字段)', status VARCHAR(20) NOT NULL DEFAULT 'ENABLED' COMMENT '状态(ENABLED-启用, DISABLED-禁用)', description VARCHAR(500) NULL COMMENT '描述说明', INDEX idx_channel_type (channel_type), INDEX idx_status (status), INDEX idx_deleted (deleted) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知渠道配置表'; -- -------------------------------------------------------------------------------------- -- 定时任务管理表 -- -------------------------------------------------------------------------------------- -- 定时任务分类表 CREATE TABLE schedule_job_category ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', code VARCHAR(50) NOT NULL COMMENT '分类编码', name VARCHAR(100) NOT NULL COMMENT '分类名称', description VARCHAR(500) NULL COMMENT '描述', icon VARCHAR(50) NULL COMMENT '图标', color VARCHAR(20) NULL COMMENT '颜色', enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用', sort INT NOT NULL DEFAULT 0 COMMENT '排序号', UNIQUE INDEX uk_code (code, deleted), INDEX idx_enabled (enabled) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务分类表'; -- 定时任务表 CREATE TABLE schedule_job ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', job_name VARCHAR(100) NOT NULL COMMENT '任务名称', job_description VARCHAR(500) NULL COMMENT '任务描述', category_id BIGINT NOT NULL COMMENT '任务分类ID', -- 执行配置 bean_name VARCHAR(100) NOT NULL COMMENT 'Spring Bean名称', method_name VARCHAR(100) NOT NULL COMMENT '方法名称', form_definition_id BIGINT NULL COMMENT '参数表单ID', method_params TEXT NULL COMMENT '方法参数JSON', -- 调度配置 cron_expression VARCHAR(100) NOT NULL COMMENT 'Cron表达式', status VARCHAR(20) NOT NULL DEFAULT 'ENABLED' COMMENT '任务状态:ENABLED-启用、DISABLED-禁用、PAUSED-暂停', concurrent BIT NOT NULL DEFAULT 0 COMMENT '是否允许并发执行', -- 统计信息 last_execute_time DATETIME(6) NULL COMMENT '上次执行时间', next_execute_time DATETIME(6) NULL COMMENT '下次执行时间', execute_count INT NOT NULL DEFAULT 0 COMMENT '执行次数', success_count INT NOT NULL DEFAULT 0 COMMENT '成功次数', fail_count INT NOT NULL DEFAULT 0 COMMENT '失败次数', -- 高级配置 timeout_seconds INT NULL COMMENT '超时时间(秒)', retry_count INT NOT NULL DEFAULT 0 COMMENT '失败重试次数', alert_email VARCHAR(500) NULL COMMENT '告警邮箱(多个用逗号分隔)', UNIQUE INDEX uk_job_name (job_name, deleted), INDEX idx_category (category_id), INDEX idx_status (status), INDEX idx_next_execute_time (next_execute_time), CONSTRAINT fk_job_category FOREIGN KEY (category_id) REFERENCES schedule_job_category(id), CONSTRAINT fk_job_form FOREIGN KEY (form_definition_id) REFERENCES form_definition(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务表'; -- 定时任务执行日志表 CREATE TABLE schedule_job_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', create_by VARCHAR(100) NULL COMMENT '创建人', create_time DATETIME(6) NULL COMMENT '创建时间', update_by VARCHAR(100) NULL COMMENT '更新人', update_time DATETIME(6) NULL COMMENT '更新时间', version INT NOT NULL DEFAULT 1 COMMENT '版本号', deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除', job_id BIGINT NOT NULL COMMENT '任务ID', job_name VARCHAR(100) NOT NULL COMMENT '任务名称', -- 执行信息 bean_name VARCHAR(100) NOT NULL COMMENT '执行器Bean名称', method_name VARCHAR(100) NOT NULL COMMENT '执行方法名称', method_params TEXT NULL COMMENT '方法参数', -- 时间统计 execute_time DATETIME(6) NOT NULL COMMENT '开始执行时间', finish_time DATETIME(6) NULL COMMENT '完成时间', duration BIGINT NULL COMMENT '执行耗时(毫秒)', -- 状态信息 status VARCHAR(20) NOT NULL COMMENT '执行状态:SUCCESS-成功、FAIL-失败、TIMEOUT-超时', result_message TEXT NULL COMMENT '执行结果消息', exception_info TEXT NULL COMMENT '异常堆栈信息', -- 服务器信息 server_ip VARCHAR(50) NULL COMMENT '执行服务器IP', server_host VARCHAR(100) NULL COMMENT '执行服务器主机名', INDEX idx_job_id (job_id), INDEX idx_execute_time (execute_time), INDEX idx_status (status), CONSTRAINT fk_log_job FOREIGN KEY (job_id) REFERENCES schedule_job(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务执行日志表';