2022年OA系统设计 .pdf

上传人:Che****ry 文档编号:27254518 上传时间:2022-07-23 格式:PDF 页数:14 大小:1.39MB
返回 下载 相关 举报
2022年OA系统设计 .pdf_第1页
第1页 / 共14页
2022年OA系统设计 .pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2022年OA系统设计 .pdf》由会员分享,可在线阅读,更多相关《2022年OA系统设计 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、OA系统设计1.整体说明1.1. 项目说明1.1.1.OA 概述OA是 Office Automation的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理。实现信息化、无纸化办公,可方便的生成统计报表等。OA 是 OFFICE AUTOMATION 的缩写,本意为利用技术的手段提高办公的效率,进而实现办公的自动化处理。采用Internet/Intranet技术,基于 工作流 的概念,使企业内部人员方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息采集、信息处理,为企业的管理和决策提供科学的依据。OA 软件解决企业的日常管理规范化、增

2、加企业的可控性、提高企业运转的效率的基本问题。范围涉及日常行政管理、各种事项的审批、 办公资源的管理、 多人多部门的协同办公、以及各种信息的沟通与传递。可以概括的说,OA 软件跨越了生产、销售、财务等具体的业务范畴, 更集中关注于企业日常办公的效率和可控性,是企业提高整体运转能力不可缺少的软件工具。1.1.2.本系统作用组织的核心竞争力源自单位对内外部资源的有效利用。对它们之间的关系进行协调,最大限度的发挥所有资源的作用,并用系统的观点, 在整个系统价值最大化的基础上来发挥各个资源的作用, 使资源的运作产生协同效用。因此可通过协同办公系统打造单位的核心竞争力。本协同办公系统的主要作用为:1、

3、建立内部的通信平台。2、 建立信息发布的平台。3、 文档管理的自动化。4、 工作流程的自动化。5、 行政日常事务处理。6、 安全机制的可靠性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 本系统旨在加速单位信息化进程,充分利用计算机和现代通讯手段面向单位服务。建立单位内部信息交流的快速通道,以共享信息资源。强化部门业务管理,加强各业务部门之间的交流。实现单位信息的快速上传下达,促进协同办公。 提高办公效率,为各级领导及业务人

4、员提供辅助办公和决策服务。1、 本系统将最大限度地提高办公效率和办公质量,降低管理和办公成本,改善办公环境和条件,提高办公管理和决策的自动化和科学化水平。2、 以人为中心,致力于帮助用户实现共享资源、规范流程、推动执行的目的。帮助用户节省办公费用,减少中间环节,优化业务流程,提高整体效率,促进管理进步。简单的说,有以下两点:1,利用技术的手段提高办公的效率2,信息化,可方便的生成统计报表等。1.1.3.设计原则以应用为核心, 要突出 “ 实用、 易用、简洁、稳定 ” 。既注重实效, 满足用户的现实需要,又为系统的后续升级和扩展留有余地。在技术实现上,要突出“结构清晰、实现合理、通俗易懂(简单)

5、 ” 。1.实用:满足用户现实需要,解决实际问题,做细核心功能。2.易用:使用方便,各项功能一目了然。满足用户的使用习惯,易使用、易维护、易升级。实现“傻瓜”式的操作,将实施、培训成本和周期降到最低。3.简洁:页面简洁,功能简洁,每一个元素都有存在的意义。4.稳定:从底层数据库到功能层经过严格测试,能在不同的硬件环境中长期平稳运行。1.1.4.功能说明OA是辅助办公的软件,使用 OA 与不使用OA相对比的好处是:可以用计算机管理所有的数据,并可以方便的实现统计与报表的功能。提高办公效率。(实现信息化) 。以下是一个OA系统的全部功能列表:名师资料总结 - - -精品资料欢迎下载 - - - -

6、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 说明:不是所有的OA 都有全部的功能,而是根据需求确定的。1.2. 项目实现说明1.2.1.软件开发的步骤说明需求确认概要设计详细设计编码 单元测试集成测试系统测试维护。单元测试 是由程序员自己来完成,最终受益的也是程序员自己。可以这么说, 程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试, 就是为了证明这段代码的行为和我们期望的一致。名师资料总结 - - -精品资料欢迎下载 - - - - - - -

7、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 集成测试 ,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作, 但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。系统测试 是将已经确认的软件、计算机硬件、 外设、 网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不

8、符或矛盾的地方,从而提出更加完善的方案。1.2.2.在项目开发中,我们处于什么位置,要做哪些事情?1.2.3.在课堂上,我们要完成哪些功能,具体需求是什么?模块功能说明组织与用户管理岗位管理部门管理用户管理系统权限初始化权限分配权限验证权限网上交流 -论坛版块管理看帖、发帖、回帖文章管理审批流转(工作流)表单模板管理审批流程管理审批流转表单查询说明:按列出的顺序实现功能。效果以静态页面为准(需求)。按静态页面做名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 -

