李亞麗, 張國平, 張青苗
(平頂山學院 計算機學院, 平頂山 467000)
隨著社會的不斷發展,傳統的手工統計和核算工資的方法也變得日益繁瑣、復雜[1][2]。由于企業的部門及人員不斷增多,傳統的人工計算工資,不僅工作量巨大,而且會不可避免的出現各種錯誤[3][4]。為了高效的處理企業中的工資數據信息,隨時隨地管理和掌握員工信息及工資動態信息,本文采用Spring MVC、Ajax技術和jQUERY等技術,設計并開發一個基于B/S模式的工資管理系統,使企業的管理更加簡潔、高效、方便。也使企業有了更加規整、嚴謹的管理方案。
Spring框架是當前流行的輕量級一站式企業應用程序解決方案,它為應用程序開發提供了許多基礎,使開發人員能夠更加專注于程序業務邏輯的實現,Spring MVC是Spring框架的一部分,它能與Spring更加有機的結合[5-6]。
Spring MVC實現了MVC的核心概念,它為控制器和處理程序提供了大量與此模式相關的功能[7]。并且當向MVC添加反轉控制時,它使應用程序高度解耦,提供了通過簡單的配置更改,即可動態更改組件的靈活性。
通過需求分析得出,工資管理系統主要由工資匯總、基本信息管理、工資管理以及系統管理四大模塊組成。包含管理員和普通用戶兩類用戶角色。管理員可以對各個模塊進行操作,擁有不同權限的用戶可以對相應的模塊進行操作。
其中,基本信息模塊包含員工基本信息管理、部門信息管理、職稱級別管理、獎金信息管理、津貼信息管理、保險信息管理以及所得稅信息管理。工資管理模塊包含考勤數據填報及設置員工獎金信息。工資匯總模塊包含工資匯總信息以及員工獎金匯總信息。系統管理模塊包含用戶管理、修改密碼和角色管理。工資管理系統的結構圖如圖1所示。

圖1 工資管理系統結構圖
工資管理系統主要實體類的功能描述如下:
(1) User 類是工資管理系統中的用戶表,可以對用戶的主要信息進行記錄、修改和存貯。這個表可以操作用戶賬號、姓名、密碼、類型、Email郵箱、個人聯系方式、創建時間、所在單位等信息。
(2) Department類作為工資管理系統中的部門表,對企業的所有部門信息進行管理。這個表可以操作部門的名稱、上級單位、單位類型等信息。
(3) Role 類在工資管理系統中作為角色表,對用戶或員工所擁有的角色進行管理,這個表可以操作角色名稱、角色描述等數據。
工資管理系統的主要核心控制類的功能描述如下:
(1) UserAddAction:管理員可以通過這個類來實現對用戶各種信息的添加功能,該類繼承于Action,在該類中通過新建一個UserAttr的實例,將表單中獲取的參數傳到該UserAttr中,然后在UserAddAction中調用UserBean類中的addUser()方法,該方法通過執行新增sql語句,將數據保存到數據庫中的用戶表里。
(2) UserLoginAction:該類用于實現用戶登錄工資管理系統的功能,在該類中,將表單中獲取的用戶的賬號和密碼傳給UserAttr,然后調用getLoginUserInfo()方法,在該方法中,通過sql語句判斷數據庫中是否有表單中傳過來的賬號和密碼,如果有就保存用戶信息并跳轉到首頁,否則,提示用戶登錄失敗,并重新顯示登錄頁面。
(3) UserPasswordAction:該類實現用戶或員工的密碼修改功能,在該類中,將表單中獲取的原密碼和兩次新密碼數據保存在UserAttr,然后調用getLoginUserInfo()方法,在該方法中,通過sql語句判斷數據庫中是否和表單中傳過來的賬號和密碼匹配的值,如果有,就將該信息密碼重新存入該賬戶并返回一個list,否則,提示用戶修改密碼失敗。
(4) DepartmentAddAction:該類用于實現對單位部門的添加功能,在該類中通過新建一個DepartmentAttr的實例,用該實例保存表單中傳過來的數據信息,然后調用DepartmentBean類中的addDepartment()方法,該方法通過執行新增sql語句,將數據保存到數據庫中的用戶表里。并將操作的結果展示給用戶。
(5) RoleAddAction:該類用于實現對角色信息的添加功能,在該類中通過新建一個RoleAttr的實例,用該實例保存表單中傳過來的數據信息,然后調用RoleBean類中的addRole()方法,該方法通過執行新增sql語句,將數據保存到數據庫中的用戶表里。并將操作的結果展示給用戶。
(6) ZggzbkqlrAction:該類用于實現填報和修改員工工資考勤信息、刪除考勤信息、導入考勤數據等功能,在該類中,form表單將jsp中的信息通過url傳遞到Action中,匹配對應的方法,在方法中執行相應操作的sql語句,將數據保存到數據庫中的用戶表里。并將操作的結果展示給用戶。
用戶可以對員工信息進行各種操作。在添加員工信息時,需要注意前面標有紅星的,這些數據為必填項,下面描述了這個功能的詳細實現過程:
具有管理員工信息權限的用戶,登錄系統后,點擊“基本信息管理”按鈕,然后點擊“員工基本信息管理”圖標,進入員工基本信息管理頁面,在該頁面,用戶點擊“新增”按鈕,進入新增員工信息頁面,用戶填寫員工的基本信息,點擊“提交”按鈕。
“提交”按鈕會觸發id為frmUpdate的提交表單事件,在add.js中可以通過id為frmUpdate找到其對應的url為saveAction.gzgl,通過注解映射,在action找到saveAction.gzgl對應的方法,直接調用該方法,在該方法中執行新增員工的sql語句。將這一條信息貯存在數據庫里面。添加員工信息界面如圖2所示:
用戶可以對企業的部門單位信息進行各種操作。在添加單位信息時,需要注意前面標有紅星的字段,這些數據是必須填的項,下面描述該功能的詳細實現過程:
1.有管理部門信息權限的用戶,可先登錄系統,然后選擇“基本信息管理”的圖標,接著可以點擊“部門信息管理”圖標,進入部門信息管理頁面,在該頁面,用戶選擇部門,然后點擊“新增”按鈕,進入新增員工信息頁面,為該部門增加子部門,用戶填寫部門信息,點擊“提交”按鈕。
2. “提交”按鈕會觸發一個departmentAddAction.do的Action,在該Action中調用DepartmentBean類的addDepartment()方法,在該方法中,執行新增部門數據的sql語句,將頁面中的部門信息保存在數據庫中。
3.返回到部門信息管理頁面,并提示添加成功,頁面會顯示出新添加的部門信息。
擁有職稱級別信息管理權限的用戶可以對該模塊進行操作管理。該模塊主要包括對職稱信息的新增、修改、刪除、查看職稱級別的詳情、按等級級別、等級名稱查詢出職稱等級信息等。職稱級別信息管理的主頁面如圖3所示。

