因为项目需要一个工作流,但是现有插件不太满足需求,主要是因为不会、、、也没有时间研究。之前工作中接触过一个成熟的工作流,于是通宵了一页就把它写出来,在项目中使用,当然复杂功能暂时没有那么完善,但是起码能使了。分享一下吧。
主要是玩转五个表:
流程模型表,流程节点表:这两个表主要用来规定一个工作流,流程模型表主键流程编号,规定一个流程为“合同审批流程”。流程节点表用来规定此工作流的每个节点,主要字段主键流程阶段号,外键流程编号,如合同审批节点1,节点2,节点3。这时这个合同审批流程已经建好,并且是可灵活配置。
流程对象表,流程任务表:这两个表主要是数据流转表。工作流“流”起来,主要玩这两个表。在新建一笔业务数据的同时,如合同1,在流程对象表中插入一条数据与业务数据绑定,主要字段主键流水号,流程模型的流程编号,流程阶段号;这条数据表现出的是:合同审批流程的 合同1 的流程阶段 节点1。同时流程任务表建立一样的数据,多出的主要字段是开始时间,结束时间等。
这时业务数据合同1,就已经和合同审批流程绑定,当在页面上操作提交操作时,流程对象表阶段号更新为节点2,流程任务表将合同1节点1的数据更新结束,新增合同1节点2的数据。后面的每一步以此类推。
还有一张表就是流程意见表,主要字段是流程编号,流程阶段号,业务数据流水号,审批意见等。每次审批时的审批意见将记录在这张表中。
当审批不通过退回时,将以上操作倒退流程。
这是当时的主要设计思想,并且经过我的努力也实现了。但是确实不如以前原有的成熟工作流,比如功能上很多没有设计:多点 提交多点退回等,有在程的数据流时工作流不可更改配置。
虽然有缺陷,但这是我比较满意的一个小成果,由于客观原因只能文字描述,具体表和代码现在不能发布。以后有空我可以将代码继续完善。