9、- - - - - - - - 1.3. ItcastOA的整体设计1.3.1.分层一、JavaEE 的三层架构二、关于分层的说明1,上面调用下面,即View 调用 Service,Service 调用 Dao。2,层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口。3,使用实体作为DTO(Data Transfer Object,数据传输对象)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 要做到任一层换掉后,其

10、他层不受影响。我们在此项目中使用两层:View+Service即在 Service中直接操作Hibernate.Session。因为如果使用三层,在 Service中就会有一部分方法只是直接调用DAO 中的方法。一般情况下只有在多个数据源的场合下适合引入 DAO层。三、有关分层的几个问题1,一定要分层吗?不一定。 假如公司要求你写一个可以给指定员工发送短信的小程序,用于开会通知与自动发送生日祝福短信。这个程序很小,没有多少行代码,而且不变,这时不分层可以吗?完全可以呀。但我们在写程序时,还是要分层的,分层的程序结构清晰,可维护性高。2,一定要 3 层吗?不一定。分3 层是推荐的,而不是必须的,

11、应根据自己的具体情况进行安排。我们如果使用 3 层的结构, 用起来就麻烦, 因为在 Service中会有一部分方法只是直接调用Dao中的方法,而 Dao 中的方法只是调用Session完成某操作。 此时分 2 层更好,即在 Service中可直接操作Session,以简化结构。其实Hibernate已经可以支持多种数据库。3,一定要使用接口吗?不一定。以前就有同学问我:“在设计程序时确定的技术在开发完成后一般不会更换的,实现类一般也不会更换,这种情况还用接口吗,一般的小项目是不是可以不使用接口?”。是的,如果不会变(一般也不会变),这是完全可以的。我们所学习的框架、技术都是解决问题的推荐 方案

12、, 而不是必须要用的。遇到问题后优先使用成熟的技术与方案,以避免很多潜在的问题,避免走不必要的弯路。1.3.2.所用框架、技术编号工具版本说明1.Struts 2 2.1.8.1 2.Hibernate 3.6.0 实现持久化操作3.Spring 2.5 4.jBPM 4.4 工作流支持5.Junit 4 单元测试6.jQuery 1.4 说明:还有jQuery.validate 与 jQuery.treeview 等小插件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共

13、14 页 - - - - - - - - - 1.3.3.开发环境操作系统Windows XP 开发工具MyEclipse 8.6 Eclipse 数据库MySql 5.0.22 Web 容器Tomcat 6.0 浏览器IE 6 说明:1, 推荐使用MyEclipse,这样出现工具问题可以一起解决。当然也可以使用自已熟悉的工具, 如 Eclipse、NetBeans、IntelliJ idea。现在的重点是代码实现,不是工具。应使用有效 的工具。2, 要注意使用的MySql与 JDBC 驱动的版本要兼容。3, 显示的技术( js, css)有兼容的问题,写出的代码可能在某些浏览器中不能正常运行

14、,这就需要在写代码时多使用JS 框架,让框架帮我们解决兼容的问题。1.3.4.代码规范1, 命名:使用驼峰命名法。a)类、接口:每个单词的首字母大写。例:MyDateConverter b)变量、方法:第一个单词的首字母小写,其他单词的首字母都大写。例:myDateConverter c)常量:全部字母都大写,单词之间使用 _ 隔开。例, DEFAULT_PAGE_SIZE 2, 使用有意义的名称,慎用缩写。3, 注释:在代码中加入适当的注释:说明步骤,与说明非简单逻辑。4, 空行:在代码中加入适当的空行,就像写文章时要分段一样(增强可读性)。5, 要格式化代码、一个java 文件中的代码不要

15、过多、一个方法中的代码不要过多。总之,要保证代码的有效、清晰、简洁(可读) 。1, 有效:这是第一目标,代码要是可以解决问题的。2, 清晰:在有效的前提下,让代码结构与思路清晰。3, 简洁:代码与逻辑应尽量的简单,不要是给别人讲别人都听不明白。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 1.3.5.约定1, 工程中所有的文件都采用utf-8 编码。所有的页面都是使用utf-8 编码,这样方便解决表单内容的乱码问题。乱码一般

16、情况下是乱用编码产生的。2, 实体的主键属性的类型使用Long 型。1.3.6.项目计划功能知识点预计时间1.搭建环境+ 基础功能a)Dao 设计1.Struts 基础2.Hibernate 基础1 天2.组织用户管理a)岗位管理b)部门管理c)用户管理1.一般的实体设计2.实体映射(映射文件)3.增删改查功能4.树状显示5.使用 jQuery.validate 进行表单验证2 天3.系统权限a)创建权限b)分配权限c)使用权限1.jQuery 的一般使用2.权限控制方案2 天4.论坛a)论坛管理b)论坛基本功能c)文章管理1.分页2.在线编辑器FCKeditor 3 天名师资料总结 - -

17、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 5.jBPM + 审批流转a)工作流框架jBPM b)审批流转功能1.工作流框架jBPM 2.工作流的一般应用4 天2.准备环境2.1. 创建数据库,要注意编码1,使用 MySql 数据库。2,创建数据库时,要注意编码要支持中文。3,建表语句如下:create database itcastoa default character set utf8; show create database itca

