基于java的部门工作管理系统(公司办公管理)的设计与实现论文
2021/9/21 20:10:25
本文主要是介绍基于java的部门工作管理系统(公司办公管理)的设计与实现论文,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
论文题目:部门工作管理系统的设计与实现
摘 要
目前,不断发展的计算机技术已经被广泛用于各个行业和领域,传统意义上的部门工作形式发生着根本性的变化,企业部门工作的内容也己经转变为对更为广泛的价值的追求。在现代化的进程中,引入现代管理的思想,建立一个面向企业的部门工作管理系统是很有前景的。
本课题基于我国企业管理的现状,结合在实际工作中遇到的问题,对本系统在设计开发等方面进行研究,使用本系统对部门和员工进行管理,具有手工管理难以比较的优点,例如:检索迅速、查找方便、存储量大、保密性好、寿命长、成本低等。系统中管理员的主要功能模块包括:部门信息管理、员工信息管理、考勤管理、新闻公告管理,企业留言板等。员工用户的主要功能模块包括:考勤、个人事宜管理、浏览新闻公告、邮箱管理、留言等。本系统是一个基于MVC设计模式的部门工作管理系统,采用MyEclipse开发,JSP+JavaScript实现页面效果,后台搭建Struts2+Spring+Hibernate (简称SSH)框架,采用Tomcat作为Web服务器,MySQL作为数据库管理系统。
通过部门工作管理系统这个平台的实现,能够降低工作成本,减轻管理人员负担,方便部门信息的维护,实现企业部门管理的科学化,信息化,网络化,规范化,提高企业工作效率,提升企业管理水平。
关键词:部门工作管理,JSP,SSH,MVC,MySQL
Design and Implementation of Department Work Management System
Abstract
At present, the computer technology of continuous development has been widely used in various industries and fields, the department work of the traditional sense has undergone fundamental changes, the enterprise department has also been transformed into pursuing broader value in the work content. In the process of modernization, the introduction of modern management ideas and the establishment of the department work management system that face to enterprise is very promising.
Based on the current situation of enterprise management in China and the problems encountered in practical work, this thesis research the system on the design and development, and use the system to manage the departments and employees, It has the advantage that paper management is difficult to compare, for example, searching quickly, easy to finding, big capacity, good confidentiality, long life, low cost. The main function of the administrator include: managing department information, managing employee information, managing attendance, managing news and bulletin, enterprise message board. The main function of employees include: checking on work attendance, managing personal matters, browsing news and bulletin, managing mailbox, publishing comments. The system is a department work management system based on MVC that use MyEclipse to develop, apply JSP and JavaScript to achieve the page effect, at the same time, build Struts2+Spring+Hibernate(SSH) framework on the background, and use Tomcat as the Web server, use MySQL as the database management system.
Through the platform of the departmental work management system, it can reduce the working cost and the burden of managers, facilitate the management of departmental information, it ensure the enterprise department management that be scientific and informatization, networked, standardized, and improve the efficiency of enterprises’ work, enhance the enterprises’ management level.
Key words: Department work managment,JSP,SSH,MVC,MySQL
目 录
摘 要 I
Abstract II
第1章 项目概述 1
1.1 问题描述 1
1.2 项目目标 1
1.3 项目适用范围 1
1.4 涉众 1
第2章 需求分析 2
2.1 业务需求 2
2.1.1 业务流程 2
2.1.2 业务对象 3
2.2 功能性需求 3
2.2.1 用例概述 3
2.2.2 用例描述 4
2.3 非功能性需求 10
2.4 运行环境 10
第3章 系统设计 12
3.1 技术路线 12
3.2 软件体系结构设计 13
3.2.1 功能结构 13
3.2.2 系统架构 14
3.3 数据库设计 15
3.3.1 概念结构设计 15
3.3.2 表的详细设计 15
3.4 对象设计 18
3.4.1 添加员工用例对象设计 18
3.4.2 删除部门用例对象设计 20
3.4.3 发送邮件用例对象设计 22
第4章 系统实现 25
4.1 核心功能实现 25
4.1.1 添加员工信息的实现方案 25
4.1.2发送邮件的实现方案 27
4.1.3添加公告,新闻的实现方案 28
4.1.4留言板的实现方案 30
4.2 关键技术难点与解决方案 31
第5章 系统测试 33
5.1 功能测试 33
5.2 测试总结 34
第6章 结论与展望 36
6.1 结论 36
6.2 展望 36
参考文献 37
致 谢 38
第1章 项目概述
1.1 问题描述
目前,不断发展的计算机技术已经被广泛用于各个行业和领域,传统意义上的部门工作形式发生着根本性的变化,企业部门工作的内容也己经转变为对更为广泛的价值的追求。在现代化的进程中,引入现代管理的思想,建立一个面向企业的部门工作管理系统是很有前景的。
以前的部门工作管理大部分采用手工管理的方式,用纸质材料进行登记和记录,这样很不方便,也很不科学,导致了业务量和工作强度不断增加,工作效率不断下降、并且成本不断增加。通过计算机实现一套基于计算机和网络的部门工作管理系统,从而大大的方便了部门工作的管理,并进一步取得客户的满意认同度。
1.2 项目目标
部门工作管理系统的开发目标是通过计算机对企业管理进行信息化。信息化管理系统因为信息量大、数据准确、速度快、管理全面的特点,获得了广大部门工作管理者的一致认同。并且,通过计算机网络对部门工作的管理,克服了人为管理中人为因素的失误给企业带来的诸多不便,大大提高了部门工作效率,进而为企业创造了更大的利润。
本系统主要为管理者提供充足的信息查询和快捷的信息管理手段,对主要功能进行系统分析,在已存在的系统的基础上进行创新,使部门管理工作的成本更低,部门信息的更新、维护和查询更简便,提出可行性方案,设计出功能完善的部门工作管理系统。
1.3 项目适用范围
本系统主要使用在公司对部门和员工的管理工作上面,适合当前大多数企业在部门、考勤、员工、公告新闻、企业信息等方面的管理,还有普通员工个人事宜管理、员工之间通信、留言等方面的功能。
1.4 涉众
本系统涉众主要包括公司部门管理系统中的管理员用户跟普通员工用户。
系统管理员:可以对部门信息进行添加、删除等,可以对员工信息进行增删改查等操作,可以发布和删除当前新闻和公告,可以对用户考勤信息进行查看,可以对留言板进行管理,可以对管理员账户进行添加删除。
员工用户:打卡考勤,对个人代办事宜进行查看添加等,可以浏览相关新闻、公告,管理自己的邮箱,修改密码等。
第2章 需求分析
2.1 业务需求
2.1.1 业务流程
员工登录之后进行考勤,然后管理员查看所有员工的考勤记录,修改考勤记录。员工通过留言板留言,管理员登录系统查看所有留言,自己发表留言,还能删除违规留言。
部门工作管理系统核心业务流程如图2.1-2.2所示。
图2.1 管理考勤业务流程图
图2.2 管理留言业务流程图
2.1.2 业务对象
业务对象主要包括管理员、部门、员工、考勤、新闻、公告、邮件、留言、通讯录、待办事宜等业务对象,管理员对象属性有管理员ID、管理员账号、管理员密码,部门对象属性有部门ID、部门名、部门描述、上级部门,员工对象属性有员工ID、账号、密码、姓名、性别、年龄、学历、职位、地址、电话、邮箱、QQ、部门ID、账户类型,考勤对象属性有考勤ID、日期、时间、员工ID,新闻对象属性有新闻ID、新闻标题、新闻内容、发布日期,公告对象属性有公告ID、公告标题、公告内容、发布日期,邮件对象属性有邮件ID、标题、内容、附件、日期、发件人、收件人、状态,留言对象属性有留言ID、标题、内容、留言日期、留言用户,通讯录对象属性有通讯录ID、姓名、公司、手机号、邮箱,待办事宜对象属性有ID、标题、日期、内容、员工ID。
领域模型如图2.3所示。
图2.3 领域模型
2.2 功能性需求
2.2.1 用例概述
系统主要分为管理员与员工两类用户,管理员主要用例有:管理员登录、管理部门信息、管理员工信息、管理考勤信息、管理新闻公告、管理留言板、管理系统信息等。员工用户主要用例有:员工登录、考勤、管理个人事宜、管理邮箱、浏览新闻公告、使用留言板、修改密码等。
系统高层用例图如图2.4所示。
图2.4 高层用例图
用例摘要描述如表2.1所示。
表2.1 用例摘要描述
用例标识(UC) 用例名称 摘要描述
1.0 管理员登录 使用管理员账户登录,进入管理员界面。
1.1 管理部门信息 管理员可以对部门进行增加和删除
1.2 管理员工信息 管理员可以对员工信息进行查看,添加,删除等操作。
1.3 管理考勤信息 管理员可以对员工的考勤信息进行查看。
1.4 管理新闻公告 管理员可以对新闻和公告进行发布和删除。
1.5 管理留言板 管理员可以在公司内部留言板进行留言和删除。
1.6 管理系统信息 管理员可以修改登录密码及企业信息,添加其他管理员。
2.0 用户登录 使用普通员工账号登录系统,进入员工界面。
2.1 用户考勤 用户可以进行点击考勤。
2.2 管理个人事宜 用户可以进行个人待办事宜的添加查看,和添加通讯录。
2.3 管理邮箱 用户可以进行发邮件,查看收件箱发件箱操作。
2.4 浏览新闻公告 用户可以查看当前的新闻和公告。
2,5 使用留言板 用户可以在留言板上面发布留言。
2.6 修改密码 用户可以修改登录密码。
2.2.2 用例描述
(1)管理员工信息用例
管理员进入系统之后可以查看所有员工的信息,对员工信息进行操作,包括添加员工和删除员工,还有修改员工信息。管理员工信息用例图如图2.5所示。
图2.5 管理员工信息用例图
管理员工信息用例描述如表2.2所示。
表2.2 管理员工信息用例
用例标识 1.2.1
用例名称 添加员工信息
参与者 管理员
前置条件 已经以管理员身份登录成功。
后置条件 在员工信息表中添加一条员工信息
用例概述 管理员可以对员工信息进行添加。
基本事件流 1. 管理员在系统界面点击添加员工按钮。
2. 系统显示员工信息输入页面。
3. 管理员输入员工信息。
4. 管理员点击提交。
5. 系统添加一条员工信息记录。
6. 系统展示添加以后的员工信息列表。
备选事件流 无
备注 员工信息要具有真实性。
(2)管理新闻公告用例
管理员可以对当前发布的新闻和公告进行查看和添加,不需要的新闻和公告可以进行删除,员工用户登录之后可以浏览管理员最新发布的新闻和公告。管理新闻公告用例图如图2.6所示。
图2.6 管理新闻公告用例图
管理新闻公告用例描述如表2.3所示。
表2.3 管理新闻公告用例
用例标识 1.4.1
用例名称 删除新闻
参与者 管理员
前置条件 已经以管理员身份登录成功。
后置条件 在新闻列表中删除一条记录
用例概述 管理员可以删除已发布的新闻。
基本事件流 1. 管理员点击新闻管理。
2. 管理员可以查看到当前已发布的新闻。
3. 管理员点击需要删除的新闻旁边的删除按钮。
4. 系统删除一条新闻信息记录。
5. 系统提示删除成功。
6. 系统展示删除以后的新闻列表。
备选事件流 无
备注 无
(3)管理留言板用例
用户进入系统之后可以到留言板留言,管理员可以自己留言,查看所有用户的留言,还可以删除用户的违规留言,管理留言板用例图如图2.7所示。
图2.7 管理留言板用例图
管理留言板用例描述如表2.4所示。
表2.4 管理留言板用例
用例标识 1.5.1
用例名称 删除留言
参与者 管理员
前置条件 已经以管理员身份登录成功。
后置条件 留言表里面删除一条记录。
用例概述 管理员可以查看当前所有留言,对不合适的留言进行删除。
基本事件流 1. 管理员点击留言板管理。
2. 系统显示当前所有用户的留言。
3. 管理员点击任意一条留言的删除按钮。
4. 系统删除一条留言记录。
5. 系统提示删除成功。
6. 系统显示删除一条记录之后的所有留言信息
备选事件流 无
备注 无
(4)用户考勤用例
用户进入系统之后可以点击进行打卡考勤,还能查看到个人的考勤记录,管理员进入考勤管理之后可以查看到所有员工的考勤记录,用户考勤用例图如图2.8所示。
图2.8 用户考勤用例图
用户考勤用例描述如表2.5所示。
表2.5 用户考勤用例
用例标识 2.1.1
用例名称 用户点击考勤
参与者 员工用户
前置条件 已经以员工用户身份登录成功。
后置条件 员工考勤表添加一条记录。
用例概述 员工用户点击进行考勤。
基本事件流 1. 用户点击考勤管理。
2. 用户点击我要考勤。
3. 系统添加一条员工考勤记录。
4. 系统提示考勤成功。
备选事件流 无
备注 无
(5)管理个人事宜用例
用户进入系统之后可以对个人待办事宜及通讯录进行管理,包括添加、删除待办事宜,添加、删除通讯录的联系人信息。管理个人事宜用例图如图2.9所示。
图2.9 管理个人事宜用例图
管理个人事宜用例描述如表2.6所示。
表2.6 管理个人事宜用例
用例标识 2.2.1
用例名称 添加待办事宜
参与者 用户
前置条件 已经以用户身份登录成功
后置条件 个人待办事宜信息列表添加一条记录。
用例概述 用户可以添加代办事宜,在待办事宜完成以后进行删除。
基本事件流 1. 用户点击待办事宜管理。
2. 用户可以查看到当前待办事宜。
3. 用户点击添加按钮。
4. 系统显示待办事宜输入页面。
5. 用户输入待办事宜信息,点击添加。
6. 系统添加一条待办事宜记录。
7. 系统显示最新待办事宜列表。
备选事件流 无
备注 无
(6)管理邮箱用例
员工用户进入系统之后可以到邮箱管理模块,发送邮件给其他用户,并且在发件箱查看已发送邮件,打开收件箱查收邮件,管理邮箱用例图如图2.10所示。
图2.10 管理邮箱用例图
管理邮箱用例描述如表2.7所示。
表2.7 管理邮箱用例
用例标识 2.3.1
用例名称 发送邮件
参与者 用户
前置条件 已经以用户身份登录成功。
后置条件 邮件信息添加一条记录。
续表2.7 管理邮箱用例
用例概述 用户进入邮箱管理,点击发邮件,编辑之后发送到收件人的邮箱。
基本事件流 1. 用户点击发邮件。
2. 用户选择联系人。
3. 用户编辑邮件内容,点击提交。
4. 系统添加一条邮件记录。
5. 系统将邮件展示在收件人的收件箱和发件人的发件箱。
6. 系统提示邮件发送成功。
备选事件流 无
备注 无
2.3 非功能性需求
正确性:系统不允许出现用户之间业务错误。
健壮性:系统发生异常时,要有相关数据保护措施,员工和部门数据不能丢失,并提供相应的应急措施。
并发:允许至少50个以上的用户同时登录并且保持服务器稳定,系统正常运行。
性能:系统处理普通业务用时不超过2秒,业务复杂时用时不得超过6秒。
安全性:员工个人信息跟部门相关信息具有保密性,只能由管理员及用户本人查看。
兼容性:可运行在Windows7及以上操作系统中。
2.4 运行环境
本软件系统运行所需的硬件环境如下。
(1)主机类型
应用服务器:Tomcat7.0
数据库服务器:MySQL5.7
工作站:Dell Inspiron 5521,8192M RAM
(2)网络类型
以太网
(3)存贮器容量
应用服务器:20G以上
数据库服务器:50G以上
(4)本系统主要设备包括系统主机、MySQL数据库、以太网、服务器等,设备分布图如图2.11所示。
图2.11 网络拓扑图
本软件系统运行所需的软件环境如下。
(1)操作系统
应用服务器:Windows NT Server 2003以上版本
工作站:windows XP以上
(2)数据库管理系统
MySQL 5.7
第3章 系统设计
3.1 技术路线
(1)JSP+JavaScript+AJAX
本系统选用JSP作为系统开发服务端的页面技术。使用JavaScript与之配合,使页面效果更加丰富,人机交互更加合理舒适。JSP全名为Java Server Pages,在传统的HTML元素页面中加入Java程序片段和JSP标签,就构成了JSP网页。Java程序用来实现与数据库的交互,实现创建动态网页的功能。
JavaScript是一种基于对象的,动态的客户端脚本语言。主要是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。JQuery是一个JavaScript整合框架,也是基于JavaScript实现,里面提供了很多内置的方法,使用起来要更加方便,代码也更加简洁。
AJAX是一种实现异步通信的基于JavaScript和XML的动态网页技术,可以实现页面局部与后台进行交互的效果,不需要刷新页面,这样可以达到节约资源提高效率的目的。
(2)MVC设计模式
设计模式就是以前的开发人员解决问题的一些经验总结,在固定的场景下,可以直接把这种总结拿来用。本系统采用的是MVC设计模式,这种模式就是将代码进行模块化处理,将不同功能的代码分模块放在一起,使程序在后期维护起来更加方便。
模型层(M):M即Model,主要代表了业务数据和业务逻辑,业务逻辑对于其他模块来说是不可见的,当数据发生改变时,它会通知视图层,Model可以说是是应用程序的主体部分。
视图层(V):V即View,主要用于信息的显示,人机交互。在视图层上可以进行数据的处理,接受用户的请求。这儿用的是JSP来完成和实现的。
控制层©:C即Controller,用来调用模型处理业务请求、控制数据的展示。控制层是不做数据的处理的,它接收用户的请求,将信息传递给Model,由Model来调用相应的业务请求,根据请求调用相应的View,将信息显示出来。
MVC各层之间的关系如图3.1所示。
图3.1 MVC各层之间的关系
(3)SSH框架
SSH为Struts+Spring+Hibernate的一个集成框架,是一种应用比较广泛的Web应用开发框架。它的大概流程是:在表示层中,首先通过JSP实现页面的交互,负责请求和响应,然后Struts将接收到的请求委派给相应的Action处理。在业务层中,Spring容器负责向Action提供业务模型和该组件的数据操作组件(Dao)实现业务逻辑。在持久层中,使用Hibernate的XML映射和数据库进行交互,处理Dao的请求数据,并将处理的结果返回。SSH体现了MVC思想,并且具有良好的扩展性和可维护性。
3.2 软件体系结构设计
3.2.1 功能结构
根据需求调研结果确定本系统分为管理员模块跟普通用户模块,主要分为以下功能模块,系统功能结构如图3.2所示。
图3.2 系统功能结构图
3.2.2 系统架构
系统架构设计分为三个基础层级,通过有效的层级结构划分可以全面展现应用系统的设计思路。
数据层:数据层是整个系统与数据库进行交互的基础,分为存储层和访问层,对于访问层,将通过系统功能中的信息展示模块,供用户有效的对信息查询维护;对于存储层,进行合理的数据设计,从而更加合理有效的实现数据的存储管理。
应用层:应用层是整个系统业务流程正确的保障,分为控制层,业务层,实现层。 控制层接收页面请求和响应请求,业务层和实现层用来管理业务逻辑和实现流程,整体系统功能将通过页面展现,用户登录之后分别进入管理员门户和员工门户。
客户层:客户层主要是通过页面展示信息给用户,用户通过页面向后台发起请求,后台响应之后返回信息到页面。
部门工作管理系统系统架构图如图3.3所示。
图3.3 系统架构图
3.3 数据库设计
3.3.1 概念结构设计
本系统主要包括管理员、部门、员工、新闻、公告、留言、邮件、待办事宜、通讯录、考勤等实体。相关系统ER图如图3.4所示。
图3.4 系统ER图
3.3.2 表的详细设计
通过对领域对象、业务对象及对象间关联的分析,对本系统的数据库表进行了设计,一共包括管理员表、部门表、待办事宜表、员工信息表、公告表、留言表、新闻表、通讯录表、邮件表、考勤信息表如表3.1–表3.10所示。本系统数据库管理采用MySQL数据库系统。
(1)管理员表(t_admin)
管理员信息表主要用于保存系统管理员的信息,主要字段包括:管理员ID、登录账号、登录密码。表结构如表3.1所示。
表3.1 管理员信息表(t_admin)
列名 数据类型 长度 允许空 是否主键 说明
userId int 10 否 主键 管理员ID
userName varchar 50 是 否 账户
userPw varchar 50 是 否 密码
(2)部门表(t_ organization)
部门信息表用于记录系统所有部门的基本信息,主要字段包括部门ID,部门名称,部门介绍等,表结构如表3.2所示。
表3.2 部门信息表(t_organization)
列名 数据类型 长度 允许空 是否主键 说明
org_id int 10 否 主键 部门ID
org_name varchar 255 是 否 部门名称
org_description varchar 50 是 否 部门介绍
(3)待办事宜表(t_ daibanshiyi)
待办事宜表用于员工记录工作内容,主要字段包括ID,事宜标题,事宜内容,记录日期,相关员工ID,表结构如表3.3所示。
表3.3 待办事宜表(t_ daibanshiyi)
列名 数据类型 长度 允许空 是否主键 说明
daibanshiyi_id Int 11 否 主键 事宜ID
daibanshiyi_title Varchar 50 是 否 事宜标题
daibanshiyi_content varchar 50 是 否 事宜内容
daibanshiyi_date varchar 50 是 否 记录日期
daibanshiyi_yuangong_id int 11 是 否 员工ID
(4)员工信息表(t_yuangong)
员工信息表用于记录系统所有员工的基本信息,主要字段包括自动编号,员工姓名,员工性别,员工年龄,员工学历,员工职位,员工地址,员工联系电话,员工邮箱,权限,登录账号,登录密码,部门id,用户类型等,表结构如表3.4所示。
表3.4 员工信息表(t_yuangong)
字段名 类型 长度 是否为空 是否主键 说明
yuangong_id int 10 否 主键 员工ID
yuangong_name varchar 255 是 否 员工姓名
yuangong_sex varchar 255 是 否 员工性别
yuangong_age int 10 是 否 员工年龄
yuangong_xueli varchar 50 是 否 员工学历
yuangong_zhiwei varchar 50 是 否 员工职位
yuangong_address varchar 50 是 否 员工地址
yuangong_tel varchar 50 是 否 员工电话
yuangong_email varchar 50 是 否 员工邮箱
quanxian varchar 20 是 否 权限
yuangong_login_name varchar 50 是 否 登录账号
yuangong_login_Pw varchar 50 是 否 登录密码
yuangong_org_id int 10 是 否 部门id
type varchar 50 是 否 用户类型
(5)公告表(t_gonggao)
公告表用于记录管理员发布的公告的基本信息,主要字段包括ID,标题,内容,发布日期等,表结构如表3.5所示。
表3.5 公告表(t_ gonggao)
字段名 类型 长度 是否为空 是否主键 说明
gonggao_id int 11 否 主键 公告ID
gonggao_title varchar 50 是 否 标题
gonggao_content varchar 255 是 否 内容
gonggao_data varchar 50 是 否 发布日期
(6)留言表(t_liuyan)
留言表用于记录所有用户留言的基本信息,主要字段包括ID,标题,内容,日期,留言用户等,表结构如表3.6所示。
表3.6 留言表(t_ liuyan)
字段名 类型 长度 是否为空 是否主键 说明
liuyan_id int 11 否 主键 ID
liuyan_title varchar 50 是 否 标题
liuyan_content varchar 255 是 否 内容
liuyan_date varchar 50 是 否 日期
liuyan_user varchar 50 是 否 留言用户
(7)新闻表(t_news)
新闻表用于记录管理员发布的新闻的基本信息,主要字段包括ID,标题,内容,发布日期等,表结构如表3.7所示。
表3.7 新闻表(t_ news)
字段名 类型 长度 是否为空 是否主键 说明
news_id int 11 否 主键 ID
news title varchar 50 是 否 标题
news content varchar 255 是 否 内容
news date varchar 50 是 否 发布日期
(8)通讯录表(t_tongxunlu)
通讯录表用于员工个人通讯录的基本信息,主要字段包括ID,姓名,公司,手机,邮箱,员工编号等,表结构如表3.8所示。
表3.8 通讯录表(t tongxunlu)
字段名 类型 长度 是否为空 是否主键 说明
id int 11 否 主键 ID
xingming varchar 50 是 否 姓名
gongsi varchar 50 是 否 公司
shouji varchar 50 是 否 手机号
youjian varchar 50 是 否 邮箱
续表3.8 通讯录表(t tongxunlu)
字段名 类型 长度 是否为空 是否主键 说明
yuangong_id int 50 是 否 员工ID
(9)邮件表(t_youjian)
邮件表用于记录员工邮箱的信息,主要字段包括ID,标题,内容,附件,附件名,发件日期,发件人,收件人等,表结构如表3.9所示。
表3.9 邮件表(t_youjian)
字段名 类型 长度 是否为空 是否主键 说明
youjian_id int 11 否 主键 ID
youjian_title varchar 50 是 否 标题
youjian_content varchar 255 是 否 内容
fujian varchar 50 是 否 附件
fujianYuanshiming varchar 50 是 否 附件名
youjian_date varchar 50 是 否 发件日期
youjian_from_userId Int 11 是 否 发件人
youjian_to_userId int 11 是 否 收件人
(10)考勤信息表(t_qiandao)
考勤信息表用于记录系统所有员工的签到考勤信息,主要字段包括签到ID,员工ID,签到日期,签到时间,表结构如表3.10所示。
表3.10 考勤表(t qiandao)
字段名 类型 长度 是否为空 是否主键 说明
id int 11 否 主键 签到ID
yuangong_id int 11 否 否 员工ID
riqi varchar 255 是 否 签到日期
shijian varchar 225 是 否 签到时间
3.4 对象设计
本系统主要分为管理员和员工两类用户,以下是两个用户的功能:
管理员的功能包括:管理员登录,部门信息管理,员工信息管理,新闻公告管理,考勤信息管理,留言板管理,系统信息管理。
员工用户的功能包括:个人事宜管理,考勤,新闻公告浏览,邮箱管理,使用留言板,修改密码等,以下对各个模块进行详细设计。
3.4.1 添加员工用例对象设计
(1)用例实现
系统管理员登录进入管理员界面,选择员工管理,点击添加员工按钮,弹出信息录入界面,输入信息并提交,系统提示添加成功,跳转到员工信息页面展示信息。
添加员工用例的实现顺序图如图3.5所示。
图3.5 添加员工用例顺序图
(2)设计类图
根据顺序图的分析得到添加员工用例的设计类图,如图3.6所示。
图3.6 添加员工用例的设计类图
(3)描述
类图中TYuanggong类的描述如表3.11所示。
表3.11 TYuanggong类的描述
类名 属性/方法 描述
TYuanggong -yuangongId 员工ID
-yuangongName 员工姓名
-yuangongSex 员工性别
-yuangongAge 员工年龄
-yuangongXueli 员工学历
-yuangongZhiwei 员工职位
-yuangongAddress 员工地址
-yuangongTel 员工电话
-loginName 登录名
-loginPaw 登录密码
-OrgId 部门ID
类图中TyuangongDao类的描述如表3.12所示。
表3.12 TyuangongDao类的描述
类名 属性/方法 描述
TyuangongDao + save (TAdmin transientInstance) 添加员工
+ delete (TAdmin persistentInstance) 删除员工
+ findById (java.lang.Integer id) 查找员工
类图中YuangongAction类的描述如表3.13所示。
表3.13 YuangongAction类的描述
类名 属性/方法 描述
YuangongAction -yuangongId 员工ID
-yuangongName 员工姓名
-yuangongSex 员工性别
-yuangongAge 员工年龄
-yuangongXueli 员工学历
-yuangongZhiwei 员工职位
-yuangongAddress 员工地址
-yuangongTel 员工电话
-loginName 登录名
-loginPaw 登录密码
-OrgId 部门ID
+yuangongAdd( ) 添加员工
3.4.2 删除部门用例对象设计
(1)用例实现
管理员登录成功以后可以进入部门管理,点击查看到所有部门信息,对现有的部门可以进行删除操作。
删除部门用例的实现顺序图如图3.7所示。
图3.7 删除部门用例顺序图
(2)设计类图
根据顺序图的分析得到删除部门用例的设计类图,如图3.8所示。
图3.8 删除部门用例的设计类图
(3)描述
类图中OrganizationService类的描述如表3.14所示。
表3.14 OrganizationService类的描述
类名 属性/方法 描述
OrganizationService -organizationDAO 部门相关Dao
+ save (TOrganization transientInstance) 添加部门
+ delete (Integer depId) 删除部门
+ findAll () 查看所有部门
+ findById (java.lang.Integer id) 按id查找部门
类图中Torganization类的描述如表3.15所示。
表3.15 Torganization类的描述
类名 属性/方法 描述
Torganization -orgId 部门编号
-orgName 部门名
-orgDescription 部门描述
- parenOrganization 上级部门
类图中TOrganizationDAO类的描述如表3.16所示。
表3.16 TOrganizationDAO类的描述
类名 属性/方法 描述
TOrganizationDAO + save (TOrganization transientInstance) 添加部门
+ delete (TOrganization persistentInstance) 删除部门
+ findById (java.lang.Integer id) 按id查看部门
+ findAll () 查看所有部门
类图中OrgAction类的描述如表3.17所示。
表3.17 OrgAction类的描述
类名 属性/方法 描述
OrgAction -depId 部门编号
-orgName 部门名
-orgDescription 部门描述
+orgMana() 管理部门
+ addOrg () 添加部门
+ orgAll () 查看所有部门
+ delOrg () 删除部门
3.4.3 发送邮件用例对象设计
(1)用例实现
员工登录进入普通用户界面,选择邮箱管理,点击发送邮件,弹出邮件编辑界面,输入信息并提交,系统提示发送成功,邮件保存到发件箱,收件人用户登录之后在发件箱能够收到邮件。
发送邮件用例的实现顺序图如图3.9所示。
图3.9 发送邮件用例顺序图
(2)设计类图
根据顺序图的分析得到发送邮件用例的设计类图,如图3.10所示。
图3.10 发送邮件用例设计类图
(3)描述
类图中Tyoujian类的描述如表3.18示。
表3.18 Tyoujian类的描述
类名 属性/方法 描述
Tyoujian - oujian 员工ID
- oujianTitle 员工姓名
- oujianContent 员工性别
- fujian 员工年龄
续表3.18 Tyoujian类的描述
类名 属性/方法 描述
Tyoujian - jianyuanshiming 员工学历
-youjianDate 员工职位
-youjianFromUserId 员工地址
-youjianToUserId 员工电话
-del 登录名
类图中TyoujianDao类的描述如表3.19示。
表3.19 TyoujianDao类的描述
类名 属性/方法 描述
TyoujianDao + save (Tyoujian tansientInstance) 发送邮件
+ delete (Tyoujian persistentInstance) 删除邮件
+ findById (java.lang.Integer id) 查询邮件
类图中youjianAction类的描述如表3.20所示。
表3.20 youjianAction类的描述
类名 属性/方法 描述
youjianAction -youjianId 邮件ID
-youjianTitle 邮件标题
-youjianContent 邮件内容
-fujian 附件
-fujianYanshiming 邮件名
-youjianDate 发件日期
-youjianFromUserId 发件人
-youjianToUserId 收件人
-yuangongDao 员工Dao
-youjianDao 邮件Dao
+youjianAdd() 发送邮件
+youjianFromMy() 发件箱
+youjianToMy() 收件箱
+youjianDel() 删除邮件
第4章 系统实现
4.1 核心功能实现
部门工作管理系统的核心业务是管理员对部门的管理,员工的管理,新闻公告发布,还有员工之间相互的交流,比如邮箱管理和留言板的功能。
4.1.1 添加员工信息的实现方案
管理员输入用户信息,并且通过表单提交到yuangongAction的yuangongAdd方法,然后将数据传递给TYuangongDAO,基于Spring跟Hibernate的配置,直接调用TYuangongDAO中的save方法,添加员工信息,期间不需要执行Sql语句,在xml文件中映射实体类和其对应表,Hibernate自动将数据插入交给相应字段,执行操作。
输入员工信息如图4.1所示。
图4.1 输入用户信息界面
添加成功提示如图4.2所示。
图4.2 添加成功提示界面
自动返回到员工信息页面如图4.3所示。
图4.3 员工信息展示页面
根据上面的描述,截取了部分的代码如下:
yuangongAction类:
TYuangong yuangong=new TYuangong();
yuangong.setYuangongName(yuangongName);
yuangong.setYuangongSex(yuangongSex);
yuangong.setYuangongAge(yuangongAge);
yuangong.setYuangongXueli(yuangongXueli);
yuangong.setYuangongZhiwei(yuangongZhiwei);
yuangong.setYuangongAddress(yuangongAddress);
yuangong.setYuangongTel(yuangongTel);
yuangong.setYuangongEmail(yuangongEmail);
yuangong.setYuangongQq(yuangongQq);
yuangong.setYuangongLoginName(yuangongLoginName);
yuangong.setYuangongLoginPw(yuangongLoginPw);
yuangong.setYuangongOrgId(yuangongOrgId);
yuangong.setType(“yuangong”);
yuangong.setDel(“no”);
yuangongDAO.save(yuangong);
this.setMessage(“操作成功”);
this.setPath(“yuangongMana.action”);
return “succeed”;
TYuangongDAO类:
log.debug(“saving TYuangong instance”);
try{
//insert into tb(name,age) values(?,?)
getHibernateTemplate().save(transientInstance);
log.debug(“save successful”);
} catch (RuntimeException re){
log.error(“save failed”, re);
throw re;
}
Hibernate 自动生成SQL语句,如图4.4示。
图4.4 Hibernate生成SQL语句
4.1.2发送邮件的实现方案
用户进入邮箱管理页面,点击写邮件,进入邮件编辑页面,选择发件人,其实是选择员工Id,然后通过Id将邮件添加到收件人的收件箱中,这儿执行的是youjianAction的youjianAdd方法,然后将数据传递给TYoujianDAO,基于Spring跟Hibernate的配置,直接调用TYoujianDAO中的save方法,同时添加到发件人的发件箱中,实现类似邮件收发的效果。
邮件编辑界面如图4.5所示。
图4.5 邮件编辑界面
发送成功,发件箱如图4.6所示。
图4.6 发件箱界面
登录收件人账号打开收件箱界面如图4.7所示。
图4.7 收件人收件箱页面
根据上面的描述,截取了部分的代码如下:
youjianAction类:
Map session= ServletActionContext.getContext().getSession();
TYuangong yuangong=(TYuangong)session.get(“yuangong”);
TYoujian youjian=new TYoujian();
youjian.setYoujianToUserId(youjianToUserId);
youjian.setYoujianContent(youjianContent);
youjian.setYoujianTitle(youjianTitle);
youjian.setFujian(fujian);
youjian.setFujianYuanshiming(fujianYuanshiming);
youjian.setYoujianFromUserId(yuangong.getYuangongId());
youjian.setYoujianDate(new Date().toLocaleString());
youjian.setDel(“no”);
youjianDAO.save(youjian);
this.setMessage(“邮件发送成功”);
this.setPath(“youjianFromMy.action”);
return “succeed”;
4.1.3添加公告,新闻的实现方案
管理员进入新闻管理跟公告管理页面,点击添加按钮,输入新闻或者公告内容,通过表单传递给后台,这儿执行的是newsAction的newsAdd方法和gonggaoAction的gonggaoAdd,然后将数据传递给TNewsDAO和TGonggaoDAO,基于Spring跟Hibernate的配置,直接调用TNewsDAO中的save方法和TGonggaoDAO的save方法,执行添加操作,展示到页面,供用户浏览。
已发布新闻界面和已发布公告界面如图4.8和4.9所示。
图4.8 已发布新闻界面
图4.9 已发布公告界面
添加新闻与添加公告界面如图4.10和4.11所示。
图4.10 添加新闻页面
图4.11 添加公告页面
根据上面的描述,截取了部分的代码如下:
TNewsDAO类:
try{
getHibernateTemplate().save(transientInstance);
log.debug(“save successful”);
} catch (RuntimeException re){
log.error(“save failed”, re);
throw re;
}
TGonggaoDAO类:
try{
getHibernateTemplate().save(transientInstance);
log.debug(“save successful”);
} catch (RuntimeException re){
log.error(“save failed”, re);
throw re;
}
4.1.4留言板的实现方案
管理员进入留言板管理,自己可以参与留言,可以查看当前所有用户留言,可以删除员工的违规留言,通过TLiuyanDAO里面的sava、delete、find方法实现。
留言板界面如图4.12所示。
图4.12 留言板界面
根据上面的描述,截取了部分的代码如下:
TLiuyanDAO类:
try{
getHibernateTemplate().save(transientInstance);
log.debug(“save successful”);
} catch (RuntimeException re){
log.error(“save failed”, re);
throw re;
}
try{
getHibernateTemplate().delete(persistentInstance);
log.debug(“delete successful”);
} catch (RuntimeException re){
log.error(“delete failed”, re);
throw re;
}
try{
String queryString = “from TLiuyan”;
return getHibernateTemplate().find(queryString);
} catch (RuntimeException re){
log.error(“find all failed”, re);
throw re;
}
4.2 关键技术难点与解决方案
(1)用户未登录状态也能够访问到其他页面,使用过滤器,过滤出登录页面以外的所有页面,当登录成功的时候,将用户名保存到session里面,当用户访问每一个页面的时候,过滤器会先遍历session,判断是否存在当前用户名,如果存在,才能访问到目标页面。
(2)参考SSH项目框架,同时在网上查阅相关配置教程,搭建SSH框架。截取部分代码如下:
Struts2:
/admin/yuangong/yuangongMana.jsp
application/vnd.ms-excel
attachment;filename="${filename}"
inputStream
4094
/admin/zhaopin/zhaopinMana.jsp
/admin/zhaopin/zhaopinLuyong_re.jsp
Hibernate:
org.hibernate.dialect.SQLServerDialect
true
第5章 系统测试
在开发这个管理系统的过程中,存在很多的问题,在开发过程中,每完成一个功能模块,就进行测试,尽可能早的发现并纠正错误,完成模块测试之后再进行系统功能测试。系统在运行过程中,根据用户需求的变化,对系统做出一定的修改,使其进一步提升。下面主要围绕功能测试和测试总结两个方面进行说明。
5.1 功能测试
本系统对管理员和员工用户两类用户相关的功能进行了测试,测试设计如下所示:
(1)管理员功能测试
管理员功能测试包括管理员登录、修改密码、管理部门信息、管理员工信息、发布新闻公告、考勤管理等。测试用例设计如表5.1所示。
表5.1 管理员功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 正确填写账户、密码登录 正确输入账号、密码,点击登录 登录成功 通过
D002 账户、密码存在空值 账户或者密码没有输入 系统提示账号密码不能为空 通过
D003 密码错误 输入的密码与正确密码不一致 系统提示密码错误 通过
D004 查看部门管理 管理员登录成功,进入管理员门户页面,点击查看部门管理 系统展示部门信息 通过
D005 查看员工信息 登录成功,进入管理员页面,查看员工信息 展示员工信息 通过
D006 修改员工信息 查看员工信息,然后修改已有员工信息 修改成功,刷新员工信息 通过
D007 添加员工 查看员工信息,进行添加员工 添加成功,刷新员工信息 通过
D008 删除员工 查看员工信息,进行删除操作 删除成功,刷新员工信息 通过
D009 查看新闻 查看新闻列表,包括已发布及取消发布的 系统展示新闻列表 通过
D010 添加新闻发布 添加新闻内容,点击发布 新闻发布成功,成功展示 通过
D011 删除新闻 将已发布新闻取消,不再展示 新闻取消发布成功 通过
D012 查看公告信息 查看公告信息,包括已发布及取消发布的 系统展示公告列表 通过
D013 添加公告发布 添加公告内容,点击发布 公告发布成功,成功展示 通过
续表5.1 管理员功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D014 删除公告 将已发布公告取消,不再展示 公告取消发布成功 通过
D015 查看考勤信息 查看所有用户考勤情况 系统展示考勤情况 通过
D016 查看留言 打开留言板,查看所有用户留言 正确显示 通过
D017 删除留言 删除违规留言 删除成功,留言不再显示 通过
(2)员工用户功能测试
员工用户功能测试包括修改密码,查看新闻公告,考勤,查看考勤,邮箱管理,个人信息查看,个人待办事宜管理。测试用例设计如表5.2所示。
表5.2 员工用户功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 正确填写账户、密码登录 正确输入账号、密码,点击登录 登录成功 通过
D002 账户、密码存在空值 账户或者密码没有输入 系统提示账号密码不能为空 通过
D003 密码错误 输入的密码与正确密码不一致 系统提示密码错误 通过
D004 查看新闻 查看当前发布新闻 系统展示新闻 通过
D005 查看公告 查看当前发布公告 系统展示公告 通过
D006 打卡考勤 点击进行当天考勤 考勤成功 通过
D007 查看考勤 查看个人考勤信息 系统展示当前用户考勤记录 通过
D008 查看个人信息 点击个人信息 系统展示当前用户信息 通过
D009 发送邮件 打开邮箱,编写邮件,选择收件人,发送 发送成功,添加到发件箱 通过
D010 接收邮件 打开收件箱,查看来自其他用户的邮件 接收邮件成功 通过
D011 添加待办事宜 打开个人事宜管理,添加代办 添加成功 通过
D012 查看通信录 打开个人通讯录 查看成功 通过
5.2 测试总结
经过对系统进行有效的测试和修改,保证系统具备较好的稳定性和可用性。测试结束后,在测试总结中通过按等级统计、按类型统计对测试情况进行了客观的统计和分析,具体如图5.1-5.2所示。
按等级统计bug的结果,如图5.1所示。
图5.1 按等级统计bug数
按类型统计bug的结果,如图5.2所示。
图5.2 按类型统计bug数
经过开发人员对bug进行有效的修改,保证了系统具备较好的稳定性和可用性。经过一系列测试,本软件的各项功能基本实现但是在涉及到一些细节,比如数据唯一性,安全性等存在漏洞,在软件性能方面,数据量过大软件运行会非常吃力,可用性方面不太适用于偏大型的公司数据管理。
第6章 结论与展望
6.1 结论
本文主要研究了部门管理系统相关理论和技术,并在调研的基础上形成需求方案,设计并实现基于MVC设计模式的系统管理平台,整个系统采用JSP/AJAX/SSH技术方案,按照B/S架构进行部署,对系统的体系结构、功能模块、业务流程、数据库等进行设计开发,系统主要分为管理员和员工用户两类用户,管理员部分包括:部门信息管理、员工信息管理、公告新闻管理、考勤信息管理、留言板管理、系统信息管理等系统功能模块,员工用户部分包括:个人事宜管理、考勤、新闻公告浏览、邮箱管理、使用留言板等相关功能模块。
根据企业管理的现状,部门工作管理Web系统基本是企业的必备需求,现有的硬件和软件设施对于部门管理系统来说完全能够满足项目的开发和运营。所以,本课题所述系统具有充分的技术支持、良好的市场前景和价值空间,值得进行开发。
由于技术精力等方面的局限,本系统还存在一些缺陷:
部门管理模块只是涉及到部门的增删功能,关于部门的信息管理和权限管理后期会去完善。输入数据的约束不够强,与数据库同步有待提升。邮箱模块只是作为公司内部员工之间的通讯使用,不能使用外部邮箱,这对员工之间的通讯有很大的局限性。由于本系统是关于公司部门和员工信息管理的,涉及个人利益和集体利益,系统中因技术和设计方面的原因存在一些安全漏洞可能被恶意攻击导致公司和员工利益受损,后期还应加强数据和系统的安全性。
6.2 展望
虽然已经完成了课题相关的研究工作,但是受限于技术及精力等因素,系统的发展仍存在一些问题,部门工作管理系统从提出到实现,通过不断查询资料,不断完善和测试,整体来说,该软件已达到预期目标。本系统具有一定的可发展性,希望在以后,随着自己能力的提升,在本系统的基础上进行扩展与完善,以达到能够真正作为大型企业级应用的标准。
参考文献
[1] 陈阳.基于Java EE的COA系统的设计与实现[J],电脑知识与技术,2015,(35),11-20
[2] 陈强. 精通Java开发技术[M],清华大学出版社,2015.10,57-64
[3] 马继红,汪金龙.基于Java的企业人事管理系统设计与实现[J],电脑知识与技术,2015,(2),19-25
[4] 陆洲.Java EE核心模式研究[J],计算机与数字工程,2015,(1),7-13
[5] 刘红霞,陆文迪.改进的MVC设计模式的研究与应用[J],计算机工程与科学,2015,(9),27-33
[6] 李健,田立锋,郭瑞. Java SSH框架在Java Web中的应用[J],电脑与电信,2016,(3),31-38
[7] 王爱国. Java面向对象程序设计[M],机械工业出版社,2016.6,142-148
[8] 董萍.基于SSH框架的学工管理系统的设计与实现[J],周口师范学院学报,2015,(2),24-29
[9] 胡杰,周鹏飞,郭乔进.基于MVC设计模式的SSH框架的研究[J],信息化研究,2016,(1),28-36
[10] Buell, Duncan. Data Structures Using Java [M],Jones&Bartlett Learning,2015.6,27-40
致 谢
随着毕业设计渐渐接近尾声,付出了我很多心思和汗水设计的软件初具规模,虽然它们并不是很完善,我个人认为它还可以做得更好,在整个毕业设计的过程中,我学到了很多,明白了很多,这是对我大学四年所学到的知识的一个综合运用,让我深刻的了解到实践的重要性,在这个开发过程中,我对软件体系有了更深入的了解,还锻炼了自己独立解决问题的能力。
毕业设计是一件非常辛苦的工作,首先感谢我的指导老师兰艳老师,她在我整个系统开发和论文撰写的过程中给了我很多建议和帮助,从研究方向,到具体开发研究,到最后的答辩准备,甚至是语法等细微的工作,都一丝不苟、严格要求。还要感谢我的企业指导老师孙毅老师,除了对我们答辩技巧的指导,还有以后工作中的一些经验之谈,给了我们很大的帮助。最后我还要感谢我的父母,是他们的支持让我顺利的完成了学业,感谢身边的同学,在毕业设计过程中遇到问题和困难时,给我提出许多关键性的意见和建议。通过这次设计,自己有一些心得跟体会:
(1)在系统设计阶段,我们要在设计之初作出一系列的调查与了解,我们做需求分析,市场调查,程序的测试等都是为了更好的完成我们的设计,这让我学会了与社会交流的能力,独立思考的能力,收益颇丰。
(2)开发过程中,对编程工具和技术的体会是很有意思的,在这个过程中我真正的体会到了软件开发设计的魅力所在,我们通过设计代码,修改代码来改变需求,那份成就感就是让自己前进的动力,还可以花更多时间去更好的进行思考。
(3)在这个开发工作中,我得到了前所未有的满足感和成就感,把知识和实践结合到一起,激励我们解决各种难题,在不断的探索和努力的过程中,我变得更加有上进心与动力,我会在以后的生活中不断完善自己,让自己在软
这篇关于基于java的部门工作管理系统(公司办公管理)的设计与实现论文的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南