建立用户体系
先创建一个公司,公司下面有部门信息,部门下面有员工信息,所以需要有这几个表来组织用户信息
-
公司信息表sys_company
核心字段包括公司编号、公司名称、第三方公司编号(如果是外部系统同步过来的公司信息)比如
-
部门信息表sys_group
核心字段包括部门编号、部门名称、公司编号、父部门编号、第三方的部门编号(如果部门信息是第三方系统同步过来的)、部门级别。这里需要注意的是sys_company表中有一条公司信息就对应到sys_group表中的一条信息
即上图中第一条数据,部门编号47,对应的parentId是0,因为它是顶级(一级)公司,没有父公司了,所以parentId为0。如果该公司下有4个部门:销售部、开发部、行政部、财务部,对应的父机构编号都是47。
-
用户信息表
核心字段包括用户编号、用户名称、第三方用户编号、公司编号
因为用户可能属于多家公司,用户可以自行切换当前所属的公司是哪家,这个companyId公司编号就是用户当前所在的公司
-
部门下用户信息表
核心字段包括用户编号、公司编号、用户在这个部门的职位、公司编号 -
公司下用户信息表
核心字段包括用户编号、公司编号
一个用户可能从属于多家公司,所以一个用户可能对应多个记录。
以上这几个表就可以把用户相关的信息串联起来了
- 真实的使用场景举例说明
用户体系搭建好了之后,就是一个用户中心系统,对外提供统一的开放接口。
在SAAS平台上有很多的商户,商户与商户之间是独立的,互不影响,比如商户1自己有一套系统,有完整的用户信息,商户1可以与SAAS平台的用户中心做对接,将商户1自己的用户信息推送到SAAS平台的商户1下面,然后商户1就可以登录SAAS平台看到自己的用户信息了。
搭建流程体系
创建一个流程之前,先定义好流程有哪些分类,比如费用类别、办公类别。办公类别的流程比如日常报销,这里就以创建一个日常报销的流程,看看是如何设计的。
在SAAS平台上创建一个商户(租户或公司)之前,SAAS平台的数据库中会初始化一些模版数据(模版数据对应的公司编号记为0):
- 流程分类信息
关键字段有流程分类编号、流程分类名称、公司编号为0表示是系统默认初始化的模版数据
流程分为固定审批流程和指定审批人。固定审批流程:比如提交一个请假流程,先到人事经理,再到项目经理,再到财务。指定审批人:提交一个请假流程,指定提交给张三,让张三审批。
- 流程信息表
关键字段有流程编号、流程分类编号、流程名称、流程编码、版本号,公司编号
版本号为1.0表示这个流程是指定审批人的流程,版本号2.0表示固定审批流程,版本号3.0表示新建的流程(不是系统默认初始化的)。
还有一些其他的模版信息表,接下来咱们以实际数据流转的视角来把这些模版信息表串起来,也更容易理解。
初始化一个商户账号之后,登录SAAS平台,就可以看到
这些都是流程的模版数据,来自于流程信息表,version=1.0,companyId=0的数据,选择某一个流程进行审批设置,
默认的审批方式是指定审批人,选择设置固定审批流程,此时的审批方式保存在了流程审批方式记录表,核心字段是流程编号、当前业务类型、审批方式(0=固定审批流程)、当前的租户编号(公司编号)
再回到审批管理页面看到的日常报销版本号就是2.0的数据了并且是属于当前公司下的,这个数据就是根据流程模版(即companyId=0,version=2.0)生成的(这个数据是在设置固定审批方式的时候生成的,在获取流程列表的时候先获取1.0的模版数据,然后再读取审批方式记录表看日常报销这个流程是否是固定审批方式,若是则获取当前公司下的2.0的日常报销流程数据替换掉1.0的模版数据)
然后进入到了流程节点设置页面
这里涉及到流程的节点列表,每个节点的处理人列表,节点的流转信息以及流转的条件信息,这些信息什么时候生成的?在设置固定流程审批方式生成当前公司下的2.0流程数据的时候也会初始化这些信息,
- 当前公司下的流程分类信息(根据模版分类数据生成)
- 当前公司下的流程2.0数据(根据模版公司2.0数据生成)
- 流程节点数据,包括节点编号,流程编号,节点类型,节点名称,公司编号
对应着流程节点设置页面的这4个节点信息
这些节点信息也是根据模版公司的节点数据生成的,模版公司(公司编号是0,版本号是2.0)的节点数据如下,
- 连接线信息,连接线编号、流程编号、连接线类型、操作名称、来自于哪个节点编号、到哪个节点编号、公司编号
这个数据也是根据连接线的模版数据生成的
- 节点处理人信息,节点编号、处理类型(根据角色获取处理者,根据请求参数动态获取处理者),公司编号
其对应的模版数据是
- 业务表数据,主表名称、明细表名称、公司编号
- 对应的模版表数据