叿狆号:“IT软件学习社”

摘要

计算机信息技术的快速发展使得企业的传统办公方式不能够在满足我们实际工作中的各种需要,于是企业办公自动化应运而生。办公自动化主要是利用计算机网络技术,使用各种设备结合软件系统来协助完成各种工作任务,本论文开头介绍了课题研究背景、意义以及发展状况,详细介绍了办公自动化系统用到的技术。结合企业传统低效的办公方式中解脱出来,从而提高工作人员的效率和企业的经济效益。

本论文在开头部分初步阐述了研究的意义和国内研究状况,介绍了项目用到的一些技术。然后我们在在了解企业的基本业务的基础上,最终确定系统主要包括以下四个主要功能模块:个人模块、员工模块、部门模块、公告模块。本论文在下面的各章节将会详细的说明各个功能模块的实现过程。

本系统采用浏览器和服务器(B/S)网络架构,用户不用在电脑上安装其他的一些软件,直接系统自带的浏览器即可操作系统,方便用户操作的同时,也减少了计算机资源的消耗。本系统采用了Spring容器框架、SpringMVC显示层框架、Mybatis持久化层的框架组合,可以有效的提高开发效率。

关键词 : 办公自动化;OA;SSM

ABSTRACT

The rapid development of computer information technology has made the traditional office mode of enterprises unable to meet the various needs in our actual work, so enterprise office automation came into being. Office automation mainly uses computer network technology, using a variety of equipment combined with software systems to assist in the completion of various tasks. This paper introduces the background, significance and development of the subject, and introduces the technology used in the office automation system. It is freed from the traditional and inefficient office methods of the company, thus improving the efficiency of the staff and the economic benefits of the company.

In the beginning of this paper, the significance of the research and the status of domestic research are preliminarily introduced, and some techniques used in the project are introduced. Then, based on understanding the basic business of the enterprise, we finally determined that the system mainly includes the following four main functional modules: personal module, employee module, department module, and announcement module. This paper will explain in detail the implementation process of each functional module in the following chapters.

The system adopts browser and server (B/S) network architecture. Users do not need to install other software on the computer. The system directly comes with the operating system of the browser, which is convenient for users to operate and reduces computer resources. Consumption. The system uses the Spring container framework, SpringMVC display layer framework, Mybatis persistence layer framework combination, which can effectively improve development efficiency.

Key words : office automation; OA; SSM

第一章 绪 论

本章主要从研究背景和意义、研究现状、研究内容、章节安排四个方面来阐述。

1.1 研究背景和意义
根据现状,我们大部分企业普遍使用的仍是传统的管理和办公方式,主要以纸质来记录和传递信息,这种方式不但麻烦,而且也对人力和物力造成了大量的浪费。再加上信息的迅猛发展,使得全球企业竞争加剧,越来越多的企业面临着严重的挑战。老旧的企业办公方式已经不能够在适应企业的发展需要了。

企业是一个整体,发的发展离不开企业内部员工的沟通交流,那么如果提高企业内部员工的沟通效率,就成为了每个企业必须要解决问题。企业内部的工作效率直接导致了企业是否可以在激烈的竞争中脱颖而出。为了解决这个问题,更多的企业开始逐步把计算机自动化办公整合到企业的日常工作中来,取代效率低下的传统纸张办公方式,并最终实现了企业内部高效的信息传达,方便企业进行管理,提高了企业人员的工作效率和企业在行业中的竞争力。

1.2 研究现状
我们国内的企业自动化办公最早开始于80年代,当时主要是由于政府单位办公的需要,为了提高单位的工作效率和安全,政府单位将电子管理引入了办公中来对档案和公文进行处理,初步实现了办公自动化,当时系统主要采用C/S,即客户端和服务端的方式,功能比较简单。

在经过一段时间的发展,在原来系统的基础上,以网络为基础,B/S为架构的又一代智能办公系统出现了。系统在功能上进行了增强,但是相对来说,还是比较单一,只能满足一般的办公需要。

在八九十年代末,第三代智能办公系统出现。这个时候还出现了一种叫做协同办公的方式。企业为了满足跨部门地区办公的需要,办公业务也从原来的单一部门和地区演变成了跨部门和地区。这个时候还出现了几个新技术,比如IM即时通信、网络视频会议等。与前面的系统相比,有了比较明显的发展,功能也基本可以满足企业的需求。但是从长远的发展角度来看,系统仍有待改进。

1.3 研究内容
大型的自动化办公系统往往功能繁琐,管理和使用起来比较复杂,所需的开发成本和维护费用也非常昂贵。对于中小型企业来讲,对于系统的要求没有那么高,所以低成本的自动化办公系统在国内拥有很大的市场空间。

本课题在调研企业办公业务的基础上,经过仔细的功能划分,最终确定了本系统的个人信息、员工管理、考勤管理、请假管理、部门管理、公告管理等功能,基本可以满足企业的要求。

