目录
前言
做项目时老板觉得使用工作流引擎太重了,不让用。于是单从代码角度出发和通过设计数据库来实现项目中的审核操作。此设计当然不如现有的flowable等工作流引擎好用,且无流程图展示,但贵在是另一种审核思路。本篇文章仅为记录并没细写,如果感兴趣可留言讨论。
需求:
在这里举一个实例,来提供审核思路。在该需求中,主表是资产表,所有审核都是依附于此表。在新增资产,修改资产,删除资产时需要有审核操作。
数据表设计思路
1、主表
asset表,我们对这张表的数据进行新增修改删除时,需要审核操作
2、apply表
apply表:审批流表,每走一次审核流时需要往该表插入一条数据,代表本次审批(新增、修改、删除)
id | bigint | 64 | 主键 |
model_id | bigint | 64 | 审批模型ID |
model_dept_id | bigint | 64 | 模板所属部门id |
asset_id | bigint | 20 | 主表id |
scrap_reason | varchar | 500 | 资产报废原因 |
scrap_files | text | 0 | 资产报废文件 |
update_reason | varchar | 500 | 资产变更原因 |
update_files | text | 0 | 资产变更附件 |
asset_type | int | 4 | 资产类型 1:地块;2:房屋;3:房间;4:其他 |
type | int | 4 | 审核类型 1:新增;2:修改;3:作废 |
audit_opinion | varchar | 255 | 审核意见 |
files | text | 0 | 附件 |
task_user_id | bigint | 64 | 审核人标识 |
task_user | varchar | 50 | 审核人名称 |
audit_date | datetime | 0 | 审核时间 |
apply_time | datetime | 0 | 流程申请时间 |
create_user | bigint | 64 | 创建人 |
create_user_name | varchar | 50 | 创建人名称 |
create_dept | bigint | 64 | 创建部门 |
create_time | datetime | 0 | 创建时间 |
update_user | bigint | 64 | 更新人 |
update_time | datetime | 0 | 更新时间 |
status | int | 4 | 审批单状态:1: 编辑中;2:待审核;3:审核通过;4:不同意 |
is_deleted | int | 4 | 是否已删除 |
room_infos | text | 0 | 新增户信息 |
history_id | bigint | 20 | 历史表id |
title | varchar | 500 | 代办标题 |
now_audit_user | bigint | 20 | 当前审核人 |
3、audit_model模板表
当前项目里存在几种审批流,该表就有几条数据
id | bigint | 64 | 主键 |
model_id | bigint | 64 | 模版ID |
model_name | varchar | 255 | 模版名称 |
level | tinyint | 2 | 审批顺序 |
audit_type | tinyint | 2 | 审批类型:1 审核人、2审核角色 |
audit_resource | bigint | 64 | 根据类型:该值可能是人员ID或角色ID |
sys_dept | bigint | 64 | 所属组织ID |
remark | varchar | 255 | 备注 |
create_user | bigint | 20 | 创建人 |
create_dept | bigint | 20 | 创建部门 |
create_time | datetime | 0 | 创建时间 |
update_user | bigint | 64 | 更新人 |
update_time | datetime | 0 | 更新时间 |
status | int | 4 | 业务状态 |
is_deleted | int | 4 | 是否已删除 |
type | int | 4 | 模板类型:1新增2修改3作废 |
4、apply_detail表
审批步骤表,对应audit_model模板表,一条审批模板可能有一到多个审批步骤
id | bigint | 64 | 主键 |
apply_id | bigint | 64 | 审批单ID |
model_id | bigint | 20 | 审批模型ID |
type | int | 4 | 审核类型 1:新增;2:修改;3:作废 |
click_type | int | 4 | 点击事件类型 0:拒绝 1:同意 |
audit_opinion | varchar | 255 | 审核意见 |
files | longtext | 0 | 附件 |
task_user_id | bigint | 64 | 审核人标识 |
task_user | varchar | 255 | 审核人名称 |
task_level | int | 4 | 审核顺序 |
current_step | int | 4 | 当前步骤 |
audit_date | datetime | 0 | 审核时间 |
create_user | bigint | 64 | 创建人 |
create_dept | bigint | 64 | 创建部门 |
create_time | datetime | 0 | 创建时间 |
update_user | bigint | 64 | 更新人 |
update_time | datetime | 0 | 更新时间 |
status | int | 4 | 审批单状态 |
is_deleted | int | 4 | 是否已删除 |
5、拓展,抄送表
审核状态:
package org.springblade.asset.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
/**
* 资产审批状态
*/
public enum AuditStatus {
/**
* 编辑中
*/
编辑中(1),
/**
* 待审核
*/
待审核(2),
/**
* 审核通过
*/
审核通过(3),
/**
* 审核不通过
*/
审核不通过(4);
final Integer c;
}