昆明理工大学 工作流结课报告 办文自动化系统.docx

上传人:b****3 文档编号:12897946 上传时间:2023-04-22 格式:DOCX 页数:23 大小:393.80KB
下载 相关 举报
昆明理工大学 工作流结课报告 办文自动化系统.docx_第1页
第1页 / 共23页
昆明理工大学 工作流结课报告 办文自动化系统.docx_第2页
第2页 / 共23页
昆明理工大学 工作流结课报告 办文自动化系统.docx_第3页
第3页 / 共23页
昆明理工大学 工作流结课报告 办文自动化系统.docx_第4页
第4页 / 共23页
昆明理工大学 工作流结课报告 办文自动化系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

昆明理工大学 工作流结课报告 办文自动化系统.docx

《昆明理工大学 工作流结课报告 办文自动化系统.docx》由会员分享,可在线阅读,更多相关《昆明理工大学 工作流结课报告 办文自动化系统.docx(23页珍藏版)》请在冰豆网上搜索。

昆明理工大学 工作流结课报告 办文自动化系统.docx

昆明理工大学工作流结课报告办文自动化系统

课程报告

 

课程名称:

工作流技术

报告题目:

基于JBPM的办公自动化系统

学院:

信息工程与自动化学院

专业:

计算机科学与技术

年级:

2012级

学生姓名:

邹华宇(201210405204)

指导教师:

胡守成

日期:

2015年6月19日

教务处制

目录

一、绪论3

1.1研究背景目的及意义3

二、需求分析3

2.1整体需求分析3

三、系统功能设计3

3.1系统整体性设计3

3.2数据库的设计4

3.3详细设计(核心代码)4

3.3.1设计流程4

3.3.2登录界面设计5

3.3.3起草文件页面设计5

3.3.4提交审核页面设计6

3.3.5签发归档文件页面设计6

四、系统实现6

4.1代码实现6

4.1.1登录页面6

4.1.2起草文件页面7

4.1.3提交审核页面9

4.1.4签发文件页面10

4.1.5文件归档页面11

4.2数据库及流程图关键代码12

4.2.1数据库连接代码12

4.2.1流程图关键代码14

五、测试分析14

5.1代码实现14

六、总结体会17

一、绪论

1.1、研究背景目的及意义

功能稳健且强大的公文流转系统不仅大大高了OA系统工作流的转速,而且明确了办公人员的责任归属。

J2EE的开发模式适合工作流性质软件的开发,在开发模式上与ASP.Net相似,但具有更强的灵活性。

JBPM原理:

总的来说,JBPM是通过对图进行解释执行的,相对于其它支持技术有:

基于消息队列,代码生成。

同时它还能被部署在任何一款JAVA应用服务器上,而最合适的当然是分层J2EE结构的S2SH框架了。

办公自动化系统是一套针对日常办公管理活动,利用现代科学技术成果和先进的办公设备,实现办公活动的科学化和自动化的系统。

早期的办公自动化系统是以数据为处理中心的传统MIS系统,它的应用基于文件系统或(和)关系型数

据库系统,以结构化数据为存储和处理对象,强调对数据的计算和统计能力,完成了办公信息载体从原始的纸质介质向电子介质的飞跃。

随着信息技术的飞速发展,办公自动化在近二、三十年来的发展异常迅速,它已经发展成为以工作流为中心的办公自动化系统,工作流的目的是通过将一个具体的工作分解成多个任务、角色,通过一定的规则和过程约束这些任务的执

行和监控,以达到提供企业的生产经营管理水平的目的。

它的最大优点是将应用逻辑与过程逻辑相分离,只需修改过程模型就可以改变系统功能,实现了工作流程的自动化以及收发文件从传统的手工方式向自动化方式的飞跃,同时通过可视化的流程定义和流程监控,实现了流程的优化和重组,已广泛应用于当今社会的各个行业。

目前,各地政府和企业为改善投资环境,提高办事效率,按照改革行政审批制度的要求,纷纷建立集中审批中心。