本系统重点研究如何使用开发工具Eclipse,Spring、SpringMVC、Mybatis开发框架(后面简称SSM)、MySQL数据库、谷歌或者火狐浏览器以及一些其他的模型设计器打造一个能满足中小型企业办公的自动化办公系统。

1.4 章节安排
本论文的章节安排如下:

第一章:绪论,主要阐述了课题的研究背景和意义、研究现状和研究内容

第二章:需求分析,该章节主要从系统的总体需求分析、可行性分析、功能模块分析和系统角色权限四个方面来对系统进行分析。

第三章:系统设计,本章节将从系统整体设计、数据库设计、详细设计三个方面重点阐述系统的详细设计。

第四章:系统实现,本章节主要从项目整体架构和功能具体实现两个方面来阐述系统的实现,主要从代码层次。

第五章:系统部署和测试。

第六章:总结和展望。

第二章 需求分析

本章节主要从总体需求分析、可行性分析、功能模块分析、系统角色权限等方面对办公自动化系统进行需求分析。

2.1 总体需求分析
本系统开发的目的主要用来解决中小企业的日常办公需求,我们通过对中小心企业的日常办公业务进行调研分析,发现企业业务主要集中在个人日常事务的处理,主要包括个人信息、考勤、加班、请假等;员工的管理,主要包括在职或者离职以员工的调动情况;考勤模块,主要包括员工考勤的管理、员工加班的管理;请假单的管理,主要包括申请和批准等;部门功能模块,主要包括企业部门的管理、企业一些职称的管理;还有公司公告管理,主要包括添加公司公告和对已有公告进行修改删除。经过调查研究,为了满足企业的日常基本办公要求,我们将系统设计成了八大功能模块,其中包括用户的登录和登出功能、个人信息管理功能、员工信息管理功能、考勤信息管理功能、请假信息管理功能、部门信息管理功能、公告信息管理功能以及最后的一个员工打卡功能。

本系统的整体业务功能如下图2-1所示:

图2-1 系统功能整体架构图

系统除了具备必须要的主体功能模块之外,还需要对主体功能进行细分,这一部分稍后会在功能模块分析部分阐述。

还有一个需要考虑到的就是权限控制,什么样的角色(用户)可以访问哪些页面,哪些页面又不可以访问(即不可见)。本系统的角色划分主要分为管理员角色、部门领导角色和普通员工角色,他们可以操作的功能随着级别的不同而不同。其中,管理员权限最高,可以操作系统全部功能;领导作为企业的高层,拥有的权限和管理员的基本一致,普通员工的权限相对较少,只能操作部门模块。

2.2 系统用例
前面已经列出了系统的八大功能,包括用户登录登出模块、个人信息模块、员工管理模块、考勤管理模块、请假模块、部门管理模块、公告管理模块以及最后的一个员工打卡模块。部分大模块下又划分了一些小模块。不同的角色我们给他设置了不同的权限范围;普通员工没有员工管理模块的权限,也没有审批请假的权限。下面我们以用例图的形式来阐述两个角色的相关功能权限。

2.2.1 管理员(领导)用例
管理员或者领导具有系统全部功能权限,这里不一一列举

用例图如下图2-2所示:

图2-2 管理员用例图

2.2.2 普通员工用例
系统对普通员工的权限作了限制,普通员工主要有查看个人信息、修改个人信息、查看考勤记录、查看我的加班信息、申请请假、我的请假记录、查看公告。

普通员工的功能用例如下面图2-3所示:

图2-3 普通员工用例图

2.3 功能模块分析
从前面所讲的总体需求分析可知,本系统的主要划分为用户登录验证、用户个人信息管理、员工信息管理模块、考勤信息管理、请假信息管理、部门信息管理模块、公司公告信息管理、员工打卡、用户退出等功能。下面我们将重点对以上功能进行需求分析,用户登录和退出功能较为简单,这是不在重点介绍。

2.3.1 个人信息模块
个人信息功能模块主要包括下面几个操作:

用户可以查看个人基础信息、可以修改个人信息和密码、可以查看考勤记录、可以查看加班信息、可以申请请假、查看请假记录。

个人模块功能如下图2-4所示:

图2-4 个人信息模块

2.3.2 员工管理模块
员工管理模块主要包括在职员工管理、离休员工管理、员工档案管理、员工调动记录等。

管理员或者公司部门领导可以对公司员工进行基本的增删改查操作。普通员工则没没有员工管理权限。

员工信息模块功能如下图2-5所示:

图2-5 员工管理模块

2.3.3 考勤管理模块
考勤管理功能模块主要包括员工考勤信息的管理、员工安排加班的管理。

考勤管理主要对员工的上下班打卡进行管理;员工加班管理主要是领导可以对员工安排加班,也可以删除或者修改加班。管理员或者领导可以录入员工的加班信息,也可以删除或者修改,普通员工则只可以查看自己的考勤信息和加班信息。

