# 审批流程设计
📆 2021-12-14 12:50
# 表设计
workflow 流程
字段名 | 注释 |
---|---|
workflow_id | PK |
name | 流程名 |
workflow_detail 流程详情
字段名 | 注释 |
---|---|
workflow_detail_id | PK |
workflow_id | |
name | 节点名称 |
serial_number | 流程序号 |
post_id | 处理人ID/部门ID |
workflow_order 审批单
字段名 | 注释 |
---|---|
workflow_order_id | PK |
workflow_id | |
create_user_id | 创建人 |
status | 0 待审批 1 审批中 2 已结束 |
create_time | 创建时间 |
workflow_record 审批记录
字段名 | 注释 |
---|---|
workflow_record_id | PK |
workflow_id | |
workflow_order_id | |
serial_number | 流程序列号 |
assign_user_id | 指派的处理人 |
handle_status | 处理状态 0 未处理 1 同意 2 驳回 |
handle_remark | 处理备注 |
handle_time | 处理时间 |
create_time |
# 思路
workflow 跟 workflow_detail 是流程定义,一个 workflow 对应多个 workflow_detail,定义该流程总共有多少步(记录数)、先后顺序(serial_number)、每一步该由谁来处理(post_id)。
可以把 workflow 跟 workflow_detail 看成配置文件。
定义好 workflow 之后,就可以发起 workflow 对应的审批单了。
workflow_order 可以自行扩展,表示审批单主体。
workflow_record 就是审批单的审批记录,当一个审批单创建好后,立马创建一条审批记录。
workflow_record |
---|
审批记录1 |
申请通过后,查询 workflow_detail 中是否有下一个节点(serial_number),如果有,创建第二条记录
workflow_record |
---|
审批记录1 |
审批记录2 |
当 workflow_detail 中不存在下一个节点(serial_number)时,审批完成。