人力资源管理系统教材.docx
《人力资源管理系统教材.docx》由会员分享,可在线阅读,更多相关《人力资源管理系统教材.docx(274页珍藏版)》请在冰点文库上搜索。
人力资源管理系统教材
项目4----人力资源管理系统
项目来源:
湖南科创信息技术股份有限公司
随着市场竞争的日趋激烈,人才已成为实现企业自身战略目标的一个非常关键的因素。
企业中人心向背和员工对工作的投入程度在很大程度上决定了该企业的兴衰与成败。
如何能保持本企业对员工的工作责任感,激励他们的工作热情,减少人才的流失,已成为困扰企业主管和人力资源经理的一个日益尖锐的问题,可以说企业管理从根本上来讲就是对人的管理。
现在“公平、公正、合理”的企业管理原则已为不少企业所采纳。
但是要实现“公平、公正、合理”绝非易事,它不是仅靠规章制度和政策就可以解决的。
通过建立透明、相容、一致、易查和全面的人力资源信息系统,将与人相关的信息统一地管理起来,才有可能为“公平、公正、合理”原则的实现,以及企业在运作和劳资纠纷等方面的风险规避等建立一套科学的保障体系。
本章将向读者全面剖析人力资源管理的内容,由此得出人力资源管理系统需求分析和数据建模,并最终演示如何利用VisualBasic.NET完成系统的制作。
1人力资源管理的任务与作用
1.1人力资源管理的任务
人力资源管理工作的主要任务有:
进行人力资源规划和分析
贯彻平等就业机会原则
聘任员工
从事人力资源开发
确定报酬和福利
处理员工与劳资关系
人力资源规划和分析包括几方面的任务。
在进行人力资源规划的过程中,经理人员将预计未来影响劳动力供求的有关因素。
人力资源分析要求具备各种相关的信息资料、通信系统和评价系统,它们是从事协调人力资源工作所不可或缺的部分。
政府在遵从平等就业机会法规方面的要求,无疑将对所有其他人力资源管理工作产生重大影响。
例如,企业在进行战略性人力资源规划时,为贯彻在雇佣少数种族成员和妇女方面的赞助性行为的要求,就必须为雇佣各种各样的雇员留有充分的余地。
另外在招聘选拔和培训人员时,所有经理人员都必须遵守平等就业机会法规的要求。
聘任员工指选择适合标准要求的相应数量的人员,来填补企业的岗位空缺。
职务分析是聘任工作的基础。
根据职务分析所得结论,就可以准备工作说明书和职务要求细则,这两项都是在招聘中所需使用的材料。
在人员选拔过程中,应特别注意选择最符合要求的员工来填补企业的岗位空缺。
员工培训与人力资源开发工作包括想新雇员介绍企业的各种情况、对现有员工进行职业技能培训、鼓励和帮助员工在多方面提高和发展等内容。
在职务不断演化和改变的环境下,为了适应技术的变化,企业就必须对员工进行培训和再培训。
此外,为迎接未来的挑战,还必须鼓励各级负责人、管理者和所有员工不断有所发展和提高。
为此企业一般制定了员工职业发展计划,这种计划的目的,是为那些在企业内寻求自我发展的员工设计出发展的路径,并安排为此所需要的有关活动。
为了提高员工的工作成效,企业还应对员工的工作表现进行考核,以确定员工的本职工作究竟做的怎么样。
报酬就是通过薪金、奖励和福利等方式来报答为企业工作的员工。
企业必须认真设计和不断完善基本工资和薪酬制度。
除了工薪以外,越来越多的企业好指定了某些奖励计划,例如利润分享和工作奖励等。
但是另一方面,快速增长的福利费用,特别是扶摇直上的医疗的保健费用,仍将继续是一个值得思考和认真对待的重大问题。
如果员工和企业双方都想联手共创繁荣,那么管理着和员工就必须卓有成效地处理双方的关系。
不论员工是否由工会来代表,企业都必须重视与员工健康、人身安全和财物保障有关的各项工作。
为促成企业与员工的良好关系,企业还必须保障员工的各种权利。
另外为了使员工如同管理者那样准确地了解企业对员工的期望。
企业还必须制定、传达和不断更新人力资源政策和规则。
在有工会的企业中,企业还应重视和处理好资方和工会的关系。
1.2人力资源管理系统的作用
人力资源管理系统是以先进的软件和高速、大容量的硬件为基础的,新的人力资源管理模式,通过集中式的信息库、自动处理信息、员工自助服务、外协以及服务共享,达到降低成本、提高效率、改进员工服务模式的目的。
它通过与企业现有的网络技术相联系,保证人力资源与日新月异的技术环境同步发展。
一般来说,可以分为四个部分来理解人力资源管理系统。
1.管理人员角色和目标的改变
传统的人力资源管理中,管理人员的绝大部分精力将耗费在繁琐的日常行政事务处理上,而作为企业管理层的参谋角色应该做的咨询和策略制定的工作相对缺乏。
通过人力资源管理系统管理人员将决大部分精力放在管理层提供咨询、建议上,而在行政事务上的工作可以由电子化系统完成,只需占用HR人员极少的精力和时间。
2提供更好的服务
人力资源管理系统可以迅速、有效地收集各种信息,加强内部的信息沟通。
各种用户可以直接从系统中获得自己所需要的各种信息,并根据相关信息做出决策和相应的行动方案。
3.降低成本
人力资源管理系统通过减少人力资源管理工作的操作成本、降低员工流动率、减少通讯费用等途径达到降低企业运作成本的目的。
4.革新管理理念
人力资源管理系统的最终目的是达到革新企业的管理理念而不仅仅是改进管理方式、优化人力资源管理。
先进技术应用与人力资源管理时,并不仅仅是为了将现有的人力资源工作做的更好,更重要的是,做些对于企业来讲更有效率的事情,成为管理层的决策支持者,为决策提供信息和解决方案。
2功能分析与系统流程图
由于篇幅有限,本实例详细介绍如图1所示的功能开发过程,并简化其中各功能所包含的属性,其他功能读者完全可以参照这些功能的开发方法实现。
3数据库设计
一个基本的人力资源管理系统数据库中包括多张数据表,分别存放相应子功能的数据信息,其中组织机构编码表和职员基本信息表是起关键作用的表,用于存放基础的数据信息。
其他涉及组织机构信息和职员信息的数据表,都只记录机构或职员的编号,根据作为外键的编号字段和组织机构编码表或职员基本信息表相对应。
因此这2张表和其他数据表间的关系是1:
N的关系。
本程序共需8张表,用途分别如表1所示。
表1系统数据表及其用途
数据表名称
数据表用途
用户清单
保存系统使用者的信息
职员基本信息表
用于保存企业组织机构的详细信息,包括机构间的层次编码等
组织机构编码表
用于保存企业员工的基本信息
月工资统计表
用于保存、计算当月的员工工资
个人所得税表
用于保存个人所得税的税率数据
工资发放历史表
用于保存所有月份工资发放的历史
职员奖励表
用于保存员工的奖励情况
职员惩罚表
用于保存员工的惩罚情况
以下为数据表之间的关系图
图3数据表关系图
3.1创建数据库
打开SQLServer企业管理器,新建一个数据库,将其命名为hrmbook。
后面几小节我们将列出几个重点的数据表的建库脚本。
3.2创建“组织机构编码表”
CREATETABLE[dbo].[组织机构编码表](
[内部编号][int]IDENTITY(1,1)NOTNULL,
[类别][varchar](100)NULL,
[AbsIndex][int]NULL,
[ItemIndex][int]NULL,
[ItemLevel][int]NULL,
[ParentIndex][int]NULL,
[类别号][char](10)NULL,
[单位编号][varchar](20)NOTNULLPRIMARYKEY,
[单位名称][varchar](100)NULL,
[拼音编码][varchar](50)NULL,
[单位地址][varchar](100)NULL,
[单位电话号码][varchar](50)NULL,
[开户银行][varchar](100)NULL,
[帐号][varchar](50)NULL,
[开户全称][varchar](100)NULL
)ON[PRIMARY]
GO
3.3创建“职员基本信息表”
CREATETABLE[dbo].[职员基本信息表](
[内部编号][int]IDENTITY(1,1)NOTNULL,
[职员编号][varchar](30)NOTNULLPRIMARYKEY,
[姓名][varchar](20)NOTNULL,
[姓名简码][varchar](10)NULL,
[性别][varchar]
(2)NULL,
[出生日期][int]NULL,
[年龄][int]NULL,
[籍贯][varchar](50)NULL,
[民族][varchar](20)NULL,
[文化程度][char](50)NULL,
[毕业学校][char](100)NULL,
[健康状况][varchar](50)NULL,
[婚姻状况][varchar](10)NULL,
[身份证号码][varchar](18)NULL,
[家庭电话][varchar](50)NULL,
[办公电话][varchar](50)NULL,
[手机][varchar](50)NULL,
[电子邮件地址][varchar](50)NULL,
[职工账号][varchar](20)NULL,
[单位编号][varchar](20)NULL,
[备注][varchar](100)NULL
)ON[PRIMARY]
GO
3.4创建其他数据表
CREATETABLE[dbo].[用户清单](
[用户编号][char](6)NOTNULL,
[部门][char](20)NOTNULL,
[姓名][char](10)NOTNULL,
[性别][char]
(2)NOTNULL,
[密码][char](10)NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[月工资统计表](
[日期][int]NULL,
[职员编号][varchar](30)NotNULLPRIMARYKEY,
[基本工资][float]NULLDEFAULT(0),
[浮动工资][decimal](26,2)NULLDEFAULT(0),
[合同补][decimal](26,2)NULLDEFAULT(0),
[粮副补][decimal](26,2)NULLDEFAULT(0),
[房补][decimal](26,2)NULLDEFAULT(0),
[临时补][decimal](26,2)NULLDEFAULT(0),
[职务工资][decimal](26,2)NULLDEFAULT(0),
[工龄工资][decimal](26,2)NULLDEFAULT(0),
[考核工资][decimal](26,2)NULLDEFAULT(0),
[奖金][decimal](26,2)NULLDEFAULT(0),
[应发金额合计][decimal](26,2)NULLDEFAULT(0),
[房租][decimal](26,2)NULLDEFAULT(0),
[水电费][decimal](26,2)NULLDEFAULT(0),
[请假扣除][decimal](26,2)NULLDEFAULT(0),
[考勤扣除][decimal](26,2)NULLDEFAULT(0),
[罚款][decimal](26,2)NULLDEFAULT(0),
[住房公积金][decimal](26,2)NULLDEFAULT(0),
[医疗保险][decimal](26,2)NULLDEFAULT(0),
[养老保险][decimal](26,2)NULLDEFAULT(0),
[失业保险][decimal](26,2)NULLDEFAULT(0),
[生育保险][decimal](26,2)NULLDEFAULT(0),
[工伤保险][decimal](26,2)NULLDEFAULT(0),
[应扣金额合计][decimal](26,2)NULLDEFAULT(0),
[工资合计][decimal](26,2)NULLDEFAULT(0),
[个人所得税][decimal](26,2)NULLDEFAULT(0),
[实发金额][decimal](26,2)NULLDEFAULT(0),
[发放否][char](10)NULL,
[月份][int]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[个人所得税表](
[编号][int]NOTNULLPRIMARYKEY,
[级数][char]
(2)NOTNULL,
[不计税工资][decimal](26,2)NOTNULLDEFAULT(800),
[工资下限][decimal](26,2)NOTNULLDEFAULT(0),
[工资上限][decimal](26,2)NOTNULLDEFAULT(0),
[个人所得税率][decimal](26,2)NOTNULLDEFAULT(0),
[速算扣除数][decimal](26,2)NOTNULLDEFAULT(0),
[备注][varchar](50)NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[工资发放历史表](
[日期][int]NULL,
[职员编号][varchar](30)NULL,
[基本工资][float]NULL,
[浮动工资][decimal](26,2)NULL,
[合同补][decimal](26,2)NULL,
[粮副补][decimal](26,2)NULL,
[房补][decimal](26,2)NULL,
[临时补][decimal](26,2)NULL,
[职务工资][decimal](26,2)NULL,
[工龄工资][decimal](26,2)NULL,
[考核工资][decimal](26,2)NULL,
[奖金][decimal](26,2)NULL,
[应发金额合计][decimal](26,2)NULL,
[房租][decimal](26,2)NULL,
[水电费][decimal](26,2)NULL,
[请假扣除][decimal](26,2)NULL,
[考勤扣除][decimal](26,2)NULL,
[罚款][decimal](26,2)NULL,
[住房公积金][decimal](26,2)NULL,
[医疗保险][decimal](26,2)NULL,
[养老保险][decimal](26,2)NULL,
[失业保险][decimal](26,2)NULL,
[生育保险][decimal](26,2)NULL,
[工伤保险][decimal](26,2)NULL,
[应扣金额合计][decimal](26,2)NULL,
[工资合计][decimal](26,2)NULL,
[个人所得税][decimal](26,2)NULL,
[实发金额][decimal](26,2)NULL,
[发放否][char](10)NULL,
[月份][int]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[职员奖励表](
[序号][int]IDENTITY(1,1)NOTNULLPRIMARYKEY,
[职员编号][varchar](30)NOTNULL,
[奖励类型][varchar](20)NULL,
[奖励金额][float]NULLDEFAULT(0),
[是否计入工资][char](10)NULLDEFAULT('否'),
[奖励原因][varchar](50)NULL,
[部门意见][varchar](100)NULL,
[奖励日期][int]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[职员惩罚表](
[序号][int]IDENTITY(1,1)NOTNULLPRIMARYKEY,
[职员编号][varchar](30)NOTNULL,
[惩罚类型][varchar](20)NULL,
[惩罚金额][float]NULLDEFAULT(0),
[是否计入工资][char](10)NULLDEFAULT('否'),
[惩罚原因][varchar](50)NULL,
[部门意见][varchar](100)NULL,
[惩罚日期][int]NULL
)ON[PRIMARY]
GO
3.5创建外部关键字
ALTERTABLE[dbo].[月工资统计表]ADD
CONSTRAINT[FK_月工资统计表_职员基本信息表]FOREIGNKEY
(
[职员编号]
)REFERENCES[dbo].[职员基本信息表](
[职员编号]
)
GO
ALTERTABLE[dbo].[工资发放历史表]ADD
CONSTRAINT[FK_工资发放历史表_职员基本信息表]FOREIGNKEY
(
[职员编号]
)REFERENCES[dbo].[职员基本信息表](
[职员编号]
)
GO
ALTERTABLE[dbo].[职员奖励表]ADD
CONSTRAINT[FK_职员奖励表_职员基本信息表]FOREIGNKEY
(
[职员编号]
)REFERENCES[dbo].[职员基本信息表](
[职员编号]
)
GO
ALTERTABLE[dbo].[职员惩罚表]ADD
CONSTRAINT[FK_职员惩罚表_职员基本信息表]FOREIGNKEY
(
[职员编号]
)REFERENCES[dbo].[职员基本信息表](
[职员编号]
)
GO
3.6创建存储过程
系统使用了四个存储过程,分别实现从历史导入工资明细、计算当月工资和工资发放的功能。
这些存储过程都在“当月工资管理”模块中使用,可以通过以下的脚本代码创建。
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sf_空数据置0]')andOBJECTPROPERTY(id,N'IsProcedure')=1)
dropprocedure[dbo].[sf_空数据置0]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sf_形成月工资统计表]')andOBJECTPROPERTY(id,N'IsProcedure')=1)
dropprocedure[dbo].[sf_形成月工资统计表]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sf_当月工资统计]')andOBJECTPROPERTY(id,N'IsProcedure')=1)
dropprocedure[dbo].[sf_当月工资统计]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[sf_当月工资发放]')andOBJECTPROPERTY(id,N'IsProcedure')=1)
dropprocedure[dbo].[sf_当月工资发放]
GO
-----------------------
createproceduresf_空数据置0
as
begintransaction
update月工资统计表set基本工资=0where基本工资isnull
update月工资统计表set职务工资=0where职务工资isnull
update月工资统计表set工龄工资=0where工龄工资isnull
update月工资统计表set考核工资=0where考核工资isnull
update月工资统计表set奖金=0where奖金isnull
update月工资统计表set应发金额合计=0where应发金额合计isnull
update月工资统计表set房租=0where房租isnull
update月工资统计表set水电费=0where水电费isnull
update月工资统计表set请假扣除=0where请假扣除isnull
update月工资统计表set罚款=0where罚款isnull
update月工资统计表set考勤扣除=0where考勤扣除isnull
update月工资统计表set住房公积金=0where住房公积金isnull
update月工资统计表set医疗保险=0where医疗保险isnull
update月工资统计表set养老保险=0where养老保险isnull
update月工资统计表set应扣金额合计=0where应扣金额合计isnull
update月工资统计表set失业保险=0where失业保险isnull
update月工资统计表set个人所得税=0where个人所得税isnull
update月工资统计表set工资合计=0where工资合计isnull
update月工资统计表set实发金额=0where实发金额isnull
update个人所得税表set个人所得税率=0where个人所得税率isnull
commit
GO
---------------------