Files
fad_oa/sql/oa_approval.sql
2026-06-16 15:37:35 +08:00

70 lines
3.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 通用审批框架(轻量自建)
-- 1. oa_approval_config 业务-审批人配置(可改)
-- 2. oa_approval_instance 审批单实例(一次提交一条)
-- 3. oa_approval_record 审批操作流水(一人一条)
-- ============================================================
DROP TABLE IF EXISTS oa_approval_record;
DROP TABLE IF EXISTS oa_approval_instance;
DROP TABLE IF EXISTS oa_approval_config;
CREATE TABLE oa_approval_config (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
business_type VARCHAR(64) NOT NULL COMMENT '业务类型 key如 purchase_req/contract',
business_name VARCHAR(128) NOT NULL COMMENT '业务名称(展示用)',
approver_ids VARCHAR(512) NOT NULL COMMENT '审批人 sys_user.user_id 列表,逗号分隔',
sign_type TINYINT NOT NULL DEFAULT 1 COMMENT '1或签 2会签',
enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用0停用 1启用',
remark VARCHAR(255) DEFAULT NULL COMMENT '备注',
create_by VARCHAR(64) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_by VARCHAR(64) DEFAULT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
del_flag TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_biz_type (business_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='业务审批配置';
CREATE TABLE oa_approval_instance (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
business_type VARCHAR(64) NOT NULL COMMENT '业务类型 key',
business_id BIGINT NOT NULL COMMENT '业务表主键',
business_title VARCHAR(255) DEFAULT NULL COMMENT '业务标题(冗余展示)',
apply_user_id BIGINT NOT NULL COMMENT '申请人 user_id',
apply_user_name VARCHAR(64) DEFAULT NULL,
apply_time DATETIME NOT NULL,
approver_ids VARCHAR(512) NOT NULL COMMENT '快照:提交时的审批人',
sign_type TINYINT NOT NULL COMMENT '快照1或签 2会签',
status TINYINT NOT NULL DEFAULT 0 COMMENT '0待审 1通过 2驳回 3撤回',
finish_time DATETIME DEFAULT NULL,
remark VARCHAR(255) DEFAULT NULL,
create_by VARCHAR(64) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_by VARCHAR(64) DEFAULT NULL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
del_flag TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id),
KEY idx_biz (business_type, business_id),
KEY idx_status (status),
KEY idx_apply_user (apply_user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批单实例';
CREATE TABLE oa_approval_record (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
instance_id BIGINT NOT NULL COMMENT '审批单 id',
approver_id BIGINT NOT NULL COMMENT '审批人 user_id',
approver_name VARCHAR(64) DEFAULT NULL,
action TINYINT NOT NULL COMMENT '1通过 2驳回',
comment VARCHAR(512) DEFAULT NULL,
op_time DATETIME NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_inst (instance_id),
KEY idx_approver (approver_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批操作流水';
-- 采购需求 默认配置(先用 admin=1 占位,部署后改)
INSERT INTO oa_approval_config (business_type, business_name, approver_ids, sign_type, enabled, remark)
VALUES ('purchase_req', '采购需求', '1', 1, 1, '默认或签,请在「审批配置」修改审批人');