版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 需求说明审批流转就是一份文件从起草到审批完毕的全过程。 申请文件按照设定好的流程自动流转,审批人依次审批。公司内采用纸张表单,手工传递的方式,一级一级的审批签字,工作效率低下。而采用工作流软件1,由系统来传递表单。2,(信息化),可以方便的查询与统计。(OA中的审批流转功能),使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,可以大大提高效率。审批流转模块由表单和流程这两个元素构成:1,表单,是数据的载体,对应现实工作中的各类纸制或WORD工作单。用户在申请时,按照表单的模板填写并提交,模板是事先设计好的。2,流程,是表单流转的步骤。一个表单类型
2、,对应一个流程。如请假单对应请假的流程,费用报销单对应费用报销流程。可以方便的添加新表单、新流程,也可以方便的对他们进行管理(修改、删除等)。2. 总体设计要完成的功能列表:1, 申请用的表单模板管理。2, 审批流程管理(流程定义管理)。3, 审批流转功能(表单按指定的步骤流转)。支持正常流转、用户选择下一步、回退、表单查询等操作。说明:使用jBPM管理、执行流程,使用流程变量关联表单数据。一个表单模板对应一个流程定义名称,因为流程定义可以有相同的名称,使用不同的版本号,最大的版本是最新的,我们在使用时应使用指定名称的最新版本。表单有三种状态:审批中、未通过、已通过。创建并提交一个新的表单,系
3、统就会启动一个新的流程实例开始流转。在流转过程中,表单状态为审批中。审批是对下级呈报的表单文档等进行审查并予以批示。当任一审批环节审批不通过时,本次流转结束,表单状态为未通过,如果所有的审批环节都审批通过,表单状态为已通过。实现说明:设计实体:如果与Jbpm的实体有关联关系,采用只保存他的id值的方式,自已维护这个Long型属性的值。原因:因为Jbpm的实体的映射文件和实体我们不能修改,所以只能做单向关联。但使用单向关联时,在执行删除操作时可能会有“因违反外建约束而不能删除”的异常。(表单与流程实例一对一,审批信息表任务实例一对一)。表单的标题格式:表单模板名称_申请人姓名_申请日期。标题由系
4、统自动生成。如:请假单_张三_2010-07-01。约定1:jBPM中要求的actorId(任务的执行者)是String型。我们要保证每个人的actorId要唯一。在系统中使用User表示一用户,可以采用他的loginName作为其actorId。在User中增加方法:String getActorId() return loginName; 约定2:在流程实例执行时,各个环节都应该能方便的得到流转的表单数据。表单数据是在第一步提交时生成的,所以需要在提交表单的业务操作中,把表单做为流程变量设置一下,key为form。约定3:所画的审批流程图的第一个节点都是申请人,并有一个任务的定义:名称为提
5、交申请,执行者为提交表单时的当前登录用户,配置代码为:actor-id=#form.applicant.actorId约定4:所画的流程图中尽量不使用Decision节点,而使用在任务节点中直接画多条Transition,并在执行完此节点中的任务后,让用户来选择使用哪个Transition离开节点。因为在Decision中需要写逻辑代码有时还需要用到表单中的业务数据。而表单使用的是Word文档,不支持取出其中的数据(也不知道取哪个)。,就是要写Java类。3. 详细设计3.1. 表单模板管理表单模板可以使用Word格式,或Html格式。1,Word格式的表单:可以在页面中直接进行操作,就像使用
6、Word一样,这需要Office控件。或使用文件的上传与下载做为替代方案。2,Html格式的表单:使用FCKeditor做为表单的编辑器,由用户在Word中设计好表单,然后复制到FCKeditor中,再添加相应的input就可以。还有几个问题需要解决:1,改造FCKeditor。2,怎么获取用户填写的表单内容?3,表单内容怎么存储?对于第2个问题,因为表单模板是由管理员设计的,不知道其中有几个表单字段,分别是什么name,所以就不知道怎么获取用户填写的表单内容了。可以采用某种方式分析出表单中的有效字段,这个问题就解廖了,这可以通过在input中约定一个标记来实现。对于第3个问题,因为表单字段值
7、可以是字符串、数字、日期.等等类型,所以存储时应用什么类型也是个问题。可以使用serializable类型。我们采用第1种方式,即Word格式的表单,使用文件的上传与下载代替Office控件的。3.2. 审批流程管理1, 列表显示的是所有流程定义(不同名称)的最新版本。2, 删除流程定义时,指定名称的所有版本的流程定义都会被删除。3.3. 表单流转3.3.1. 提交申请的业务方法a) 保存表单。b) 开始流转1, 创建一个新的流程实例,使用指定名称的最后一个版本2, 设置流程变量:form3, signal()4, 完成第一个任务:提交申请。得到当前流程实例中的所有任务实例的方法为:Proce
8、ssInstance.getTaskMgmtInstance().getTaskInstances()c) 维护表单状态:状态为审批中3.3.2. 执行审批处理的业务方法d) 保存(审批人填写的)审批信息。(后面查询用)e) 办理完当前这个审批的任务。(执行流程用)f) 维护表单状态:1, 如果本次审批未通过,本次流转直接结束,后面的任务实例也不再创建。表单状态为:未通过。2, 如果本次审批通过,并且我是最后一审批,表单状态为:已通过。3, 也就是所有审批都通过。4, 如果本次审批通过,但我不是最后一个审批,则表单状态不变,还是审批中。说明:1, 让流程直接结束的API是:ProcessIns
9、tance.end()。2, 任务完成后,指定不发信号的API是:TaskInstance.setSigalling(false) 。如果指定参数值为true,(true也是默认值),表示可以在适当的时候发信号,如默认最后一个任务完成后会发信号。如果为指定为false,表示执行完不会发信号,而不管该不该发信号。3.3.3. 回退(退文)回退前面的某个节点,这个功能,jBPM没有提供。解决方案1:在每个节点中都加上指向前面所有节点的Transition。方案2:所有指向前面节点的Transition都不需要在图上画出来,而是在使用时用代码创建一个临时的Transition,用完就删掉。1, 显示
10、回退页面,需要显示可以回退的节点(当前节点之前的、执行过的节点)。拿到所有的节点:ProcessDefinition.getNodes() : List2, 取消我的提交申请任务,不再继续执行流程(TaskInstance.cancel())3, 退文有关功能分析:退文sendBackUI()1, 显示退文页面2, 列出可以回退的任务节点sendBack()1, 退回到指定的节点2, 再转到待我审批页面修改后再次提交editAndResubmitUI()显示再次提交页面editAndResubmit()1,删除原文件,保存新文件;2,执行流程,继续审批。3,转到我的申请删除delete()1,删除表单(表记录、文件)2,终止流程需要修改:1,我的申请页面的显示,有的表单后多两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2018-2024年中国垃圾焚烧烟气处理市场深度调研分析及投资前景研究预测报告
- 政府公共关系(第二版)课件 第10章 政府政策过程中的传播
- 畅想青春演讲稿
- 2021年律师年度工作总结【10篇】
- 店长工作计划
- 医院的实习报告模板合集七篇
- 高中教师转正自我鉴定4篇
- 小孩八佰观后感心得体会
- 读《钢铁是怎样炼成的》有感6篇
- 2023年志愿工作心得(3篇)
- 机械加工厂计划管理
- 《美术策展方案》课件
- 太阳能光伏发电系统最大功率点跟踪技术研究
- 幼儿教师专业发展及《幼儿园教师专业标准》解读课件
- 福维克直销奖金制度完整版
- 银行业声誉风险管理培训
- 四川省成都市成华区2023-2024学年七年级上学期期末语文试题
- 医院季度投诉分析整改报告
- 全面医疗安全生产隐患排查清单
- 医疗陪护行业前景分析报告
- 对吸毒人员管控措施
评论
0/150
提交评论