第一章 绪 论
本章主要从研究背景和意义、研究现状、研究内容、章节安排四个方面来阐述。
1.1 研究背景和意义
根据现状,我们大部分企业普遍使用的仍是传统的管理和办公方式,主要以纸质来记录和传递信息,不仅繁琐而且效率不高,浪费了大量的人力物力。再加上互联网技术的迅速发展,信息技术的推陈出新,带来了全球范围内市场竞争的日益加剧,对于传统的办公和生活方式产生了巨大的冲击,使得企业面临着众多的挑战和竞争。传统的办公室管理方式已经不能满足企业对信息的快速传递和处理需求。
企业内的员工作为一个团队能否及时交流、获取各种相关信息,从而高效的协同合作,把握稍纵即逝的机遇,将成为企业在激烈的市场竞争中取胜的关键。面对这种严峻的形式,越来越多的企业开始把计算机网络技术引入到企业的办公和管理中来,逐步取代传统的手工办公方式,真正做到在企业内部实现实时信息共享、协同工作乃至科学的管理和决策,从而提高效率、增强企业的竞争力。
1.2 研究现状
国内办公自动化始于80年代,主要是由于政府办公的需要,为了提高政府办公的工作效率和安全性,引入了电子化管理,以实现部分自动化办公,最早的办公自动化是用来进行档案管理和公文处理,主要采用的是C/S结构,功能比较单一。
结合互联网技术的发展,在第一代自动化系统的基础上,以Internet为基础,B/S为网络架构的第二代自动化系统诞生了,这一代办公系统在功能上相对于第一代进行了扩展,但是本质还是基于档案管理和公文处理。
90年代末,第三代自动化办公兴起,伴随着的还有协同办公,随着市场环境的变化和办公需求的变更,办公自动化系统的业务范围也从局部变成了跨地区、跨部门。同时还引入即时通信、资料共享、网络会议等技术,与前两代相比,有了明显的发展,但是从长远的发展来看,仍然不是真正意义的协同办公,只是简单的工具集成,离真正的系统办公还有很大的差距。
1.3 研究内容
大型的自动化办公系统往往功能繁琐,管理和使用起来比较复杂,所需的开发成本和维护费用也非常昂贵。对于中小型企业来讲,对于系统的要求没有那么高,所以低成本的自动化办公系统在国内拥有很大的市场空间。
本课题在结合企业相关业务的基础上,进行了详细的分析研究,最终确定了本系统的个人信息、员工管理、考勤管理、请假管理、部门管理、公告管理等功能,基本可以满足企业的要求。
本系统研究的重点在于如果使用Eclipse开发工具,Spring、SpringMVC、Mybatis开发框架(后面简称SSM)、MySQL数据库、谷歌或者火狐浏览器以及一些其他的模型设计器打造一个能满足中小型企业办公的自动化办公系统。
1.4 章节安排
本论文的章节安排如下:
第一章:绪论,主要阐述了课题的研究背景和意义、研究现状和研究内容
第二章:开发工具及技术,主要介绍系统在开发过程中用到的开发工具、软硬件环境以及用到的技术。
第三章:需求分析,该章节主要从系统的总体需求分析、可行性分析、功能模块分析和系统角色权限四个方面来对系统进行分析。
第四章:系统设计,本章节将从系统整体设计、数据库设计、详细设计三个方面重点阐述系统的详细设计。
第五章:系统实现,本章节主要从项目整体架构和功能具体实现两个方面来阐述系统的实现,主要从代码层次。
第六章:系统部署和测试。
第七章:总结和展望。
第二章 开发工具和技术
本章主要讲的是系统软硬件环境、开发语言、框架介绍等。
2.1 硬件环境
开发本系统对于硬件的要求不是太高,一般配置的电脑就可以开发和运行,基本配置如下表2-1所示:
表2-1 系统硬件环境配置
硬件配置 最低配置 推荐配置
服务器 Intel® Core™ i5-4300M CPU 2.6GHz Intel® Core™ i5-4300M CPU 2.6GHz
Mem:8G Mem:8G
HD:60G HD:120G
2.2 软件环境
软件开发环境如下表2-2所示:
表2-2 软件配置环境
环境 名称 版本 语种
操作系统 Windows 7
服务器 Tomcat 7.0
数据库平台 MySQL 5.6.24
开发平台 Eclipse Mars.2 Release (4.5.2)
Jdk支持 jdk 1.7及以上
浏览器 Google Chrome 版本 65.0.3325.181(正式版本) (32 位)
2.3 开发语言
Java是由Sun公司开发出来的一种面向对象的编程语言,java语言发展到今天主要有以下三种发展方向:
1.J2SE:java 2 Platform Standard Edition。java的标准版,是其他版本的基础,主要用于开发桌面应用程序。
2. JavaEE:java的企业版,主要用于开发企业级分布式网络程序。
3. JavaME:主要用于嵌入式系统开发。
Java作为一中高级编程语言,具有如下特性:
1.简洁:省略了C和C++中难以理解、容易混淆的特性。
2.可移植:Java具有一次编写,到处运行的特性,因此具有很好的可移植行。
3.面向对象。
4.高性能:java语言程序编写完先进行伪编译(.class)再解释、“准实时”编译器JIT,可以将字节码转换成机器码。
5.健壮性:java语言在伪编译时,做了许多早期潜在问题得检查,运行时又做一些检查。
6.多线程:线程是轻量级进程,多线程处理能力使程序具有更好的交互性、实时性。
2.4 框架介绍
2.4.1 Spring框架
Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构。它的主要特点如下:
轻量:从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转(IOC):Spring通过一种称作控制反转(IoC)的技术促进了低耦合。
我们可以把对象交给Spring容器管理,需要的时候再由Spring容器注入。
面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务。应用对象只实现它们应该做的事,比如业务逻辑——仅此而已。它们并不负责其它的系统级关注点,例如日志或事务支持。
容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
Spring框架的层次图如下图2-1所示:
图2-1 Spring框架层次图
2.4.2 SpringMVC框架
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
2.4.3 MyBatis框架
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
第三章 需求分析
本章节主要从总体需求分析、可行性分析、功能模块分析、系统角色权限等方面对办公自动化系统进行需求分析。
3.1 总体需求分析
本系统主要用来满足中小型企业的需求功能,能够处理和解决企业基本的办公业务,我们通过对中小心企业的办公业务进行分析,发现企业业务主要集中在个人日常事务的处理,主要包括个人信息、考勤、加班、请假等;员工的管理,主要包括在职或者离职以员工的调动情况;考勤管理,主要包括考勤管理、加班管理;请假管理,主要包括申请和批准等;部门管理,主要包括部门管理、职称管理;还有公司公告管理,主要包括公告的修改和发布等等。
经过调查和分析,本系统将要实现的是能够满足中小型企业的需求功能,因此设计了八大功能模块,其中包括用户登录登出模块、个人信息模块、员工管理模块、考勤管理模块、请假模块、部门管理模块、公告管理模块以及最后的一个员工打卡模块。
系统整体功能结构如下图3-1所示:
图3-1 系统功能整体架构图
系统除了具备必须要的主体功能模块之外,还需要对主体功能进行细分,这一部分稍后会在功能模块分析部分阐述。
还有一个需要考虑到的就是权限控制,什么样的角色(用户)可以访问哪些页面,哪些页面又不可以访问(即不可见)。本系统主要分为管理员权限、部门领导权限和普通员工的权限,他们可以操作的功能随着级别的不同而不同。其中,管理员的权限最高,拥有系统的最高权限;领导作为企业的高层,拥有的权限和管理员的基本一致,普通员工相对于管理员和领导,权限也作了部分限制。
3.2 可行性分析
开发本系统的目的主要是为了解决传统手工办公效率低下,企业内部团队交流不灵活的问题,对于企业一些比较常见的办公业务可用性较强,适用于中小型企业,下面我们将从经济可行性和技术可行性来分析。
3.2.1 经济可行性
由于中小型企业的经济实力有限,办公业务也可能较为普通,所以在方便办公的同时,还要考虑开发和部署成本以及后期的维护成本,即投入和产出的问题。如果开发一个软件的投入费用昂贵,但是能给企业带来的功效却不大,这样的软件无疑是不合适的。
一般的商业软件是无法做到两者兼顾的,那么如何利用有限的资源打造出一个适合自己企业内部的办公系统呢?可以通过二次开发,即在原有软件的基础上进行在开发,这样就可以将多个功能集成为一个整体发挥作用,通过二次开发的方式来降低成本,同时提高效率。
本系统能够在保证企业现有功能正常运行的同时,不断的适应企业的变化而扩展升级,从而不断的给企业带来经济效益。
3.2.2 技术可行性
本系统采用SSM框架的整合,可以大大提高开发人员的效率,再加上系统所实现的功能是一般性质的办公业务,所以,总体来说开发的时间不会过长。开发和部署本系统对硬件平台要求不高,一般配置的服务器即可满足需求。软件基本上是开源,通俗易懂,项目开发中遇到的技术上的问题,一般都可以通过书本或者网上找到。
开发工具我们可以用Eclipse或者Myeclipse,这两种工具都可以很好的集成各种开发插件,提高开发效率。本系统数据库采用MySQL,我们知道MySQL是开源免费的,因此可以为企业剩下一笔不小的开支。同时MySQL也是支持分布式的,方便企业以后对系统进行扩展。
项目部署服务器采用Tomcat,他同样也是一个是一个免费的开放源代码的Web应用服务器,他是一个小型的轻量级服务器,在中小型和并发访问不是很多的场合下被普遍采用。同时,它运行时占用的系统资源小,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中。
是开发和调试Jsp程序的首选。
项目采用B/S网络架构,即浏览器和服务器的方式。应用部署好之后,用户只需要通过浏览器就可以访问操作系统,与页面进行交互。无需在安装其他的软件,操作简便的同时,也减少了计算机资源的消耗。通常的C/S架构的软件,在系统升级上是一件很麻烦的事情,既要升级服务器端,又要升级客户端。而我们B/S架构的软件就没有这样的问题,系统升级只需要升级服务器端即可。这样的用户体验无疑是很好的。
我们知道,中小型企业信息化水平一般都比较低,软硬件配置较差,资金并不雄厚,所以对软硬件的配置要求应该尽可能的低,以上技术的采用,就可以很好地解决这个问题。
因此,从技术上来,开发这样一套系统是可行的。
3.3 功能模块分析
从前面所讲的总体需求分析可知,本系统的主要功能包括用户登录、个人信息模块、员工管理模块、考勤管理模块、请假管理模块、部门管理模块、公告管理模块,员工打卡、用户登录等功能。下面我们将重点对以上功能进行需求分析,用户登录和退出功能较为简单,这是不在重点介绍。
3.3.1 个人信息模块
个人信息模块主要包括如下几个功能:
用户可以查看个人基础信息、可以修改个人信息和密码、可以查看考勤记录、可以查看加班信息、可以申请请假、查看请假记录。
个人信息模块功能如下图3-2所示:
图3-2 个人信息模块
3.3.2 员工管理模块
员工管理模块主要包括在职员工管理、离休员工管理、员工档案管理、员工调动记录等。
管理员或者领导可以对员工进行添加、删除、修改操作等等。普通员工则没没有员工管理权限。
个人信息模块功能如下图3-3所示:
图3-3 员工管理模块
3.3.3 考勤管理模块
考勤管理模块主要包括考勤管理、加班管理。
考勤管理主要对员工的上下班打卡进行管理;加班管理主要对员工的加班进行管理,可以安排员工加班,可以修改和删除加班。
管理员或者领导可以录入员工的加班信息,也可以删除或者修改,普通员工则只可以查看自己的考勤信息和加班信息。
考勤管理模块功能如下图3-4所示:
图3-4 考勤管理模块
3.3.4 请假管理模块
请假管理模块主要包括请假记录、已批准列表、未批准列表。
管理员或者公司领导可以对员工的请假单进行审批。
请假管理模块功能如下图3-5所示:
图3-5 请假管理模块
3.3.5 部门管理模块
部门管理模块主要包括部门管理、职称管理两个模块。
管理员或者领导可以添加部门、对部门信息进行修改和删除
管理员或者领导可以对企业的职称进行管理,添加职称、删除或者修改。
职称管理模块功能如下图3-6所示:
图3-6 部门管理模块
3.3.6 员工打卡和公告管理
员工上下班打卡也可以作为企业自动化办公系统的一个通用功能。
员工可以在系统首页上下班进行打卡,员工必须正常打卡,否则会被标记为迟到或者早退。
上班签到:上午9点之前,视为上午的正常打开,9点之后则为迟到;下午3点之前视为下午的正常打卡,之后视为迟到。
下班签到:如果中午在11:59:59之前打开则视为早退。下午在6点之前打卡视为早退。
公告管理也是企业办公一个比较常见的功能,通过公告企业管理者可以快速的传达企业内部的一些最新规章,安排,通知之类的。员工也可以通过公告快速的了解企业的规章变更,最新动态等。
管理员和领导可以发布公告信息,员工可以查看公告信息。
3.3.7 员工请假
员工请假也是企业办公一个比较常用的功能,大多数的企业办公自动化系统都有这个功能。
请假流程一般为:
员工填写请假单,请假单的内容包括起止时间、请假天数、请假类型(事假、病假)、请假事由等内容。
企业领导对请假单进行审核,可以批准通过或者不通过请假单。
审批结束之后,员工可以看到自己的请假单的状态,审核还是通过。
3.4 系统角色权限
前面已经列出了系统的八大功能,包括用户登录登出模块、个人信息模块、员工管理模块、考勤管理模块、请假模块、部门管理模块、公告管理模块以及最后的一个员工打卡模块。部分大模块下又划分了一些小模块。不同的角色拥有的权限是不同的,比如管理员(领导)拥有全部权限;普通用户没有员工管理的权限,也没有审批请假的权限。下面我们以用例图的形式来阐述两个角色的相关功能权限。
3.4.1 管理员(领导)角色
管理员或者领导具有系统全部功能权限,这里不一一列举
用例图如下图3-7所示:
图3-7 管理员用例图
3.4.2 普通员工权限
系统对普通员工的权限作了限制,普通员工主要有查看个人信息、修改个人信息、查看考勤记录、查看我的加班信息、申请请假、我的请假记录、查看公告。
普通员工用例图如下图3-8所示:
图3-8 普通员工用例图
第四章 系统设计
4.1 整体设计
系统采用SSM框架,Spring、SpringMVC、Mybatis框架的整合。
采用MVC(Model View Controller)的程序设计模式。M就是业务模型,是应用程序中用于处理应用程序数据逻辑的部分;V就是视图,是应用程序中处理数据显示的部分,用户通过页面和程序进行交互;C就是控制器,是应用程序中处理用户交互的部分。
视图,就是用户看到并与之交互的界面,一般老式的Web应用,视图就是HTML标签组成的页面。在新的Web应用中,HTML仍然扮演者重要角色,但是一些的新的视图技术层出不穷,比如Jsp、Freemarker、Velocity等。
模型,就是企业数据和业务规则。模型可以将数据返回给视图,并且一个模型可以为多个视图提供数据,所以封装精简的模型层,只需要写一次就可以被多个视图重用,减少了代码的重复性。
控制器,控制器负责接收用户的输入或者请求,然后再去调用模型去持久化话数据,并最终将处理结果返回给视图。用户能看到的只是页面的变化,对整个过程并不能也不需要感知。
MVC分层有助于管理复杂的应用程序,不同的开发人员可以同时开发视图、控制器和业务逻辑。
源码获取 关注公共号获取