考勤信息管理模块如下图2-6所示:

图2-6 考勤管理模块

2.3.4 请假管理模块
请假管理模块主要包括请假记录、已批准列表、未批准列表。

管理员或者公司领导可以对员工的请假单进行审批。

请假单信息管理模块功能如下图2-7所示:

图2-7 请假管理模块

2.3.5 部门管理模块
部门管理模块主要包括部门管理、职称管理两个模块。

管理员或者领导可以添加部门、对部门信息进行修改和删除

管理员或者公司部门领导可以对企业一些职称进行管理,比如新增职称,对原有职称进行修改和删除,部门信息管理功能模块如下图2-8所示:

图2-8 部门信息管理模块

2.3.6 员工打卡和公告管理
员工上下班打卡也可以作为企业自动化办公系统的一个通用功能。

员工可以在系统首页上下班进行打卡,员工必须正常打卡,否则会被视为迟到或者早退。

上班签到:上午9点之前,视为上午的正常打开,9点之后则为迟到;下午3点之前视为下午的正常打卡,之后视为迟到。

下班签到:如果中午在11:59:59之前打开则视为早退。下午在6点之前打卡视为早退。

公告管理也是企业办公一个比较常见的功能,通过公告企业管理者可以快速的传达企业内部的一些最新规章,安排,通知之类的。员工也可以通过公告快速的了解企业的规章变更,最新动态等。

管理员和部门领导可以发布企业最新的公告信息,公司员工已发布的公告信息。

2.3.7 员工请假

员工请假也是企业办公一个比较常用的功能,绝大多数的企业办公系统都有请假功能,请假流程一般为:

员工填写请假单,请假单的内容包括起止时间、请假天数、请假类型(事假、病假)、请假事由等内容。

企业领导对请假单进行审核,可以批准通过或者不通过请假单。

审批结束之后,员工就可以看到自己的请假单状态,审核是否通过。

第三章 系统设计

3.1 系统架构设计
本系统开发框架采用SSM,即SpringMVC框架、Spring框架、Mybatis框架的的整合搭配。

系统采用MVC的设计模块。M就是系统的业务模型,主要是对一些业务逻辑进行处理和数据封装;V就是页面视图,通常用来将数据展示给用户,用户可以通过浏览器访问页面功能;C就是程序控制器,主要用来处理用户的页面操作请求。

视图,就是用户交互页面,用来显示数据给用户。视图分为很多种,通常见到的就是普通的HTML页面,然后就是JSP。随着Web技术的发展,一些新的视图技术也逐步出现,比如开发中用到的Thymeleaf、Freemarker和Velocity等模板视图技术。

模型,就是系统业务和数据的封装。它为控制器层提供数据和业务支持,在实际的开发过程中,我们需要考虑到模型层的封装,尽量封装精简的模块,并且提供给多个视图使用,减少系统代码重复率。

控制器,控制器层处理用户页面请求,然后再去调用模型去持久化话数据,最后把数据返回给视图页面。用户能看到的只是页面的变化,对整个过程并不能也不需要感知。

本系统SSM框架图如下图3-1所示:

图3-1 系统架构图

本系统前端开发采用的是JSP语言,它是一种基于动态的网页开发技术,本质上是Servlet。在使用Bootstrap前端框架以及JavaScript脚本框架JQuery,可以开发出一个美观的页面。页面经过SpringMVC内嵌的视图技术渲染,最终可以良好的展现给用户。

用户的页面操作,比如提交一个表单或者点击一次查询,实际上就触发了浏览器的一次请求,SpringMVC的控制器层Controller在接受页面请求之后,就会调用业务逻辑层处理业务操作,如果涉及到数据的保存或者查询,那么业务逻辑层还回去调用调用持久化DAO层将数据查询或者插入修改到数据库中,业务操作完成之后,控制器层最后才将处理结果响应给用户。

3.1.1 Spring框架
Spring是一个Java轻量级程序框架,它是由Rod Johnson著作中衍生出来的,主要是为了在复杂的企业级开发中遇到的诸多问题,我们一般主要用到Spring的以下几个模块:

Spring-Core:它是Sping框架的核心,主要有IOC和DI,即控制反转和依赖注入。我们可以把一些常用的对象交给Spring容器来管理,即把对象的生命周期交给Spring容器管理。在我们需要这些对象的时候,我们无需采用关键字new的形式去创建对象,Spring容器会自动把我们依赖的对象采用DI的方式注入给我们,供我们调用,这样可以减少程序系统的开销和代码耦合。

Spring-Context:它是Spring上下文,是在Sprign-Core基础上的一个封装。通过这个模块,我们可以获取到系统的一些资源配置,通常在程序中表现为XML文件配置,当然里面也对Servlet容器进行了一些必要的封装。

