资源描述
武汉纺织大学2012届毕业设计论文
1 前言
1。1 HRMS系统简述
(1) HRMS的现状
随着时代的发展,社会的进步,越来越多的企业建立、发展、壮大、成熟。企业是国民经济的基本单元,企业发展得越好,经济进步就越快。然而随着企业的发展,人员的增多,每年人力资源管理的成本也会不断地增加,这一问题不仅耗费企业大量的资金,也耗费了大量的人力。当企业规模较小时,人力尚且比较容易完成信息管理,但随着企业规模增大,人员增多,老式的纸质管理方法就会出现许多弊端,比如说,保存困难、不易查询、耗费大量人力却仍然工作效率低下,工作出错率增高等,这种方法已经跟不上时代.
(2) HRMS的发展
在 20 世纪 60 年代末期,由于当时计算机发展水平的限制,HRMS 只不过是一种自动计 算薪资的工具。90 年代末,由于个人电脑的普及,数据库技术、客户/服务器技术,特别 是 Internet/Intranet 技术的发展,出现了现代人力资源管理系统。现代人力资源管理系 统的特点是从人力资源管理的角度出发,用集中的数据库将几乎所有与人力资源相关的数 据(如薪资福利、招聘、个人职业生涯的设计、培训、职位管理、绩效管理、岗位描述、个人信息和历史资料)统一管理起来,形成了集成的信息源.友好的用户界面,强有力的报表 生成工具、分析工具和信息的共享使得人力资源管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人力资源规划和政策 。
(3) HRMS的作用
本系统利用现代高效的运作方式来开发和管理组织中最重要、最昂贵的资源,实现人力资源管理自动化、人性化。为公司的发展做出正确的决策,提高人员的利用率,为公司发展和人才储备提供良好的平台。
1。2 系统开发平台
(1) 数据库(SQL Server2005)简介
SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。SQL Server 2005 为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。 通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案[1]。
SQL Server 有如下特点:
1. 它是真正的客户机/服务器体系结构。
2。 它的用户界面图形化,使系统管理和数据库管理更加直观、简单.
3. 它包含丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
4。 SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等.SQL Server也可以很好地与Microsoft BackOffice产品集成.
5. 它具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用.
6。 它对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。
7。 SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。
(2) MyEclipce6.5简介
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错.它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能.MyEclipce6。5支持Java 5和Java 6,可以在Windows (XP,Vista)、Linux、 Mac操作系统上运行.它是Spring—JPA的高度集成,提高了EJB3工程项目的灵活度,从数据库模式直接产生bean.
MyEclipce6。5支持AJAX开发和测试,改进了AJAX Web浏览器,改进了AJAX工具,增强了JavaScript调试。 支持RAD Web开发,具备Matisse4MyEclipse可视化Swing设计器,可以进行快速Java EE部署和测试。
MyEclipce6.5项目自动部署和启动服务,根据指定的调试和运行模式,自动配置项目和启动服务器;在配置前,自动停止运行的服务器;在现有的应用程序配置中可以重新配置,其包含的MyEclipce Derby服务器可以自动进行JDBC连接,可配置的启动选项。它也是个学习中心,提供帮助和学习资料,其中包含Java EE项目源代码和一键安装MyEclipse Java EE示例项目.
(3) MVC简介
MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller). MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器.它们各自处理自己的任务.
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务.例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据[5]。
MVC的优点表现在如下几个方面:
首先视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
其次随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
此外使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
最后分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
(4) J2EE简介
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。它提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。这样是Sun公司为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想.它使得重用业务逻辑和界面逻辑非常困难.现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层.
J2EE的四层结构分别是运行在客户端机器上的客户层组件、运行在J2EE服务器上的Web层组件、运行在J2EE服务器上的业务逻辑层组件和运行在EIS服务器上的企业信息系统(Enterprise information system)层软件。
J2EE应用程序组件是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。
客户层组件的含义是J2EE应用程序可以是基于web方式的,也可以是基于传统方式的。
Web 层组件可以是JSP 页面或Servlets按照J2EE规范形成的静态HTML页面。
业务层组件是业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理。
企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可能为了数据库连接需要访问企业信息系统。
2 SSH集成框架
2。1 Sturts2
Struts2 是一种JSP Model2模式的框架.JSP Model2 模式示意图如图2。1所示,是由sun公司又推出了一种架构模式。这个模式是结合了servlet,JSP,javabean的优点推出的一种模式.这个模式分为三部分servlet,JSP,javabean。servlet做的事情是控制到底最后显示哪个JSP页面给用户、JSP做的就是响应用户请求,把结果数据展现给用户、而javabean做的就不单单是对数据库的数据的存取了,这里复杂的业务功能和逻辑处理都交给了它处理。从它的设计结构就可以看出JSP Model2的优点。由于它在设计上很好的分工,也就是做显示的是JSP,做逻辑处理的是javabean,做控制的是servlet。这样分工以后,对我们开发人员来说,就可以很好的做自己的开发工作了,而美工人员也不必了解和看懂业务逻辑处理代码,在很大的层次上提高开发的效率。
事实上Struts2就是一个大的Servlet,所有的请求都会通过这个Servlet就行转发到相应的action 中就行处理.它是一个典型的MVC模式框架。虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势[2],因此,是一个非常值得期待的框架.Struts2的工作流程如图2-1所示.
它的整个工作过程如下:
1.当Servlet容器接收到一个Httprequest请求之后,将请求交给在web。xml中配置的过滤器StrutsPrepareAndExecuteFilter,调用它的dofilter方法。
2.StrutsPrepareAndExecuteFilter询问ActionMapper,以便确定这个请求是否有对应的Action调用。
3.ActionMaper返回一个描述Action调用的ActionMapping对象。
4。StrutsPrepareAndExecuteFilter调用Dispatcher类的serviceAction()方法.
5.Dispatcher调用ActionProxy的execute()方法。
6。ActionProxy设置ActionProxy对象的执行上下文,然后调用其invoke()方法。
7.ActionInvocation的invoke()方法从拦截器中查找尚未执行的拦截器,然后调用它的intercept(invocation()方法。并将自身的引用对象的引用最为参数传递给拦截器.
8。拦截器完成某系预处理工作之后,反过来调用ActionInvocation的invoke()方法。ActionInvocation维护自己的状态,所以它知道哪些拦截器已经被执行了,如果还没有别执行的拦截器,就继续执行它的intercept(invocation()方法。
9。如果所以的拦截器都已经执行过了,就调用Action实例的execute()方法(如果没有在struts。xml文件中设置其他方法,否则执行其他方法)。
10。ActionInvocation根据Action执行返还的结果码,查找对应的Result,调用Result的execute(invocation),将结果呈现给用户.
11。ActionInvocation的invoke()方法将控制权返还给拦截器映射中的最后一个拦截器,该拦截器完成所有 的后期处理工作,如此反复,知道所有的拦截器都成返回。
12.ActionInvocation的invoke()方法执行完毕之后,向ActionProxy返回一个String类型的结果码,最后,ActionProxy清理状态并返回.
图2-1 Struts2的工作流程示意图
2.2 Spring
Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发.从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益[4]。
Spring目标是使现有技术更加易用,推进编码最佳实践.内容是依赖注入容器,AOP实现(声明式事务), DAO/ORM支持,Web集成,轻量级的非侵入式的基于IOC和AOP的容器框架.它的核心是AOP。
Spring框架的IOC容器采用设置注入(通过JavaBean的属性设置依赖关系)和构造注入(通过构造器设置依赖关系)两种依赖注入的实现模式,所谓依赖注入(DI),也就是强制将组件的构建和使用分开。IOC(Inversion of Control 控制反转)就是把产生对象的权利交给Spring容器,此容器还负责管理(维护)对象之间的关系.DI(Dependency Injection 依赖注入)就是比如A依赖于B,把B注入到A里,DI的思想就是对象不再需要主动产生,而是交给Spring容器,对象之间的关系也不需要主动地获取和维护,也是交给Spring容器。
依赖注入顺序:
Bean—〉BeanFactory()—>Resource—>applicationContext.xml配置文件
用IOC的实现方式:
首先得到资源(//导包import org。springframework。core。io。*)
Resource resource=new ClassPathResource(”applicationContext。xml");
其次得到BeanFactory(Spring容器)
BeanFactory factory=new XmlBeanFactory(resource);
最后通过id得到Bean
IHello hello=(IHello)factory.getBean(”ch”);
hello.sayHello();
AOP的含义是面向方面编程,它涉及的概念有如下几个:
Target:目标,被代理的bean,包含业务代码 (真实、代理、抽象角色)
如:经纪人,代理商,房屋中介。
Advice:通知,定义一个“方面”要实现的功能.分前置通知、后置通知、环绕通知和异常通知等类型.
Proxy:代理,加入了通知或切面的目标,最终通过代理类访问业务逻辑,将“业务逻辑代码”和“方面代码”组装进代理类。
Pointcut:切入点,切入点决定了一个特定类的特定方法是否满足一条特定的规则,即在哪些地方使用通知。
Advisor:切面,切面是由定义切面行为的通知和定义切面在什么地方执行的切入点组合而成。
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用,Spring有以下几种代理方式:静态代理(一个类就要有一个代理类),这种代理方式不灵活,动态代理(一个代理类代理无数个类,用到反射 ,实现反射包里面的接口InvocationHandler代理和真实类实现同一接口),cglib代理(代理类和真实类不需要实现同一接口)和通知(拦截器)(当目标的方法调用时需要调用的代码)几种方式.
2。3 Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制[16].下面对这五个核心接口分别加以介绍.
(1) Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句.)。但需要注意的是Session对象是非线程安全的.同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
(2) SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory.
(3) Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象.在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
(4) Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码.
(5) Query和Criteria接口: Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或原生的SQL语句两种表达方式.HQL语言是一种面向对象的查询语句,它更容易让程序员所接受,同时HQL语言还屏蔽了不同SQL语言之间的差异。
Hibernate工作原理是这样的:首先它进行初始化。读取Hibernate 的配置信息然后再创建Session Factory。具体步骤如下:
(1) 创建Configeration类的实例。它的构造方法:将配置信息(Hibernate config。xml)读入到内存。一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。
(2) 创建SessionFactory实例,把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联.缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。 SessionFactory的缓存中:Hibernate 配置信息。
(3) 调用SessionFactory创建Session的方法。首先用户自行提供JDBC连接, Connection con=dataSource。getConnection(); Session s=sessionFactory。openSession(con);其次让SessionFactory提供连接 Session s=sessionFactory。openSession()。
(4) 通过Session 接口提供的各种方法来操纵数据库访问。
Hibernate加载调用的方法有如下几几种方法:
save:session。save(Object obj)
get :session。get(Class arg0, Serializable)
load:session。get(Class arg0, Serializable )
get是立即加载,如果对象不存在,会报空指针异常.首先用get查询实体对象,hibernate立即查询真实对象,只要能查到了一个对象,就立即发出SQL语句,访问与其关联的其他对象,也是立即发出SQL语句去查询.
load是采用延迟加载(懒加载) 用到了代理模式,如果对象不存在,会报找不到对象的异常,它首先使用load查询对象,不会马上返回一个sql语句,只有查询其他属性的时候,才会发出SQL语句。
2。4 软硬件环境要求
系统运行的软硬件环境要求如表2—1所示。
表2—1 软硬件环境要求
需求名称
详细要求
硬件环境
服务器:PIIII及以上CPU,512M内存,硬盘20G, 10/100M网络
客户端:IE6.0及以上
软件环境
Windows XP, Office, Oracle, Eclipse, MyEclipse, Rational Rose, ERWin, Apache, Tomcat, JDK1。4或以上, TestDirector, Junit, WinRunner
3 系统功能设计
3。1 系统分析
HRMS是基于B/S模式, 针对国内软件外包公司复杂的招聘管理业务和流程, 而开发的一套人力资源信息化管理系统。它由系统管理,简历管理,渠道管理,需求管理,数据统计等模块构成。系统中有如下几种角色:
招聘助理:系统主要使用者,具有整理简历、查看简历、初选简历、分发简历到项目组等使用权限。
招聘经理:系统使用者,具有查看简历、统计数据查询等使用权限。
项目助理:系统主要使用者,具有按项目组各需求分发简历、面试安排、提交面试评价等使用权限。
项目经理:系统使用者,具有对本项目组所有简历及面试安排进行查看和修改的使用权限。
系统管理员:本系统最高权限使用者,其职能可归到系统某角色,例如:招聘经理。
系统中为了代码的规范性和编码的效率,会用到一些缩写和术语,具体的解释如表3—1所示。
3。1。1系统功能性需求分类
根据项目的具体功能和详细需求,将系统的模块,功能类别和子功能设计成如表3—2所示。
表3-2 系统功能性需求分类
模块
功能类别
子功能
需求管理
需求管理
岗位管理(添加、删除、修改)
项目管理
项目管理
项目管理(添加、删除、修改)
数据统计
数据统计
简历渠道数量统计, 简历渠道状态统计,渠道类型统计
简历库管理
权限管理
角色维护(添加、删除、修改、权限描述),用户管理(添加、删除、修改、查看用户信息)
简历管理
获得文本文件简历,添加简历记录,删除、修改简历
渠道管理
渠道管理
渠道管理(添加、删除、修改),渠道信息查询
根据以上所做的需求分析,得出以下系功能模块图:
人力资源管理系统
需求管理
渠道管理
数据统计
简历管理
系统管理
渠道简历状态统计
渠道简历数量统计
渠道类型统计
需求信息
部门管理
项目管理
渠道列表
预约记录
录入简历
面试评价
简历中心
权限管理
角色管理
用户管理
图3-1 人力资源管理系统功能模块图
表3—1 术语与缩写解释
缩写、术语
解 释
HRA
招聘助理
HRM
招聘经理
BDA
项目助理
BDM
项目经理
3。2 系统模块功能设计
根据系统需求,经过分析,设计出以下几个模块:
(1) 用户管理模块
此模块主要用于系统管理员管理用户.管理员可以使用该模块添加本系统的使用者,并给使用者分配角色,增加、删除和修改某个用户的信息:基本信息、角色等。
(2) 角色管理模块
该模块用于管理员对用户角色分配相应的权限,拥有相应权限的角色可以访问操作相应的模块功能。系统管理员可以查看、添加、删除和修改某个角色的信息:角色编号、角色名称和角色描述。
(3) 权限管理模块
该模块用于权限的具体说明,包括权限的URL和权限的编号、备注。管理员可以通过该模块对权限的具体信息进行添加、修改和删除。
(4) 简历中心模块
该模块用于对用户的简历管理.招聘助理从用户简历文件中摘抄相关的信息到简历中心, 并将用户的简历文件作为附件保存到服务器。招聘助理可以在该模块中对用户的简历进行录入、修改和删除的操作。还可以导出某个用户的简历信息。
(5) 录入简历模块
由于用户的简历信息比较复杂繁多,单独把录入简历做为一个模块,用于从用户的简历文件中录入相关的信息到简历中心。
(6) 预约记录模块
该模块用于项目助理预约面试并记录预约面试结果及原因。不管是否预约面试成功,都应该添加一个预约面试记录,一个面试者应该可以有很多预约面试记录。预约面试信息,应该包含预约人信息,被预约人信息,预约时间,成功与否,预约说明,预约时商定的面试时间, 面试负责人,面试说明(如试题,面试房间,及其他注意事项).项目助理可以查看、修改和删除自己填写好的预约记录信息.
(7) 面试评价模块
该模块用于面试人记录本次面试的结果以及评价, 面试评价信息:面试时间、面试说明、笔试成绩、工作经验, 应聘者参加工作简介、逻辑思维能力,责任感、进取心,外语实际能力,期望薪水,原单位薪水,预计到岗时间,评价人,面试结果(合格,不合格),面试综合评价。一份简历可以有多份面试评价。面试人可以对自己记录的面试结果进行修改和删除的操作。
(8) 渠道管理列表模块
该模块用于系统管理员、招聘经理查看渠道类型,类型编号, 类型名。修改和删除渠道类型的基本信息。增加新渠道类型,类型编号, 类型名 .
(9) 需求信息模块
该模块用于项目经理、项目助理查看某个或所有岗位信息,增加、删除和修改某个岗位的需求信息。比如部门编号,部门经理,需求名称,需求人数,需求的开始和结束时间等.
(10) 项目管理模块
该模块用于系统管理员、招聘经理增加有需求的项目.项目名,部门编号,项目经理,项目助理,联系人,联系电话,项目描述.系统管理员、招聘经理可以查看修改和删除项目信息.
(11) 部门管理模块
该模块用于管理员、部门经理对部门的信息进行管理,如增加部门编号,部门名称和部门经理。可以查看,删除和修改部门信息。
(12) 渠道类型统计模块
该模块的功能按年统计每个渠道,渠道类型的简历投递数量和简历入职数量。
(13) 渠道简历数量统计模块
该模块的功能通过统计图描述了各种渠道简历的数量统计,让人看了一目了然.
(14) 渠道简历状态统计模块
该模块的功能通过列表统计了简历的编号,姓名,姓名,性别,投递方式,毕业院校,毕业时间,语言水平和背景,部门的信息.
面向系统管理员的流程图如图3—2所示。
图3—2 流程图
3。3 数据库结构设计
3。3.1 数据结构
根据各个表之间主外键的关系,设计结构图如图3—3所示。
3。3。2 数据库表设计
根据需求分析,使用数据库生成的数据表和其中的字段属性如表3—3至3-14所示。
图3—3 数据结构图
表3-3 系统用户表(t_user)
列名
数据类型
长度
允许空
id(编号)
int
4
N
uname(用户名)
varchar
50
Y
upass(密码)
varchar
50
Y
roleID(角色编号)
int
4
Y
depID(部门编号)
int
4
Y
projectID(项目编号)
int
4
Y
表3—4 员工岗位表(t_station)
列名
数据类型
长度
允许空
id(编号)
int
4
N
name(岗位名称)
varchar
50
Y
depID(部门编号)
int
4
Y
表3—5 用户角色表(t_role)
列名
数据类型
长度
允许空
id(编号)
int
4
N
roleName(角色名称)
varchar
50
Y
descr(角色描述)
varchar
50
Y
表3-6 角色权限表(t_role_popedom)
列名
数据类型
长度
允许空
id(编号)
int
4
N
popedomID(权限编号)
int
4
N
表3—7 简历表(t_resume)
列名
数据类型
长度
允许空
id(编号)
int
4
N
name(姓名)
varchar
50
Y
sex(性别)
varchar
20
Y
birthday(出生日期)
datetime
8
Y
channelID(渠道编号)
int
4
Y
graduateTime(毕业日期)
datetime
8
Y
school(毕业院校)
varchar
30
Y
major(专业)
varchar
20
Y
education(学历)
varchar
20
Y
skill(专业技能)
varchar
30
Y
background(背景)
varchar
30
Y
languageType(外语类型)
varchar
30
Y
languageLevel(外语等级)
varchar
30
Y
depID(部门编号)
int
4
Y
userID(用户编号)
int
4
Y
state(预约状态)
varchar
20
Y
表3-8 项目表(t_project)
列名
数据类型
长度
允许空
id(编号)
int
4
N
name(名称)
varchar
30
Y
depID(部门编号)
int
4
Y
HRM(项目经理)
varchar
30
Y
HRA(项目助理)
varchar
30
Y
linkman(联系人)
varchar
30
Y
tel(联系电话)
varchar
30
Y
descr(详细描述)
varchar
30
Y
startTime(开始日期)
datetime
8
Y
endTime(结束日期)
datetime
8
Y
表3—9 权限表(t_popedom)
列名
数据类型
长度
允许空
id(编号)
int
4
N
url(权限url)
varchar
50
Y
memo(备忘录)
varchar
50
Y
表3—10 预约记录表(t_order)
列名
数据类型
长度
允许空
id(编号)
int
4
N
resumeID(简历编号)
int
4
Y
orderPer(姓名)
varchar
50
Y
tel(电话)
varchar
50
Y
info(信息)
varchar
50
展开阅读全文