方路
摘要:随着企业规模的不断扩大,企业对于人力资源管理的要求不断提高,如何高效管理企业的人力资源成为企业面临的重要课题。本系统是作者为中交上航局航道建设有限公司定制开发的人力资源管理信息系统,主要包括后台数据库的建立以及前台应用程序的开发两个方面。本系统采用C/S模式开发,前台应用程序使用C#作为开发语言环境,后台数据库使用SQL SERVER 2005进行设计管理维护。
【关键词】人力资源管理 信息系统 三层架构数据库设计
中交上航局航道建设有限公司拥有主业总计663人,其中在岗人员659人,包括机关部室、项目部、船舶。人员结构复杂,调动频繁,薪酬算法多样,统计分类样式繁多。同时企业对于人事档案管理、证书管理、考勤薪酬管理、人员调动管理等有较多个性化需求。因此设计符合企业自身发展需要的人力资源管理信息系统十分重要。该系统围绕企业人事管理的核心功能,进行深度定制化开发,成为企业人力资源管理必不可少的重要工具。
1 系统概述
系统基于Microsoft .NET Framework 3.0平台进行开发,采用C/S构架。主要包括系统管理、基础数据管理、人事管理、证书管理、考勤管理、薪酬管理、汇总打印几大模块功能。各模问数据相互调用,汇总打印使用水晶报表工具进行开发输出。系统功能结构图如图1所示。
2 系统设计
2.1 数据库设计
2.1.1 数据表设计
数据库设计主要遵循按需设定字段,各表主键外键相互关联,以便在数据进行插入、删除、更新时保持数据库整体的完整性。考勤、工资、奖金等数据较多且需要唯一标识的采用标识增量进行主键标识。部分表的部分字段设计如表1所示。
2.1.2 存储过程设计
程序对于数据库的新增、修改、删除等工作都是通过存储过程实现,且系统中存在大量的复杂计算以及对数据的处理尤其是薪酬的计算发放,因此需要频繁调用存储过程来解决此类问题。系统在SQL数据库中建立了50多个存储过程用来处理数据。
2.2 前台应用程序设计
前台程序使用Microsoft Visual Studio2008工具进行开发,使用C#为默认开发语言环境。程序使用了三层架构进行开发,分别是UI(界而表示层)、BLL(逻辑业务层)、DAL(数据访问层)。把项目中常用到的方法类放到了Common(共通层),为了安全有效的在各层问进行数据传输加入了Model(实体层),用来保存传输的数据。如图2、图3所示为项目文件的分层以及各层的关系。
2.2.1 DAL(数据访问层)
数据访问层在项目程序中负责与数据库进行底层交互,主要包括连接、查询、新增、更新删除数据库的类及方法。以下为考勤数据类调用存储过程方法的部分代码。
publicintattendanceinit(intyear,intmonth,intbzgxt)
{
SqIParameter[] param= newSqlParameter[]{
newSqlParameterr@kqYear",year),
newSqlParameter(" @kqMonth",month),
newSqlParameter(¨@bzgxt",bzgxt)
};
returnSqlHelper.ExecuteNonQuery(DBUtilConnStr, CommandType.StoredProcedure,“PROC,_MONTHATTR_INIT”, param);
2.2.2 BLL(逻辑业务层)
逻辑业务层主要处理程序中对于各表单的数据业务处理,通过UI(表示层)将方法参数传递给BLL(逻辑业务层),BLL(逻辑业务层)再将方法参数传到DAL(数据访问层),由数据访问层调用相应的存储过程或者执行参数对数据库进行修改。以下是考勤逻辑业务层的部分代码
publicclasskqscbll
{
privatekqscdalkqse= newkqscdal();
publicDataSetkqcx(DateTime dl, DateTimed2)
{
return kqsc.kqcx(dl, d2);
}
2.2.3 UI(界而表示层)
界而表示层是用户进行操作输入查询的界而,是人与系统交互最直观的体现。在程序中使用窗口来建立用户的操作界而,除了使用开发工具提供的自带控件以外,还加入了Developer Express第三方表格控件,使得表格筛选查询等功能更加强大。以下为调用BLL(逻辑业务层)进行教育经历删除操作的部分代码。
privatevoidtlsEduRmv_Click(object sender,EventArgs e)
{
DataRowdr= gvEdu.GetFocusedDataRoxv();
object[] obj= dr.ItemArray;
int id= Int3 2.Parse(ob.j [O].ToString());
if (edubll.removeEmpEdu(id)>O)
{
MessageBox.Show(“刪除教育经历成功”,”提示”1:
BindEducation();
}
else
{
MessageBox.Show(”删除失败,请联系管理员”,”提示”);
}
)
2.2.4 Model(实体层)
实体层主要用于与其他各层进行数据交互,通过声明变量形成一个实体类在各层之问起到一个数据传输的桥梁作用。以下为申明一个职称等级的模型类部分代码。
3 系统发布
程序开发完成后通过微软的Click Once进行部署发布,使用该技术可创建自行更新的基于Windows的应用程序,客户端的应用程序在打开程序时会自动检测服务器上是否有最新的版本,可以选择安装最新版本进行自动更新也可以跳过更新直接启动程序。
4 结论
通过以上开发流程的介绍,能够基本设计开发一套C/S架构的企业人力资源管理系统。在实际使用中也得到了很好的效果应用,对企业提高管理水平,提升管理效率有较大的帮助和促进。endprint