Spring-DAO:它是JDBC的封装层,在传统的开发方式中,我们连接操作数据中通常都需要自己写一套代码,这样开发起来比较繁琐而且不通用,Spring-DAO层很好的解决了这个问题,它实现了一些接口,可以让我们只需关注真正的业务逻辑,而无需写冗余的代码。

Spring-ORM:它是数据持久化层中对象和关系的一个封装,是一套通用API,它的实现主要有JPA、HIbernate以及我们系统用到的Mybatis。

Spring-AOP:AOP是Spring框架别的一个特性,经过AOP,我们把一些通用业务逻辑,比如系统日志,从系统主要的业务逻辑中分离出来。让我只需要关注系统的业务逻辑,而不用为了单独的一个日志处理,去写重复的代码。

Spring-Web:它是Spring关于Web的一个封装。通过它我们可以很容易的实现Web开发,比如文件上传等功能开发。

Spring-WebMVC:它是Spring关于MVC的一个封装。MVC框架有很多种,例如Spring框架的子项目SpringMVC,以及Struts2等。通过Spring-WebMVC我们可以很好地将这些MVC框架和我们的程序整合起来。

Spring框架的层次图如下图3-2所示:

图3-2 Spring框架层次图

3.1.2 SpringMVC框架
SpringMVC框架是表现层框架的一种,它已经融合在了Spring Web框架里面。

Spring的中心内容主要是DispatcherServlet控制器,它的主要业务流程是:接受请求,处理请求URL,并把请求分发到相应的控制器进行处理,控制器处理完成之后,再返回视图,后面DispatcherServlet控制器在调用视图解析器ViewResolver解析视图并返回给用户。

本系统主要使用SpringMVC来解决业务请求,在调用底层业务逻辑处理业务,并把数据返回。SpringMVC整合了多种视图技术,比如JSP和后面出现的Velocity和Freemarker。SpringMVC向我们提供了XML的配置方式,我们可以在XML中配置自己所需要的视图技术,甚至可以同时采用多种视图技术,并且配置视图的优先级。

3.1.3 Mybatis框架
Mybatis是一个比较常用的持久层框架,市面上现在很多系统都是集成的Mybatis框架。它是JDBC数据库的封装,我们在开发中只要在XML中配置查询SQL,而不用在去写一套数据库驱动注册、建立连接、创建编译语句和参数以及查询之后关闭连接的代码,大大提高了开发效率。

Mybatis经过XML文件的配置形式把Java对象和SQL语句作了一个映射,生成SQL语句并执行,并最终把查询数据映射成Java对象返回给业务逻辑层。

3.2 数据库设计
数据库设计是系统开发中的一个比较重要的节点,数据库设计在很大程序上可以左右一个系统的性能,下面我们主要来讲一下本系统涉及到的相关表结构设计以及之间的关系。

3.2.1 数据库E-R图设计
本系统主要涉及到9张表,数据库E-R图如下图3-3所示

图3-3 数据库E-R图

3.2.2 数据库表设计
下面我们分别列出数据库表结构的字段说明。

员工信息表如下表3-1所示:

表3-1 员工信息表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

name

varchar

10

N

姓名

gender

enum

N

性别

birthday

date

N

生日

telephone

varchar

15

N

电话

email

varchar

30

N

邮箱

address

varchar

50

N

地址

photo

varchar

50

N

图片

education

varchar

20

N

学历

department_number

int

N

部门号

position_number

int

N

职位号

in_time

date

N

入职时间

password

varchar

20

N

密码

notes

varchar

255

Y

备注

部门信息表如下表3-2所示:

表3-2 部门信息表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

department_number

int

11

N

部门号

name

varchar

20

N

部门名称

manager

varchar

10

N

创建人

telephone

varchar

20

N

部门电话

address

varchar

50

N

部门地址

notes

varchar

255

Y

备注

请假表如下表3-3所示:

表3-3 请假表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

department_number

int

20

N

部门号

start_time

date

N

开始时间

end_time

date

N

结束时间

days

varchar

10

N

几天

reason

varchar

100

N

原因

type

enum

N

请假类型(事假/病假)

manager

varchar

10

N

创建人

status

enum

N

状态(已批准/为批准)

notes

varchar

255

Y

备注

职位表如下表3-4所示:

表3-4 职位表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

position_number

int

11

N

职位编号

name

varchar

20

N

职位名称

level

enum

N

职位

notes

varchar

255

Y

备注

考勤表如下表3-5所示:

表3-5 考勤信息表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

day

date

N

日期

time_type

enum

N

上午/下午

start_time

time

N

上午打卡时间

start_type

enum

N

正常/迟到/为签到

end_time

time

N

下班打卡时间

end_type

enum

N

正常/再退/未签到

work_type

enum

N

上班/请假

notes

varchar

255

Y

备注

调动表如下表3-6所示:

表3-6 调动表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

before

int

11

N

调动前部门

after

int

int

N

调用后部门

time

datetime

int

N

时间