18、stoa; 说明:需要先运行Mysql 的配置向导,把编码配为GBK或 UTF8。如果配成UTF8,在 mysql命令行客户端中就有乱码,所以最好用GBK。2.2. 新建 Web 工程并进行配置2.2.1.配置工具2.2.1.1. 配置快捷键1, 把 Content Assist 设为 Alt+/ 2, 把 Word Completion 设为 Alt+. 3,其他常用快捷键说明:Alt+/ Content Assist 代码提示Ctrl+T 显示类的继承结构Ctrl+O 列出类中的成员(成员变量、方法等)Ctrl+/ 注释 /取消注释Ctrl+Shift+O 导入要使用的包、并去除不使用的包

19、Ctrl+Shift+F 格式化当前文件中的代码/格式化选中的代码Ctrl+Alt+Up 复制当前行到下面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - Ctrl+Alt+Down 复制当前行到上面Ctrl+D 删除当前行 /删除选中文本占的所有行Shift+Enter 相当于按End 后再按 Enter Alt+Left Alt+Right Ctrl+Shift+X 变为大写Ctrl+Shift+Y 变为小写2.2.1.2.

20、 配置文件的默认编码1, 设置工程的默认编码为UTF-8。2, 配置 JSP的默认编码为utf-8 2.2.1.3. 配置格式化的代码样式1, 使用 Ctrl+Shift+F 可以格式化代码。2, 在 WindowPreferencesJavaCode StyleFormatter 中可以设置代码样式。要把 Java代码与注释的行宽设为130。 (其他使用默认样式)3, 搜索 XML Sources,修改 xml 的行宽为130。 (不考虑打印的情况)2.2.1.4. MyEclipse工具使用说明1,导入工程时可以直接选择一个zip 文档: FileImportExisting Projec

21、ts into Workspace-Select archive file 。2,工程改名后,发果发布到Tomcat 下,对应的应用的名称不一定改变。这个名称是在 MyEclipse Web 中的 Web Context-root 中配置的。新建一个Web Project,并设置工程的编码为UTF-8 。2.2.2.添加框架环境说明:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 1,不要引用外面的Jar包,应全部拷贝到工程

22、中。2.2.3.配置数据库修改 Hibernate.cfg.xml 中的数据库连接信息。并在hibernate.cfg.xml中做如下配置: true update 2.3. 工程中的资源分类(目录与包结构)2.3.1.目录结构源码文件夹src 项目源代码conf 配置文件test 单元测试WebRoot 文件夹下script JavaScript脚本文件style CSS样式文件WEB-INF/jsp jsp 页面文件(再创建子文件夹分类存放)2.3.2.包结构使用三层:显示层(View) ,业务层( Service) ,数据访问层(Dao)(部分)包名说明cn.itcast.oa.doma

23、in 实体( Domain)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - cn.itcast.oa.dao Dao 接口cn.itcast.oa.dao.impl Dao 的实现类cn.itcast.oa.service Service 接口cn.itcast.oa.service.impl Service 的实现类cn.itcast.oa.struts2.action Struts 的 Action cn.itcast.

24、oa.util 一些工具类cn.itcast.oa.cfg cn.itcast.oa.filter View 显示Jsp + JSTL + Struts + jQuery Service 业务逻辑JBPM Dao 数据访问Hibernate 3.基础功能3.1.设计 BaseDao接口与 BaseDaoImpl类每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作。例实体Dao 接口实现类= User - UserDao - UserDaoImpl Role - RoleDao - RoleDaoImpl Department - DepartmentDao - Department

25、DaoImpl Article - ArticleDao - ArticleDaoImpl . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 说明:4, 实体的 Dao 接口要继承BaseDao 接口。5, Dao 的实现类要继承DaoImplBase 类。6, 也可以不继承指定的接口或类,这样就要自己写相应的方法。7, T getById(Long id)与 List getByIdList(Long idList)不要

26、合并为List getById(Long. ids),因为获取一个对象时也是返回List,不方便。获取BaseDao的类型参数T 的 Class 问题:1, 有了 DaoBase与 DaoImplBase,还要用UserDao、RoleDao 吗?答:要用。因为UserDao或 RoleDao中的方法可以分为有公有的方法与特有的方法两部分。 公有的方法是通过继承BaseDao得到的, 特有的方法要写在自己里面(BaseDao中是没有的) 。2, UserDaoImpl 已经继承了BaseDaoImpl,就不实现UserDao 可以吗?名师资料总结 - - -精品资料欢迎下载 - - - - -

27、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 答:不可以。否则UserDao userDao = new UserDaoImpl(); 就不成立。使用反射获取类型参数的真实类型的代码如下:public DaoBaseImpl () Type type = this.getClass().getGenericSuperclass(); ParameterizedType pt = (ParameterizedType) type; this.clazz = (Class) pt.getActualTypeArguments()0; 说明:1, 使用 Session时,不要自己创建,也不要管理事务,直接调用getSession()即可。2,暂时不实现getSession()方法,在后面的事务管理中实现:protected Session getSession() throw new UnsupportedOperationException(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