圖2 員工信息添加界面

圖3 職稱級別信息管理界面
用戶可以對員工的工資信息進行各種操作。在填寫考勤信息時,需要注意分頁保存填寫的各項數據信息,考勤數據填報功能的詳細實現過程如下:
1. 用戶點擊菜單項“新增”按鈕。
2. “新增”按鈕會觸發onclick()事件,執行對應js的操作,跳轉到ZggzkqlrAdd.jsp頁面。
3. 在進入ZggzkqlrAdd.jsp時,調用ZggzbkqlrDao中的getZgjcxxList()方法,獲取到員工的基本信息,放在rusult里面,并通過調用result.getString()方法,遍歷出所有的員工信息,顯示在該頁面上。
4. 在考勤信息錄入頁面,填寫考勤部分的信息,系統會自動算出考勤部分的扣款、補貼、實發工資等信息,通過Ajax的局部刷新功能,根據不斷的填寫及時更新相應的數據。
5. 填寫完數據,點擊“提交”按鈕,觸發form表單提交事件,執行frmUpdate對應的js,通過注解映射,找到saveAction.gzgl對應的方法,在該方法中執行插入數據的sql語句,將考勤信息存入數據庫中。
6. 返回到考勤信息管理頁面,提示用戶操作成功,并將填報的數據顯示在頁面中并算出所有員工的合計工資信息。錄入考勤信息頁面如圖4所示。
用戶可以對員工的獎金信息進行不同的操作。在添加員工的獎金信息時,需要注意前面標有紅星的字段,這些數據是必須填的項,下面描述了這個功能的詳細實現過程:
1. 有管理員工獎金信息權限的用戶,可以先登錄工資管理系統,然后可以選擇員工獎金信息管理頁面中的“新增”按鈕。
2. 這個“新增”按鈕將會觸發onclick()事件,跳轉到ygjjbAdd.jsp頁面。
3. 在該頁面點擊“選擇姓名”按鈕,會彈出封裝了員工基本信息的div的姓名選擇框,員工姓名選擇框頁面如圖5所示。
4. 在姓名選擇框中選擇相應的員工,將所選員工信息存入result中,該頁面采用Ajax局部刷新功能。
5. 用戶填寫應發金額和扣稅,在js中會對所填寫的金額正確性進行判斷,并算出實發金額,顯示在頁面。

圖4 錄入考勤信息管理界面
6. 點擊“提交”按鈕,該按鈕會觸發提交表單數據,執行add.js,找到saveAction.gzgl對應的方法,執行該方法中新增數據的sql語句,將填寫的信息保存在數據庫中。
7. 返回到員工獎金信息管理頁面,提示用戶添加成功,并將添加的數據展示在該頁面。添加員工獎金信息界面如圖5所示:

圖5 添加員工獎金管理界面
用戶或員工登錄系統,點擊左側欄中的“工資匯總”按鈕,點擊“工資匯總”圖標,跳轉到工資匯總頁面。工資匯總頁面如圖6所示。
工資管理系統的開發與應用,一方面減少了工資管理人員的工作量,方便企業的員工及時查詢自己的工資,了解自己的工資詳情,企業的領導也能隨時了解員工的工資及考勤情況。另一方面利用計算機代替大量的人工統計與計算,完成更多工資信息的處理,同時,也能更完整的保存大量的工資記錄信息。滿足當前企業公司的需要,使工資管理更加系統化、規范化、自動化。

圖6 工資匯總頁面