manager

varchar

10

N

处理人

notes

varchar

255

Y

备注

公告表如下表3-7所示:

表3-7 公告表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

title

varchar

100

N

公告标题

content

varchar

2000

N

公告内容

manager

varchar

10

N

发布人

time

datetime

N

发布时间

档案信息表如下表3-8所示:

表3-8 档案信息表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

name

varchar

10

N

姓名

gender

enum

N

性别

birthday

date

N

生日

telephone

varchar

20

N

电话

email

varchar

30

N

邮箱

address

varchar

50

N

地址

photo

varchar

50

N

图片

education

varchar

20

N

学历

in_time

date

N

入职时间

out_time

date

N

离职时间

department_number

varchar

10

N

部门号

position_number

varchar

10

N

职称号

status

enum

N

状态(在职/离职/退休)

home

varchar

100

N

密码

notes

varchar

255

Y

备注

加班表如下表3-9所示:

表3-9 加班表

字段名

类型

长度

允许空(Y/N)

字段意义

id

int

11

N

主键,递增

employee_number

int

11

N

员工号

department_number

int

11

N

部门号

day

date

N

职称号

start_time

time

N

开始时间

end_time

time

N

结束时间

notes

varchar

255

Y

备注

3.3 详细设计
3.3.1 个人信息模块设计
个人信息模块主要包括:

系统用户查看个人和修正个人资料信息。管理员和普通用户都可以查询并且修改个人信息。

普通员工能够查看本人的考勤记录、加班信息、请假信息。管理员或者领导可以除了具有查看自己的考勤记录、加班信息、请假信息等功能外,还有安排加班、批准请假等功能。

本模块流程图如图3-4所示:

图3-4 个人信息模块流程图

3.3.2 员工管理模块设计
员工管理模块主要包括四部分:

在职员工管理包括添加员工、查看、修改和修正在职员工资料等操作。

离休员工管理主要包括查看和修改退休员工信息。

员工档案管理模块,管理员和部门领导可以查看和修正员工档案信息。

员工调动记录,主要是查看员工的一些调动情况。

其中在职员工管理模块流程图如下图3-5所示:

图3-5 在职员工管理模块流程图

其他离休员工管理、员工档案管理、员工调用管理的流程图与上图基本类似,这里不再累述。

3.3.3 考勤管理模块设计
考勤管理模块主要包括:考勤管理和加班管理。

考勤管理比较简答,只是查看一些员工的打卡情况,打卡情况是系统自动写入的,这里暂时不需要修改和删除。管理员和部门领导可以查看所有员工的考勤信息,员工只能看自己的考勤情况。

加班管理主要包括安排加班、修改和删除加班等操作,管理员或者普通用户可以查看所有人的加班信息,可以安排某人加班。普通员工只能查看自身的加班情况。

功能流程图如图3-6所示:

图3-6 加班管理模块流程图

其他离休员工管理、员工档案管理、员工调用管理的流程图与上图基本类似,这里不再累述。

3.3.4 请假管理模块设计
请假管理模块主要包括:未批准列表、已批准列表、请假记录等功能。

未批准请假列表主要是一些未批准的请假申请,管理员或者部门领导可以查看员工的请假申请,也可以审批请假申请。

已批准列表主要是查看一些已批准的请假记录,管理员或者部门领导可以查看所以人的已批准请假列表,而普通员工只能查看自身的请假情况。

请假记录是请假的数据汇总,包括已审批的和未审批的,普通员工只可以查看自己的,而部门领导可看查看所有员工的。

请假单审批流程如下图3-7所示:

图3-7 请假单审批流程图

3.3.5 部门管理模块设计
部门管理功能模块主要包括:部门信息管理和公司职称信息管理。

部门信息管理主要包括添加部门、修正和删除已存在的部门操作。员工只有查看部门的权限,管理员或者部门领导才可以添加、删除或者修改部门相关信息。

部门信息功能管理流程如下图3-8所示:

图3-8 部门信息功能管理流程图

职称管理主要包括添加职称部门、修改和删除职称,当然也只有管理员或者公司领导有权限。

职称信息管理流程图如下图3-9所示:

图3-9 职称信息管理流程图

3.3.6 公告管理模块设计
企业公告信息管理也是企业日常办公的一个常用功能,可以快速的传达企业内部的通知、规章变更等。

公告信息管理模块主要包括:发布公告、修正和删除已经存在的公告等操作。管理员或者部门领导可以发布、删除或者修正公告。

公告信息管理流程如下图3-10 所示:

图3-10 公告管理流程图

第四章 系统实现

4.1 项目整体结构
系统代码结构如下图4-1和4-2所示:

图4-1 后台代码结构

图4-2 页面代码结构

服务器端代码主要分为控制器controller包,用来处理请求;实体类entity,是实体类业务数据的封装;持久化mapper,它包含了系统的通用的数据库操作方法;业务逻辑service下的代码,主要负责处理业务逻辑。以及系统一些通用工具类util。

