人力資源管理系統畢業(yè)設計_第1頁
人力資源管理系統畢業(yè)設計_第2頁
人力資源管理系統畢業(yè)設計_第3頁
人力資源管理系統畢業(yè)設計_第4頁
人力資源管理系統畢業(yè)設計_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于 java 的公司人力資源管理系統 誠信承諾書 本人鄭重承諾: 本人承諾呈交的畢業(yè)設計 基于 java 的公司人力資源管理系統 是在指導教師的指導下,獨立開展研究取得的成果,文中引用他人的觀點和材料,均在文后按順序列出其參考文獻,設計使用的數據真實可靠。 本人簽名: 日期: 年 月 日 基于 java 的公司人力資源管理系統 摘 要 目前,社會上的各種各樣的中小型企業(yè)中,所使用的人力資源管理系統大多都是基于 B/S 架構,所以,我選用當前比較熱門的 Struts2+Hibernate 架構來進行本系統的搭建。同時,為了界面的美觀,我使用了 EXTJS 的 javascript 技術來設計用戶使用界面,為客戶提供一個流暢和美觀的 web 界面。數據庫采用了 oracle。在數據傳輸方面,使用了 JSON 和 AJAX 的技術實現信息的異步操作。 根據軟件開發(fā)的流程,對本系統的開發(fā)進行了需求分析,確定了系統將要實現的功能模塊: 員工 信息 管理、招聘 信息 管理、培訓 信息 管理、獎懲 信息 管理、薪資 信息 管理、考勤 信息 管理、 部門信息管理、管理員信息管理、職位信息 管理,這九個模塊。然后根據需要,在前臺實現了各個模塊的增、刪、改、查的操作。 本系統運用了 AJAX 技術,在登陸之后,實現了無頁面跳轉的數據異步加載,使得系統運行時更加流暢。 關鍵詞: Struts2; hibernate; ExtJs; B/S 架構; Json;面向對象;人力資源管理系統; Company human resources management system based on Java Abstract At present, most of the human resource management systems used bysmall and medium enterprises are based on B/S architecture. So,current popular struts 2 + Hibernate framework was selected to build for my system. At the same time, in order to make the interface beautiful, I use the EXTJS, javascript techniques to design my user interface to use. For database, oracle was chosen. In the aspect of data transmission, I use the JSON and AJAX technology to realize the asynchronous operation. According to the software development process, development process of this system included demand analysis, determines the function modules of the system which consists of employee information management, recruitment management, training, information management, rewards and punishment information management, salary information management, attendance information management, department of information management, administrator information management, information management, position the nine modules. At last, function modules for add, delete, change, check operation are realized at the front stage. This system uses the AJAX technology, achieving no page jump asynchronous loading of data after login to make the system run more smoothly. Keywords: Struts2; Hibernate; B / S structure; ExtJs; Json; object-oriented; Human Resources 目 錄 1 前言 . 1 1.1 概述 . 1 1.2 問題的現 狀及其意義 . 1 1.3 本設計的目標 . 2 2 開發(fā)環(huán)境及相關技術介紹 . 3 2.1 系統開發(fā)環(huán)境 . 3 2.2 技術介紹 . 3 2.2.1 系統設計的主要技術 . 3 2.2.2 Struts2 的介紹 . 3 2.2.3 Hibernate 的介紹 . 4 2.2.4 ExtJS 的介紹 . 4 2.2.5 Json 的介紹 . 4 2.2.6 面向對象的介紹 . 5 3 系統需求分析 . 6 3.1 可行性分析 . 6 3.1.1 技術可行性 . 6 3.1.2 經濟可行性 . 6 3.1.3 環(huán)境可行性 . 6 3.2 功能需求分析 . 6 4 總體設計 . 7 4.1 系統的總體功能框架設計 . 7 4.2 系統各模塊用例圖分析 . 8 4.3 業(yè)務流程圖 . 13 4.4 數據庫設計分析 . 14 4.4.1 數據庫總體設計 . 14 4.4.2 數據庫數據字典 . 15 5 系統詳細設計 . 19 5.1 系統運行環(huán)境和部署架構 . 19 5.2 系統體系結構設計 . 20 5.3 系統業(yè)務流程 . 20 5.4 系統各模塊類圖 . 21 5.5 系統代碼實現 . 25 5.5.1 用戶登錄模塊實現 . 25 5.5.2 管理員管理模塊實現 . 31 5.4.3 員工信息管理展示 . 37 5.4.4 部門信息管理展示 . 37 5.4.5 其他模塊實現 . 38 6 系統測試 . 39 6.1 功能測試 . 39 6.2 界面測試 . 40 7 設計總結 . 41 參考文獻 . 42 謝 辭 . 43 附 錄 . 45 1 1 前言 1.1 概述 人力資源管理信息系統( Human Resource Information System, HRIS)是一個用來為制定人力資源決策提供信息的集成系統,是為了提高企業(yè)人力資源管理水平而開發(fā)的。主要目標是通過對員工及人力資源活動信息(招 聘、工資)等的編制來提高效率,及時與用戶溝通,用最少的人力、物力滿足用戶需求。 人力資源管理信息系統在企業(yè)的有效實施,將會促進企業(yè)人力資源管理向規(guī)范化、標準化、決策科學化發(fā)展;促使企業(yè)人力資源管理人員從日常大量的行政事務性工作中解脫出來,逐步專注于對企業(yè)的人力資源管理活動進行計劃,組織,監(jiān)督和咨詢職能;調動企業(yè)各級管理者和每一位普通員工都積極參與到人力資源管理活動中來。并且通過大力推進人力資源管理信息化建設,優(yōu)化了企業(yè)人力資源管理流程,建立起開放式的人力資源管理模式,從而提升企業(yè)人力資源管理水平和管理效率, 充分調動一切有利因素,最終使人成為企業(yè)經營發(fā)展中真正的第一資源。 人力資源管理信息系統是人力資源管理的電子信息化,是企業(yè)基于高速度、大容量的硬件和先進的 IT 軟件的人力資源管理模式,即人力資源管理信息化或自動化。 1.2 問題的現狀及其意義 隨著時代的發(fā)展,社會的進步, IT 領域的日新月異,越來越多的企業(yè)建立、發(fā)展、壯大、成熟。截止到 2011 年,我國工商管理局注冊的企業(yè)超過了 3500 萬,其中中小型企業(yè)占了 99%。這些都是人力資源管理系統的潛在客戶。 隨著公司的成長和壯大,公司里的員工也逐漸增加,每年的人力資源管理 的成本也不斷增加,這不僅耗費公司的資金,同時也耗費了大量的人力。所以,公司需要一個系統,一個能夠管理公司人力資源的系統。 近年來,一些較大的企業(yè)經常自行開發(fā) HR 管理系統,這樣可以節(jié)省他們許多不必要的浪費。但是實踐證明,這個方式實現起來很難。一方面,企業(yè)內部的人員往往缺乏項目經驗,結果做出的東西絕大部分不符合客戶的需求;另一方面,這種形式的軟件開發(fā)不參與市場競爭,僅僅是供給內部使用,極大地可能導致開發(fā)人員的敷衍了事,使得系統無法起到它的作用。 此外,就是我國正處于傳統管理方式向人力資源管理過渡的時期,企業(yè)中的 管理方法和思想都在發(fā)生著巨大的變化,這是對 HR 管理系統的一個巨大的挑戰(zhàn)。 本系統的主要針對的對象是一些中小型企業(yè),對他們的人力資源,按照企業(yè)的需求,對其績效考核管理、薪酬管理等進行了完善的開發(fā)。利用現在較新的技術,實現人力資源管理系統的精細化、自動化、人性化,為企業(yè)的發(fā)展做出理性的決策,提高人員的管理利用率,為公司的發(fā)展和人才儲備提供一個完善的、良好的平臺。 2 1.3 本設計的目標 利用現有的技術,了解人力資源管理系統開發(fā)的流程和所要實現的主要功能,同時對一些企業(yè)的內部的管理進行了解,進而對系統進行特定功能的擴 展。 另一方面,就是要打破傳統人力資源管理系統的一貫的風格,打造出一個全新的,更具有親和力的系統,使得企業(yè)的員工愿意使用本系統。 3 2 開發(fā)環(huán)境及相關技術介紹 2.1 系統開發(fā)環(huán)境 使用 B/S 架構,運行環(huán)境是 JDK1.7.0_09 服務器操作系統: Windows 7 數據庫: Oracle 10G Web 服務器: apache-tomcat-6.0.32 開發(fā)工具: Myeclipse10, Ext Desiger, PL/SQL Developer, Power Desiger 2.2 技術介 紹 2.2.1 系統設計的主要技術 本人力資源管理系統是在 Extjs+Struts2+Hibernate 框架的基礎上開發(fā)的。是一個典型的 J2EE 系統。所以系統也分為 表現層、業(yè)務邏輯層和數據服務層。三層體系將業(yè)務規(guī)則、數據訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數據庫交互,而是通過組件與中間層建立連接,再由中間層與數據庫交互。表現層是基于 javascript的 ExtJS 技術,而數據的交互格式則使用 JSON 技術、這些在下面有詳細的介紹。 主要使用技術: Struts2、 Hibernate、 ExtJs、 JavaScript、 HTML、 Json 2.2.2 Struts2 的介紹 STRUTS 是 Apache 組織的一個開放源碼的項目,它是一個可重用的 MVC 設計。STRUTS 應用有 3 個主要部件: Servlet 及負責具體業(yè)務處理的 Action 類( Controller),JSP 頁面( view)和 STRUTS 應用的業(yè)務邏輯封裝( Model)。 STRUTS 實質上就是在 JSP 基礎上實現的一個 MVC 框架 , Struts2 框架的大致處理流程如下: 1) 瀏覽器發(fā)送請求 2) 核心控制器 FilterDispatcher 根據請求決定調用合適的 Action 3) Web Work 的攔截器鏈自動對請求應用通用功能 4) 回調 Action 的 execute 方法,該方法先獲取用戶請求參數,然后執(zhí)行某種數據庫操作,既可以是將數據保存到數據庫,也可以從數據庫中檢索信息。實際上,因為 Action 只是一個控制器,它會調用業(yè)務邏輯組件來處理用戶的請求 5) Action 的 execute 方法處理結果信息將被輸出到瀏覽器中,可以是 HTML 頁面、圖像,也可以是 PDF 文檔或者其他文檔。此時支持的視圖技術非常多,既支持JSP,也支持 Velocity、 FreeMarker 等模板技術 4 2.2.3 Hibernate 的介紹 Hibernate 是一個面向 Java 環(huán)境的對象 /關系映射( ORM)工具,是 J2EE 應用的持久層解決方案, Hibernate 不僅管理 Java 類到數據庫表的映射,還提供數據查詢和獲取數據的方法,可以大幅度縮短使用 JDBC 處理持久化的時間。 Hibernate 與其他 ORM 框架對比具有如下優(yōu)點: 1) 開源和免費的 License,方便需要時研究源代碼,改寫源代碼,進行功能定制 2) 輕量級封裝,避免引入過多復雜的問題,調試容易,減輕程序員負擔 3) 具有可擴展性, API 開發(fā)。功能不夠用的時候,自己編碼進行擴展 4) 開發(fā)者活躍,產品有穩(wěn)定的發(fā)展保障 2.2.4 ExtJS 的介紹 ExtJS 是一種主要用于創(chuàng)建前端用戶界面,是一個基本與 后臺 技術無關的前端 ajax框架 。 ExtJS 可以用來開發(fā) RIA 也即富 客戶端 的 AJAX 應用,是一個用 javascript 寫的,主要用于創(chuàng)建前端用戶界面,是一個與 后臺 技術無關的前端 ajax 框架 。因此,可以把 ExtJS用在 .Net、 Java、 Php 等各種開發(fā)語言開發(fā)的應用中。 ExtJs 最開始基于 YUI 技術,由開發(fā)人員 JackSlocum 開發(fā),通過參考 JavaSwing 等機制來組織可視化組件,無論從 UI 界面上 CSS 樣式的應用,到數據解析上的 異常處理 ,都可算是一款不可多得的 JavaScript客戶端 技術的精品。 Ext 的 UI 組件模型和開發(fā)理念脫胎、成型于 Yahoo 組件庫 YUI 和 Java 平臺 上 Swing兩者,并為開發(fā)者屏蔽了大量跨 瀏覽器 方面的處理。相對來說, EXT 要比開發(fā)者直接針對 DOM、 W3C 對象模型開發(fā) UI 組件輕松。 2.2.5 Json 的介紹 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于 JavaScript( Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON 采用完全獨立于語言的文本格式,但是也使用了類似于 C 語言家族的習慣(包括 C, C+, C#, Java, JavaScript, Perl, Python 等)。這些特性使 JSON 成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。 json 簡單 說就是 javascript 中的對象和數組,所以這兩種結構就是對象和數組 2 種結構,通過這兩種結構可以表示各種復雜的結構 1、對象:對象在 js 中表示為 “”擴起來的內容,數據結構為 key: value,key: value,.的鍵值對的結構,在面向對象的語言中, key 為對象的屬性, value 為對應的屬性值,所以很容易理解,取值方法為 對象 .key 獲取屬性值,這個屬性值的類型可以是 數字、字 5 符串、數組、對象幾種。 2 、數組:數組在 js 中是中括號 “” 擴 起 來 的 內 容 , 數 據 結 構 為 java,javascript,vb,.,取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。 經過對象、數組 2 種結構就可以組合成復雜的數據結構了。 2.2.6 面向對象的介紹 隨著計算機硬件設備功能的進一步提高,使得面向對象的編程成為可能。面向對象的編程更加符合人類的思維方式,編寫的程序更加健壯和強大,更重要的是,面向對象編程鼓勵創(chuàng)造性的程序設計。面向對象編程是一種先進的編程思想,更加容易解決復雜的問題。面向對象編程的主要特征有: ( 1)封裝性:面向對象編程核心思想之一就是將 數據和對數據的操作封裝在一起。通過抽象,即從具體的實例中抽取共同的性質形成一般的概念,比如類的概念。 ( 2)繼承:繼承體現了一種編程模式。子類可以繼承父類的屬性和功能,即子類繼承了父類所具有的數據和數據上的操作,同時又可以增添子類獨有的數據和數據上的操作。 ( 3)多態(tài):多態(tài)性是指允許不同的類的對象對同一消息做出相應。多態(tài)性包括參數化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享等優(yōu)勢,很好的解決了應用程序中函數同名問題。 6 3 系統需求分析 3.1 可行性分析 3.1.1 技術可行性 應 為已經基本上掌握了開發(fā)時所要使用的技術,而且在項目之外也做過一些關于這方面的 DEMO,所以在規(guī)定的時間和某些限制的條件下,功能基本可以實現,開發(fā)可以完成。 3.1.2 經濟可行性 由于在系統的開發(fā)中,用到的很多技術,例如 Struts2、 Hibernate、 EXTJS3.0、 JSON等,都是開源的,所以,在開發(fā)中,基本沒有什么成本的產生。這個系統經過未來的改進后,我相信它所帶來的效益遠遠會超過它的開發(fā)成本。在經濟這方面,絕對是一本萬利。 3.1.3 環(huán)境可行性 由于在開發(fā)中,使用了一些 javascript 的 dom 的操作,所以,本系統在 IE8 以上的瀏覽器版本下可以正常運行,在其他瀏覽器,如 firefox、 chrome 等,可能出現一些兼容問題。 3.2 功能需求分析 功能需求定義了開發(fā)人員 在系統開發(fā)時 必須實現的軟件功能, 這樣的話用戶就可以通過系統來完成他所要做的事。根據市面上人力資源管理系統的基本業(yè)務需求,并經過自己的分析,得到了系統的功能模塊 通過分析,本系統應該實現以下功能: ( 1) 登錄功能: 用于防止非法用戶的非法登錄,提高了系統的保密性; ( 2) 員工信息管理: 管理員和高級管理員可對公司員工的基本信息進行增 加、刪除、修改和查詢的操作 ( 3) 招聘信息管理: 管理員和高級管理員 可以發(fā)布、 查詢、修改、 刪除招聘信息。 ( 4) 培訓信息管理: 管理員和高級管理員 根據具體的情況設置人員培訓,可修改、刪除、添加培訓信息,為員工的升遷提供科學的依據。 ( 5) 獎懲信息管理: 管理員和高級管理員可以 對獎懲信息的增加、刪除 、查詢、修改 操作,為薪資、升遷等提供依據。 ( 6) 薪資信息管理: 管理員和高級管理員可以 對員工薪資 信息進行 的增加 和查詢等。 ( 7) 考勤信息管理:管理員和高級管理員查看考勤信息,實現公司管理員對當日 7 為參加考勤人員的 考勤處理。 ( 8) 高級操作 模塊: 高級管理員系統的管理員、公司部門、公司職位 進行管理(增加、刪除 、查看、修改 )。 4 總體設計 4.1 系統的總體功能框架設計 根據系統的功能需求分析后,設計出的系統的總體架構圖,如圖 4.1 所示。 8 人力資源管理系統員工管理招聘管理薪資管理高級管理培訓管理管理員管理部門管理職位管理考勤管理獎罰管理 圖 4.1 系統總體架構圖 4.2 系統各模塊用例圖分析 ( 1)系統的總體用例圖 高級管理員可以使用系統中的所有功能,而管理員除了管理員管理、部門管理和職位管理不能使用外,其他和高級管理員一樣。高級管理員在管理員管理中,可以修改管理員的權 限,如圖 4.2 所示。 9 高級管理員 : 1管理員管理 : 1員工管理 : 1部門管理 : 1 職位管理 : 1管理員 : 1招聘管理 : 1培訓管理 : 1考勤管理 : 1薪資管理 : 1獎罰管理 : 1人力資源管理系統 圖 4.2 系統用例圖 ( 2)員工信息管理的用例圖 用例名稱:員工信息管理 簡要描述: 管理員和高級管理員可對公司員工的基本信息進行增加、刪除、修改和查詢的操作 參與者: 高級管理員、管理員 。 用例圖如圖 4.3 所示: 管理員 : 2高級管理員 : 5員工管理 : 2增加員工刪除員工查詢員工修改員工 圖 4.3 員工信息管理用例圖 ( 3)招聘信息管理的用例圖 用例名稱: 招聘信息管理。 簡要描述: 管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。 10 參與者: 管理員、高級管理員 。 用例圖如圖 4.4 所示: 管理員 : 3高級管理員 : 6招聘管理 : 2增加招聘信息修改招聘信息刪除招聘信息查詢招聘信息 圖 4.4 招聘信息管理用例圖 ( 4)培訓信息管理 的用例圖 用例名稱: 培訓信息管理 簡要描述: 高級管理員和 管理員可以對 培訓進行添加、修改、刪除等操作。 參與者: 管理員、高級管理員 。 用例圖如圖 4.5 所示: 管理員 : 4高級管理員 : 7培訓管理 : 2增加培訓信息修改培訓信息刪除培訓信息查詢培訓信息 圖 4.5 培訓信息管理用例圖 ( 5)獎罰管理的用例圖 11 用例名稱: 獎罰 管理 簡要描述: 高級管理員和 管理員可以對 員工的獎罰信息進行添加、修改、刪除等操作。 參與者: 管理員、高級管理員 。 用例圖如圖 4.6 所示: 管理員 : 5高級管理員 : 8獎罰管理 : 2增加獎罰信息修改獎罰信息刪除獎罰信息查詢獎罰信息 圖 4.6 獎罰管理用例圖 ( 6)薪資信息管理的用例圖 用例名稱: 薪資信息管理 簡要描述:系統管理員 可以對員工薪資進行核算和發(fā)放,也可以 查看所有員工的工資發(fā)放情況。 參與者: 管理員、高級管理員 。 用例圖如圖 4.7 所示: 管理員 : 6高級管理員 : 9增加薪資信息薪資管理 : 2修改薪資信息刪除薪資信息查詢薪資信息 圖 4.7 薪資信息管理用例圖 ( 7)考勤信息管理的用例圖 用例名稱: 考勤信息管理 12 簡要描述: 管理員、高級管理員查看、刪除考勤信息,考勤記錄的添加油打卡機的當日信息來自動錄入。 參與者: 管理員、高級管理員 。 用例圖如圖 4.8 所示: 管理員 : 6高級管理員 : 9薪資管理 : 2刪除薪資信息查詢薪資信息 圖 4.8 考勤信息管理用例圖 ( 8)管理員管理的用例圖 用例名稱: 管理員 管理 簡要描述: 高級管理員對管理員的信息進行增加、刪除、修改和查詢。 參與者: 高級管理員 。 用例圖如圖 4.9 所示: 高級管理員 : 2管理員管理 : 2增加管理員刪除管理員修改管理員查詢管理員 圖 4.9 管理員管理用例圖 ( 9)部門管理的用例圖 用例名稱: 部門 管理 簡要描述: 高級管理員對部門的信息進行增加、刪除、修改和查詢。 13 參與者: 高級管理員 。 用例圖如圖 4.10 所示: 高級管理員 : 3增加部門修改部門刪除部門查詢部門部門管理 : 2 圖 4.10 部門管理用例圖 ( 10)職位管理的用例圖 用例名稱: 職位 管理 簡要描述: 高級管理員對職位的信息進行增加、刪除、修改和查詢。 參與者: 高級管理員 。 用例圖如圖 4.11 所示: 高級管理員 : 4職位管理 : 2增加職位修改職位刪除職位查詢職位 圖 4.11 職位管理用例圖 4.3 業(yè)務流程圖 根據人力資源管理系統的需求分析和各各用例的分析,繪制出該系 統的業(yè)務流程圖,見圖 4.12。 14 圖 4.12 人力資源管理系統業(yè)務流程圖 4.4 數據庫設計分析 4.4.1 數據庫總體設計 本系統使用的是 oracle 10G,主要設計的表共有 9 個,分別是:管理員信息表,部門信息表,職位信息表,員工信息表,培訓信息表,獎罰信息表,薪資信息表,考勤信息表,招聘信息表。系統的數據庫關系結構圖如下圖 4.13 所示。 15 n - - - - - - - 1n - - - - - - - 1n - - - - - - 1n - - - - - - 1n - - - - - - 1FK_HR_EMPLO_REFERENCE_HR_DEPTFK_HR_EMPLO_REFERENCE_HR_DUTYFK_HR_DUTY_REFERENCE_HR_DEPTFK_HR_SALAR_REFERENCE_HR_EMPLOFK_HR_REWAR_REFERENCE_HR_EMPLOFK_HR_ATTEN_REFERENCE_HR_EMPLOh r _ u s e r su s e r I du s e r N a m eu s e r P a s s w o r du s e r T yp eI N TV A R C H A R ( 2 0 )V A R C H A R ( 5 0 )I N Th r _ e m p l o ye ee m p l o ye e I de m p l o ye e N a m ee m p l o ye e S e xe m p l o ye e A g ee m p l o ye e N a t i vee m p l o ye e B i r t h d a ye m p l o ye e D e p t I de m p l o ye e D u t yI de m p l o ye e W p h o n ee m p l o ye e F p h o n ee m p l o ye e E m a i le m p l o ye e H e a l t he m p l o ye e P r o f e s s i o ne m p l o ye e E d u ca t i o ne m p l o ye e M a r r ye m p l o ye e I d e n t i t yi de m p l o ye e A d d r e s se m p l o ye e I co ne m p l o ye e E n t e r d a t ee m p l o ye e M o d i f yd a t e.I N TV A R C H A R ( 2 0 )V A R C H A R ( 1 0 )I N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 5 )V A R C H A R ( 1 8 )V A R C H A R ( 5 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )h r _ d e p td e p t I dd e p t N a m eI N TV A R C H A R ( 2 0 )h r _ d u t yd u t yI dd u t yD e p t i dd u t yN a m e.I N TI N TV A R C H A R ( 2 0 )h r _ s a l a r ys a l a r yI ds a l a r yE m p l o ye e i ds a l a r yM o n t hs a l a r yB a s i cs a l a r yB o n u ss a l a r yF o r f e i ts a l a r yR e l e a s e d a t e.I N TI N TV A R C H A R ( 2 0 )I N TI N TI N TV A R C H A R ( 2 0 )h r _ r e w a r d p u n i s hr p I dr p E m p l o ye e I dr p N a m er p R e a s o nr p D e s crr p D a t er p R e l e a s e m a n.I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 5 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 1 0 )V A R C H A R ( 1 0 )h r _ r e cr u i t m e n tr e cr I dr e cr N a m er e cr C o n t e n tr e cr D a t e.I N TV A R C H A R ( 5 0 )V A R C H A R ( 5 0 0 )V A R C H A R ( 2 0 )h r _ a t t e n d a n cea t t e n d I da t t e n d E m p l o ye e I da t t e n d D a t ea t t e n d I s w o r k.I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 1 0 )h r _ t r a i nt r a i n I dt r a i n N a m et r a i n G o a lt r a i n S t u d e n tt r a i n S t a r t d a t et r a i n E n d d a t et r a i n S t u d e n t n u mt r a i n T e a ch e rt r a i n G r a d et r a i n R e l e a s e d a t e.I N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )I N TV A R C H A R ( 1 0 )V A R C H A R ( 1 0 )V A R C H A R ( 2 0 ) 圖 4.13 人力資源管理數據庫關系結構圖 4.4.2 數據庫數據字典 ( 1)管理員信息表( hr_users) 管理員信息表用于存放管理員的信息,其結構見表 4.1。 表 4.1 管理員信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 userId INTEGER 主鍵 管理員 ID 2 userName VARCHAR 20 非空 管理員名稱 3 userPassword VARCHAR 50 非空 管路員密碼 4 userType INTEGER 非空 管理員類型 備注: 1、 userType: 1 為高級管理員 , 2 為普通 管理員 ( 2)部門信息表( hr_dept) 部門信息表用于存放公司部門的信息,其結構見表 4.2。 表 4.2 部門信息表 16 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 deptId INTEGER 主鍵 部門的 ID 號 2 deptName VARCHAR 20 非空 部門的名稱 ( 3)職位信息表( hr_duty) 職位信息表用于存放公司職位的信息,其結構見表 4.3。 表 4.3 職位信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 dutyId INTEGER 主鍵 職位的 ID 號 2 dutyDeptId INTEGER 外鍵 職位所在部門的 id 3 dutyName VARCHAR 20 非空 職位名稱 ( 4)員工信息表( hr_employee) 員工信息表用于存放公司員工的信息,其結構見表 4.4。 表 4.4 員工信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 employeeID INTEGER 主鍵 員工 ID 2 employeeName VARCHAR2 20 非空 員工姓名 3 employeeSex VARCHAR2 10 非空 員工性別 4 employeeAge INTEGER 非空 員工年齡 5 employeeNative VARCHAR2 20 非空 員工籍貫 6 employeeBirthday VARCHAR2 20 非空 員工出生日期 7 employeeDeptID INTEGER 外鍵 員工所在部門ID 8 employeeDutyID INTEGER 外鍵 員工職位 ID 9 employeeWphone VARCHAR2 20 員工辦公室電話 10 employeeFphone VARCHAR2 20 非空 員工手機號碼 11 employeeEmail VARCHAR2 20 非空 員工郵箱 17 12 employeeHealth VARCHAR2 20 非空 員工健康 13 employeeProfession VARCHAR2 20 非空 員工專業(yè) 14 employeeEducation VARCHAR2 20 非空 員工教育程度 15 employeeMarry VARCHAR2 5 非空 員工婚姻情況 16 employeeIdentityID VARCHAR2 18 非空 員工身份證號 17 employeeAddress VARCHAR2 50 非空 員工住址 18 employeeIcon VARCHAR2 200 員工圖片 19 employeeEnterDate VARCHAR2 20 非空 員工入職時間 20 employeeModifyDate VARCHAR2 20 非空 員工信息修改時間 備注: 1、 employeeSex: 0 為女性 , 1 為男性 2、 employeeIcon: 保留 ( 5)招聘信息表( hr_recruiment) 招聘信息表用于存放公司招聘的信息,其結構見表 4.5。 表 4.5 招聘信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 recrId INTEGER 主鍵 招聘信息 ID 2 recrName VARCHAR 50 非空 招聘信息名稱 3 recrContent VARCHAR 500 非空 招聘信息內容 4 recrDate VARCHAR 20 非空 招聘信息發(fā)放日期 ( 6)培訓信息表( hr_train) 培訓信息表用于存放公司培訓的信息,其結構見表 4.6。 表 4.6 培訓信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 trainID INTEGER 主鍵 培訓信息 ID 2 trainName VARCHAR 20 非空 培訓信息名稱 3 trainGoal VARCHAR 20 非空 培訓目的 18 4 trainStudent VARCHAR 200 非空 培訓參加人名單 5 trainStartDate VARCHAR 20 非空 培訓開始時間 6 trainEndDate VARCHAR 20 非空 培訓結束時間 7 trainStudentNum INTEGER 非空 參訓最大人數 8 trainTeacher VARCHAR 10 非空 培訓教室 9 trainGrade VARCHAR 10 非空 培訓等級 10 trainEleaseDate VARCHAR 20 非空 信息放出時間 備注: 1、 trainGrade: 0 為初級 , 1 為中級, 2 為高級 ( 7)薪資信息表( hr_salary) 薪資信息表用于存放公司薪資的信息,其結構見表 4.7。 表 4.7 薪資信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 salaryID INTEGER 主鍵 薪資 ID 2 salaryEployeeID INTEGER 外鍵 薪資對應員工 id 3 salaryMonth VARCHAR2 20 非空 發(fā)放薪資月份 4 salaryBasic INTEGER 非空 基礎工資 5 salaryBouns INTEGER 非空 獎金 6 salaryForfeit INTEGER 非空 罰款金額 7 salaryReleaseDate VARCHAR2 20 非空 信息發(fā)放時間 備注: 1、 員工的實拿工資為: salaryBasic+ salaryBouns- salaryForfeit ( 8)獎罰信息表( hr_rewardpunish) 獎罰信息表用于存放公司員工的獎罰的信息,其結構見表 4.8。 19 表 4.8 獎罰信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 rpID INTEGER 主鍵 獎罰信息 ID 2 rpEmployeeID INTEGER 外鍵 獎罰員工 ID 3 rpName VARCHAR2 20 非空 獎罰類型名稱 4 rpReason VARCHAR2 50 非空 獎罰原因 5 rpDescr VARCHAR2 200 非空 獎罰描述 6 rpDate VARCHAR2 10 非空 獎罰日期 7 rpReleaseMan VARCHAR2 10 非空 信息發(fā)放人 備注: 1、 rpName:用于指出這個字段是獎勵還是懲罰 2、 rpReleaseMan:為當前登錄系統的管理員 ( 9)考勤信息表( hr_attendance) 考勤信息表用于存放公司員工的考勤的信息,其結構見表 4.9。 表 4.8 考勤信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 attendID INTEGER 主鍵 考勤信息 id 2 attendEmployeeID INTEGER 外鍵 考勤對應員工 ID 3 attendDate VARCHAR2 20 非空 考勤日期 4 attendIsWork VARCHAR2 10 非空 是否上班 備注: 1、 attendIsWork: 0 為缺勤, 1 為上班 5 系統詳細設計 5.1 系統運行環(huán)境和部署架構 系統運行的操作系統是 WINDOWS7,數據數據庫采用 oracle 10G,服務器則采用apache-tomcat-6.0.32 應用服務器。 這個系統部署在一個服務器上和一個數據庫服務器 上,過意該系統可以在公司的局域網中使用,也可以在廣域網中訪問。此外,由于該系統運用了許多 JS 腳本,所以使用瀏覽器時,應選用 IE8 或以上的版本,以避免不兼容無法運行的問題。 20 5.2 系統體系結構設計 系統的結構為傳統的 B/S 架構,即“瀏覽器 /服務器”架構 ;編碼模式為Extjs+Struts2+Hibernate;邏輯的結構為數據的存儲,業(yè)務邏輯的處理,用戶界面的開發(fā)。為用戶提供更好的系統體驗。 5.3 系統業(yè)務流程 系統的業(yè)務流程,嚴格按照 J2EE 的應用設計規(guī)范和 JavaScript 的引用規(guī)范。用戶從瀏覽器進入系 統,在系統中進行業(yè)務操作的時候,在 extjs 中使用了一些控件 ,進而出發(fā)了 action 的請求。 該請求被 ActionServlet 攔截,進入 Struts 框架的控制。 系 統的所有 action 請求, 都 被 ActionServlet 攔截,由 Struts2 的 MVC 框架控制 .此外,在關于數據的交互中,系統使用的是 JSON 格式的數據來進行數據傳輸,無論是數據庫向界面,還是界面向數據庫,都是這樣。 瀏覽器 中的 獲得數據后向服務器端發(fā)送請求( request), FilterDispatch 接收到從瀏覽器發(fā)送來的請求后將相應的數據請求分 發(fā)到相應的 Action 的 指定 方法進行處理,方法通過 BeanFactory 創(chuàng)建實現類的對象 ,實現類對象調用其響應的業(yè)務邏輯方法,業(yè)務邏輯層的方法又調用 Dao 層的方法進行數據庫的操作,對數據進行持久化。 相應的時序圖如下圖 5.1 所示。 r e s p o n s er e s p o n s er e t u r nr e t u r nh i b e r n a t eg e t D a og e t B e a n ( )deale xe cu t eu r lr e q u e s tE xt Js f i l t e r D i s p a t ch a ct i o n B e a n D a oa j a x d a t a b a s e 圖 5.1 系統業(yè)務時序圖 21 5.4 系統各模塊類圖 由于系統的類和 javabean 內的屬比較多,所以我根據系統的功能模塊,將類圖拆分成以下 10 個子類圖,分別詳細的說明了個各類的屬性和方法以及類之間的關系。 (1)登錄功能類圖 登錄功能用于實現用戶登錄,其類圖如圖 5.2 所示。 L o g i n A ct i o n-u s e r n a m ep a s s w o r d: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g+g e t U s e r n a m e ( )s e t U s e r n a m e ( )g e t P a s s w o r d ( )s e t P a s s w o r d ( )l o g i n ( ).: vo i d: vo i d: vo i d: vo i d: j a va . l a n g . S t r i n gH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rL o g i n D a o+ ch e ck H r U s e r s ( ).: H r U s e rH r U s e r s-u s e r i du s e r n a m eu s e r p a s s w o r du s e r t yp e: i n t: S t r i n g: i n t: i n t+g e t t e r s ( )s e t t e r ( ). 圖 5.2 登錄功能類圖 (2)管理員信息管理功能類圖 管理員信息管理功能,用于實現管理員信息管理,見圖 5.3 U s e r A ct i o n+S e l e ct U s e r s _ A ( )S e l e ct T a r g e t s _ A ( )A d d U s e r _ A ( )D e l e t e U s e r _ A ( )U p d a t e U s e r _ A ( ): vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r U s e r s D a o+S e l e ct U s e r s ( )S e l e ct T a r g e t s ( )A d d U s e r ( )D e l e t e U s e r ( )U p d a t e U s e r ( ).: L i s t: L i s t: vo i d: vo i d: vo i dH r U s e r s-u s e r i du s e r n a m eu s e r p a s s w o r du s e r t yp e: i n t: S t r i n g: i n t: i n t+g e t t e r s ( )s e t t e r ( ). 圖 5.3 管理員信息管理功能類圖 (3)部門信息管理功能類圖 部門信息管理功能,用于實現部門信息管理,見圖 5.4 22 H r D e p t A ct i o n+S e l e ct D e p t s _ A ( )S e l e ct T a r g e t D e p t s _ A ( )A d d D e p t _ A ( )D e l e t e D e p t _ A ( )U p d a t e D e p t _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r D e p t-d e p t i dd e p t n a m eh r E m p l o ye e sh r D u t i e s: i n t: S t r i n g: S e t: S e t+g e t t e r s ( )s e t t e r s ( ).H r D e p t D a o+S e l e ct D e p t s ( )S e l e ct T a r g e t D e p t s ( )A d d D e p t ( )D e l e t e D e p t ( )U p d a t e D e p t ( ): L i s t: L i s t: vo i d: vo i d: vo i d 圖 5.4 部門信息功能類圖 (4)職位信息管理功能類圖 職位信息管理功能,用于實現職位信息管理,見圖 5.5 H r D u t yA ct i o n+S e l e ct D u t i e s _ A ( )S e l e ct A l l D e p t N a m e _ A ( )A d d D u t y_ A ( )D e l e t e D u t y_ A ( )U p d a t e D u t y_ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r D u t y-d u t yi dh r D e p td u t yn a m eh r E m p l o ye e s: i n t: H r D e p t: S t r i n g: S e t+g e t t e r s ( )s e t t e r s ( ).: i n t: i n tH r D u t yD a o+S e l e ct D u t i e s ( )S e l e ct A l l D e p t N a m e ( )A d d D u t y ( )D e l e t e D u t y ( )U p d a t e D u t y ( ): L i s t: L i s t: vo i d: vo i d: vo i d 圖 5.5 職位信息管理功能類圖 (5)員工信息管理功能類圖 員工信息管理功能,用于實現員工信息管理,見圖 5.6。 23 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r E m p l o ye e A ct i o n+S e l e ct E m p l o ye e s _ A ( )S e l e ct T a r g e t E m p l o ye e _ A ( )A d d E m p l o ye e _ A ( )D e l e t e E m p l o ye e _ A ( )U p d a t e E m p l o ye e _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r E m p l o ye e-e m p l o ye e i dh r D e p th r D u t ye m p l o ye e n a m ee m p l o ye e s e xe m p l o ye e a g ee m p l o ye e n a t i vee m p l o ye e b i r t h d a ye m p l o ye e w p h o n ee m p l o ye e f p h o n ee m p l o ye e e m a i le m p l o ye e h e a l t he m p l o ye e p r o f e s s i o ne m p l o ye e e d u ca t i o ne m p l o ye e m a r r ye m p l o ye e i d e n t i t yi de m p l o ye e a d d r e s se m p l o ye e i co ne m p l o ye e e n t e r d a t ee m p l o ye e m o d i f yd a t eh r R e w a r d p u n i s h sh r A t t e n d a n ce sh r S a l a r i e s: i n t: H r D e p t: H r D u t y: S t r i n g: S t r i n g: i n t: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S e t: S e t: S e t+g e t t e r s ( )s e t t e r s ( ).H r E m p l o ye e D a o+S e l e ct E m p l o ye e s ( )S e l e ct T a r g e t E m p l o ye e ( )A d d E m p l o ye e ( )D e l e t e E m p l o ye e ( )U p d a t e E m p l o ye e ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 圖 5.6 員工信息管理功能類圖 (6)培 訓信息管理功能類圖 培訓信息管理功能,用于實現培訓信息管理,見圖 5.7。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r T r a i n A ct i o n+S e l e ct T r a i n s _ A ( )S e l e ct T a r g e t T r a i n _ A ( )A d d T r a i n _ A ( )D e l e t e T r a i n _ A ( )U p d a t e T r a i n _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r T r a i n-t r a i n i dt r a i n n a m et r a i n g o a lt r a i n s t u d e n tt r a i n s t a r t d a t et r a i n e n d d a t et r a i n s t u d e n t n u mt r a i n t e a ch e rt r a i n g r a d et r a i n r e l e a s e d a t e: i n t: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: i n t: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( ).: i n t: i n tH r T r a i n D a o+S e l e ct T r a i n s ( )S e l e ct T a r g e t T r a i n ( )A d d T r a i n ( )D e l e t e T r a i n ( )U p d a t e T r a i n ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 圖 5.7 培訓信息管理功能類圖 (7)招聘信息管理功能類圖 招聘信息管理功能,用于實現招聘信息管理,見圖 5.8 24 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r R e cr u i t m e n t A ct i o n+S e l e ct R e cr u i t m e n s _ A ( )S e l e ct T a r g e t R e cr u i t m e n _ A ( )A d d R e cr u i t m e n _ A ( )D e l e t e R e cr u i t m e n _ A ( )U p d a t e R e cr u i t m e n _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r R e cr u i t m e n t-r e cr i dr e cr n a m er e cr co n t e n tr e cr d a t e: i n t: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( )H r R e cr u i t m e n t D a o+S e l e ct R e cr u i t m e n s ( )S e l e ct T a r g e t R e cr u i t m e n ( )A d d R e cr u i t m e n ( )D e l e t e R e cr u i t m e n ( )U p d a t e R e cr u i t m e n ( ).: L i s t: L i s t: vo i d: vo i d: i n t 圖 5.8 招聘信息管理功能類圖 (8)考勤信息管理功能類圖 考勤信息管理功能,用于實現考勤信息管理,見圖 5.9。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r A t t e n d a n ce A ct i o n+S e l e ct A t t e n d a n ce s _ A ( )S e l e ct T a r g e t A t t e n d a n ce _ A ( )D e l e t e A t t e n d a n ce _ A ( ).: vo i d: vo i d: vo i dH r A t t e n d a n ce-H r A t t e n d a n ceh r E m p l o ye ea t t e n d d a t ea t t e n d i s w o r k: i n t: H r E m p l o ye e: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g+g e t t e r s ( )s e t t e r s ( ).H r A t t e n d a n ce D a o+S e l e ct A t t e n d a n ce s ( )S e l e ct T a r g e t A t t e n d a n ce ( )D e l e t e A t t e n d a n ce ( ).: L i s t: L i s t: vo i d 圖 5.9 考勤信息管理功能類圖 (9)薪資信息管理功能類圖 薪資信息管理功能,用于實現薪資信息管理,見圖 5.10。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r S a l a r yA ct i o n+S e l e ct S a l a r i e s _ A ( )S e l e ct T a r g e t S a l a r y_ A ( )A d d S a l a r y_ A ( )D e l e ct S a l a r y_ A ( )U p d a t e S a l a r y_ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r S a l a r y-s a l a r yi dh r E m p l o ye es a l a r ym o n t hs a l a r yb a s i cs a l a r yb o n u ss a l a r yf o r f e i ts a l a r yr e l e a s e d a t e: i n t: H r E m p l o ye e: S t r i n g: i n t: i n t: i n t: S t r i n g+g e t t e r s ( )s e t t e r s ( ).H r S a l a r yD a o+S e l e ct S a l a r i e s ( )S e l e ct T a r g e t S a l a r y ( )A d d S a l a r y ( )D e l e ct S a l a r y ( )U p d a t e S a l a r y ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 圖 5.10 薪資信息管理功能類圖 25 (10)獎罰信息管理功能類圖 獎罰信息管理 功能,用于實現獎罰信息管理,見圖 5.11 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r R e w o r d p u n i s h A ct i o n+S e l e ct R P s _ A ( )S e l e ct T a r g e t R P _ A ( )A d d R P _ A ( )D e l e t e R P _ A ( )U p d a t e R P _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r R e w a r d p u n i s h-r p i dh r E m p l o ye er p n a m er p r e a s o nr p d e s crr p d a t er p r e l e a s e m a n: i n t: H r E m p l o ye e: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( )H r R e w o r d p u n i s h D a o+S e l e ct R P s ( )S e l e ct T a r g e t R P ( )A d d R P ( )D e l e t e R P ( )U p d a t e R P ( ).: L i s t: L i s t: vo i d: vo i d: i n t 圖 5.11 獎罰信息管理功能類圖 5.5 系統代碼實現 由于系統的各模塊的相應的實現方法基本相同,所以在這里,我只選用一個模塊來進行實現。在此,我選用用戶登錄模塊和管理員信息管理模塊。 5.5.1 用戶登錄模塊實現 (1)登錄界面,運用了 Extjs+struts2+hibernate 的技術實現的功能,在這里有輸入內容校驗及回饋給后臺經行數據庫數據對比的步驟。當輸入正確的用戶名和密碼就可以登錄到系統的主頁面,失敗的話會彈出提示,并且回到登錄頁面。效果展示:如圖 5.12、圖 5.13、圖 5.14、圖 5.15 所示。 26 圖 5.12 登陸界面效果圖 圖 5.13 登錄成功效果圖 圖 5.14 登錄失敗效果圖 27 圖 5.15 系統主界面效果圖 (2)代碼實現: 首先,因為這個系統的用戶界面是基于 extjs 的,所以,在 JSP 頁面中,只要引入Extjs 主要的兩個 js 文件和一個 CSS 文件。然后就是要引入登錄界面的 js。 1) Jsp 頁面代碼: (Login.jsp) 歡迎登陸 2)登錄頁面 JS 實現: (js-login.js) 這里的代碼是負責生成登錄信息錄入窗口。等輸入信息后,點擊確定,觸發(fā) action,將 textfield 內的信息傳到后臺進行驗證。在此使用到了 EXTJS 自帶的 ajax 技術。當服務器響應了成功的信息,則跳轉,響應失敗的信息,先提示登錄失敗并清空textfield 內的信息。 28 Ext.onReady(function() Ext.QuickTips.init(); var form = new Ext.FormPanel( height:100, width:300, frame:true, labelWidth:60, labelAlign:right, baseCls:x-plain, items: xtype:textfield, name:username, fieldLabel:用戶名 , maxLength:10, minLength:1, allowBlank:false, msgTarget:side , xtype:textfield, name:password, inputType:password, fieldLabel:密 碼 , maxLength:10, minLength:1, allowBlank:false, msgTarget:side ); var window = new Ext.Window( title:用戶登錄 , width:300, height:150, plain:true, bodyStyle:padding:5px;, buttonAlign:center, colseable:false, resizable:false, items:form, buttons: text:登錄 , listeners: click:function() if(form.getForm().isValid() form.getForm().submit( 29 url:login, method:POST, waitMsg:系統正在驗證您的登錄信息 ,請稍候 ., success:function(form,action) Ext.Msg.confirm(提示,action.result.msg,function(btn) if(btn=yes) top.location=./desktop/desktop.jsp; else ,this); , failure:function() Ext.Msg.alert(提示 ,賬號或密碼錯誤 ); ); , text:重置 , listeners: click:function() form.getForm().reset(); ); window.show(); ); 3)登錄頁面 的 action: (LoginAction.java) 這個 Action 負責獲取從前臺 submit 操作后傳過來的信息,并經行驗證,如果數據庫有這個信息,就響應成功信息,如果數據庫沒有這個信息,則響應失敗信息。 package com.wyc.hr.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.wyc.hr.dao.LoginDao; import com.wyc.hr.domain.HrUsers; public class LoginAction extends ActionSupport private String username; 30 private String password; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; public String login() throws Exception HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); LoginDao loginDao=new LoginDao(); HrUsers hruser=new HrUsers(); hruser.setUsername(getUsername(); hruser.setUserpassword(getPassword(); hruser=loginDao.checkHrUsers(hruser); if(hruser.getUserid()!=null) response.setCharacterEncoding(UTF-8); request.getSession().setAttribute(userInfo, hruser); response.getWriter().write( success:true,msg:登錄成功!你的用戶名是: + getUsername() + ,你的密碼是: + getPassword() + 。 ); else response.getWriter().write(success:false); return null; 4)登錄模塊的 Dao:(LoginDao.java) 這里主要運用的就是 Hibernate 的技術。主要的功能就是來查詢表中是否存在相應的記錄。如果有,就返回這個記錄,如果沒有,就返回空。 在這里調用了一個自定義的工具類,用于創(chuàng)建 Hibernate 的數據庫連接,相應代碼見附錄 1。 package com.wyc.hr.dao; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import com.wyc.hr.domain.HrUsers; import com.wyc.hr.utils.HibernateUtil; public class LoginDao 31 public HrUsers checkHrUsers(HrUsers hrUser) Session session=null; try session=HibernateUtil.openSession(); Query query=session.createQuery(From HrUsers where username=? and userpassword=?); query.setString(0, hrUser.getUsername(); query.setString(1, hrUser.getUserpassword(); List list=query.list(); if(list.size()=0) return null; else return list.get(0); catch (Exception e) e.printStackTrace(); throw new RuntimeException(e.getMessage(); finally if(session!=null & session.isOpen() session.close(); 5.5.2 管理員管理模塊實現 (1)該模塊主要是給高級管理員提供一個可以增、刪、改、查管理員的界面。效果展示:如圖 5.16、圖 5.17、圖 5.18 所示。 圖 5.16 管理員管理效果圖 32 圖 5.17 管理員管理添加管理員 圖 5.17 管理員管理修改管理員 33 圖 5.18 管理員管理刪除管理員 (2)代碼實現: 1) JSP 頁面:( desktop.jsp) 該頁面除了引用 Extjs 的幾個主要的幾 js 文件和 css 文件之外,還要引用主界面的樣式,也就是 desktop 的樣式。還有,就是右上角的時間顯示,也在這個頁面定義的。除此之外,還有管理的快捷方式定義等等 人力資源管理 34 function toDou(n) if(n10) return 0+n; else return +n; window.onload=function() function tick() var aImg=document.getElementsByTagName(img); var oDate=new Date(); /兼容問題, FF直接可以用 timeString進行 for循環(huán)實現功能 /iE需要重新將 timeString轉換成數組 timeArray,再進行循環(huán) var timeString=toDou(oDate.getHours()+toDou(oDate.getMinutes()+toDou(oDate.getSeconds(); var timeArray=timeString.split(); for(var i=0,j=0;i6;i+,j+) if(j=2 | j=5) j+; aImgj.src=images/+timeArrayi+.jpg; setInterval(tick, 1000); tick(); 35 員工信息管理 招聘信息管理 培訓信息管理 獎懲信息管理 薪資信息管理 考勤信息管理 $userInfo.username 2)管理員管理頁面 js:( sample.js) 這里定義了窗口中所有的控件,以及一些方法的調用等等。見附錄 2 3)管理員管理模塊中的管理員 js 對象:( HrObject.js) function HrUser() this.userid=null; this.username=null; 36 this.userpassword=null; this.usertype=null; this.getUserid=function() return this.userid; this.setUserid=function(userid) this.userid=userid; this.getUsername=function() return this.username; this.setUsername=function(username) this.username=username; this.getUserpassword=function() return this.userpassword; this.setUserpassword=function(userpassword) this.userpassword=userpassword; this.getUsertype=function() return this.usertype; this.setUsertype=function(usertype) this.usertype=usertype; 4)管理員管理模塊相關前臺功能 js: (hrUsersOper.js) 是用于完成前臺中的一些功能的一些方法,如建立管理員添加、修改、刪除的頁面,和處理各種前臺的邏輯功能。代碼見附錄 2 4)管理員管理模塊相關 Action: (UserAction.java) 用于處理前端發(fā)過來的數據,并經行相應的處理,代碼見附錄 2 5)管理員管理模塊相關 Dao: (HrUsersDao.java) 持久層,負責完成和數據庫的一些操作,被管理員管理模塊相關 Action 調用,代碼見附錄 2 37 5.4.3 員工信息管理展示 員工 信息管理窗口的圖片展示,如圖 5.19,圖 5.20 所示。 圖 5.19 員工信息管理主界面 圖 5.20 員工信息管理添加員工窗口 5.4.4 部門信息管理展示 公司部門信息管理窗口的圖片展示,見圖 5.21,圖 5.22,圖 5.23 38 圖 5.21 部門信息管理主窗口 圖 5.22 部門信息管理主窗口查詢功能 圖 5.23 部門信息管理添加部門窗口 5.4.5 其他模塊實現 其他模塊,包括職位信息管理模塊、招聘信息管理模塊、培訓信息管理模塊、薪資信息管理模塊、獎罰信息管理模塊和考勤信息管理模塊,這 6 個模 塊,和以上管理員信息管理模塊的實現過程基類似,基本上都是重復那個幾個步驟。然而不同是一下這兩點:1、在 action 中 response 的字符串不同,因為不同的信息,要封裝成不同的字符串發(fā) 39 給前臺。 2、就是 Struts2 框架處理不同 action。 這樣做的好處是使得整個人力資源管理系統結構非常清晰,各個模塊劃分得很清楚,各自只處理各自功能頁面的請求,從而降低了耦合性。 6 系統測試 為了使得用戶在使用這個人力資源管理系統時,有更好的用戶體驗,并且不會出現一些操作時的不舒適,或者是一些數據無法讀取 或者保存,在此進行系統的測試。只要運用了兩種測試方式:功能測試和界面測試。 6.1 功能測試 對系統的各項功能盡享驗證,更具功能測試用例,逐項測試,檢查系統是否達到需求分析中所提到的功能。 功能測試用例如下: 表 6.1 功能測試用例 序號 用例名稱 描述 預期結果 運行結果 1 非用戶登錄 輸入不正確信息 不能登錄 不能登錄,并彈出警告

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論