集中审批中心负责政策咨询,集中联合审批,提高跨部门行政审批效率,简化办事流程。

由于传统的文件审批系统的审批流程不灵活,影响了实际工作效率。

为此,笔者设计了一种流程可重构文件审批系统,以期为企事业单位文件审批管理服务提供帮助。

二、需求分析

2.1、整体需求分析

在实际工作中,公文管理中的公文的收发和流转是整个办公自动化系统的核心。

包括了细节的收文和发文。

在正式发文之前公文或报告需要经有关领导审阅、批示。

因此整个公文管理系统的权限大致可以分为:

具有审批权的领导、普通领导、具有审批权的二级部门领导、部门办事员、各教学和教辅单位及个人。

领导可以查阅所有公文,部门领导及其他人员只能查阅公共性公文和与本部门有关的公文。

我们主要实现内部公文起草、审批、会签、签发、传阅、承办和归档等功能。

同时实现外部收文的传阅,承办,归档等功能。

三、系统功能设计

3.1、系统总体设计

为了更好地整合JBPM,本系统的设计与实现是基于J2EE的MVC模式的架构。

MVC是一个设计模式,它将应用程序的输入、处理和输出分开,使一个应用程序被分成三个层———模型层、视图层、控制层。

MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。

使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

比如一批统计数据你可以分别用柱状图、饼图来表示。

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

该设计模式的主要优势之处就是分离了数据、控制层与界面。

系统采用webwork+spring+hibernate开源框架来实现MVC设计模式,同时JBPM也是使用hibernate来管理它的数据库,使得该框架与JBPM能更好地整合。

以webwork+spring+hibernate框架为核心结合JBPM工作流技术所构建的办公自动化系统其工作原理如图1所示。

该图说明了框架协调工作与交互的过程。

首先来自客户端的Http请求送到框架中的ActionServlet等候处理。

ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到Model部分中一个具体的Action处理器对象之间的映射。

ActionServlet接受客户端的请求,并将请求交与RequestProcessor来处理。

RequestProcessor根据请求的URL从ActionMapping中得到相应的Action并根据请求的参数实例化相应的ActionForm,再进行form验证。

验证通过则调用Action的Execute方法,在方法体内,调用业务逻辑模块,然后由Hibernate在“幕后”完成与数据库的交互,即业务逻辑类里通过HSQL语句操作业务对象。

接着,Hibernate把HSQL转换为SQL,通过O/R映射文件实现具体对数据源的操作,即穿过持久层映射到具体的数据库表。

Execute方法执行后须返回ActionForward对象。

Action-Servlet接受Execute方法返回ActionForward对象,转发到ActionForward指定的源。

这个源可以是一个JSP或另一个Action或另一个Servlet。

3.2、数据库的设计:

我们使用的数据库是MySQL的数据库,适用于工程使用,数据库的整体结构如下:

3.3、详细设计

3.4.1设计流程流程图的整体结构如下图所示:

3.4.2登录界面设计

登陆界面考虑到易用性,仅设计为只有一个页面,含有输入用户名的位置及登陆的位置:

3.4.3起草文件页面设计

文件起草的时候要考虑到所提交的文件的名称,提交人的名称,起草的时间,交稿的时间以及要将所起草的文件上传。

3.4.4提交审核页面设计

审核页面由于有两个阶段,包括科长和处长的审核,其中如果有一个不通过则会返回去重写,否则怎进入下一步,当处长审核通过之后,则可以进行定稿以及签发。

3.4.5签发归档文件页面设计

当文件整体通过之后就可以直接进行签发和归档文件的工作,程序将在后台执行签发和回档的程序,执行成功后会在页面进行提示。

四、系统设计

4.1代码实现(关键代码设计)

4.4.1登录页面

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

<%@pageimport="java.util.*,org.jbpm.api.*,java.util.zip.ZipInputStream"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

<%

Stringusername=request.getParameter("username");

if(username!

=null&&!

"".equals(username)){

session.setAttribute("username",username);

response.sendRedirect("index.jsp");

}