4.2 功能具体实现
由于模块功能较多,本章节主要挑几个重要的模块阐述内部实现及效果展示。

4.2.1 员工管理
在职员工列表主要是由EmployeeServiceImpl类中的selectListByPage()方法实现的,查询在职员工列表并带分页,如下图4-3所示。

图4-3 查询在职员工

员工详细信息查询主要由selectEmployee()方式实现,如下图4-4所示。

图4-4 员工详细信息查询

添加员工主要由addEmployee()方法实现,如下图4-5所示。

图4-5 添加员工

系统运行图如下图4-6图4-7图4-8所示。

图4-6 在职员工列表

图4-7 员工详细信息

图4-8 员工添加

4.2.2 考勤管理
员工考勤列表主要是由AttendanceServiceImpl类中的selectList()方法实现的,如下图4-9所示。

图4-9 考勤列表

员工上班打卡主要由addStart()方式实现,如下图4.10和4.11所示。

图4.10 员工上班打卡-1

图4-11 员工上班打卡-2

考勤管理运行如下图4-12、图4-13所示。

图4-12 考勤列表

图4-13 上班打卡

4.2.3 加班管理
加班管理列表主要是由OvertimeServiceImpl类中的selectListByPage()方法实现的,如下图5-14所示。

图4-14 加班列表

系统加班列表运行如下图4-15所示。

图4-15 加班列表

4.2.4 请假管理
请假记录列表主要是由LeavaServiceImpl类中的selectList()方法实现的,如下图5-16所示。

图4-16 请假记录列表

员工请假申请主要是由基础实现类ServiceImpl中的insert()方法调用持久化层将员工请假记录保存到数据库。

员工请假审批是由LeavaServiceImpl中的updateStatus()方法实现,主要是更新状态为审核通过或者未通过。如下图4.17所示。

图4-17 请假审批

系统运行图如下图4-18、4-19、4-20所示。

图4-18 员工请假列表

图4-19 员工申请请假

图4-20 员工请假审批

4.2.5 部门管理
部门记录列表主要是由DepartmentServiceImpl类中的selectListByPage()方法实现的,如下图4-21所示。

图4-21 部门列表

部门记录修改是由DepartmentServiceImpl中的selectByNumber()方法先查询在作修改,如下图4-22所示。

图4-22 部门详情

系统运行图如下图4-23、4-24所示。

图4-23 职称列表

图4-24 部门信息修改

职称功能模块主要PositionServiceImpl类中的一些方法实现,实现方式和部门类似,这里不再累述。

4.2.6 公告管理
公告列表主要是由NoticeServiceImpl类中的selectListByPage()方法实现的,如下图4-25所示。

图4-25 公告列表实现

系统公告列表运行如下图4-26所示。

图4-26 公告列表

到这里各模块功能实现大体上已经完成。

第五章 系统部署与测试

5.1 环境搭建
本系统的运行环境要求不高,主要是eclipse,JDK1.7,Tomcat7.0.7以及

MySQL5.6.24。

首先需要装好JDK,配好系统变量。然后安装Tomact服务器,Tomcat服务器分为安装板和无需安装的绿色版,本人一般喜欢免安装板,方便。然后安装Eclipse,并在Eclipse上配置好JDK和Tomcat。

项目部署,将项目加载到Tomcat服务器,操作步骤如下图5-1所示。

图5-1 项目部署到Tomcat

然后点击run或者debug启动项目,如下图5-2所示:

图5-2 项目启动

确保项目成功启动之后,访问项目,如下图5-3所示:

图5-3 项目访问

5.2 项目测试
系统测试从专业的角度来讲,分为代码测试和功能测试。

白盒测试就是针对代码进行测试,主要测试的是系统代码内部构造和逻辑分支。白盒测试对测试人员的要求比较高,需要熟悉代码并具备相应的开发经验。

黑盒测试就是对系统功能测试,主要测试系统功是否符合预期和满足需要。

测试的目的是为了发现项目中隐藏的一些潜在问题,提高软件的健壮性和质量。

由于本系统的测试用例比较多,我们主要从增删改三个方面分别从中挑选了几个测试用例来了解一下本系统的测试情况。

5.2.1 添加测试用例
员工添加测试用例:

输入:我们在员工添加页面填入一个员工的相关信息,如图6-4所示:

图5-4 员工信息添加

操作:员工信息填入完成之后,我们点击页面的添加按钮,触发用例事件。

预期结果:系统提示员工信息添加操作成功,并且在员工信息列表,我们可以看到该员工的信息。如图5-5和5-6所示:

图5-5 系统提示

图5-6 新添加员工信息。

从图中我们可以知道,员工添加操作满足我们的预期要求。

5.2.2 删除测试用例
删除员工信息测试用例:

输入:即页面选中一个员工,在代码中表现为员工ID的传递。

