




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人员理系统课程设计摘要本次编写的人员管理系统,是一个综合的公司人员管理系统,侧重于对新员工的招收和对新员工的培训工作,同时还可以实现员工信息查询管理,员工奖惩查询管理,以及系统的管理,薪金的查询管理等操作。该系统在开发过程中主要使用了(SSH2)Struct2+Hibernate+Spring的开发技术,在一些页面的编写上使用了部分Ajax控件。该系统是由小组形式分工合作的,经过小组成员的讨论,将系统分为了一系列模块。其中包括了员工管理、招聘管理、部门管理、薪金管理、培训管理、奖惩管理、系统管理等模块,其中我负责的是奖惩管理和系统管理的部分。奖惩管理主要功能是查询员工的奖惩信息,通过员工ID查询员工的所有奖惩信息。而系统管理的主要功能是对系统管理员的管理,可以添加和删除管理员,同时实现了系统的登陆和防盗链功能,可以防止不经登陆对系统的操作。关键字:人员管理 信息查询 系统管理AbstractPersonnel management system in this preparation, is a comprehensive company personnel management system, focusing on the recruitment of new employees and the training of new employees, but also realize the employee information management, employee rewards and query management, and system management, salary inquiry management operation. The system is mainly used in the development process (SSH2) the development of Struct2+Hibernate+Spring technology, part of the Ajax control is used in the preparation of some of the page. The system is composed of a group of division of labor, through the discussion group members, the system is divided into a series of modules. Including staff management, recruitment management, department management, salary management, training management, incentive management, system management module, which I was responsible for the rewards and punishment management and system management part. The main function of incentive management is to query the staff rewards and punishment information, query all the rewards and punishment information employees through employee ID. And the main functions of the system management is the administrator, the administrator can add and delete, while achieving the system login and anti-theft chain function, can prevent without landing on the operation of the system.Keywords: Management Information System1 项目设计分析1.1 项目概要分析1.1.1 项目技术分析整个项目使用的是SSH2(Struts2表示层+Spring业务层+Hibernate持久层)的开发框架。页面中部分控件和显示效果使用了Ajax技术。其中Struts2表示层负责页面与后台之间信息的传递交互。Hibernate则负责实体类与数据库之间的操作,实现数据的持久化操作。而Spring则是负责管理Struts2和Hibernate,实现反转控制(IOC)和Aop的织入操作能够组合表示层和持久层。Ajax技术则是实现了日期的输入(日历插件)和表格样式的美化。该框架的优点使用Spring(面向切面)和Struts2的整合。使得原本需要开发者注入的方式变成了Spring的反转控制,由Spring负责注入。同时提供了一些Struts2框架中未实现的方法。提高了整个项目的解耦和。方便了之后对整个项目的修改,提高了项目的可重复利用性而Spring和hibernate的整合则为Hibernate的数据存储提供的框架,方便了JDBC操作总的来说SSH开发框架使得整个项目的耦合性降低了,方便了以后对项目的修改操作。1.2 可行性分析1.2.1 经济可行性对于一个具有一定规模的企业来说买人力资源管理部分是十分重要的,同时也有一定的复杂性。若是没有相应的系统支持,会花费大量的人力物力以及时间资源。并且容易出现问题,一个好的人力资源管理系统,则可以避免这种情况的发生。它可以解放企业在这方面所花费的大量资源,并且提供更高效更合理的管理逻辑。提高了企业的经济效率。1.2.2 技术可行性小组编写的网站管理系统可以实现。企业的信息共享,方便了公司对员工的出勤考察,薪酬管理,奖惩制度的完善。同时使得管理更加合理化和公正化。避免了人员手动管理带来的速度慢、准确性不高的缺点,为企业的员工提供更加方便和便捷的工作环境。其中我负责的系统管理和奖惩管理,则可以规范化企业的管理流程,有利于提高企业的相关信息保密性,同时避免了相关信息被不具有相关权限的人修改。同时也方便了管理人员对员工的一年工作奖惩情况统计,为员工查询自己的奖惩情况提供依据。1.3需求分析当今社会,企业内部人力资源管理网越来越完善,这方便了人力资源管理系统的搭建。而由于人力资源管理系统的操作简单。功能全面。可以用于对企业员工信息的存储,有利于管理人员对员工的薪资和出勤、工作任务的完成情况、新员工的招收、辞职员工的处理等方面做出更快更好的处理响应。一个好的人力资源管理系统可以提高企业的效率,使得管理更加网络化、科学化。这一部分主要完成了整个系统的目标、结构、功能等方面的分析和整个系统结构的划分,为以后的详细设计打好基础,也为小组的分工提供依据。1.3.1目标分析小组编写的是一个公司的人员管理系统,通过分析,对该系统的目标有了如下的认识和总结:总目标l 对公司职员的招聘、培训、薪资提供管理l 对单个员工的详细资料和奖惩情况提供查询的操作l 对公司非公开资料提供有一定安全性的存储l 系统设计合理,结构合理,符合设计要求功能目标1) 员工管理:提供员工信息的查询、按员工id查询、录入、修改、删除操作2) 培训管理:提供培训者的查询、添加等操作。3) 薪资管理:提供员工工资的查询、详细查询、管理员拥有修改权限、同时删除员工表中的员工信息后,该表联动删除。4) 部门管理:员工的分部门查询,各部门员工查询、员工信息删除等5) 招聘管理:应聘者信息查看,应聘者应聘成功后转入员工表,不成功则删除信息。6) 奖惩管理:员工奖惩信息的记录查询修改、按员工ID详细查询每个员工所有奖惩记录。7) 系统管理:超级管理员和管理员的权限管理,实现管理员的添加删除、系统登陆等操作。性能目标(1) 使用系统可以提高对员工的管理效率(2) 使用该系统提高了公司管理的合理性和安全性(3) 只限于内部员工对系统的操作,非本公司员工无法操作项目运行环境安装有浏览器的windows2000/windows xp/windows 7项目开发环境项目是在Myeclipse的环境下开发编写的,部分网页的编写使用了Dreamweaver服务器:Tomcat,数据库:Mysql数据库1.3.2 结构分析本部分是对系统的一个模块划分,便于组员分配工作1.3.3功能分析这部分是根据系统的需求来分析该系统的功能。其中我负责的是系统管理和奖惩管理两部分的功能实现。下面是从用例、流程等方面说明我负责部分的功能1:业务流程图业务流程图让我们更清晰的认识到整个系统的各个功能模块的划分,下面是次系统的业务流程图2:用例分析用例图可以很直观的看出系统的具体功能系统管理用例图系统管理,超级管理员可以在登陆之后后台添加管理员账号。删除管理员账号,更改管理员权限,普通管理员则只有查看后台其他信息的权限。没有修改系统管理员信息的权限。奖惩管理用例图奖惩管理主要是根据员工一年的出勤和完成工作的质量等记录。对员工的奖金和处罚进行管理。系统管理员可以对奖惩记录进行添加删除修改等操作,同时可以根据需要对指定员工的ID进行查询所有奖惩记录的操作。在年终时,会汇总员工的一年奖惩信息计算奖金数额。3:流程分析系统管理流程图系统超级管理员首先进行登录操作。若是成功,则查询所有系统管理员信息以方便接下来的操作。若是未登录则不可进行接下来的操作,登陆之后管理员可以对普通管理员进行删除、添加、管理员级别修改等操作。若是操作完成则退出,若是继续操作返回查询所有页面。奖惩管理流程图系统管理员在登陆之后可以查看奖惩管理的页面,首先是查询所有的页面。在页面有删除和修改的按钮,管理员可以对每个奖惩记录进行操作。同时页面上还有一个按ID查询的文本框,管理员可以输入员工ID进行按ID的查询。操作之后若还想再再操作会返回查询所有的页面,若是不想操作则会退出。4:关系分析奖惩管理E-R图系统管理员可以根据人员的早退迟到、业绩突出、违反相关规定的等评分规则,对员工进行相应的奖惩操作。每一个员工均拥有姓名、部门、编号、性别等一系列属性系统管理E-R图超级管理员在登陆之后,可以根据每一个员工在部门的职位,为员工设置管理员权限,部门经理和普通员工的权限肯定是不一样的。每个管理员除了自己的员工信息之外,还有管理员账号的特有信息。比如管理员ID,管理员级别等。2 项目详细设计进行了项目的整体分析和自己所负责部分的逻辑分析之后,我们需要对项目进行详细的设计了。,对于项目的详细设计我们分为n 业务对象模型设计n 数据库设计n 功能逻辑设计n 界面设计2.1业务对象逻辑设计在业务对象逻辑设计中我们会首先提取出业务对象,并对对业务对象的属性,基本操作以及相互之间的关联关系和组合关系等进行设计。同时我们也会根据需要,对业务对象进行优化2.1.1 提取业务对象本项目的业务对象,包含超级管理员、管理员、员工、奖惩单、招聘单、薪资、部门、应聘者等。以下是我对整个项目业务对象的设计每一个业务对象都有自己特有的属性,根据系统的系能分析和对每个业务对象进行分析,以下是每个业务对象的性质表以及每个业务对象所包含的操作业务对象名称具有属性可完成操作超级管理员管理员ID. 管理员姓名.管理员级别管理员添加,管理员删除.管理员查询、普通员工奖惩查询,普通员工薪资查询,员工部门查询,员工信息删除和修改,员工部门调换等操作管理员管理员ID. 管理员姓名.管理员级别员工信息查询,部门信息查询。部门信息修改,员工信息修改。员工薪资的查询修改,员工奖惩的查询修改删除员工员工ID,员工姓名、性别、年龄、联系方式、住址、身份证号、工龄、职位、部门、政治面貌查询自己的个人信息、查询自己的奖惩信息、查询自身部门和人员信息奖惩单奖惩人编号,员工ID,员工姓名,奖惩时间,奖惩内容,奖惩类型、奖惩金额奖惩单是个人奖惩信息的汇总,它包含了特定员工的一年内所有的奖惩信息,同时汇总了员工一年来奖惩的金额,方便管理员查阅。招聘单招聘人数、招聘要求、招聘部门、招聘岗位在招聘单中包括了对此次招聘的具体要求和需要 ,列举出的信息有利于招聘部门对于应聘者的筛选和部门的分配以及对各种类型招聘者的录用比例薪资员工ID、员工姓名、员工工龄、工资金额、奖金数目查询员工薪资、查询单个员工薪资信息、修改员工薪资、删除离职员工薪资信息、修改员工奖金数额部门部门名称、部门职能、部门人员、部门经理查询部门人员信息、部门经理信息、修改部门人员信息、对专职部门人员进行删除或者添加操作、对更换经理进行操作应聘者应聘者姓名、年龄、学历、个人资料、联系方式、家庭住址、政治面貌、应聘部门职位、待遇要求、备注应聘者可以提交自己的简历和个人信息、查看自己的招聘状态(是否被录用)、若通过录用会接到面试通知、同时信息转入培训表培训培训者信息:姓名、年龄。应聘职位、部门。培训时间、培训课程培训者添加操作,培训者修改、培训时间调整、培训者完成之后自动转入员工表、培训结果提交其中我负责的部分所提取出的业务对象有奖惩和管理员,超级管理员以及奖惩对象。2.1.2 关系设计在人力资源管理系统中,各个实体之间都存在着联系,其中,1超级管理员管理管理员和员工,同时其自身也是员工和管理员,他也具有员工所具有的的所。有属性,它也具有部门信息。2管理员管理员工,具有员工的所有属性和部门属性。3员工被管理员管理,同时和奖惩单以及部门有一对一的关系。4奖惩单对应相应的员工,属于一对一的关系,同时奖惩单是由人员的奖惩记录生成。5 招聘信息包含所有应聘者的信息,和应聘者属于一对多的关系。6 薪资与员工是一对多的关系。同时薪资中的奖金是由奖惩中的总计来决定的。 7 部门与人员是一对多的关系,部门与应聘者也是一对多的关系,与培训者也是一对多关系。8 应聘者与部门是多对一关系。9 培训者的数据均来自于应聘者,同时培训者与部门之间属于多对一的关系。其中我负责的系统管理和奖惩管理的对象管理员和奖惩记录和薪资以及员工之间存在如下关系2.1.3 功能逻辑顺序设计在系统的设计过程中,设计者需要考虑人(管理员)与系统之间的交互情况,同时要清楚的知道各个对象之间信息交互的时序关系以及逻辑联系。在本人员管理系统中,首先管理员登陆,进入首页界面。在首页可以进行功能选择。(系统管理。奖惩管理。人员管理。培训管理。招聘管理。薪资管理。部门管理)选择功能之后进入相应管理界面中可以查询相关内容。,查询页面出现后,查询表格的最后两列分别有修改和删除操作,点击相应按钮系统会对数据库中的数据进行相应操作。操作完成后返回查询页面等待操作人员的下一步命令,一次操作到这里结束,我负责的是奖惩管理和系统管理,下面是相应的逻辑顺序图系统逻辑顺序图:选择功能之后进入相应管理界面中可以系统管理内容。,查询页面出现后,查询表格的最后两列分别有修改和删除操作,点击相应按钮系统会对数据库中的数据进行相应操作。操作完成后返回查询页面等待操作人员的下一步命令,一次操作到这里结束,奖惩管理逻辑顺序图:选择奖惩管理功能之后进入相应管理界面中可以查询奖惩内容。,查询页面出现后,查询表格的最后两列分别有修改和删除操作,点击相应按钮系统会对数据库中的数据进行相应操作。操作完成后返回查询页面等待操作人员的下一步命令。同时在查询页面有一个按ID查询的文本框,操作人员可以输入想要查询的ID查询对应员工的所有奖惩信息,将结果返回给查询界面。之后等待管理员下一步操作。一次操作到这里结束。2.1.4数据库设计根据项目需要,我们需要对项目的实体类进行相应的数据库设计。而数据库设计又分为概念设计(包括了主外键约束,类的持久化)、逻辑设计、以及物理设计等方面。首先先进行的是数据库的概念设计,以下是数据库的概念设计表表名称表属性主键外键员工表员工姓名、 员工ID、 性别、 年龄、 职位、 部门 、毕业院校、 文化水平、 开始工作时间 、电话 、地址 、工龄、 国籍 出生年月 、部门ID员工ID(id)部门ID招聘表人员id 、姓名、 性别、 年龄 、出生地、 应聘工作 毕业院校 、联系方式、 地址、 出生地、 应聘部门 部门ID人员ID(id)部门ID培训表人员id 、姓名 、性别 、年龄 出生地、 应聘工作、 毕业院校 、联系方式、 地址 、出生地 、应聘部门、 部门ID、 培训安排 、培训开始时间人员ID(id)部门ID部门表部门名称,部门编号 、部门经理 、部门人数 、部门描述 、部门创建时间、 备注部门编号员工ID薪资表员工ID、发薪日期、薪资金额、薪资年份员工ID奖惩表奖惩编号、奖惩人姓名、奖惩时间、奖惩金额、奖惩条目、员工编号、奖惩类型奖惩编号人员ID系统管理员表系统管理员姓名,管理员ID、管理员级别管理员ID(S_id)无其中我负责奖惩管理部分和系统管理,经过对表的规范化设计,去除冗余之后,对我负责的两张表的设计如下奖惩表结构字段名称数据类型长度奖惩编号数字15奖惩人姓名文本20奖惩时间时间/日期20奖惩金额数字30奖惩条目文本50员工编号数字10奖惩类型文本50系统表结构字段名称数据类型长度管理员ID数字10管理员姓名文本20管理员级别数字10为了方便数据库存储,不容易导致错误,所有表名和属性名均由英文书写。最终数据库各表之间关系和表属性的总结如下图: tb_department:部门表 tb_employee:员工表tb_invitejob:招聘表 tb_pay:薪资表tb_manager:管理员表 tb_train:培训表tb_cj:奖惩表2.1.4 代码设计设计好整个项目的流程和功能以及数据库之后,接下来就是详细的代码层次设计和代码的书写。代码主要包括了实体类部分(.vo)数据访问对象部分(.Dao)Action部分(.Action)。vo层就是对应的数据库表的实体类。Dao层则是使用Hibernate连接数据库。对数据库操作(增删改查)的代码实现。Action层:引用对应的Dao层,结合页面上配置的Action方法和Structs.xml文件中对于Action的配置完成对应页面的跳转工作,同时可以接受页面的传参请求,通过Dao对数据库进行修改。也可以做些计算处理。在SSH框架中,以上所说的的Hibernate,Struts,都需要注入到Spring的配置文件中,利用Spring把他们都联系起来,作为一个整体。Vo实体类代码设计在本项目中使用了Hibernate进行数据的实体化操作,类与类之间的关系使用Annotation注解在持久化时实现下面是相关类的代码员工类的部分代码,它与奖惩表是一对多的关系OneToManyEntityTable(name=t_employee)public class Employee private int id;private String eserialNumber;/员工账号private String ename;private List rewpuns=new ArrayList();OneToMany(mappedBy=employee,cascade=CascadeType.ALL)public List getRewpuns() return rewpuns;public void setRewpuns(List rewpuns) this.rewpuns = rewpuns;IdGeneratedValuepublic int getId() return id;奖惩管理部分代码,它与员工是多对一的关系ManyToOneEntitypublic class Rewpun private int rewpunId;private String title;private String type;private String name;private float money;private Date time;private Employee employee;public Rewpun() IdGeneratedValuepublic int getRewpunId() return rewpunId;ManyToOne(cascade=CascadeType.ALL)JoinColumn(name=id)public Employee getEmployee() return employee;管理员类部分代码如下,它是一个单独的表格,不与其他的表格有关系EntityTable(name=manager)public class Systems private int id;private String account;private String password;private String managerLevel;IdGeneratedValuepublic int getId() return id;接下来是Dao部分的设计在Dao部分的的代码中主要实现的是增删改查功能。部分代码如下这部分是登录方法的Dao层 LoginDao.java的部分代码 public Systems findbyname(String name) Session session=sf.getCurrentSession(); session.beginTransaction(); String hql=from Systems s where s.account=+name+; Query query=session.createQuery(hql); Systems systems=null; if(query.list().size()=0) systems=null; else systems=(Systems) query.list().get(0); session.getTransaction().commit(); return systems;以下是奖惩管理Dao的部分代码 RewpunDao.java查询所有方法public List queryAllRewpun() Session session=sf.getCurrentSession();session.beginTransaction();String hql=from Rewpun;Query query=session.createQuery(hql);ArrayList r=(ArrayList) query.list();return r;按ID查询public Rewpun queryRewpunById12(Integer id) Session session=sf.getCurrentSession();session.beginTransaction();Rewpun rewpun=(Rewpun) session.get(Rewpun.class, id);session.getTransaction().commit();return rewpun; 添加方法public void addRewpun(Rewpun rewpun) Session session=sf.getCurrentSession();session.beginTransaction();session.save(rewpun);session.getTransaction().commit();删除方法public void deleteRewpun(Rewpun rewpun) Session session=sf.getCurrentSession();session.beginTransaction();session.delete(rewpun);session.getTransaction().commit(); 修改方法public void updateRewpun(Rewpun rewpun) Session session=sf.getCurrentSession();session.beginTransaction();session.merge(rewpun);session.getTransaction().commit();public List queryRewpunById(int eid) Session session=sf.getCurrentSession();session.beginTransaction();Query query=session.createQuery(from Rewpun r where r.employee.id=?);query.setParameter(0, eid);List list=query.list();session.getTransaction().commit();return list; 分页方法public List queryAllForPage(int page,int size) String hql=from Rewpun;Session session = sf.getCurrentSession();session.beginTransaction();Query query = session.createQuery(hql);query.setFirstResult(page-1) * size);query.setMaxResults(size);List list=query.list();return list;剩余代码类似于以上代码,不重复书写Action部分代码如下Action实现了页面之间的跳转与页面参数的传递private int empid;private Rewpun rewpun;private int rewpunId;private List rewpunList;private RewpunDAO dao=new RewpunDAO();private int page;private int allpage;public String update() dao.updateRewpun(rewpun);return SUCCESS;public String toupdate() rewpun=(Rewpun) dao.queryRewpunById12(rewpunId);return SUCCESS;public String add() throws Exception dao.addRewpun(rewpun);return SUCCESS;public String queryAll() throws Exception rewpunList=dao.queryAllRewpun();return SUCCESS;public String deleteRewpun() throws Exception System.out.println(rewpun.getRewpunId();dao.deleteRewpun(rewpun);return SUCCESS;public String querybyid()rewpunList=dao.queryRewpunById(empid);return SUCCESS;public String queryAllForPage() throws Exception int size=dao.queryAllRewpun().size();allpage=size/10+1;if(size%10=0)allpage-=1;rewpunList=dao.queryAllForPage(page, 10);return SUCCESS;public int getPage() return page;public void setPage(int page) this.page = page;public int getAllpage() return allpage;public void setAllpage(int allpage) this.allpage = allpage;public int getRewpunId() return rewpunId;public void setRewpunId(int rewpunId) this.rewpunId = rewpunId;登陆部分Action代码private String username;private String password;private Map session;public String execute() throws Exception Systems login=new LoginDao().findbyname(username);if(login=null)return ERROR;if (login.getPassword().equals(password) session.put(login, login);return SUCCESS;else return ERROR;public void setSession(Map arg0) this.sessio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 璀璨的香港课件
- 餐厅经营场所租赁合同:涵盖餐饮人才招聘及培训服务
- 环保产业员工离职竞业限制及环保技术保密合同
- 工业互联网时代工厂厂长聘用与技术支持合同
- 智能制造公司股权转让与产业升级协议
- 离婚后子女户口迁移及财产分割协议书
- 《离婚协议中的共同生活费用补偿与子女赡养》
- 婚姻终止及共同债务清偿离婚上诉合同范本
- 《电子商务合同法修订与电子签名法律效力合同》
- 下交叉综合征的治疗方案
- 十四年抗战史
- 餐饮业管理规范标准
- 2024年成都隆科城乡发展集团有限公司招聘笔试冲刺题(带答案解析)
- 中华人民共和国医师法解读培训课件
- (正式版)YST 1682-2024 镁冶炼行业绿色工厂评价要求
- DL-T 5148-2021水工建筑物水泥灌浆施工技术条件-PDF解密
- 电工技能训练(第6版)中职技工电工类专业全套教学课件
- 泛光夜景照明亮化工程项目实施的重点难点和解决方案
- 输血科三基培训课件
- 塑料成型工艺课件
- 《西餐烹调基础》 课件 第六章 基础汤、基础少司和配菜制作
评论
0/150
提交评论