李亞麗, 張國平, 張青苗
(平頂山學院 計算機學院, 平頂山 467000)
隨著社會的不斷發(fā)展,傳統(tǒng)的手工統(tǒng)計和核算工資的方法也變得日益繁瑣、復雜[1][2]。由于企業(yè)的部門及人員不斷增多,傳統(tǒng)的人工計算工資,不僅工作量巨大,而且會不可避免的出現(xiàn)各種錯誤[3][4]。為了高效的處理企業(yè)中的工資數(shù)據(jù)信息,隨時隨地管理和掌握員工信息及工資動態(tài)信息,本文采用Spring MVC、Ajax技術和jQUERY等技術,設計并開發(fā)一個基于B/S模式的工資管理系統(tǒng),使企業(yè)的管理更加簡潔、高效、方便。也使企業(yè)有了更加規(guī)整、嚴謹?shù)墓芾矸桨浮?/p>
Spring框架是當前流行的輕量級一站式企業(yè)應用程序解決方案,它為應用程序開發(fā)提供了許多基礎,使開發(fā)人員能夠更加專注于程序業(yè)務邏輯的實現(xiàn),Spring MVC是Spring框架的一部分,它能與Spring更加有機的結合[5-6]。
Spring MVC實現(xiàn)了MVC的核心概念,它為控制器和處理程序提供了大量與此模式相關的功能[7]。并且當向MVC添加反轉控制時,它使應用程序高度解耦,提供了通過簡單的配置更改,即可動態(tài)更改組件的靈活性。
通過需求分析得出,工資管理系統(tǒng)主要由工資匯總、基本信息管理、工資管理以及系統(tǒng)管理四大模塊組成。包含管理員和普通用戶兩類用戶角色。管理員可以對各個模塊進行操作,擁有不同權限的用戶可以對相應的模塊進行操作。
其中,基本信息模塊包含員工基本信息管理、部門信息管理、職稱級別管理、獎金信息管理、津貼信息管理、保險信息管理以及所得稅信息管理。工資管理模塊包含考勤數(shù)據(jù)填報及設置員工獎金信息。工資匯總模塊包含工資匯總信息以及員工獎金匯總信息。系統(tǒng)管理模塊包含用戶管理、修改密碼和角色管理。工資管理系統(tǒng)的結構圖如圖1所示。
圖1 工資管理系統(tǒng)結構圖
工資管理系統(tǒng)主要實體類的功能描述如下:
(1) User 類是工資管理系統(tǒng)中的用戶表,可以對用戶的主要信息進行記錄、修改和存貯。這個表可以操作用戶賬號、姓名、密碼、類型、Email郵箱、個人聯(lián)系方式、創(chuàng)建時間、所在單位等信息。
(2) Department類作為工資管理系統(tǒng)中的部門表,對企業(yè)的所有部門信息進行管理。這個表可以操作部門的名稱、上級單位、單位類型等信息。
(3) Role 類在工資管理系統(tǒng)中作為角色表,對用戶或員工所擁有的角色進行管理,這個表可以操作角色名稱、角色描述等數(shù)據(jù)。
工資管理系統(tǒng)的主要核心控制類的功能描述如下:
(1) UserAddAction:管理員可以通過這個類來實現(xiàn)對用戶各種信息的添加功能,該類繼承于Action,在該類中通過新建一個UserAttr的實例,將表單中獲取的參數(shù)傳到該UserAttr中,然后在UserAddAction中調(diào)用UserBean類中的addUser()方法,該方法通過執(zhí)行新增sql語句,將數(shù)據(jù)保存到數(shù)據(jù)庫中的用戶表里。
(2) UserLoginAction:該類用于實現(xiàn)用戶登錄工資管理系統(tǒng)的功能,在該類中,將表單中獲取的用戶的賬號和密碼傳給UserAttr,然后調(diào)用getLoginUserInfo()方法,在該方法中,通過sql語句判斷數(shù)據(jù)庫中是否有表單中傳過來的賬號和密碼,如果有就保存用戶信息并跳轉到首頁,否則,提示用戶登錄失敗,并重新顯示登錄頁面。
(3) UserPasswordAction:該類實現(xiàn)用戶或員工的密碼修改功能,在該類中,將表單中獲取的原密碼和兩次新密碼數(shù)據(jù)保存在UserAttr,然后調(diào)用getLoginUserInfo()方法,在該方法中,通過sql語句判斷數(shù)據(jù)庫中是否和表單中傳過來的賬號和密碼匹配的值,如果有,就將該信息密碼重新存入該賬戶并返回一個list,否則,提示用戶修改密碼失敗。
(4) DepartmentAddAction:該類用于實現(xiàn)對單位部門的添加功能,在該類中通過新建一個DepartmentAttr的實例,用該實例保存表單中傳過來的數(shù)據(jù)信息,然后調(diào)用DepartmentBean類中的addDepartment()方法,該方法通過執(zhí)行新增sql語句,將數(shù)據(jù)保存到數(shù)據(jù)庫中的用戶表里。并將操作的結果展示給用戶。
(5) RoleAddAction:該類用于實現(xiàn)對角色信息的添加功能,在該類中通過新建一個RoleAttr的實例,用該實例保存表單中傳過來的數(shù)據(jù)信息,然后調(diào)用RoleBean類中的addRole()方法,該方法通過執(zhí)行新增sql語句,將數(shù)據(jù)保存到數(shù)據(jù)庫中的用戶表里。并將操作的結果展示給用戶。
(6) ZggzbkqlrAction:該類用于實現(xiàn)填報和修改員工工資考勤信息、刪除考勤信息、導入考勤數(shù)據(jù)等功能,在該類中,form表單將jsp中的信息通過url傳遞到Action中,匹配對應的方法,在方法中執(zhí)行相應操作的sql語句,將數(shù)據(jù)保存到數(shù)據(jù)庫中的用戶表里。并將操作的結果展示給用戶。
用戶可以對員工信息進行各種操作。在添加員工信息時,需要注意前面標有紅星的,這些數(shù)據(jù)為必填項,下面描述了這個功能的詳細實現(xiàn)過程:
具有管理員工信息權限的用戶,登錄系統(tǒng)后,點擊“基本信息管理”按鈕,然后點擊“員工基本信息管理”圖標,進入員工基本信息管理頁面,在該頁面,用戶點擊“新增”按鈕,進入新增員工信息頁面,用戶填寫員工的基本信息,點擊“提交”按鈕。
“提交”按鈕會觸發(fā)id為frmUpdate的提交表單事件,在add.js中可以通過id為frmUpdate找到其對應的url為saveAction.gzgl,通過注解映射,在action找到saveAction.gzgl對應的方法,直接調(diào)用該方法,在該方法中執(zhí)行新增員工的sql語句。將這一條信息貯存在數(shù)據(jù)庫里面。添加員工信息界面如圖2所示:
用戶可以對企業(yè)的部門單位信息進行各種操作。在添加單位信息時,需要注意前面標有紅星的字段,這些數(shù)據(jù)是必須填的項,下面描述該功能的詳細實現(xiàn)過程:
1.有管理部門信息權限的用戶,可先登錄系統(tǒng),然后選擇“基本信息管理”的圖標,接著可以點擊“部門信息管理”圖標,進入部門信息管理頁面,在該頁面,用戶選擇部門,然后點擊“新增”按鈕,進入新增員工信息頁面,為該部門增加子部門,用戶填寫部門信息,點擊“提交”按鈕。
2. “提交”按鈕會觸發(fā)一個departmentAddAction.do的Action,在該Action中調(diào)用DepartmentBean類的addDepartment()方法,在該方法中,執(zhí)行新增部門數(shù)據(jù)的sql語句,將頁面中的部門信息保存在數(shù)據(jù)庫中。
3.返回到部門信息管理頁面,并提示添加成功,頁面會顯示出新添加的部門信息。
擁有職稱級別信息管理權限的用戶可以對該模塊進行操作管理。該模塊主要包括對職稱信息的新增、修改、刪除、查看職稱級別的詳情、按等級級別、等級名稱查詢出職稱等級信息等。職稱級別信息管理的主頁面如圖3所示。
圖2 員工信息添加界面
圖3 職稱級別信息管理界面
用戶可以對員工的工資信息進行各種操作。在填寫考勤信息時,需要注意分頁保存填寫的各項數(shù)據(jù)信息,考勤數(shù)據(jù)填報功能的詳細實現(xiàn)過程如下:
1. 用戶點擊菜單項“新增”按鈕。
2. “新增”按鈕會觸發(fā)onclick()事件,執(zhí)行對應js的操作,跳轉到ZggzkqlrAdd.jsp頁面。
3. 在進入ZggzkqlrAdd.jsp時,調(diào)用ZggzbkqlrDao中的getZgjcxxList()方法,獲取到員工的基本信息,放在rusult里面,并通過調(diào)用result.getString()方法,遍歷出所有的員工信息,顯示在該頁面上。
4. 在考勤信息錄入頁面,填寫考勤部分的信息,系統(tǒng)會自動算出考勤部分的扣款、補貼、實發(fā)工資等信息,通過Ajax的局部刷新功能,根據(jù)不斷的填寫及時更新相應的數(shù)據(jù)。
5. 填寫完數(shù)據(jù),點擊“提交”按鈕,觸發(fā)form表單提交事件,執(zhí)行frmUpdate對應的js,通過注解映射,找到saveAction.gzgl對應的方法,在該方法中執(zhí)行插入數(shù)據(jù)的sql語句,將考勤信息存入數(shù)據(jù)庫中。
6. 返回到考勤信息管理頁面,提示用戶操作成功,并將填報的數(shù)據(jù)顯示在頁面中并算出所有員工的合計工資信息。錄入考勤信息頁面如圖4所示。
用戶可以對員工的獎金信息進行不同的操作。在添加員工的獎金信息時,需要注意前面標有紅星的字段,這些數(shù)據(jù)是必須填的項,下面描述了這個功能的詳細實現(xiàn)過程:
1. 有管理員工獎金信息權限的用戶,可以先登錄工資管理系統(tǒng),然后可以選擇員工獎金信息管理頁面中的“新增”按鈕。
2. 這個“新增”按鈕將會觸發(fā)onclick()事件,跳轉到y(tǒng)gjjbAdd.jsp頁面。
3. 在該頁面點擊“選擇姓名”按鈕,會彈出封裝了員工基本信息的div的姓名選擇框,員工姓名選擇框頁面如圖5所示。
4. 在姓名選擇框中選擇相應的員工,將所選員工信息存入result中,該頁面采用Ajax局部刷新功能。
5. 用戶填寫應發(fā)金額和扣稅,在js中會對所填寫的金額正確性進行判斷,并算出實發(fā)金額,顯示在頁面。
圖4 錄入考勤信息管理界面
6. 點擊“提交”按鈕,該按鈕會觸發(fā)提交表單數(shù)據(jù),執(zhí)行add.js,找到saveAction.gzgl對應的方法,執(zhí)行該方法中新增數(shù)據(jù)的sql語句,將填寫的信息保存在數(shù)據(jù)庫中。
7. 返回到員工獎金信息管理頁面,提示用戶添加成功,并將添加的數(shù)據(jù)展示在該頁面。添加員工獎金信息界面如圖5所示:
圖5 添加員工獎金管理界面
用戶或員工登錄系統(tǒng),點擊左側欄中的“工資匯總”按鈕,點擊“工資匯總”圖標,跳轉到工資匯總頁面。工資匯總頁面如圖6所示。
工資管理系統(tǒng)的開發(fā)與應用,一方面減少了工資管理人員的工作量,方便企業(yè)的員工及時查詢自己的工資,了解自己的工資詳情,企業(yè)的領導也能隨時了解員工的工資及考勤情況。另一方面利用計算機代替大量的人工統(tǒng)計與計算,完成更多工資信息的處理,同時,也能更完整的保存大量的工資記錄信息。滿足當前企業(yè)公司的需要,使工資管理更加系統(tǒng)化、規(guī)范化、自動化。
圖6 工資匯總頁面