操作:用户点击页面上删除按钮,触发删除的用例操作。如下图5-7所示:

图5-7 员工删除操作

预期结果:系统首先提示是否真的删除该员工,用户点击确认删除之后,系统根据删除结果给与相关提示。页面上看不到改用户的信息了,如下图5-8和5-9所示:

图5-8 是否确认删除

图5-9 删除成功提示

我们可以看到,系统运行符合我们的预期,且带提示可以增加用户体验的好感度。

5.2.3 修改测试用例
公告修改测试用例:

输入:用户选择某一条公告记录,在代码层次表现为公告ID的传递。

进入到修改页面后,添加相关的修改信息。

操作:用户在公告列表页面上点击公告修改后,进入到公告修改页面,填入相干的信息后,点击修改按钮,触发页面修改操作。如图5-10所示:

图5-10 公告修改页面

预期:用户在页面上点击修改后,能够进入修改页面,点击页面下方的修改按钮后,系统给与提醒修改成功,页面信息更新了该条公告信息。如下图5-11所示:

图5-11 公告修改成功提示

从上图可知,公告修改模块功能正常,可以满足

第六章 总结与展望

经过了一个多月的努力,项目已经基本完成,功能流程基本可以跑通。本系统侧重于打造一款适用于中小型企业的办公自动化系统,具备中小型企业办公常用的功能。

载整个开发过程,我们也遇到并解决了一些问题。

首先就是SSM框架整合的问题,我们知道框架整合过程中需要配置多个xml文件,只要一个地方配置错误,那就系统就有可能启动不成功。然后是jar包的问题,一个项目可能会依赖很多个jar包,而jar包之间也会存在依赖和冲突问题,如何选择合适的版本,也成为框架搭建过程中一个棘手的问题。

然后就是系统的封装,如何减少代码的重复率这也是开发过程中必须面对的一个问题,我们可以把一些通用的方法封装起来,供多个模块调用,这样就可以缩小代码量,提高效率。

还是就是功能问题,比如请假流程,我们这里只是做了一个比较通用的请假流程,在实际应用中可能会存在2个级别以上的审批过程,比如员工提交请假申请到人事,人事再到部门主管,部门主管在到经理,如何处理这样一个多层次的审批流程在以后的系统扩展中也是一个必须要解决的问题。

通过开发这个项目,学到了很多开发知识,但也意识到了自身存在的一些弱点。学习知识是一个不停的积累过程,相信慢慢可以做到更好。

参考文献

[1] 杜龙;;办公自动化的国内外发展状况及未来的发展方向[J];电脑知识与技术;2009年09期

[2] 李慧勇;郑艳明;;国内外办公自动化的研究现状及发展趋势[J];科技信息(学术研究);2008年17期

[3] 徐雯;高建华;;基于Spring MVC及MyBatis的Web应用框架研究[J];微型电脑应用;2012年07期

[4] 姜娜;孔浩;张子锋;;高校业务系统中基于MyBatis实现可复用的DAO模型[J];昭通师范高等专科学校学报;2012年05期

[5] 张宇;王映辉;张翔南;;基于Spring的MVC框架设计与实现[J];计算机工程;2010年04期

[6] 吴显锋. 基于MVC的政府智能办公系统设计与实现[D]. 电子科技大学,2014.

[7] 江文达. 基于J2EE的企业综合办公系统设计与实现[D]. 厦门大学,2013.

[8] 刘曼曼. 基于J2EE架构MVC模式的办公自动化系统的设计与实现[D]. 电子科技大学,2012.

[9] 企业协同办公设计与实现[D]. 电子科技大学,2017.

[10] 王艳. 基于J2EE轻量级框架的OA系统主要模块的设计与实现[D]. 电子科技大学,2014.

[11] 施宁. 设计模式在基于J2EE的系统中的应用研究[D]. 浙江大学,2006.

[12] 李长树. 办公自动化系统的设计方法与实施策略[J]. 计算机应用研究,2000,(7):47-50.doi:10.3969/j.issn.1001-3695.2000.07.019.

[13] 邝孔武,王晓敏. 信息系统分析与设计[M]. 北京:清华大学出版社,1999.

[14] 卢连晋. 某电力企业OA系统的设计与实现[D]. 北京工业大学,2012.

[15] 聂翌. 企业办公管理系统设计与实现[D]. 北京工业大学,2011.

[16] 张薇. 高校办公自动化系统的设计与实现[D]. 厦门大学,2011.

[17] 常继红. 企业OA系统的设计与实现[D]. 电子科技大学,2011.

[18] 罗丹丹. 一种中型企业办公自动化系统设计与实现[D]. 电子科技大学,2009.

[19] 李长树. 中国办公自动化的理论与实践[D]. 同济大学,2000.

[20] 贺豹. 企业协同办公管理系统的研究与设计[D]. 云南大学,2011.