%>

员工用户名:

效果图如下:

4.4.2发起文件流程页面

<%@pageimport="org.jbpm.api.task.*"%>

<%@pageimport="java.util.zip.ZipInputStream"%>

<%@pageimport="java.util.*,org.jbpm.api.*"%>

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

用户:

<%=session.getAttribute("username")%>|退出


<%

ProcessEnginepe=Configuration.getProcessEngine();

RepositoryServicers=pe.getRepositoryService();

ExecutionServicees=pe.getExecutionService();

TaskServicets=pe.getTaskService();

Stringusername=(String)session.getAttribute("username");

//Strings=request.getCharacterEncoding();

Listlists=rs.createProcessDefinitionQuery().list();//流程实例

Listlists1=es.createProcessInstanceQuery().list();//流程实例列表

Listlists2=ts.findPersonalTasks(username);//代办任务列表

%>

办文系统

办文流程ID流程名称流程版本操作

<%

for(ProcessDefinitionpd:

lists){

%>

<%=pd.getId()%><%=pd.getName()%><%=pd.getVersion()%>

id=<%=pd.getDeploymentId()%>">删除办文流程|

id=<%=pd.getId()%>">发起办文流程

<%

}

%>


流程实例管理

实例ID实例名称实例状态操作

<%

for(ProcessInstancepi:

lists1){

%>

<%=pi.getId()%><%=pi.findActiveActivityNames()%><%=pi.getState()%>

id=<%=pi.getId()%>">查看实例

<%

}

%>


代办任务

任务ID任务名称操作

<%

for(Tasktask:

lists2){

%>

<%=task.getId()%><%=task.getName()%>?

id=<%=task.getId()%>">查看任务

<%

}

%>

4.4.3提交页面

<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>

<%@page

import="java.io.File,java.io.FileInputStream,java.io.InputStream,java.util.zip.ZipInputStream,java.util.*,org.jbpm.api.*,java.util.zip.*"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

<%

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

StringdeployFile=request.getParameter("processDef");

ProcessEnginepe=Configuration.getProcessEngine();

TaskServicets=pe.getTaskService();

StringtaskId=request.getParameter("id");

Tasktask=ts.getTask(taskId);

if(deployFile!

=null&&deployFile!

=""){

try{

Stringfile=deployFile;

//将ZIP文件封转到IO流里

InputStreamis=newFileInputStream(newFile(file));

ZipInputStreamzis=newZipInputStream(is);

zis.close();

is.close();

out.println("发布流程成功
");

out.println("返回
");

}catch(Exceptione){

e.printStackTrace();

out.println("发布流程失败");

}

}

%>

functionreadFile(obj){

document.getElementById("file").value=obj.value;

}


文件名称:

<%=ts.getVariable(taskId,"name")%>

提交人名称:

<%=ts.getVariable(taskId,"Pname")%>

起草时间:

<%=ts.getVariable(taskId,"qtime")%>

交稿时间:

<%=ts.getVariable(taskId,"jtime")%>

将要发布的文档打包成zip文件之后发布

提交文档

4.4.4审核页面

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

<%

ProcessEnginepe=Configuration.getProcessEngine();

TaskServicets=pe.getTaskService();

StringtaskId=request.getParameter("id");

Tasktask=ts.getTask(taskId);

%>


文件名称:

工作流大报告

文件提交人:

张洵

文件起草日期:

2015-06-20

文件交稿日期:

2015-06-27

处长审批的页面和此页面类似,就不再展示

4.4.5签发归档文件页面

签发归档文件由于只需要提示就可以了,所以仅需要做一个简单的文字界面。

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyJSP'dinggao.jsp'startingpage

--

-->

文件已经定稿签发并归档成功,流程结束,已删除

4.2、数据库及流程图关键代码:

4.2.1、数据库连接代码

xmlversion="1.0"encoding="utf-8"?

>

DOCTYPEhibernate-configurationPUBLIC

"-//Hibernate/HibernateConfigurationDTD3.0//EN"

"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1