工作流设计

 

 

1、首先,获得当前用户的id

2、有一个流程表,这个流程表里就两个字段,一个是父id,一个是子id,多对多的关系

3、信息表扩展了两个字段,一个是关于哪个用户审核的,一个是审核状态

4、根据当前用户的id(也是流程表里的子id)查询父id

5、父id与信息表里的id(审核人id)比较,如果id是一致的且审核状态是审核通过,说明流程轮到我来审核了,否则信息不显示

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

流程表--由3并行,由5、7结束

 


父id  子id

 

1    2
2    3
3    4
4    5

 

 

从3并行

 

 

3    6
6    7

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

6、如果是并行流程的话,信息表需要扩展四个字段,一个是关于哪两个用户审核的,一个是审核状态

哪如果是同时并行了多个流程呢?所以动态添加信息表的字段并不科学。

--------------------------------------------------------------------------------------------------------------------------------------------------------------

中间表

 

内容id      当前审核者     审核结果

1         5        通过

1         7        不通过

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

内容        内容id

sdfsdfsdf      1

-------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

1、获取当前用户id

2、根据用户id获取父id

3、获取信息id

4、根据信息id获取中间表,判断流程是否终结

5、如果流程没有终结,根据父id获取中间表id,判断其父级是否通过审核,如果通过,则显示信息

 

 

当然,直接获取信息id是不友好的

$list  =  select * from 中间表 where 父id = 当前用户的父id and 状态 = '审核通过'

foreach ($list as $key=>$value){

  echo "我的代办事项".$value;

}

取到所有(代办事项)信息id

 

 

 

二次开发必须满足的条件

1、信息表

2、流程表

3、中间表(多个用户对与信息的审核反映)

 

 

 

posted @ 2016-03-25 16:03  fleam  阅读(707)  评论(0)    收藏  举报