[21] 李震. 基于JSP的企业OA系统的设计与实现[D]. 南开大学,2015.

致谢

在论文圆满结束的时候,我衷心感谢我的杨丹老师在毕业设计期间给予我的很多帮助。从最开始的选题,到项目的功能分析,在到最后的论文编辑,老师都给与了我耐心的指导和无微不至的帮助。还在论文会上对于老师的演讲,私底下进行讲解,也着实让我感动。在老师的帮助下,无论我遇到什么困难或者问题都能够很快的解决。

同时感谢软件学院的各位老师大学期间在学业上给予我的指导和帮助。是你们让我学到了很多东西,相信这些东西,在我以后走向社会,工作也会有很大的帮助。

感谢常信院,给我提供了一个很好的学习环境;感谢老师,教会我做人以及做事;感谢同学,在大学与我同行。

最后,希望尊敬的各位老师和我的同学们,在以后的路上能越走越好。

​叿狆号:“IT软件学习社”

ssm+bootsrap人力资源考勤OA人事系统-JAVA【计算机毕业设计、源码、开题报告】相关推荐

  1. ssm+bootsrap人力资源考勤OA人事系统-JAVA【数据库设计、源码、开题报告】

    ​ 摘要 计算机信息技术的快速发展使得企业的传统办公方式不能够在满足我们实际工作中的各种需要,于是企业办公自动化应运而生.办公自动化主要是利用计算机网络技术,使用各种设备结合软件系统来协助完成各种工作 ...

  2. 基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. 基于JAVA体育城场地预定系统后台计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA体育城场地预定系统后台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA体育城场地预定系统后台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  4. 基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA在线学习跟踪系统前台计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

  5. 基于JAVA体育城场地预定系统前台计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA体育城场地预定系统前台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA体育城场地预定系统前台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  6. ssm+mysql+安卓app大学生社团信息管理系统-计算机毕业设计源码99953

    摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,高校当然也不能排除在外.大学生社团信息管理系统APP是以实际运用为开发背景,运用软 ...

  7. SSM基于区块链的物联网数据交易 计算机毕业设计源码46193

    摘  要 物联网技术作为继互联网技术后新一代的通信信息集成应用的典范,其巨大的应用前景受到了学术界和政商界的广泛关注.物联网技术在一些传统行业已经有了很深入的应用,例如,其在商品生产信息溯源.环境监测 ...

  8. ssm+mysql城市居民社区再生资源回收系统-计算机毕业设计源码41415

    目  录 摘要 1 绪论 1.1研究意义 1.2研究内容 1.3ssm框架介绍 1.4JavaScript 运行模式 1.5css3工作原理 1.6论文结构与章节安排 2城市居民社区再生资源回收系统分 ...

  9. 基于SSM的创业发布众筹系统设计与实现 计算机毕业设计源码37145

    摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设创业发布 ...

最新文章

  1. java 任意多个整数相加_一个整数分为若干个连续整数之和(使用java实现)
  2. zabbix服务器没有.pid文件,PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start. 报错解决...
  3. 什么是数据光端机?数据光端机的作用有哪些?
  4. 32f407tim4时钟源频率_慎重选择时钟发生器,别让这俩指标影响你的ADC 「图片」...
  5. 大数据分析实战-信用卡欺诈检测
  6. 如何将字符串数组的空格去除_java中如何将数组转换为List
  7. 6-2图像分类网络模型框架解读(下)
  8. 不是区块链的特征_《区块链的特征》阅读练习及答案
  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十):多客服接口说明
  10. hightec教程_如何用VectorCAST/C++做单元集成测试?
  11. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  12. C#网络编程技术教程pdf 文档分享
  13. 网易云音乐代码如何写入html,如何将网易云音乐加入到自己的网站!
  14. 超算入门笔记:大型机上如何运行WRF模式?一文总结(并行运算、Linux基础、作业调度、WRF运行)
  15. html5 保存后退,Html5 页面后退并刷新
  16. 简单好用的服务器压力测试小工具 ab
  17. 按照拼音排序的SQL语句条件
  18. 为什么有些人上午容易犯困?
  19. 华为云服务器默认密码怎么修改,如何修改云服务器登陆密码
  20. [C++程序设计](入门级题解)小鱼的航程

热门文章

  1. 可视化神器Plotly玩转股票图
  2. pxe clonezilla
  3. 4000 essential english words推荐学习
  4. 东海证券分析报告(0612)
  5. HTML小项目之双色球
  6. WIZnet 物联网设计大赛 - WizFi360大赛延迟通知
  7. 冯氏零售集团、梅西百货、法国兴业银行、瑞信前高管推出新零售集团,收购首个目的驱动型品牌
  8. 双臂协作机器人或是机器人管家的雏形,那他还在等什么?
  9. 基于Fundation框架的简单管理系统
  10. DICOMRT:Frontiers of Radiation Therapy and Oncology,肿瘤放疗最前沿