工作流
2024-03-15 11:35:29 6 举报
设计工作流初稿
作者其他创作
大纲/内容
条件节点类似或签结点,也是满足其中的一个结点审批完成就整个结点审批完成,比如
node节点表ready: 可以进行审批操作的简单节点是ready状态。complete: 已经审批完成的节点状态。 future: 现在还没有走到的节点状态。waiting: 只有复杂节点有该状态,表示在等待子节点审批
流程启动时,程序通过启动流程,将work_flow_nodes表中的记录复制一份到work_flow_run_nodes表,然后后续的工作流转通过修改work_flow_run_nodes表的各节点的状态来进行流转,比如改成waiting状态,ready状态,complete状态等。工作流程过程中此表才有数据,流转结束后,会通过程序清除掉此表的记录work_flow_run_handler(工单审批人记录表)此表记录工单被哪些人员审批过,会去重处理,用于查询我审批过的工单,比如工单id如GD1649412699736的工单,有部门经理审批和总经理审批环节,比如作了转派操作,部门经理liujh将部门经理的审批任务转派给了总经理审批,那最后总经理除了审批部门经理的节点外,还会审批总经理节点,因为会产生两次审批,为了在查询我审批过的工单时方便查询,设计此表进行去重处理,在界面上查询时就可以直接查了。work_flow_auditlog(审批历史表)此表用于查询工单的所有审批历史记录,审批人每执行一次审批,记录一条记录在审批历史记录表。work_flow_form_field工单动态表单表每个流程可能使用的字段,展示的数据不一样,通过此表记录每种流程有哪些字段信息。work_order工单表每发一个流程,就会在work_order表中产生一条记录work_flow_run_success_send审批结束抄送人员记录表如果要实现抄送,设计了这个抄送人员表,可以在流程结束后,将抄送人员插入此记录,同时与work_order表关联查询,可获取抄送给我的工单列表
审批人
驳回
审批人需要支持配置:可以流程设计时写死,也可能可以从表单中选择下一个审批人,还有根据发起人不同选择不同的审批人。因此设计了处理人有三种类型:FIXED(\"固定\
条件结点
或签:即比如上面的部门经理审批,可能有三个部门经理,任意一个个部门经理同意,就算部门经理节点审批通过,设计和会签一样,只是节点状态有点不一样
抄送的支持较简单,只要在流程结束时将工单和抄送人员关联起来即可
项目经理审批完成,流转到部门经理时,会签的复杂结点为waiting状态,三个子结点为ready状态,总经理审批结点未开始,因此为future状态
部门经理有2个子结点审批完成时,会签的复杂结点仍为waiting状态,三个子结点有2个完completed状态,一个为ready状态,总经理审批结点未开始,因此仍为future状态
work_flow(工作流程定义表)work_flow_nodes(工作流程节点定义表)work_flow_run_nodes(运行时的工作流程节点数据表)work_flow_run_handler(工单审批人记录表)work_flow_auditlog(审批历史表)work_flow_form_field工单动态表单表work_flow_run_success_send审批结束抄送人员记录表work_order工单表
1.将当前正常执行审批的主流程结点及子结点全部变回为future状态2.反向找到上一个主流程节点,将上一个主流程节点的流程状态改成waiting或ready即可
部门经理全部审批完成时,会签的复杂结点改完complete状态,三个子结点,流转到总经理审批结点,因此变成ready状态
补充说明:1.其他的和会签的说明一样2.或签节点: 或签节点激活后,所有的子节点都可以审批,当任意的或签子节点审批完毕后,或签节点就算完成3.同样,绿色主流程结点找不到下一个节点时,说明流程结束。4.或签结点的子结点的状态,加入新状态 skip5.当或签结点的子节点状态有一个为complete时,其它兄弟节点及其子节点的状态被置为skip(因为或签只要一个完成就可)
抄送
转派
或签
请假天数小于3天,部门经理审批,然后流程结束请假天数大于3天,总经理审批,然后流程结束如上,如果部门经理一定需要审批,可以这样:
0 条评论
回复 删除
下一页