EMP系统说明书.doc_第1页
EMP系统说明书.doc_第2页
EMP系统说明书.doc_第3页
EMP系统说明书.doc_第4页
EMP系统说明书.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

慧与(洛阳)国际软件人才及产业基地员工管理系统课程设计报告EPM管理系统小组成员:杨智浩李贝西常 杰程君侠李 宁高凌月任课教师:李腾昊2016年6月12日目录第一章 绪论11.1背景及意义11.2 课题研究意义11.3 小组分工11.4论文组织2第二章 系统应用技术32.1 应用技术及开发环境介绍32.2 数据库连接32.2.1 连接MySQL数据库时的驱动器:32.3 EasyUI插件集合3第三章 需求分析43.1 概要分析43.2 具体分析43.2.1 用户登录用例43.2.2 项目组53.2.3 公告信息53.2.4 员工信息6第四章 设计和实现74.1登录与主页面74.2项目组信息管理模块94.2.1增加项目组104.2.2修改项目组134.2.3删除项目组154.2.4查询项目组174.3公告信息管理模块214.3.1 查询公告214.3.2 删除公告234.3.3 增加公告254.3.4修改公告284.4员工信息管理模块304.4.1 查询员工信息304.4.2 删除员工信息334.4.3 增加员工信息344.4.4 修改员工信息38第五章 结论与展望395.1 结论405.2 展望40参考文献42致 谢43第一章 绪论1.1背景及意义现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的企业员工管理的形式和内涵都在发生着根本性的变化。企业员工信息管理的内容也已经转变为对更为广泛的系统价值的追求。信息管理,如今已是一个热门话题,它已为许多企业所采用。在现代化的进程中,引入现代管理的思想,建立一套可面向企业单位的员工信息管理系统,也是十分必要的。本课题基于我国企业管理信息化建设现状,结合在实际工作中所遇到的问题和收获,对企业员工管理系统在开发等方面进行研究,重点研究系统开发过程中所采用的软硬件平台规范、数据库结构设计、开发工具的选择与使用,目的是从技术手段的角度阐述如何实现企业从传统经营管理模式向信息化管理模式转变的过程,以及企业员工管理系统在企业管理信息化中所起到的重要作用。1.2 课题研究意义目前,在国内外各大企业中,企业员工信息管理系统的使用是非常广泛的。同时,有很多的软件开发商也开发了许多基于各种行业的企业员工管理学系统。而不同的企业具有不同的企业员工管理制度,这就决定了不同的企业需要不同的企业员工管理系统。而且,企业管理信息量大、操作繁琐、传统的方式不再使用新的工作需要,开发研制适合企业的企业员工管理系统,使其具有整体性强、流程简单、操作方便、功能丰富和通用性强等特点,是加快企业人才管理工作办公自动化、信息资源化和管理科学化建设进程必要途径。因此建立适合企业的管理信息系统,是促进企业信息高速公路的发展,为企业发展提供条件的重要课题。如何建立一个精简、有效的企业信息管理体系,企业信息管理信息系统,如何有效支持企业项目管理体系,从而提高企业的项目管理能力,是具有非常重大的实际应用意义的。1.3 小组分工在系统的实际开发中,高凌月、王星月同学主要负责了登录模块与系统主页面的编写工作。在编写过程中,使用cookie实现了登录时记住密码的功能。使用session解决了过滤未登录时进行的操作。程君侠同学负责编写项目组模块,李宁同学负责编写公告信息模块,常杰、李贝西同学负责编写员工信息管理模块。在编写过程中,4人都使用了StringBuffer线程安全的加载数据库SQL语句。建立了JsonUtil工具包,将ResultSet结果集转换为了JSON数组的形式,加载到了dategrid数据表格中。在涉及到Date类型与String类型的转换中,建立了DateUtil工具包,将两种类型的数据进行转换,存入数据库中。1.4论文组织论文的组织结构如下:第一章绪论,主要介绍了系统的开发背景与意义,小组的分工情况。第二章系统应用技术,主要介绍了系统的开发环境,所使用的开发技术等。第三章需求分析,描述了系统的开发需求,包括登录模块与主页面,项目组信息管理模块,公告信息管理模块,员工信息管理模块。第四章设计与实现,具体描述系统各模块的设计思路与实现方法。第五章结论与展望,总结了在设计与实现过程中的一些问题与解决方法,和对此次课程设计的收获与感悟。第二章 系统应用技术2.1 应用技术及开发环境介绍该系统使用eclipse集成开发环境,应用Java程序设计语言进行编程,在eclipse开发工具中进行开发。该系统的开发时采用MVC设计模式,由前台页面与数据库连接实现系统中数据的增删改查,该系统主要包括登录、项目组管理,员工信息管理,公告信息管理等功能模块。主要用到的技术:基于jQUery的UI插件集合EasyUI,数据库使用了MySql,并且使用了Navicat实现数据库的可视化操作,数据库连接时所需要的驱动器。 运行环境:该系统以jdk1.6 版本 JDK为Java运行环境。2.2 数据库连接驱动器的加载:系统中对大量数据的增删改查时需要连接数据库,从数据库中取出所需要的信息,连接不同的数据库需要加载的驱动器不同2.2.1 连接MySQL数据库时的驱动器:mysql-connector-java-5.0.8-bin.jar(驱动器jar包)加载驱动以及连接数据库语句代码如下:Class.forName(“com.mysql.jdbc.Driver”);Mysql的应用有以下特点:1. 小型关系型数据库管理系统2. 语言简洁,易学易用3. 适应于所有的平台4. .是开源软件,版本更新较快5. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数2.3 EasyUI插件集合EasyUI的应用有以下特点:1. 简单,但很强大2. 开发产品时可节省时间和资源3. 支持扩展,可根据自己的需求扩展控件4. 为一些当前用于交互的js应用提供必要的功能5. 丰富并且美观的UI界面第三章 需求分析3.1 概要分析3.1.1用例描述功能类别功能名称描述项目组信息管理增加添加一个新的项目组删除删除一个项目组信息修改修改一个项目组信息查询查询一个项目组信息员工信息管理增加添加一个新的员工信息删除删除一个员工信息修改修改一个员工的基本信息查询查询一个员工的基本信息公告信息管理增加发布一条新的公告删除删除一条公告修改修改一条公告查询查询发出的公告3.1.2用例图3.2 具体分析3.2.1 用户登录用例 用例图 用例描述描述要素描述内容备注事项用例名称用户登录用例简述用户输入帐号与密码进行登录参与者管理员前置条件用户登录后置条件 事件流 用户登录页面 1.打开登录页面()2.输入账号和密码() 3.验证()4.提示登录结果() 3.2.2 项目组 用例图 用例描述描述要素描述内容备注事项用例名称项目组信息管理用例简述用户可以管项目组的名称参与者用户前置条件用户必须登录后置条件用户必须登录成功3.2.3 公告信息 用例图 用例描述描述要素描述内容用例名称EPM员工管理系统公告模块参与者管理员前置条件管理员必须先登录特殊需求无3.2.4 员工信息 用例图 用例描述描述要素描述内容用例名称员工信息管理用例简述管理员对员工信息维护参与者管理员前置条件管理员必须先登录且有员工信息管理权限后置条件管理员对员工信息的管理可能会影响到员工的信息改变,管理员通过学号、姓名、出生日期,和性别等方式,查询员工信息。第四章 设计和实现4.1登录与主页面4.1.1 与数据库连接 public User login(Connection con,User user)throws ExceptionUser resultUser=null;String sql=select * from user where username=? and password=?; PreparedStatement pstmp=con.prepareStatement(sql); pstmp.setString(1, user.getUsername(); pstmp.setString(2, user.getPassword(); ResultSet rs=pstmp.executeQuery(); while(rs.next() resultUser=new User(); resultUser.setUsername(rs.getString(username); resultUser.setPassword(rs.getString(password); return resultUser;4.1.2登录首先jsp界面将管理员账号密码提交到登录的servlet,在servlet中接收账号密码进行判断,如果为空,转发回登录界面并提示;不为空,连接数据库进行查询,如果未找到返回为空对象,转发回登录界面并提示账号密码错误;如果找到返回一个user对象,接下来判断保存账号密码的复选框是否勾选,如果未勾选直接在session中保存user对象,重定向到首界面;如果勾选获取账号密码,放入cookie对象中,设置cookie生命时间,存入response中,然后session中保存user对象,重定向到首界面。String autoLogin = req.getParameter(autoLogin);/获取是否选择了保存信息UserDao ud = new UserDao();/链接数据库查询,返回User对象User user = ud.getLogin(username, password);/如果User对象不为空if(user!=null&user.getName()!=null)/勾选了保存信息if(autoLogin!=null)/创建CookieCookie cookie1 = new Cookie(username, username);Cookie cookie2 = new Cookie(userpwd, password);/设置Cookie时间cookie1.setMaxAge(60*60*24*365*10000);cookie2.setMaxAge(60*60*24*365*10000);/保存Cookieresp.addCookie(cookie1);resp.addCookie(cookie2);/登陆信息正确,将User对象保存在session;重定向到主界面session.setAttribute(loginuser, user);resp.sendRedirect(index.jsp);else/信息验证失败,弹出提示框,重定向到登陆界面out.println(alert(账号或密码不正确!););resp.setHeader(refresh,0;URL=login.jsp);4.1.3 过滤器限制主界面,过滤器doFilter中获取session(HttpSession session = req.getSession();)从session获取储存的user对象,看是否为空,为空不能继续访问,重定向到登录界面,不为空可以继续访问if(session.getAttribute(loginuser)!=null)chain.doFilter(request, response);elseres.sendRedirect(login.jsp);4.1.4登录界面遍历cookie获取name和pwd放到输入框value中4.2 项目组信息管理模块在数据库中建立t_group表 在model包里创建Group类代码如下 然后再在Dao包里面创建GroupDao类,代码如下4.2.1 增加项目组添加信息的流程图: 首先是jsp页面的建立,几个按钮和查询框的代码如下点击增加按钮后通过调用页面中的js函数openAddGroup()弹出填写增加公告内容的表单,如下图所示:调用函数: 添加弹出的窗口代码如下:.servlet获取到前台的删除条数,把参数转换成json数据传到groupdao的删除方法中实现数据的传递功能;并进行判断数据是否删除成功,反馈到前台通知用户是否操作成功 然后调用GroupDao里的GroupAdd方法4.2.2 修改项目组修改项目组流程图:前端jsp页面 servlet和前台紧密相连,前台的提交和数据的读取都需要它的支持; GroupDao执行中心,数据与数据库的交互执行,修改数据传到数据库中 Group是数据值交互的中心,他负责中整个字段的数据传递和获取4.2.3 删除项目组删除项目组信息流程图首先在前台通过Javascript获取要被删除的信息,在script在Ajax更好的获取要删除的信息并进行简单的询问认证以防在不名的情况下删除信息;servlet获取到前台的删除条数,把参数转换成json数据传到groupdao的删除方法中实现数据的传递功能;并进行判断数据是否删除成功,反馈到前台通知用户是否操作成功 把在servlet中传递的参数进入groupDao类中写删除语句,对数据库进行操作4.2.4 查询项目组查询信息的流程图 通过servlet对数据库进行查询的操作,request获取页面数据;if语句把null转换为String的空字符,调用groupdao对数据库进行语句查询: 用group类中的get 和 set 方法获取值和传递值:在类重写构造方法使之更加实用与我们的调用; groupDao是对数据库查询的关键,在这里有查询方法和分页设计:用StringBuffer对象保存数据查询语句的公共部分,调用append方法添加具体的查询方法,这样节省代码的复杂性,使功能具有易维护性; 对查询结果进行分页:4.3公告信息管理模块4.3.1 查询公告NoticeServlet里面通过Result rs=noticeDao.noticeList(con,pageBean,notice);调用NoticeDao里面的noticeList方法,实现对公告的遍历; 通过int total=noticeDao.noticeCount(con, notice);来调用NoticeDao里面的getConnt方法,通过判断,若搜索栏里面的内容为空,则查询所有公告的条数,若搜索栏里面的公告名字不为空,则以模糊查询的方式查询相应的公告,若搜索栏里面的发布人名字不为空,则以模糊查询的方式查询相应的公告,若搜索栏里面的查询公告的起始日期,终止日期不为空,同样以模糊查询的方式查询相应的公告4.3.2 删除公告删除公告流程图:如下图所示:图4-4-.2点击修改按钮后调用noticeDelect()先判断是否选择了一条数据或多条数据,并把选中的公告id传送到相对应的servlet页面:图4-4-.3在向servlet中传输选中id是需要把页面的Object类型准换位String类型的如下:在servlet中进行验证,并把验证结果返回到jsp页面,并提示删除成功或删除失败:在servlet中获取到Id后通过调用NoticeDao中的noticeDelete()方法来实现删除:4.3.3 增加公告增加信息的流程图: 首先是jsp页面的建立,几个按钮和查询框的代码如下:点击增加按钮后通过调用页面中的js函数openAddnotice()弹出填写增加公告内容的表单,如下图所示:调用函数:弹出表单代码如下:当表单填写完成后点击确定时,调用JavaScript函数saveGroup方法进验证验证:通过函数跳转到servlet页面,servlet页面通过传递过来的值进行验证添加是否成功,并在页面提示添加是否成功。Servlet如下:然后调用NoticeDao里面的noticeAdd方法添加时需要用到DateUtil来进行时间的格式转换内容如下:4.3.4 修改公告修改公告流程图:点击修改按钮后调用openUpdateNotice()先判断是否选择了一条数据,当多选或不选时报错,当只选中一条时弹出修改表单并把选中的公告id传送到相对应的servlet页面:图4-4-.3填写内容后点击确认按钮调用saveGroup()验证:通过saveGroup()提交到修改的servlet页面进行处理,并在页面提示相应的修改成功或失败的提示,修改的servlet如下: 在servlet中获取到Id后通过ID把从页面获取到修改表单中数据通过调用NoticeDao中的noticeUpdate()方法修改到数据库中:4.4员工信息管理模块4.4.1 查询员工信息本系统查询员工信息,有5种方式,即按学号查询、名称查询、性别查询、出生日期查询、项目组查询,分别在定义5个查询不同的参数。首先通过JSP页面获取查询的参数,通过URL将值传到StudentListServlet中,通过Request获取从页面中传来的参数,把获取的参数保存在一个新的Student对象中,调用StudentDao中的StudentList方法,List首先判断查询参数是否为空,如果不为空,执行相应的SQL语句,返回结果给Servlet,Servlet得到返回结果,进行判断操作是否成功,将判断结果通过JSON返到JSP页面,页面打印输出结果。studentIntoManager中的searchStudent:页面显示的搜索框代码: Servlet中的查询方法:将日期格式转换为字符型: StudentDao中的查询:查询结果分页:在页面中显示查询结果:4.4.2 删除员工信息删除公告的前提是获取操作对象的ID,通过dg的ID获取datagrid,得到变量值后,判断是否为空,如果为空提示用户至少选择一条数据进行删除,同样通过JSON根据URL的地址将值传到servlet中,Servlet再调用StudentDao中的DeleteStudent操作,执行删除操作,结果先返回给了Servlet,通过JSON的result,判断结果返回给了Jsp中的DeleteStudent(),根据返回结果进行相应的处理。关键代码:页面获取id: Servlet中的删除方法: 在页面中显示删除状态:4.4.3 增加员工信息增加信息的流程图:在studentInfoManager.jsp页面script的function中AddStudent()方法。在body中写入一个新的div,包含两部分,即对话框和保存按钮,这个div是默认隐藏的,只有调用时候才显示AddStudent()调用页面中隐藏的对话框。saveStudent()获取对话框中的值,再由保存按钮把值保存,通过给定URL的参数,再由把数据传到Servlet中。 AddStudent() 打开对话框,输入数据:保存数据,并提交到Servlet中: Servlet中的实现添加的方法。用request获取从页面传来的数据,实例化一个Student对象保存参数,判断是否含有id,员工的id在数据库自动生成,所以执行添加操作不需要id,调用StudentDao中的StudentAdder方法,添加成功后,影响行数大于0,判断返回值是否大于0,如果大于0,则JSON实例化对象result调用put方法,把success的值为true,否则errorMsg的值为“添加失败”。部分代码如下: JSON的代码: StudentDao中的添加方法:获取项目组名称:页面显示添加状态添加完成后,studentInfoManager.jsp通过success:function(result)获取Servlet中JSON中的result的参数,判断添加是否成功,如果成功,显示保存成功,并局部刷新界面。部分代码如下:4.4.4 修改员工信息在StudentinfoManager.jsp界面中,点击修改按钮,通过href标签进入openUpdateStudent()方法,判断复选框的值是否为1,修改数据条数有且仅有1条。与添加不同的是,修改数据需要id,id是从selectedRows中获取。条件成立,调用页面中隐藏的对话框,通过选中的数据把待修改内容输出在对话框中,修改完成后,openUpdateStudent()调用saveStudent方法,获取对话框中的值,再由保存按钮把值提交,通过给定URL的参数,再由把数据传到Servlet中。 openUpdateStudent() 打开对话框,输入修改信息 JSONObject: UpdateStudent: 修改学生信息显示 第五章 结论与展望5.1 结论通过半个月的项目实战,让我获益匪浅,不仅更深入的了解Java这门学科,更使自己有了继续探索的兴趣。虽然制作的亿源科技EMP管理系统在功能上能够满足要求,但是也有很多不足的地方。通过对程序的不断调试与完善,所有功能均可实现,所设计系统已基本达到了设计要求,主要实现了用户登录功能,实现了对项目组信息,学生信息,公告信息的分页显示,对项目组信息的增、删、改、查等基本功能,实现了对学生信息以及公告信息的增、删、改、查等基本功能,项目组的查询可根据项目组名称,项目组描述等,学生信息的查询可根据学生的学号,姓名,出生日期,性别,以及所在项目组编号等,公告信息的查询可根据公告的标题,发布人,以及发布时间等基本达到了预期设想在本次项目中, 在eclipse中运行,初步纠错并实现。系统采用了EasyUI中的一些控件,使代码量减少,同时采用MVC模式,首先定义一些实体类是编写程序设计的第一步,它关系到下面对项目组信息,学生信息,公告信息的增、删、改、查等基本功能的实现,尤为重要。亿源科技EMP管理系统必然包括项目组管理,学生管理,公告管理三个模块,三个模块分别包括Group,Notice,Student三个实体类;然后创建Dao类,实现与数据库的连接,对项目组信息,学生信息,公告信息进行增删改查。分别写出项目组管理,学生管理,公告管理增加,删除,修改,查询相对应的servlet,将从数据库中取出的数据转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论