【php】PHP 工作流 我现在在做一个审批系统 但是需求是管理员可以自定义流程设置 及人员,流程也有可能是并行流程
老铁们,我做的用户自定义表单,审批流程这块 需求是可以管理员自定义,
目前没有思路,大家给点意见!
回答
刚好之前有做过工作流,不过不太明白你的并行是什么意思。先上几张图,来感受一下是不是这种:
流程中的处理人员或者处理部门是可以自定义的,每选择一个便保留到页面的隐藏域hidden中
- 如果是部门和人员结合的时候,保存的形式大概是这样
u:1;s:3;g:4
,u:1
表示用户ID为1的用户在第一步处理;s:3
的意思是ID位3的部门,实际在流程中处理的时候会取出这个部门下的所有人员供选择,这是第二步;后面的g:4
则表示权限组,以此类推... - 当处理流程是单一用户或者单一部门的时候,直接存ID,就可以了
1,2,3
这样的,同样的,步数依次排列
在工作流实际进行中的时候,可能会有审批、打回、再办理...等功能,这些都是需要考虑的。
这里以公文办理为例,需要大概这么几张表:工作流配置表、公文表、公文处理表
自己也写过workflow类,但是可能不太适用你这种场景,就不贴出来丢人了。
大概就是如上这个样子。
这一块可以考虑使用类似有向无环图的设计思路百度百科-有向无环图
使用事件驱动来实现,即每个流程存在一个中央的上下文管理器,某个节点向父节点注册他需要的前驱节点,每个节点审批结束后向中央管理器报告,中央处理器决定是否可以向某个节点发起可以执行的事件。
题主可以用这个设计思路来设计一下。
落地到PHP的话,应该就是每个节点状态发生变化的时候调用中央处理器的代码来触发变更代码。
需要注意的是数据并发时的一致性。
问下楼主做了没有,能发份吗?[email protected]
以上是 【php】PHP 工作流 我现在在做一个审批系统 但是需求是管理员可以自定义流程设置 及人员,流程也有可能是并行流程 的全部内容, 来源链接: utcz.com/a/107013.html