OA 流程引擎设计与权限模型实践
流程引擎核心设计
流程引擎是OA系统的核心,负责驱动业务单据按预设规则流转。设计时需考虑:节点类型、流转条件、会签/或签、回退/转办等场景。
数据库设计
流程定义表
CREATE TABLE wf_process (
id INT PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
version INT DEFAULT 1,
status TINYINT DEFAULT 1
);
流程节点表
CREATE TABLE wf_node (
id INT PRIMARY KEY AUTO_INCREMENT,
process_id INT NOT NULL,
node_code VARCHAR(50),
node_name VARCHAR(100),
node_type ENUM('start', 'task', 'gateway', 'end'),
approver_type ENUM('user', 'role', 'dept', 'script')
);
权限模型
采用 RBAC(基于角色的访问控制)模型:
- 用户(User)- 系统使用者
- 角色(Role)- 岗位职能
- 权限(Permission)- 操作许可
- 资源(Resource)- 功能菜单、按钮、数据范围
流程状态机
单据状态:草稿 → 审批中 → 已通过 → 已驳回 → 已撤销