OA 系统设计 1. 整体说明 1.1. 项目说明 1.1.1. OA概述 OA是Office Automation 的缩写,本意为利用技术的手段提高办公的效率,进而实现 办公的自动化处理。实现信息化、无纸化办公,可方便的生成统计报表等。 OA是OFFICEAUTOMATION 的缩写,本意为利用技术的手段提高办公的效率,进而实现办 公的自动化处理。采用Internet/Intranet技术,基于工作流的概念,使企业部人员方便快 捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位 的信息采集、信息处理,为企业的管理和决策提供科学的依据。 OA软件解决企业的日常管理规化、增加企业的可控性、提高企业运转的效率的根本问题。 围涉与日常行政管理、各种事项的审批、办公资源的管理、多人多部门的协同办公、以与各 种信息的沟通与传递。可以概括的说,OA软件跨越了生产、销售、财务等具体的业务畴,更 集中关注于企业日常办公的效率和可控性,是企业提高整体运转能力不可缺少的软件工具。 1.1.2. 本系统作用 组织的核心竞争力源自单位对外部资源的有效利用。对它们之间的关系进展协调,最大 限度的发挥所有资源的作用,并用系统的观点,在整个系统价值最大化的根底上来发挥各个 资源的作用,使资源的运作产生协同效用。因此可通过协同办公系统打造单位的核心竞争力。 本协同办公系统的主要作用为: 1、建立部的通信平台。 2、建立信息发布的平台。 3、文档管理的自动化。 4、工作流程的自动化。 5、行政日常事务处理。 6、平安机制的可靠性。 本系统旨在加速单位信息化进程,充分利用计算机和现代通讯手段面向单位效劳。建立 1 / 14 单位部信息交流的快速通道,以共享信息资源。强化部门业务管理,加强各业务部门之间的 交流。实现单位信息的快速上传下达,促进协同办公。提高办公效率,为各级领导与业务人 员提供辅助办公和决策效劳。 1、本系统将最大限度地提高办公效率和办公质量,降低管理和办公本钱,改善办公环 境和条件,提高办公管理和决策的自动化和科学化水平。 2、以人为中心,致力于帮助用户实现共享资源、规流程、推动执行的目的。帮助用户 节省办公费用,减少中间环节,优化业务流程,提高整体效率,促进管理进步。 简单的说,有以下两点: 1,利用技术的手段提高办公的效率 2,信息化,可方便的生成统计报表等。 1.1.3. 设计原那么 以应用为核心,要突出“实用、易用、简洁、稳定〞。既注重实效,满足用户的现实需 要,又为系统的后续升级和扩展留有余地。在技术实现上,要突出“结构清晰、实现合理、 通俗易懂〔简单〕〞。 1. 实用:满足用户现实需要,解决实际问题,做细核心功能。 2. 易用:使用方便,各项功能一目了然。满足用户的使用习惯,易使用、易维护、易升 级。实现“傻瓜〞式的操作,将实施、培训本钱和周期降到最低。 3. 简洁:页面简洁,功能简洁,每一个元素都有存在的意义。 4. 稳定:从底层数据库到功能层经过严格测试,能在不同的硬件环境中长期平稳运行。 1.1.4. 功能说明 OA 是辅助办公的软件,使用OA 与不使用OA 相比照的好处是:可以用计算机管理所有 的数据,并可以方便的实现统计与报表的功能。提高办公效率。〔实现信息化〕。 以下是一个OA系统的全部功能列表: 2 / 14 说明:不是所有的OA都有全部的功能,而是根据需求确定的。 1.2. 项目实现说明 1.2.1. 软件开发的步骤说明 需求确认—概要设计—详细设计—编码—单元测试—集成测试—系统测试—维护。 单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有 责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了 证明这段代码的行为和我们期望的一致。 3 / 14 集成测试,也叫组装测试或联合测试。在单元测试的根底上,将所有模块按照设计要求 〔如根据结构图〕组装成为子系统或系统,进展集成测试。实践说明,一些模块虽然能够单 独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在 全局上很可能暴露出来,影响功能的实现。 系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进展 信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比拟,发现所开发的系 统与用户需求不符或矛盾的地方,从而提出更加完善的方案。 1.2.2. 在项目开发中,我们处于什么位置,要做哪些事情? 1.2.3. 在课堂上,我们要完成哪些功能,具体需什么? 模块 功能 说明 组织与用户管理 岗位管理 部门管理 用户管理 系统权限 初始化权限 分配权限 验证权限 网上交流--论坛 版块管理 看帖、发帖、回帖 文章管理 审批流转〔工作流〕 表单模板管理 审批流程管理 审批流转 表单查询 说明:按列出的顺序实现功能。效果以静态页面为准〔需求〕。 按静态页面做 4 / 14 1.3. ItcastOA 的整体设计 1.3.1. 分层 一、JavaEE 的三层架构 二、关于分层的说明 1,上面调用下面,即View 调用 Service,Service 调用 Dao 2,层与层之间用接口。除定义的接口外,不能使用其它层的特有类或接口 3,使用实体作为DTO 〔Data Transfer Object,数据传输对象〕 5 / 14 要做到任一层换掉后,其他层不受影响。我们在此项目中使用两层:View+Service 即 在 Service 中直接操作Hibernate.Session。因为如果使用三层,在Service 中就会有一局 部方法只是直接调用 DAO 中的方法。一般情况下只有在多个数据源的场合下适合引入 DAO 层。 三、有关分层的几个问题 1,一定要分层吗? 不一定。假设公司要求你写一个可以给指定员工发送短信的小程序,用于开会通知与自 动发送生日祝福短信。这个程序很小,没有多少行代码,而且不变,这时不分层可以吗?完 全可以呀。但我们在写程序时,还是要分层的,分层的程序结构清晰,可维护性高。 2,一定要3 层吗? 不一定。分3 层是推荐的,而不是必须的,应根据自己的具体情况进展安排。我们如果 使用 3 层的结构,用起来就麻烦,因为在Service 中会有一局部方法只是直接调用Da 中的 方法,而 Da 中的方法只是调用Session 完成某操作。此时分 2 层更好,即在Service 中可 直接操作 Session,以简化结构。其实Hibernate 已经可以支持多种数据库。 3,一定要使用接口吗? 不一定。以前就有同学问我:“在设计程序时确定的技术在开发完成后一般不会更换的, 实现类一般也不会更换,这种情况还用接口吗,一般的小项目是不是可以不使用接口?〞。 是的,如果不会变〔一般也不会变〕,这是完全可以的。 我们所学习的框架、技术都是解决问题的推荐方案,而不是必须要用的。遇到问题后优 先使用成熟的技术与方案,以防止很多潜在的问题,防止走不必要的弯路。 1.3.2. 所用框架、技术 编号 工具 版本 说明 1. Struts 2 2.1.8.1 2. Hibernate 3.6.0 实现持久化操作 3. Spring 2.5 4. PM 4.4 工作流支持 5. Junit 4 单元测试 6. jQuery 1.4 6 / 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〕有兼容的问题,写出的代码可能在某些浏览器中不能正常运 行,这就需要在写代码时多使用JS 框架,让框架帮我们解决兼容的问题。 1.3.4. 代码规 1,命名:使用驼峰命名法。 a) 类、接口:每个单词的首字母大写。例:MyDateConverter b) 变量、方法:第一个单词的首字母小写,其他单词的首字母都大写。例: myDateConverter c) 常量:全部字母都大写,单词之间使用’_’隔开。例,DEFAULT_PAGE_SIZE 2,使用有意义的名称,慎用缩写。 3,注释:在代码中参加适当的注释:说明步骤,与说明非简单逻辑。 4, 空行:在代码中参加适当的空行,就像写文章时要分段一样〔增强可读性〕。 5,要格式化代码、一个 java 文件中的代码不要过多、一个方法中的代码不要过多。 总之,要保证代码的有效、清晰、简洁〔 可读〕。 1,有效:这是第一目标,代码要是可以解决问题的。 2,清晰:在有效的前提下,让代码结构与思路清晰。 3, 简洁:代码与逻辑应尽量的简单,不要是给别人讲别人都听不明白。 7 / 14 1.3.5. 约定 1,工程中所有的文件都采用utf-8 编码。所有的页面都是使用utf-8 编码,这样方便解决 表单容的乱码问题。乱码一般情况下是乱用编码产生的。 2,实体的主键属性的类型使用Long 型。 1.3.6. 项目计划 功能 知识点 预计时间 1. 搭建环境 + 根底功能 1. Struts 根底 1 天 a) Dao 设计 2. Hibernate 根底 1. 一般的实体设计 2 天 2. 组织用户管理 2. 实体映射〔映射文件〕 a) 岗位管理 3. 增删改查功能 b) 部门管理 4. 树状显示 c) 用户管理 5. 使用 jQuery.validate 进展表单验证 3. 系统权限 1. jQuery 的一般使用 2 天 a) 创立权限 2. 权限控制方案 b) 分配权限 c) 使用权限 4. 论坛 1. 分页 3 天 a) 论坛管理 2. 在线编辑器 FCKeditor b) 论坛根本功能 c) 文章管理 8 / 14 5. PM + 审批流转 1. 工作流框架 PM 4 天 a) 工作流框架 PM 2. 工作流的一般应用 b) 审批流转功能 2. 准备环境 2.1. 创立数据库,要注意编码 1,使用MySql 数据库。 2,创立数据库时,要注意编码要支持中文。 3,建表语句如下: create database itcastoa default character set utf8;show create databas itcastoa; 说明:需要先运行 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 导入要使用的包、并去除不使用的包 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. 配置文件的默认编码 1,设置工程的默认编码为UTF-8。 2,配置 JSP 的默认编码为utf-8 2.2.1.3. 配置格式化的代码样式 1,使用 Ctrl+Shift+F 可以格式化代码。 2,在 WindowPreferencesJav Code StyleFormatter 中可以设置代码样式。 要把 Jav 代码与注释的行宽设为 130。〔其他使用默认样式〕 3,搜索 XML Sources,修改xml 的行宽为 130。〔不考虑打印的情况〕 2.2.1.4. MyEclipse 工具使用说明 1,导入工程时可以直接选择一个 zip 文档:FileImportExisting Projects into Workspace--Select archive file。 2,工程改名后,发果发布到 TomcaKaiyun中国t 下,对应的应用的名称不一定改变。这个名称 是在 MyEclipse Web 中的Web Context-root 中配置的。 新建一个 Web Project,并设置工程的编码为UTF-8。 2.2.2. 添加框架环境 说明: 10 / 14 1,不要引用外面的 Jar 包,应全部拷贝到工程中。 2.2.3. 配置数据库 修改 Hibernate.cfg.xml 中的数据库连接信息。 !-- 显示 sql 语句 -- property name=show_sqltrue/property !-- 自动更新表结构 -- property name=hbm2 l.autoupdate/property 2.3. 工程中的资源分类〔目录与包结构〕 2.3.1. 目录结构 源码文件夹 src项目源代码 conf 配置文件 test 单元测试 WebRoot 文件夹下 scriptJavaScript 脚本文件 styleCSS 样式文件 WEB-INF/jspjsp 页面文件〔再创立子文件夹分类存放〕 2.3.2. 包结构 使用三层:显示层〔View〕,业务层〔Service〕,数据访问层〔Dao〕 〔局部〕 包名 说明 cn.itcast.oa.domain 实体〔Domain〕 cn.itcast.oa.dao Dao 接口 11 / 14 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.oa.util 一些工具类 cn.itcast.oa.cf cn.itcast.oa.filter View 显示 Jsp + JSTL + Struts + jQuery Service 业务逻辑 PM Dao 数据访问 Hibernate 3. 根底功能 3.1. 设计 BaseDao 接口与 BaseDaoImpl 类 每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作。例 实体 Dao 接口 实现类 ======================================================== User-- UserDao -- UserDaoImpl Role-- RoleDao -- RoleDaoImpl Department -- DepartmentDao -- DepartmentDaoImpl Article -- ArticleDao -- ArticleDaoImpl ... 12 / 14 说明: 4,实体的 Dao 接口要继承 BaseDao 接口。 5,Dao 的实现类要继承DaoImplBase 类。 6,也可以不继承指定的接口或类,这样就要自己写相应的方法。 7,T getById(Long id)与 ListT getByIdList(Long[] idList)不要合并 为 List getById(Long... ids),因为获取一个对象
DELTA台达VFD-MS300精巧标准型向量控制变频器使用手册调试说明.pdf
2022-2023学年济南市历城区八年级上学期期中数学试卷(含答案解析).docx
2024秋新北师大版物理八年级上册教学课件 第四章 光现象 第五节 设计舞台灯光秀 .pptx
《大数据挖掘与统计机器学习(第3版)》 课件全套 吕晓玲 第1--10章 概述、线性回归方法 ---循环神经网络和注意力机制.pptx
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者