6/8 可配置工作流 实现思路

本文介绍了一个用车申请系统的审批流程设计,包括申请单审批的具体步骤、流程实现方式及工作流配置方法。通过具体案例展示了不同审批流程的实现过程,并讨论了流程配置的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 第三天了,今天小J准备了用车申请的完整流程和对应的操作界面说明文档,余下的非重点流程在下个星期整理。小G重新改进了模型。
我们三人内部讨论了流程和模型。明天项目组和需求部门进行将开发前的第一次讨论会。

特别的,我们再次讨论了工作流实现思路。
考虑该系统中最简单的申请单审批流程:

审批流程中有 申请人、审核人两个角色,审核工作分为部门审核、分管领导审核和主管领导审核三个任务。流转的公文只有申请单一个单据。
假设目前系统只有流程1和2两个流程:
1.本地网用车申请流程:
申请人填写申请单-生成申请单据-部门审批-审批结束,转入车辆调度流程
2.出本地网省内用车申请流程:
申请人填写申请单-生成申请单据-部门审批-分管领导审批-审批结束,转入车辆调度流程
那么对应这两种情况的申请单审批流程实现如下:
1.将每个环节对应的任务生成任务表

任务编号 任务名称
Task1部门审批  
Task2分管领导审批

2.每个流程的固定模式表 按任务顺序将对应的任务编号填入
流程模式编号 第一步第二步
Flow1Task1  
Flow2Task1  Task2

3.申请单一经填写完毕,即生成该单据的流程实例,经过程序判断,申请单1走流程模式1,单2走流2
申请单编号 流程状态流程模式编号
Sheet1TFFFF  Flow1
Sheet2TTFFFFlow2
流程模式标示字串由5个位组成,分别对应流程模式中的步,T表示有任务,F结束虽然现在最多只有3步,设成5位是为了保证以后的流程扩充冗余。

4.同时,流程记录表增加单据的处理记录
申请单编号 任务编号处理结果
Sheet1Task10
Sheet2Task1  0
每个任务操作都在流程记录表中产生一个记录,代表当前任务已经执行完毕,处理结果中0代表等候处理,1代表是,-1代表否

5.审批角色中的部门审批权限上线后,搜索流程记录表,对应的任务编号有2条未处理记录,审批结束后,流程记录表变成
申请单编号 任务编号处理结果
Sheet1Task11
Sheet2Task1  1
Sheet2Task20
在处理完当前的任务更新处理结果后,还要检索流程实例中该单据的流程模式字串和对应模式,发现sheet1的第一个任务下面没有要处理的环节了,停止插入记录,而sheet2的第二个任务是T,再去对应的FLow2流程模式里发现对应的第二步是Task2 于是插入一条流程记录,状态是等候处理。

6.分管领导上线后,显示一条等待处理的申请单Sheet2,处理后流程记录表如下
申请单编号 任务编号处理结果
Sheet1Task11
Sheet2Task1  1
Sheet2Task21
可见流程中已经没有需要处理的单据了

那么工作流如何能够灵活配置呢?
假设我们审批流程需要增加一个流程3,里面多了任务3-主管领导审核
对应的任务表
任务编号 任务名称
Task3主管领导审批  

对应的流程模式表
流程模式编号 第一步第二步
Flow3Task1 Task3

符合流程3的申请表3对应的流程实例记录是:
申请单编号 流程状态流程模式编号
Sheet1TTFFF  Flow3

该单据经过部门审批后,流程记录表中的相关记录应是:
申请单编号 任务编号处理结果
Sheet3Task11
Sheet3Task30

这样就能保证主管领导审批的界面能够调出所需要处理的单据了。


以上的简单流程是顺序的,单一的,而实际的流程中存在多种返回结果和多重判断以及流程之间的跳转。
我们将进一步讨论和完善流程配置的实现方式。

转载于:https://www.cnblogs.com/hulu/archive/2007/06/08/777078.html

前 言 1 1 概 述 2 1.1 选题背景 2 1.2 组织结构 2 2 所用相关技术和方法 3 2.1 工作流 3 2.1.1 什么叫工作流 3 2.1.2 工作流发展 3 2.1.3 工作流的优点 3 2.2 MVC工作模式 4 2.2.1 MVC设计思想 4 2.2.2 MVC的具体实现 5 2.2.3 MVC的不足 6 2.3 JSP技术介绍 6 2.3.1 JSP的运行原理 7 2.3.2 JSP的生命周期 8 2.3.3 Servlet和JavaBean技术介绍 8 2.3.4 Java 虚拟机 9 2.3.5 JSP访问SQL Server 2000数据库 9 2.4 数据库后台环境配置 10 2.5 系统开发工具简介 10 2.5.1 Dreamweaver 10 2.5.2 MyEclipse 10 2.5.3 Tomcat 11 2.5.4 SQL Server2000 11 2.5.5 chs_sql2ksp3 12 3 系统需求分析 13 3.1 系统功能分析 13 3.2 系统性能分析 13 3.3 系统方案的确定和评价 13 4 系统总体设计 15 4.1 系统层次模块图 15 4.1.1 营业厅模块 15 4.1.2 收费管理模块 16 4.2 系统数据流程图 16 4.3 数据表设计 18 5 详细设计及编码 21 5.1 编写JAVABEAN 21 5.2 营业厅实现函数 21 5.3 收费厅主要的实现函数 22 5.4 JAVABEAN主要实现模块 22 5.4.1 中文字符格式的转换模块(Stringto.java) 22 5.4.2 自动生成验证码(Ran.java) 22 5.4.3 数据库的连接(ConnectionFactory.java) 23 5.4.4 数据库连接的关闭(DatabaseUtils.java)--只提供接口 23 5.4.5 密码修改模块(Common_fuction.java) 24 5.4.6 时间格式转换(timeBean.java) 24 5.4.7 数据统计(counthander.java) 25 5.4.8 营业厅的接口(luruaction.java) 27 5.4.9 营业厅的主要函数实现(luruhander.java) 28 5.4.10 收费厅的主要函数接口 32 5.5 管理员登陆模块 33 5.5.1 管理员登录 33 5.6 营业厅管理模块 36 5.6.1 Left.jsp页面 36 5.6.2 Work.jsp 40 5.6.3 customerlistinfo.jsp 41 5.6.4 allinfo.jsp 41 5.7 收费厅管理模块 42 5.7.1 Left.jsp 42 5.7.2 Work.jsp 43 5.7.3 Customerlistinfo.jsp 43 5.7.4 gongdan.jsp 43 6 系统测试与维护 45 6.1 测试目的 45 6.2 测试环境 45 6.3 系统测试 45 6.4 系统维护 45 7 开发难点与技术 46 7.1 主要程序实现的代码描述 46 7.1.1 验证码的自动生成 46 7.1.2 生成WORD工单 46 7.1.3 以一定的时间刷新页面 47 7.1.4 JSP中文问题的解决 47 7.2 在程序编码过程遇到的主要问题: 48 7.3 代码编写风格 49 7.4 我的不足: 49 结束语 50 致 谢 50
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值