方路
摘要:隨著企業(yè)規(guī)模的不斷擴大,企業(yè)對于人力資源管理的要求不斷提高,如何高效管理企業(yè)的人力資源成為企業(yè)面臨的重要課題。本系統(tǒng)是作者為中交上航局航道建設(shè)有限公司定制開發(fā)的人力資源管理信息系統(tǒng),主要包括后臺數(shù)據(jù)庫的建立以及前臺應用程序的開發(fā)兩個方面。本系統(tǒng)采用C/S模式開發(fā),前臺應用程序使用C#作為開發(fā)語言環(huán)境,后臺數(shù)據(jù)庫使用SQL SERVER 2005進行設(shè)計管理維護。
【關(guān)鍵詞】人力資源管理 信息系統(tǒng) 三層架構(gòu)數(shù)據(jù)庫設(shè)計
中交上航局航道建設(shè)有限公司擁有主業(yè)總計663人,其中在崗人員659人,包括機關(guān)部室、項目部、船舶。人員結(jié)構(gòu)復雜,調(diào)動頻繁,薪酬算法多樣,統(tǒng)計分類樣式繁多。同時企業(yè)對于人事檔案管理、證書管理、考勤薪酬管理、人員調(diào)動管理等有較多個性化需求。因此設(shè)計符合企業(yè)自身發(fā)展需要的人力資源管理信息系統(tǒng)十分重要。該系統(tǒng)圍繞企業(yè)人事管理的核心功能,進行深度定制化開發(fā),成為企業(yè)人力資源管理必不可少的重要工具。
1 系統(tǒng)概述
系統(tǒng)基于Microsoft .NET Framework 3.0平臺進行開發(fā),采用C/S構(gòu)架。主要包括系統(tǒng)管理、基礎(chǔ)數(shù)據(jù)管理、人事管理、證書管理、考勤管理、薪酬管理、匯總打印幾大模塊功能。各模問數(shù)據(jù)相互調(diào)用,匯總打印使用水晶報表工具進行開發(fā)輸出。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
2 系統(tǒng)設(shè)計
2.1 數(shù)據(jù)庫設(shè)計
2.1.1 數(shù)據(jù)表設(shè)計
數(shù)據(jù)庫設(shè)計主要遵循按需設(shè)定字段,各表主鍵外鍵相互關(guān)聯(lián),以便在數(shù)據(jù)進行插入、刪除、更新時保持數(shù)據(jù)庫整體的完整性??记?、工資、獎金等數(shù)據(jù)較多且需要唯一標識的采用標識增量進行主鍵標識。部分表的部分字段設(shè)計如表1所示。
2.1.2 存儲過程設(shè)計
程序?qū)τ跀?shù)據(jù)庫的新增、修改、刪除等工作都是通過存儲過程實現(xiàn),且系統(tǒng)中存在大量的復雜計算以及對數(shù)據(jù)的處理尤其是薪酬的計算發(fā)放,因此需要頻繁調(diào)用存儲過程來解決此類問題。系統(tǒng)在SQL數(shù)據(jù)庫中建立了50多個存儲過程用來處理數(shù)據(jù)。
2.2 前臺應用程序設(shè)計
前臺程序使用Microsoft Visual Studio2008工具進行開發(fā),使用C#為默認開發(fā)語言環(huán)境。程序使用了三層架構(gòu)進行開發(fā),分別是UI(界而表示層)、BLL(邏輯業(yè)務層)、DAL(數(shù)據(jù)訪問層)。把項目中常用到的方法類放到了Common(共通層),為了安全有效的在各層問進行數(shù)據(jù)傳輸加入了Model(實體層),用來保存?zhèn)鬏數(shù)臄?shù)據(jù)。如圖2、圖3所示為項目文件的分層以及各層的關(guān)系。
2.2.1 DAL(數(shù)據(jù)訪問層)
數(shù)據(jù)訪問層在項目程序中負責與數(shù)據(jù)庫進行底層交互,主要包括連接、查詢、新增、更新刪除數(shù)據(jù)庫的類及方法。以下為考勤數(shù)據(jù)類調(diào)用存儲過程方法的部分代碼。
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(邏輯業(yè)務層)
邏輯業(yè)務層主要處理程序中對于各表單的數(shù)據(jù)業(yè)務處理,通過UI(表示層)將方法參數(shù)傳遞給BLL(邏輯業(yè)務層),BLL(邏輯業(yè)務層)再將方法參數(shù)傳到DAL(數(shù)據(jù)訪問層),由數(shù)據(jù)訪問層調(diào)用相應的存儲過程或者執(zhí)行參數(shù)對數(shù)據(jù)庫進行修改。以下是考勤邏輯業(yè)務層的部分代碼
publicclasskqscbll
{
privatekqscdalkqse= newkqscdal();
publicDataSetkqcx(DateTime dl, DateTimed2)
{
return kqsc.kqcx(dl, d2);
}
2.2.3 UI(界而表示層)
界而表示層是用戶進行操作輸入查詢的界而,是人與系統(tǒng)交互最直觀的體現(xiàn)。在程序中使用窗口來建立用戶的操作界而,除了使用開發(fā)工具提供的自帶控件以外,還加入了Developer Express第三方表格控件,使得表格篩選查詢等功能更加強大。以下為調(diào)用BLL(邏輯業(yè)務層)進行教育經(jīng)歷刪除操作的部分代碼。
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(“刪除教育經(jīng)歷成功”,”提示”1:
BindEducation();
}
else
{
MessageBox.Show(”刪除失敗,請聯(lián)系管理員”,”提示”);
}
)
2.2.4 Model(實體層)
實體層主要用于與其他各層進行數(shù)據(jù)交互,通過聲明變量形成一個實體類在各層之問起到一個數(shù)據(jù)傳輸?shù)臉蛄鹤饔?。以下為申明一個職稱等級的模型類部分代碼。
3 系統(tǒng)發(fā)布
程序開發(fā)完成后通過微軟的Click Once進行部署發(fā)布,使用該技術(shù)可創(chuàng)建自行更新的基于Windows的應用程序,客戶端的應用程序在打開程序時會自動檢測服務器上是否有最新的版本,可以選擇安裝最新版本進行自動更新也可以跳過更新直接啟動程序。
4 結(jié)論
通過以上開發(fā)流程的介紹,能夠基本設(shè)計開發(fā)一套C/S架構(gòu)的企業(yè)人力資源管理系統(tǒng)。在實際使用中也得到了很好的效果應用,對企業(yè)提高管理水平,提升管理效率有較大的幫助和促進。endprint