OA办公自动化系统.doc_第1页
OA办公自动化系统.doc_第2页
OA办公自动化系统.doc_第3页
OA办公自动化系统.doc_第4页
OA办公自动化系统.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XXXXXX大学毕业设计题目: 院、系: 姓名: 指导教师: 系主任: 年 月 日 XXXXX大学学士学位论文XXXXXX毕业设计(论文)评语学生姓名: 学号:学 院: 专业: 任务起止时间: 年 月 日至 年 月 日毕业设计(论文)题目: OA办公自动化系统指导教师对毕业设计(论文)的评语:同学在毕业设计中查阅了大量资料,设计了OA办公自动化系统,该系统功能是实现对企业内部信息管理,满足企业内部办公的各种需求。使用s2sh进行了开发。经过测试,系统功能基本达到任务书的标准。论文撰写符合规范。指导教师签名: 指导教师职称: 评阅教师对毕业设计(论文)的评语: 同学很好的完成了毕业设计任务书所规定的工作,设计合理,论文撰写符合规范。评阅教师签名: 评阅教师职称: 答辩委员会对毕业设计(论文)的评语:答辩委员会评定,该生毕业设计(论文)成绩为: 答辩委员会主席签名: 职称: 年 月 日XXXXX大学毕业设计(论文)任务书学生姓名: 学号:学 院: 专业: 任务起止时间: 年 月 日至 年 月 日毕业设计(论文)题目:OA办公自动化系统毕业设计工作内容: 1、 学习阅读文献资料补充专业知识,掌握相关的应用技术;(3月8日4月1日)2、对系统进行需求分析、设计;(4月2日4月20日)3、编写代码实现系统;(4月21日5月31日)4、对系统进行测试;(6月1日6月5日)5、论文整理、撰写及答辩。(6月6日6月20日) 资料:1.Java编程思想(第二版)Bruce Eckel,侯捷译,机械工业出版社2.Java Web整合开发完全自学M.,白广元.,机械工业出版社 指导教师意见:签名:年 月 日系主任意见:签名:年 月 日OA办公自动化系统摘 要随着网络的高速发展,网络OA系统逐渐受到关注。一些大型企业集团(例如联想、海尔)正致力实现高层次的网络办公自动化,这将为他们节省大量的人力资源,节省大量的办公费用,大幅度提高办公效率。本文介绍了Internet环境下基于B/S结构采用MVC设计模式,利用Java语言和JSP技术,同时采用了Struts2、Spring、Hibernate、JBPM框架开发的办公自动化系统。该系统的特色之处在于,企业的机构人员管理办公一体化,权限分配细化到每一步操作,导航菜单等动态生成,而用户可自定义流程和表单来进行公文流转,系统的灵活多变大大节约了维护和升级成本,满足企业内部的各种办公需求,使得系统能经得住时间的考验,从而为企业创造效益。关键词:办公自动化系统;B/S结构;MVC模式;SSH2框架;JBPM框架Office Automation SystemAbstractWith the rapid development of the network, the network office automation system gradually attention.Some large enterprise groups (such as Lenovo, Haier) is committed to achieving high-level office automation network, which will save them a lot of human resources, save a lot of office expenses, a substantial increase office efficiency.This article describes the Internet environment based on B / S structure using MVC design pattern, the use of Java language and JSP technology, while using Struts2, Spring, Hibernate, Java Business Process Management framework for the development of office automation system.Characteristics of the system is that the enterprise agency personnel management office integration, permissions assigned to each step of refining operations, such as dynamically generated navigation menu, and users can customize the process and forms for document flow, the system more flexiblechanged greatly reduce the cost of maintenance and upgrades to meet various business needs within the enterprise, making the system can withstand the test of time, thereby creating benefits for enterprises.Keywords Office Automation System;B/S;MVC;Struts2;Spring;Hibernate;Java Business Process Management- IV -目 录摘要IAbstractII第1章 绪论11.1 引言11.2 目标11.3 选题的目的和意义11.4 系统概述2第2章 系统分析32.1 需求分析32.2 可行性分析42.2.1 经济可行性42.2.2 技术可行性42.3 本章小结6第3章 系统设计73.1 系统结构设计73.2 数据库设计73.3 开发及运行环境163.4 本章小结16第4章 系统详细设计与实现174.1 登陆模块174.2 主界面174.3 组织管理模块184.3.1 主要功能和程序流程184.3.2 操作流程及界面184.4 权限管理模块204.4.1 主要功能及程序流程204.4.2 操作流程及界面224.5 工作流程模块254.5.1 主要功能及程序流程254.5.2 操作流程及界面294.6 公文管理模块314.6.1 主要功能及程序流程314.6.2 操作流程及界面334.7 本章小结36第5章 系统测试375.1 软件测试的基本概念375.2 软件测试的内容375.3 软件测试的过程385.4 本系统的测试385.5 测试结果455.6 本章小结45结论46致谢47参考文献48附录49第1章- VI -哈尔滨理工大学学士学位论文第1章 绪论1.1 引言本论文是对OA办公自动化系统的需求说明,其目的是分析清楚拟建系统的功能性需求和非功能性需求。1.2 目标OA是以开放、先进的Internet/Web技术为核心新一代信息处理集成系统。通过他的建设将以计算机最新并成熟的技术为依托,提高企业信息化水平,在单位内部实现信息资源共享和流通,为各级领导及时了解情况,为宏观管理和科学决策提供高效便利的服务,使得单位的管理更加高效化、规范化和科学化。1.3 选题的目的和意义随着计算机和通信技术的发展,人类已逐渐进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必须要求了。管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,可以获得竞争优势。管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。生命周期法是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,但系统开发出来后,并不意味着生命周期的结束,而是意味着根据组织的需要对系统的修改和重建的开始;原型法是20世纪80年代发展起来的,旨在改变生命周期法缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统;面向对象的开发方法于20世纪80年代开始兴起的,是一种基于对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。基于以上三种方法的特点和各自的优缺点,本办公自动化系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,同时也可以提高效率、节省时间、降低成本。1.4 系统概述该系统最主要实现了OA的基础模块和核心模块,包括机构管理、人员管理、模块管理、角色管理、用户管理、流程管理、表单定义和公文维护。整个系统采用Struts2、Spring、Hibernate的开发架构。系统采用树形结构对机构和模块进行管理。在权限管理上,采用ACL权限控制访问列表设计模式,对角色进行模块的CRUD授权,也可针对特定用户进行授权,在授权后,用户登录系统时会根据用户拥有的角色和个人的权限进行导航菜单动态显示,还可以对用户的CRUD进行及时认证。而公文流传采用JBPM框架进行复杂流程的实现,用户可以上传流程定义文件和定义图片,针对特定流程进行表单定义,创建公文后可以针对不同的流程进行公文流转。权限管理页面采用Ajax框架DWR与后台进行交互,从而提高了操作效率。自定以表单使用了FreeMarker进行模板的读取和开发。本系统采用Oracle10g作为后台数据库。第2章 系统分析2.1 需求分析21世纪,先进制造技术正在推动企业向网络化、协同化、敏捷化、智能化、集成化和虚拟化的方向发展。广义层面上的网络化制造,涵盖了利用网络技术支持企业制造全过程的所有环节。全面集成办公套件,彻底实现办公自动化.在网络化制造模式下,网上办公对于企业来讲,是方便快捷的,大势所趋。实现了工作协同,工作督办,工作督控,提高了工作效率。OA可以给中小企业带来以下几个方面的效益: 1.实现远程办公和移动办公,随时随处办理工作事务。无论您身处国外,还是国内,无论您在机场,酒店,家中都可以随时投入到工作中来,方便快捷地掌握组织内部的工作进度与状况,及时处理工作问题. 2.实现知识管理,使优秀员工的思想,经验与技术获得积累,并转化成组织中的共享资源。通过OA进行知识管理,员工的工作经验和技术技能,不断积累,将成为组织中强大的共享资源,通过对知识资源的授权利用将加速创新和提高效率,也避免因人员流动导致工作的脱节与贻误. 3.通过工作流转的自动化,实现高效快捷的办公。通过OA实现各部门,各级之间横向纵向工作流程处理的自动化,将大大提高办公效率,保证快捷,准确地处理工作.这一点在办公场地较为分散的单位尤为明显。 4.有效监管工作人员的工作情况,实现实时工作任务的监督与催办。及时有效监控各部门,各个人员的工作进度情况;实时全面掌控各部门的工作办理状态,及时发现问题及时解决,从而减少差错,防止低效办公.系统将记录每个工作的全程式办理状态信息. 5.明确工作岗位与工作职责增强人员的责任感,减少推托,扯皮等现象。明确赋予各岗位的权限与职责,任何人都不可越权处理工作,使得各自责任明确,落实到人,查有所依,杜绝工作中出现职权不明,相互推脱扯皮现象.解决多岗位,多部门的协同工作问题,实现高效协作办公。 6.方便领导同各级工作人员的有效沟通。多种途径,多种方式,使管理者同各级人员保持有效,快捷的工作交流与信息沟通,排除了信息沟通不畅给企业发展带来的羁绊。 7.减少办公开支,降低管理成本。节约时间,节约纸张,节约电话费,传真费用,缩短办理时间,节省办公开支,减少差错率,提高整体工作效率。 8.有效掌控客户关系,动态管理客户资源。建立有效的客户资源档案,防止因销售等人员的变动,而导致客户信息资源的流失,确保业务发展与工作衔接的连续流畅。 9.多方位畏助办公,全面利用组织的存量资源。通过对车辆,物品,图书,信息等方面建立有效的管理环境,全面调动与激活组织存量资源,最大范围地发挥组织现有能量。2.2 可行性分析目前,大多数企业内部的办公管理还处于手工管理阶段,工作起来效率很低,各种办公需求分散化不易于管理,也无法快速地进行各种办公操作;不便于动态及时地了解公司各部门和人员办公信息,致使企业不能更好地适应当前经济形势发展的需要。手工管理还存在着许多弊端,由于不可避免的人为因素,经常造成数据的遗漏、误报。本系统应用计算机信息化管理有着储存信息量大、速度快等许多优点,能够对客户信息进行及时、准确、快捷的维护同时也能提高企业员工的自身素质。对于本系统开发的可行性,主要取决于经济和技术两个方面。2.2.1 经济可行性从项目开发的角度考虑,本系统采用的软硬件开发平台成熟实用,成本相对低廉,系统操作简便,无需花费大量的培训成本、开发费用、维护费用等,同时,使用该系统对信息采取统一管理,可以更好的与客户保持良好关系,在同等经济收入下,可以为企业节省一大笔不必要的开支。因此,从经济上来说完全可行。2.2.2 技术可行性Web技术的迅猛发展正推动Internet上信息服务类的进步,基于浏览器和服务器结构的系统越来越成为主流,而Java语言的J2EE模式在这方面的应用更是如火如荼。JSP的应用使得OA在Web上开发变得可能。OA系统中的权限模块开发可以采用比较成熟的ACL权限控制访问列表设计模式,而这种模式相对比较复杂,还考虑到系统的移植性和易于维护性,而采用框架来开发就可以使得这种复杂简单化,所以采用了Struts2、Hibernate、Spring来进行开发。采用了这三个框架可以大大降低系统各个模块之间的耦合性,这样便于系统移植和维护。Struts2负责页面前端的控制和显示,Struts2自带的各种拦截器可以大部分满足需求,而Struts2对各种页面请求的统一管理,使得易于维护。页面上各种数据的显示通过Struts2丰富的标签和强大的OGNL表达式来完成,而这些数据展示的标签和语言完全和后台数据分离,使得页面和后台解耦,使得系统易于移植。现在主流的数据库主要是以关系型数据库为主,而Java语言是纯面向对象的语言,而后台和数据库的交互是很重要的一步,但程序员大部分时间都在和SQL语句打交道,而这种SQL语句大部分都存在重复现象,这样既不利于维护有带来了时间的大大浪费,而致使于程序员不能把重心放在程序的业务逻辑处理上去。所以有了Hibernate的出现,Hibernate采用对象关系映射的模式,使得对数据库的操作对象化,原本要写很长的SQL现在只需掉某一个简单的方法就可完成,大大简化了和数据库的操作。而Hibernate的HQL查询语言,使得对复杂的数据库操作更加方便。系统在时间和效率上都会大大的提高。有了Struts2和Hibernate,但怎样使这两种技术更好的结合起来呢,这就可以用到Spring了。Spring强大的功能会使系统更加的解耦和稳定。比如某个Action中使用了后台的某个接口,但是这个接口使用的哪个实现类呢,这个可以通过Spring的IOC容器来解决,只需在配置文件中进行相关配置,在代码中我们就可以完全面向接口编程了,而Spring的IOC(控制反转)容器会帮我们实力化并管理这些实现类。在数据库操作中,事务控制是非常重要的一步,如果采用手动控制会非常繁琐且不能步步到位,虽然Hibernate有事务控制功能,但还是需要自己手动的开启和提交,而Spring对Hibernate做了很好的封装,Spring采用Java动态代理技术,很好的实现了AOP(面向切面编程)思想,通过面向切面编程,Spring封装了Hibernate的Session,使得事务控制自动化。而Spring的AOP还可以很好的进行日志记录等个方法的操作。OA办公系统中公文的流转是基础并非常重要的环节,通常企业内部会有各种流程的需求,这样就不能把流程订死,需要灵活多变可配置。开源框架JBPM就可以达到这个目的。JBPM有一套自己的流程定义语言JPDL,用户可以用设计器设计流程定义文件,通过解析流程定义文件,就可以进行复杂的流程实现。而JBPM持久化策略采用的是Hibernate,这使得JBPM能更好的和本系统结合起来。2.3 本章小结本章主要介绍了OA办公自动化管理系统的系统分析,分别从数据流程分析、需求分析、可行性分析三个方面对系统系统进行了详细描述,为下一阶段的系统设计做准备。第3章 系统设计3.1 系统结构设计OA办公自动化系统共设计了公文维护、流程管理、表单定义、机构管理、人员管理、模块管理、角色管理、用户管理八个模块。构建系统结构如图3-1所示。OA办公自动化公文管理工作流程组织管理权限管理公文维护流程管理表单定义机构管理人员管理模块管理角色管理用户管理图3-1 系统功能结构图3.2 数据库设计从数据库管理系统的角度来看,数据库系统是一个三级模式结构,但数据库的这种模式结构对最终用户和程序员是透明的,他们见到的仅是数据库的外模式和应用程序。从最终用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构和客户/服务器结构2。由数据项可以设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动,了解了数据项和数据结构之后便可以对本系统进行数据库表关系图设计,数据库表关系图如图3-2所示。图3-2 数据库关系图(1)T_Module(模块信息表)模块信息表用来保存模块的详细信息。表T_Module的结构见表3-1。表3-1 T_Module的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230模块名称SNVARCHAR210模块编码URLVARCHAR230模块入口地址ORDERNONUMBER5排序编码PARENTIDNUMBER10父模块ID(2)T_Organization(机构信息表)机构信息表用来保存机构的基本信息。表T_Organization的结构见表3-2。表3-2 T_Organization的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230机构名称PIDNUMBER10父机构IDSNVARCHAR210机构编码DESCRIPTIONVARCHAR2255机构描述(3)T_Person(人员信息表)人员表用来保存公司人员基本信息。表T_Person的结构见表3-3。表3-3 T_Person的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230人员姓名SEXCHAR1人员性别ADDRESSVARCHAR2255地址DUTYVARCHAR230职务PHONEVARCHAR230电话DESCRIPTIONVARCHAR2255介绍ORGNUMBER10所属机构BIRTHDAYDATE生日(4)T_User(用户信息表)用户信息表用来保存系统用户登录信息。表T_User的结构见表3-4。表3-4 T_User的结构字段名数据类型长度是否主键描述IDNUMBER10是IDUSERNAMEVARCHAR230用户名PASSWORDVARCHAR230密码CREATETIMEDATE创建时间EXPIRETIMEDATE失效时间PERSONNUMBER10人员ID(5)T_Role(角色信息表)角色信息表用来保存系统角色信息。表T_Role 的结构见表3-5。表3-5 T_Role的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230角色名称(6)T_UsersRoles(用户角色列表)用户角色列表用来保存用户的角色信息。表T_UsersRoles 的结构见表3-6。表3-6 T_UsersRoles 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDROLENUMBER10角色IDUSERSNUMBER10用户IDORDERNONUMBER5排序号(7)T_ACL(权限控制访问列表)权限控制访问列表用来保存用户和角色的模块功能权限信息。表T_ACL的结构见表3-7。表3-7 T_ACL 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDPRINCIPALTYPEVARCHAR210主体类型PRINCIPALIDNUMBER10主体标识续表(3-7)MODULEIDNUMBER10资源标识ACLSTATENUMBER4授权状态ACLTRISTATENUMBER4授权状态掩码(8)T_WorkFlow(工作流信息表)工作流信息表用来保存定义的工作流信息。表T_WorkFlow 的结构见表3-8。表3-8 T_WorkFlow 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230流程名称PROCESSDEFPATHVARCHAR2255流程定义文件路径PROCESSIMAGEPATHVARCHAR2255流程定义图片路径(9)T_FlowForm(表单流程表)表单流程表用来保存每个表单所对应的流程信息。表T_FlowForm 的结构见表3-9。表3-9 T_FlowForm 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDWORKFLOWNUMBER10表单对应的工作流IDTEMPLATEVARCHAR2r200对应的表单模板(10)T_FormField(表单输入域表)表单输入域表用来保存表单输入域的信息。表T_FormField 的结构见表3-10。表3-10 T_FormField 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDFIELDLABELVARCHAR230表单域名FIELDNAMEVARCHAR230表单域显示名FIELDINPUTNUMBER10输入域IDFIELDTYPENUMBER10输入域类型IDFLOWFORMIDNUMBER10表单流程ID(11)T_FieldInput(表单输入域表)表单输入域表用来表单输入域信息。表T_FieldInput 的结构见表3-11。表3-11 T_FieldInput 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230表单输入域名TEMPLATEVARCHAR230表单输入域模板(12)T_FieldItem(表单输入域项目表)表单输入域项目表用来保存表单输入域所含项目的信息。表T_FieldItem 的结构见表3-12。表3-12 T_FieldItem 的结构字段名数据类型长度是否主键描述FIELDIDNUMBER10是表单输入域IDLABELVARCHAR230输入域标签名VALUEVARCHAR250输入域项目值ITEMINDEXNUMBER10输入域项目序号(13)T_FieldType(表单输入域类型表)表单输入域类型表用来表单输入域的类型信息。表T_FieldType 的结构见表3-13。表3-13 T_FieldType 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDNAMEVARCHAR230输入域类型名TYPEVARCHAR230输入域类型(14)T_Document(公文表)公文表用来保存公文的基本信息。表T_Document 的结构见表3-14表3-14 T_Document 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDTITLEVARCHAR230公文标题PATHVARCHAR2100公文存储路径CREATETIMEDATE公文创建时间续表(3-14)DESCRIPTIONVARCHAR2200公文描述STATUSVARCHAR2100公文状态CREATORNUMBER10公文创建者WORKFLOWNUMBER10公文所走流程PROCESSINSTANCEIDNUMBER19公文所走流程实例ID(15)T_Document_Properties(公文属性表)公文属性表用来保存公文自定义输入项类型信息。表T_Document_Properties的结构见表3-15。表3-15 T_Document_Properties 的结构字段名数据类型长度是否主键描述DOCUMENTIDNUMBER10是公文IDJAVA_LANG_STRINGVARCHAR230Java String类型JAVA_UTIL_DATEDATEJava Date类型JAVA_LANG_INTEGERNUMBER10Java Integer类型JAVA_LANG_LONGNUMBER19Java Long类型JAVA_IO_FILELONG RAWJava File类型PROPERTYNAMEVARCHAR30属性名(16)T_ApproveInfo(审批信息表)审批信息表用来保存公文审批信息。表T_ApproveInfo 的结构见表3-16。表3-16 T_ApproveInfo 的结构字段名数据类型长度是否主键描述IDNUMBER10是IDAPPROVETIMEDATE审批时间APPROVERNUMBER10审批人IDAPPROVEINFOVARCHAR2500审批信息DOCUMENTNUMBER10所属公文ID3.3 开发及运行环境CPU:P41.8GHz;内存:256MB以上;操作系统:Windows XP/Windows 2000;开发工具包:JDK Version1.6.2;数据库:Oracle10G;JSP服务器:Tomcat6.0.20;浏览器:IE6.0以上;分辨率:1024*800像素3.4 本章小结本章主要进行了系统的体系结构设计,数据库的设计,详细描述了数据库中各个表格的字段、数据类型、长度等结构,并对客户管理系统的开发及运行环境进行了说明。第4章 系统详细设计与实现4.1 登陆模块登录模块中用户正确输入账号和密码之后,系统可以依据用户权限设置进入主界面后能够操作的模块功能。登录界面如图4-1所示。图4-1登录界面4.2 主界面系统主界面如图4-2所示。图4-2主界面4.3 组织管理模块4.3.1 主要功能和程序流程该模块主要包含机构管理和人员管理两个子模块。机构管理主要是对公司的组织机构进行管理,人员管理主要是对公司各个人员信息进行管理,同时每个人员又属于某个特定的机构。组织管理的类图设计如图4-3所示。图4-3组织管理类图4.3.2 操作流程及界面在选择一个用户登录后,系统根据此用户拥有的角色和个人权限来判断该用户是否有该模块的使用权限,如果有添加、删除、编辑等权限才可使用。机构管理界面如图4-4所示。图4-4机构管理界面机构管理是一个树形结构,点击机构名称,若该机构下存在子机构,则会显示其子机构信息。点击返回可以查看机构的父机构信息。可以点击添加机构信息添加机构信息。添加界面如图4-5所示。4-5机构管理添加界面人员管理如图4-6所示。图4-6人员管理界面点击添加人员信息可以添加人员信息。人员属于某个特定的机构。人员添加界面如图4-7所示。图4-7人员管理添加界面4.4 权限管理模块4.4.1 主要功能及程序流程在权限管理中,权限控制围绕“谁可以做什么,以及如何做”这三元组来扩展。用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户。权限的意思就是对某个资源的某个操作,现在规定:所谓资源,即系统的模块。所谓操作,包括:增加、删除、修改、查询等操作。权限管理系统的总体功能分为:授权与认证。授权,指将权限授予角色或用户。如果用户A拥有角色B,角色C,那么,缺省的情况下,用户A将拥有被分配给角色B和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限);如果用户拥有多个角色,那么用户的权限是这些角色权限的合集。如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里有可能拥有不同的优先级)。除了可以对角色进行授权外,也可以针对用户进行授权,也就是说,将权限授予用户。针对某个资源的所有操作,我们可以设置这些权限对用户来说是“继承”或“不继承”。其中继承:意思是这些权限将使其(即用户)所拥有的角色的权限,而不使用其(即用户)单独设置的权限;不继承:意思是这些权限将使用其单独设置的权限,而不使用其所拥有的角色的权限。认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问。在用户访问的时候,需要进行即时的判断(是否有权限访问)。应该提供查询的功能,可以查询某个用户所拥有的所有权限。总体上,可分为模块管理、角色管理和用户管理模块。其实针对权限管理有很多种解决方案,如RBAC基于角色的访问权限控制等。而针对权限管理的特定,和OA系统的特性,对在基于RBAC的基础上增加可单独对用户授权的方式,演变成ACL权限控制访问列表的形式来做权限管理。ACL设计不仅可以针对用户角色授权,还可以单独针对用户进行授权。ACL权限控制访问列表的设计类图如图4-8所示。图4-8 ACL权限控制访问列表设计类图在图4-8中,Module表示一个模块,对一个模块进行权限访问控制。ACL属性:主体类型:User或Role;主体标识:User或Role的id;资源标识:module的id,若在ACL中建立module属性,这样的强关联会使module查询在缓存中,占用大量内存资源。所以用id进行弱关联;授权状态属性:一个int有32位,用后四位表示CRUD操作,位的取值1或0表示允许或不允许。规定后四位每位代表的意思,如:0(D)0(U)0(R)0(C)若对“张三”设置CRUD操作,如果用不同的属性来表示的话,一旦这种操作变化的话,则要去修改数据库字段,或者其他相关的;授权状态的掩码:若针对用户授权,而用户有继承的概念,所以需要另一个状态位。如用户拥有一个角色可以对一个资源进行操作,而这个用户也可以对这个资源进行操作,那么该用角色的授权还是用用户的授权呢?所以我们需要一个继承或者不继承的概念。多加一个状态位(授权状态的掩码):(简单的继承,不考虑每种操作的继承)用全1表示继承,全0表示不继承。全1就是-1,全0就是0,所以这是一个int。相当于第三种授权状态(允许,不允许,继承)。Permission是通过授权状态掩码体现出来的。4.4.2 操作流程及界面 通该模块主要包含模块管理、角色管理、用户管理三大子模块。通过这三个子模块实现对权限访问的控制。模块管理界面如图4-9所示。图4-9 模块管理界面模块管理也是一个树形结构,点击模块名称,若该模块下存在子模块,则会显示子模块信息。可以点击添加模块信息对其进行添加,点击返回查看父模块信息。而模块信息也是用户登录后界面左边导航菜单所读取的信息。角色管理界面如图4-10所示。图4-10 角色管理界面点击添加角色信息可以对角色进行添加。而点击角色授权可以真的角色进行相应模块的授权,角色授权界面如图4-11所示。图4-11 角色授权界面若要对某个模块进行授权是,可直接选择权限CRUD即可,点击启用则授权才生效。用户管理界面如图4-12所示。图4-12 用户管理界面在点击用户管理系统会自动查出人员相关信息,如果该人员信息没有分配账号需限分配账号,分配账号的界面如图4-13所示。图图4-13 分配用户账号界面分配完账号后才可以对用户进行分配角色和授权。点击分配角色可以看到用户所拥有的角色,界面如图4-14所示。图4-14 查看用户已有角色界面点击给用户分配角色可以对用户进行角色分配,分配角色界面如图4-15所示。图4-15 分配用户角色界面4.5 工作流程模块4.5.1 主要功能及程序流程工作流程分为流程管理和表单定义两个字模块。工作流程主要是针对公文的流转。文档流转事实上是对工作流以及工作流中的文档进行管理,对于大多数企业来说,核心的管理就是工作流和文档的管理。一般的企业都会有很多流程,比如:请假流程,报销流程,收文/发文流程。其中收文:处理收到上级部门及其它部门的公文;发文:上级及有关部门需协调和解决的问题进行一些列的流程。流程的本质,就是很多人在一起完成一件事情,流程可能会进过不同的中间环节,在中间环节上,由相关人员进行处理,所有流程中间环节的处理过程,需要进行记录。在做流程这方面,可以用Java的开源框架JBPM(java Business Process Management)来实现。JBPM简要过程:定义流程(利用JPDL);部署流程(部署到数据库);创建公文并与流程实例绑定;可通过JBPM的接口,触发流程向下流动;可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表);可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动);如此,直到结束。JBPM是根据UML中的活动图为基础,把活动图持久化到数据库。流程定义基本概念的类图如图4-15所示。图4-15 流程定义类图流程执行的概念,如图4-16所示。图4-16 流程执行类图JBPM流程引擎核心调度过程调用ProcessInstance.signal()方法,其时序图如图4-17所示。图4-17 流程执行类图在在OA系统中,流程管理的用例图如图4-18所示。图4-18 流程管理用例图4.5.2 操作流程及界面工作流管理界面如图4-19所示。图4-19 工作流管理界面在通过上传流程定义文件和图片来在系统中保存一个工作流。上传成功后可以点击流程名称查看流程定义图片和文件。流程定义图片如图4-20所示,流程定义文件如图4-21所示。图4-20 流程定义图片图4-21 流程定义文件定义完工作流程之后,可以对流程进行表单定义。表单定义用于公文流转是动态表单的生成。工作流表单定义界面如图4-22所示。图4-22 工作流表单定义界定义表单域界面如图4-23所示。图4-23 定义表单界面定义完流程对应的表单域后,在添加公文,然后流转公文时,就可以看到定义的流程。4.6 公文管理模块4.6.1 主要功能及程序流程在总共可分为公文管理以及公文归档。 文档流转事实上是对工作流以及工作流中的文档进行管理,对于大多数企业来说,核心的管理就是工作流和文档的管理。 一般的企业都会有很多流程,比如:请假流程、报销流程、收文/发文流程,其中收文:处理收到上级部门及其它部门的公文。发文:上级及有关部门需协调和解决的问题进行的一系列流程。流程的本质,就是很多人在一起完成一件事情。流程可能会经过不同的中间环节,在中间环节上,由相关人员进行处理,所有流程中间环节的处理过程,需要进行记录。公文管理的用例图如图4-24所示。图4-24 公文管理用例图根添加的公文可以可以进行公文流转,公文流转的类图如图4-25所示。图4-25 公文流转类图4.6.2 操作流程及界面点击公文维护后,系统会查出当前用户的公文信息,用户可以选择我的公文、待审公文、已审公文等进行查看。公文维护界面如图4-26所示。图4-26 公文流转类图在在其主界面上,显示由当前登陆人员创建的所有公文。可以在我的公文、待审核公文、已审核公文之间切换。公文的添加,先选择公文要走的流程,如图4-27所示。图4-27 选择公文流程点击其中一个公文形式(流程),打开此流程的公文添加界面,如图4-28所示。图4-28 添加公文信息重要的一点是,可以选择流程!这些流程都是通过设计器或编写流程文件的方法创建的。添加完成后,公文管理主界面如图4-29所示。图4-29 公文管理主界面公文的删除:用户可以对公文执行删除操作;公文的流转:可以点击提交操作,将公文提交流程。用户只能对属于自己的公文(自己创建的公文)进行操作,在公文进入流程之后,不再允许用户对公文执行修改和删除操作,在公文流转结束以后,用户可以对公文设置成归档状态,用户登录系统之后,可以看到自己的待审批公文列表。在我的公文视图里,可以将这些公文进行提交,即提交到流程。打开提交界面,如图4-30所示。图4-30 选择公文提交的下一步选择下一个步骤进行提交操作,提交完成后,在公文主界面上,不能再次对公文执行提交和删除等操作,如图4-31所示。图4-31 公文管理主界面如果此时在流程中下一个节点的用户登陆,便可以在“带审批文档”视图中看到流到此人的文档。下面是一个带审核公文列表,如图4-32所示。图4-32 待审公文主界面执行审批操作,如图4-33所示。图4-33 公文审批界面点击保存审核信息之后,可以执行提交操作。当然,也可以再次点击审核操作,这时候,需要打开界面,更改审核意见!提交之后,根据相应的选择,公文将流到相应的人员那里,依次下去,直到流程的结束!这就是公文管理主要过程!在公文管理主界面上,可以点击“下载”,下载附件文档,以便查看详细内容;或者点击“查看审批历史”,可以查看相关文档的审批记录。一旦文档经过审批并提交之后,在“待审批文档”列表视图中就会消失,但是在“已审批文档”中,却需要能够找到这些已被审批过的文档记录!4.7 本章小结本章对系统四大模块:组织管理、权限管理、工作流程、公文管理的程序流程设计、界面及主要代码进行了说明。第5章 系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论