




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中小企业办公自动化系统的设计与实现毕业论文目录1 前言12 系统开发背景22.1选题目的及意义22.2国内外现状及发展趋势23 系统开发的技术基础43.1 Freemarker技术43.2 . Myeclipse概述43.3 J2EE技术53.3.1 J2EE简介53.3.2 S.S.H框架三大框架技术53.4 MySQL概述63.5 JBPM技术74 系统需求分析84.1系统简介84.2系统功能需求84.3系统角色权限需求94.4系统用例模型104.5 开发环境需求104.5.1系统开发硬件需求104.5.2系统开发软件需求104.6 可行性分析114.6.1 技术可行性114.6.2 软件开发可行性115 系统概要设计125.1 系统功能模块划分125.2 系统流程图125.3 数据库设计135.3.1数据库需求分析135.3.2数据库概念结构设计155.3.3数据库逻辑结构设计155.4系统架构设计205.5实现系统Web层215.5.1配置Struts2的核心Filter215.5.2 自定义标签设计225.5.3 Freemarker模板设计245.6持久层设计255.6.1 Hibernate PO的设计255.6.2 SessionFactory数据库的操纵管理265.7系统DAO层设计285.7.1系统DAO组件285.7.2 DAO组件的配置285.8 JBPM的定义和使用295.8.1 JBPM流程定义概念295.8.2 JBPM与Spring/Hibernate的整合305.8.3 JBPM流程设计315.8.4 JBPM工作流的使用326 系统功能详细设计与实现326.1用户登录模块设计326.2 个人办公模块设计376.3公文管理模块设计416.4公告管理模块456.5行政办公模块476.6消息管理模块496.7工作流程管理526.8组织管理556.9权限管理模块597系统的调试与测试697.1测试概述697.1.1软件测试的目的697.1.2软件测试的任务697.1.3测试环境697.2 单元测试707.2.1黑盒测试707.2.2白盒测试70结束语72参考文献73致 谢741 前言计算机经前所未有的速度在全世界普及,人们深切的感受到了计算机在生活和工作中的作用越来越重要。现在,计算机技术渗透到人类社会生活的各个领域,越来越多的职业需要具有计算机的应用。计算机成为职业的需要,也是发展的需要。中小企业办公自动化管理系统(OA),是伴随着Internet技术在各个领域的广泛应用,和各行各业企业信息化建设步伐的加快应运而生。当代社会已经进入信息时代,信息技术革命使社会的各个领域都发生了翻天覆地的变化,每个企业都必须紧跟时代的步伐,加强企业竞争力和提升现代化企业的管理能力,以适应整个社会的发展变化。企业对信息需求的增长,使计算机、网络技术已经渗透到企业的日常工作中。传统的企业内信息的交流方式早已不能满足企业对大量信息的快速传递与处理的需求,中小企业办公自动化管理系统的应用满足了企业的办公网络化、自动化的管理需求,提高了企业内部的管理水平,进而全面提升了企业在市场竞争中的综合竞争力。计算技术应用于企业日常办公带来很多好处,本系统的设计目的就是通过计算机技术设计出一个高效的自动化办公系统,帮助企业提高办公效率,方便用户处理日常办公。本系统采用J2EE为开发平台,数据库采用MYSQL 5.0进行设计开发,工作流引擎采用JBPM,预期结果达到了要求。2 系统开发背景2.1选题目的及意义在日常办公中,通常会遇到许多常用的数据,比如邮件地址、日程助手、日常记事等,这些数据通常凌乱不堪,在需要时不知道存放在何处,从而影响工作效率。因此,办公自动化管理系统应用而生。但是现在很多系统缺乏“柔性”,无法满足不同企业的需要,系统的重复开发消耗了大量人力财力。本系统通过灵活的自定义设计,具有良好的扩展性,能够满足不同企业的需求。计算机的出现给办公室职员带来的便利,但是对现代的办公自动化而言,其目的己经不局限于减轻员工的工作量,而是要将员工从繁琐的事务性工作中解放出来,用更多的精力去关注最重要的事情,从而提高企业的效率,增强企业的综合竞争能力。在这种办公模式下,企业的组织结构能够得到简化,各个部门在信息共享的基础上进行协作,便于明确各个部门甚至每个员工的责任,而决策层可以迅速综合来自各个方面的信息,并以此为依据制定企业的战略决策。从这个意义上讲,在市场竞争日趋白热化的今天,办公自动化己经不再是一种手段、一种工具,而成为决定企业生存发展的命脉。在传统的办公模式中,由于缺少重要的信息传递和工作流程环节,办公的各个部门之间无法实现信息共享和信息集成,从而难以实现各个部门之间的高效协作。2.2国内外现状及发展趋势办公自动化于50年代在美国和日本首先兴起,最初只是具有电子数据处理(EDP)的簿记功能,60年代被管理信息系统(MIS)取代,直到70年代后期才形成涉及多种技术的新型综合学科一办公自动化(OA)。80年代,国外办公自动化得到了飞速发展,许多著名的计算机软硬件公司都跻身于这一巨大的市场。进入90年代以来,办公自动化在世界主要发达国家得到蓬勃发展。我国办公自动化是80年代中期才发展起来的。1985年全国召开了第一次办公自动化规划会议,对我国办公自动化建设进行了规划。1986年5月在国务院电子振兴领导小组办公自动化专家组第一次专家会议上,定义了办公自动化系统功能层次和结构模式。随后国务院率先开发了“中南海办公自动化系统”。近年来,伴随着企业信息化发展的浪潮汹涌,组织流程的固化、改进、知识的积累、应用、技术的创新、提升,办公自动化系统也在不断求新求变,最终办公自动化系统将会脱胎换骨,全新的智能型自动化的办公系统将成为未来的发展方向,将更关注组织的决策效率,提供决策支持、知识挖掘、商业智能等全面系统服务。3 系统开发的技术基础3.1 Freemarker技术FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。3.2 . Myeclipse概述MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:1 JavaEE模型 2 WEB开发工具 3 EJB开发工具 4 应用程序服务器的连接器 5 JavaEE项目部署服务 6 数据库服务 7 MyEclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。3.3 J2EE技术3.3.1 J2EE简介J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。 J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。3.3.2 S.S.H框架三大框架技术S.S.H框架是J2EE应用中struts+spring+hibernate三大免费开源框架的结合使用,主要作用是提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等。(1)Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。通常在WEB设计中充当持久化层。(2)Struts技术Struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。主要用在WEB设计中和JSP一起充当表现层。(3)Spring技术Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。通常在WEB设计中充当业务逻辑层,完成对表现层和数据持久层的数据交换。3.4 MySQL概述MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,甚至大型应用都能够胜任。MySQL具有以下优点:首先是速度。对于MySQL来说,速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL 4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。MySQL更适宜在Windows环境下运行。MySQL作为一个本地的Windows应用程序运行(在NT/Win2000/WinXP下,是一个服务), 在Windows运行中,MySQL更加的稳定。3.5 JBPM技术JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,它使用要遵循 LGPL(GNU Lesser General Public License )和EULA(JBoss End User License Agreement)协议。它的业务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个业务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。 JBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。4 系统需求分析4.1系统简介根据系统的需求,整个系统功能有:个人办公模块包括工作日志,日程安排,通信录管理;公文管理模块包括公文维护,公文归档;公共信息模块包括公告管理;行政办公模块包括会议管理,新增会议室;消息管理模块包括收信箱,发信箱,写信息,聊天记录;工作流程模块包括流程定义和表单定义;组织管理模块包括机构管理,人员管理;权限管理模块包括模块管理,角色管理,用户管理;系统模块管理包括了密码修改。本系统的设计目的就是通过计算机技术设计出一个高效的自动化办公系统,帮助企业提高办公效率。另外,为了适合不同用户,系统设计了灵活的自定义功能,包括:流程自定义、模块自定义、表单自定义、角色自定义、权限自定义等。4.2系统功能需求1)个人办公工作日志:该模块用作当前的登录用户添加、修改、删除和查看自己的日志安排列表;日程安排:该模块用作当前的登录用户添加、修改、删除和查看自己的日程安排列表;通信录管理:该模块用作每一个登录系统的用户来维护自己的通讯录,用户可以自由添加联系人信息;可以方便查询,修改或删除某一个联系人。2)公文管理模公文维护:公文添加,已审公文,待审公文,添加公文信息操作;公文归档:当公文流转完成一个流程后,有档案管理员归档。3)公共信息公告管理:该模块用发送公告通知,发送的公告通知可以被所有用户查看。4)行政办公模会议申请:申请会议室,查看会议室的申请情况;会议管理:查看,删除和新建会议室。5)消息管理发信箱:显示用户发出的信息;收信箱:显示用户收到的信息;写信息:用户可在此编写信息,发送信息给相应的联系人;聊天记录:查看用户与其他联系人的聊天记录。6)工作流程管理流程定义:该模块提供给具有相应权限的用户进行流程的定义;表单定义:可以实现表单模板的动态定义,不同的流程,定义对应的表单。7)组织管理机构管理:可查看,添加和删除公司机构(只支持增加一,二级机构);人员管理:可查看,添加公司员工信息;8)权限管理模块管理:可查看,添加和删除系统模块(只支持增加一,二级模块);角色管理:可查看,添加和删除角色,还可以对角色进行授权;用户管理:可查看用户信息,删除和修改用户账号,分配角色和授权4.3系统角色权限需求本系统的权限管理比较灵活,可以根据用户需求创建新的角色,并且可以给角色和用户授予权限,随时可以根据需求变更权限。初始状态系统的用户角色定义如表4-1所示:表4-1 用户角色及权限表角色名称操作权限普通员工个人办公,公文管理,公共信息,行政办公,消息管理系统管理员个人办公,公文管理,公共信息,行政办公,消息管理,工作流程,组织管理,权限管理,系统管理部门领导个人办公,公文管理,公共信息,行政办公,消息管理,工作流程,组织管理,权限管理,系统管理总经理个人办公,公文管理,公共信息,行政办公,消息管理,工作流程,组织管理,权限管理,系统管理档案管理员个人办公,公文管理,消息管理4.4系统用例模型以下是本系统初始时各个角色的用例图:图4-1 系统用例图4.5 开发环境需求4.5.1系统开发硬件需求CPU:P4 2GHz以上内存:512M以上硬盘:40G以上4.5.2系统开发软件需求操作系统:Windows 2000/Windows Server 2003/Windows XP或以上版本开发技术:Struts2+Spring2.x+Hibernate3开发语言:java开发工具:Myeclipse 9.0数据库:MySQL5.0服务器:Tomcat 6.04.6 可行性分析4.6.1 技术可行性本系统采用JavaWeb开发技术,以Strurs+Hibernate+Spring三大框架为开发平台,用MySQL建立数据库,工作流采用JPBM工作流引擎,目前为止,该技术已经比较成熟,能够满足系统需求,而且具有很好的安全性。4.6.2 软件开发可行性办公自动化是信息社会的一种新型办公方式,它将现代化办公和计算机网络功能结合。随着信息技术的发展,办公自动化在行政企事业单位的管理、经营活动中发挥着日益重要的作用。通过网络,组织机构内部的员工可跨越时间、地点协同工作。通过办公自动化系统所实施的交换式网络应用,使信息的传递更加快捷和方便,从而极大地扩展了管理手段,实现了运营的高效。5 系统概要设计5.1 系统功能模块划分根据系统的需求与系统功能的分析,可以把系统总体分为:个人办公,公文管理,公告管理,消息管理,行政办公,工作流程管理,组织管理,权限管理等几大功能模块,如图 5-1所示。办公自动化系统公文管理公共信息消息管理行政管理工作流管理通讯录管理公文维护公文归档公告管理写信息发信箱收信箱权限管理组织管理日程计划聊天记录会议室申请会议室管理表单定义流程定义模块管理角色管理用户管理人员管理机构管理个人办公工作日志图5-1 办公自动化系统功能设计图5.2 系统流程图用户使用账号和密码登录时,系统将根据用户所属角色的权限或者根据用户所具有的权限进行判断,自动生成相应的菜单。用户登录后就能够使用相应功能,以下是系统生成菜单的流程图:是否开始后台登陆是否存在用户?判断角色查找角色权限生成相关菜单结束图5-2 菜单生成流程图5.3 数据库设计数据库在网站中占有非常重要的地位,数据库结构设计的好坏将直接对应用网站的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储效率,保证数据的完整和一致。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的及将来可能添加的需求。数据库设计一般包括如下几个步骤:(1)数据库需求分析。(2)数据库概念结构设计。(3)数据库逻辑结构设计。5.3.1数据库需求分析数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。以下是本系统相关实体以及实体属性:(1)users实体属性(用户信息):用户ID号,用户账号,密码,创建时间,失效时间;(2)person实体属性(用户详细信息):用户ID号,用户名,性别,住址,职位,联系电话,详细信息;(3)notice实体属性(公告):公告ID,公告主题,公告内容,发布时间;(4)schedule实体属性(日程):日程ID,计划完成时间,计划内容,创建时间;(5)worklog实体属性(工作日志):日志ID, 日志主题,日志内容,创建时间;(6)sms实体属性(短消息):消息ID,发送人,消息内容,发送时间,是否已读;(7) address实体属性(通讯录):通讯录ID,联系人姓名,性别,联系电话,邮箱,QQ号码,所在公司,通讯地址,邮编;(8)orgnization实体属性(机构):机构ID,机构名称,机构描述,父子结构描述;(9)role实体属性(角色):角色ID,角色名称;(10)meetingroom实体属性(会议室):会议室ID,名称,所在位置,详细描述;(11)meetingroomapply实体属性(会议室申请):申请ID,申请使用时间,结束时间,申请理由,申请状态;(12)module实体属性(系统模块):模块ID,名称,英文名称,对应地址,排序号;(13)workflow实体属性(工作流程):工作流ID,名称,流程定义文件,流程图片;(14)acl实体属性(系统授权):授权ID,授权状态,是否继承;(15)document实体属性(公文):公文ID,公文标题,描述,公文内容,创建时间,流程实例,当前状态信息,公文类型;(16)approveinfo实体属性(公文审批):审批ID,审批意见,审批时间;(17)fieldinput实体属性(表单输入类型):ID,页面表单元素名称,表单模板名;(18)formfield实体属性(表单域):表单域ID,表单域标签,表单域名称,(19)fieldtype实体属性(表单类型):表单类型ID,类名称,类型;(20)flowform实体属性(流程表单):流程表单ID,表单模板名;5.3.2数据库概念结构设计根据以上的数据库需求分析,可以得出系统实体间的关系图(E-R图):图5-3 数据库E-R图5.3.3数据库逻辑结构设计将概念模型转化成逻辑模型,得到以下数据表:(1)users表(用户信息表)记录管理登陆用户的简单信息。表5-3-3-1用户简单信息表字段注释字段名类型表达式用户ID号(主键)idint自增1用户名usernamevarchar密码passwordvarchar创建时间createTimedatetime失效时间expireTimedatetime用户详细信息(外键)personidint(2)person表(用户详细信息表)记录后登陆用户的详细信息。表5-3-3-2用户详细信息表字段注释字段名类型表达式用户ID号(主键)idint自增1部门ID(外键)orgint用户名namevarchar性别sexvarchar住址addressvarchar职位dutyvarchar联系电话phonevarchar详细信息descriptionvarchar(3)notice表(公告表)记录企业的公告信息。表5-3-3-3公告信息表字段注释字段名类型表达式公告ID(主键)idint自增1用户ID(外键)personidint公告主题titlevarchar公告内容contentvarchar发布时间sendtimedatetime(4)schedule表(日程表)记录员工的日程安排信息。表5-3-3-4 日程表字段注释字段名类型表达式ID(主键)idint自增1用户ID(外键)personidint计划完成时间plantimedatetime计划内容planvarchar创建时间logtimedatetime(5)worklog表(工作日志表)记录员工的工作日志信息。表5-3-3-5 工作日志表字段注释字段名类型表达式日志ID(主键)idint自增1用户ID(外键)personidint日志主题titlevarchar日志内容descriptionvarchar创建时间logtimedatetime(6)sms表(短消息表)记录员工的聊天信息。表5-3-3-6 短消息表字段注释字段名类型表达式消息ID(主键)idint自增1接收用户ID(外键)personidint发送人sendervarchar消息内容messagevarchar发送时间sendtimedatetime是否已读isReadbit默认未读(7) address表(通讯录表)记录用户的通讯录信息。表5-3-3-7 通讯录表字段注释字段名类型表达式ID(主键)idint自增1用户ID(外键)personidint联系人姓名namevarchar性别sexbit默认为男联系电话mobilevarchar电子邮件emailvarcharQQ号码qqvarchar所在公司companyvarchar家庭住址addressvarchar邮编postcodevarchar(8)orgnization表(机构表)记录企业组织机构信息。表5-3-3-8 组织机构表字段注释字段名类型表达式机构ID(主键)idint自增1父机构ID(外键)pidint机构名称namevarchar机构描述descriptionvarchar结构描述snvarchar(9)role表(角色表)记录企业权限管理角色信息。表5-3-3-9 角色表字段注释字段名类型表达式角色ID(主键)idint自增1角色名称namevarchar(10)usersroles表(用户角色表)记录用户对应的角色。表5-3-3-10 用户角色表字段注释字段名类型表达式ID(主键)idint自增1用户ID(外键)userint角色ID(外键)roleint角色在用户优先级ordernoint(11)meetingroom表(会议室表)记录企业会议室信息。表5-3-3-11 会议室表字段注释字段名类型表达式ID(主键)idint自增1名称snvarchar所在位置positionvarchar详细描述descriptionvarchar(12)meetingroomapply表(会议室申请表)记录企业会议室申请信息。表5-3-3-12 会议室申请表字段注释字段名类型表达式ID(主键)idint自增1会议室ID(外键)roomvarchar开始使用时间beginDatedatetime结束时间endDatedatetime申请理由applyReasonvarchar状态statusbit0申请,1占用(13)module表(系统模块表)记录系统包含的模块信息。表5-3-3-13 模块表字段注释字段名类型表达式ID(主键)idint自增1父模块ID(外键)parentidint名称namevarchar字符串表示snvarchar对应地址urldatetime排序号ordernoint(14)workflow(工作流程表)记录系统工作流程信息。表5-3-3-14 工作流程表字段注释字段名类型表达式ID(主键)idint自增1名称namevarchar流程定义文件processDefinitionlongblob流程定义图片processImagelongblob(15)acl表(系统授权表)记录系统授权的信息。表5-3-3-15 系统授权表字段注释字段名类型表达式ID(主键)idint自增1授权类型principalTypevarchar用户或角色ID(外键)principalSnint资源ID(外键)resourceSnint授权状态aclStateint是否继承aclTriStateint0不继承,1继承 (16) document表(公文表)记录企业公文信息。表5-3-3-16公文表字段注释字段名类型表达式(主键)idint自增1公文标题titlevarchar描述descriptionvarchar公文内容contentlongblob创建人(外键)creatorint创建时间createTimedatetime工作流(外键)workflowint流程实例processInstanceIdint当前状态信息statusvarchar(17) document_properties表(文档类型表)公文文档类型信息。表5-3-3-17文档类型表字段注释字段名类型表达式(主键)documentIdint自增1String类型java_lang_StringvarcharInteger类型java_lang_Integerintio_File类型java_io_Filelongblob文件属性名propertyNamevarchar(18)approveinfo表(公文审批表)记录公文审批的信息。表5-3-3-18 公文审批表字段注释字段名类型表达式ID(主键)idint自增1审批意见commentvarchar审批时间approveTimedatetime公文ID(外键)documentint审批人ID(外键)approverint(19)fieldinput表(表单输入类型表)记录表单输入类型的信息。表5-3-3-19 表单输入类型表字段注释字段名类型表达式ID(主键)idint自增1表单元素名namevarchar表单模板templatevarchar(20)fielditem表(下拉框条目表)记录表单输入的下拉框类型的信息。表5-3-3-20 下拉框条目表字段注释字段名类型表达式表单域ID(主键)fieldIdint自增1名称labelvarchar对应的值valuevarchar列表元素标识itemIndexint(21)formfield表(表单域表)记录表单域的信息。表5-3-3-21 表单域表字段注释字段名类型表达式表单域ID(主键)idint自增1表单域标签fieldLabelvarchar表单域名称fieldNamevarchar表单域输入形式ID(外键)fieldInputint表单域类型ID(外键)fieldTypeint流程表单ID(外键)flowFormIdint(22)fieldtype表(表单类型表)记录表单输入的下拉框类型的信息。表5-3-3-22 表单类型表字段注释字段名类型表达式表单域ID(主键)idint自增1名称namevarchar类型typevarchar(23)flowform表(流程表单表)记录表单输入的下拉框类型的信息。表5-3-3-23 流程表单表字段注释字段名类型表达式表单域ID(主键)idint自增1工作流ID(外键)workflowint表单模板templatevarchar5.4系统架构设计目前流行的轻量级javaEE应用的架构比较统一,通常会使用Spring作为核心,向上整合MVC框架,向下整合ORM框架。本系统采用Java EE的三层架构,分为表现层、业务逻辑层和数据服务层。三层体系将业务规则、数据访问等工作放到中间层处理,客户端不直接与数据库交互,而是通过控制器与中间层建立连接,再由中间层与数据库交互。MVC模式里面的“C”(Controller),负责表现层与业务逻辑层的交互,调用业务逻辑层,并将业务逻辑层数据返回给表现层来显示,MVC框架采用流行的Struts2,表现层采用JSP实现。DAO层(数据访问层),负责与持久化对象交互,封装了数据的增、删、改、查原子操作。PO层(持久化对象层),通过实体/关系映射工具将关系型数据库的数据映射成对象,实现以面向对象方式操作数据库,本系统采用Hibernate作为O/R Mapping框架。Service层(业务逻辑层),负责实现业务逻辑,对DAO对象进行正面模式的封装。Struts2提供了良好的MVC模式,所有的用户请求都由Struts2的Actiont负责拦截,然后通过Spring提供的依赖注入,自动注入Spring容器中的业务逻辑组件,调用业务逻辑组件方法来处理用户请求。系统实现的总体架构如图5-4所示。图5-4 系统总体架构图5.5实现系统控制层MVC中的“C”层通常就是对应系统的MVC结构的控制器层,本系统使用Struts2作为MVC框架,则控制器都是由Struts2的Action充当,这些Action通过调用系统的业务逻辑方法来处理用户请求,并将处理结果放入ValueStack中,在JSP页面中通过Struts2的标签库来输出这些处理结果。5.5.1配置Struts2的核心FilterStruts2使用核心的FilterDispatcher来过滤用户请求,一旦FitlerDisPatcher拦截到用户请求之后,用户请求将直接转入Struts2体系内。对于普通JSP页面,也必须先通过Struts2的过滤,这样就保证了用户无法直接浏览任何页面,从而提供更好的安全性。为了让用户请求进入Struts2体系内,必须在web.xml文件中配置FilterDispatcher过滤器。在web.xml文件中配置该过滤器的配置片段如下代码: struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2/*5.5.2 自定义标签设计为了方便进行数据访问和输出,保证JSP页面的简洁和可读性,同时为了跟好实现页面和逻辑控制的分离,这本系统开发了几个自定义的标签,以满足以上的要求。my.tdl标签的主要实现代码:1.1 my /oa/myfunctions hasPermission com.lmning.SecurityFunctions boolean hasPermission(int, java.lang.String,int) form com.lmning.DynaFormFunction java.lang.String form(int) holiday com.lmning.UtilFunction boolean isHoliday(int,int,int) splitApply com.lmning.UtilFunction java.util.ListsplitApply(com.lmning.model.MeetingRoomApply)实现标签的函数主要代码:SecurityFunctions.javapublic class SecurityFunctions private static ACLDao aclDao;public static boolean hasPermission(int userId,String resourceSn,int permission)System.out.println(SecurityFunctions();return aclDao.hasPermissionByreourceSn(userId, resourceSn, permission);public void setAclDao(ACLDao aclDao) SecurityFunctions.aclDao = aclDao;DynaFormFunction.javapublic class DynaFormFunction private static FormManager formManager;private static String defaultTemplate = document_form.ftl;public static String form(int workflowId)try /查找表单定义FlowForm form = formManager.findForm(workflowId);if(form = null)return null;Configuration cfg = FreemarkerManager.getConfiguration();Template template = null;if(form.getTemplate(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三级英语第一单元测试题及答案
- 预应力钢筋张拉技术方案
- 离异家庭财产分割中人寿保险利益分配协议
- 离婚协议中财产分割及子女监护权变更申请书
- 夫妻共同债务清算及财产分割协议范本
- 婚姻关系解除及子女抚养权移交协议范本3
- 离婚案件第二次财产分割执行及变更合同
- 离婚协议书模板及离婚后共同财产分割及子女抚养协议
- 无人驾驶汽车技术研发保密与道路测试协议
- 高级技术岗位员工全面聘用与责任履行合同
- 电费代付款协议书
- 2025年(第一季度)电网工程设备材料信息参考价(加密)
- 贵金属废料提炼合同协议
- 中国传统木工工艺课件
- 有限空间作业培训内容
- 淋巴瘤PET-CT及PET-MR显像临床应用指南(2025版)解读课件
- 模具部的组建和管理
- 高中生纪律教育主题班会
- 《中国近现代史纲要》课程教学大纲
- 初中班会课件《突围-目标成就未来》
- 康复专转本试题及答案
评论
0/150
提交评论