已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于 java 的公司人力資源管理系統(tǒng) 誠信承諾書 本人鄭重承諾: 本人承諾呈交的畢業(yè)設(shè)計 基于 java 的公司人力資源管理系統(tǒng) 是在指導(dǎo)教師的指導(dǎo)下,獨立開展研究取得的成果,文中引用他人的觀點和材料,均在文后按順序列出其參考文獻(xiàn),設(shè)計使用的數(shù)據(jù)真實可靠。 本人簽名: 日期: 年 月 日 基于 java 的公司人力資源管理系統(tǒng) 摘 要 目前,社會上的各種各樣的中小型企業(yè)中,所使用的人力資源管理系統(tǒng)大多都是基于 B/S 架構(gòu),所以,我選用當(dāng)前比較熱門的 Struts2+Hibernate 架構(gòu)來進(jìn)行本系統(tǒng)的搭建。同時,為了界面的美觀,我使用了 EXTJS 的 javascript 技術(shù)來設(shè)計用戶使用界面,為客戶提供一個流暢和美觀的 web 界面。數(shù)據(jù)庫采用了 oracle。在數(shù)據(jù)傳輸方面,使用了 JSON 和 AJAX 的技術(shù)實現(xiàn)信息的異步操作。 根據(jù)軟件開發(fā)的流程,對本系統(tǒng)的開發(fā)進(jìn)行了需求分析,確定了系統(tǒng)將要實現(xiàn)的功能模塊: 員工 信息 管理、招聘 信息 管理、培訓(xùn) 信息 管理、獎懲 信息 管理、薪資 信息 管理、考勤 信息 管理、 部門信息管理、管理員信息管理、職位信息 管理,這九個模塊。然后根據(jù)需要,在前臺實現(xiàn)了各個模塊的增、刪、改、查的操作。 本系統(tǒng)運用了 AJAX 技術(shù),在登陸之后,實現(xiàn)了無頁面跳轉(zhuǎn)的數(shù)據(jù)異步加載,使得系統(tǒng)運行時更加流暢。 關(guān)鍵詞: Struts2; hibernate; ExtJs; B/S 架構(gòu); Json;面向?qū)ο螅蝗肆Y源管理系統(tǒng); 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 問題的現(xiàn) 狀及其意義 . 1 1.3 本設(shè)計的目標(biāo) . 2 2 開發(fā)環(huán)境及相關(guān)技術(shù)介紹 . 3 2.1 系統(tǒng)開發(fā)環(huán)境 . 3 2.2 技術(shù)介紹 . 3 2.2.1 系統(tǒng)設(shè)計的主要技術(shù) . 3 2.2.2 Struts2 的介紹 . 3 2.2.3 Hibernate 的介紹 . 4 2.2.4 ExtJS 的介紹 . 4 2.2.5 Json 的介紹 . 4 2.2.6 面向?qū)ο蟮慕榻B . 5 3 系統(tǒng)需求分析 . 6 3.1 可行性分析 . 6 3.1.1 技術(shù)可行性 . 6 3.1.2 經(jīng)濟(jì)可行性 . 6 3.1.3 環(huán)境可行性 . 6 3.2 功能需求分析 . 6 4 總體設(shè)計 . 7 4.1 系統(tǒng)的總體功能框架設(shè)計 . 7 4.2 系統(tǒng)各模塊用例圖分析 . 8 4.3 業(yè)務(wù)流程圖 . 13 4.4 數(shù)據(jù)庫設(shè)計分析 . 14 4.4.1 數(shù)據(jù)庫總體設(shè)計 . 14 4.4.2 數(shù)據(jù)庫數(shù)據(jù)字典 . 15 5 系統(tǒng)詳細(xì)設(shè)計 . 19 5.1 系統(tǒng)運行環(huán)境和部署架構(gòu) . 19 5.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計 . 20 5.3 系統(tǒng)業(yè)務(wù)流程 . 20 5.4 系統(tǒng)各模塊類圖 . 21 5.5 系統(tǒng)代碼實現(xiàn) . 25 5.5.1 用戶登錄模塊實現(xiàn) . 25 5.5.2 管理員管理模塊實現(xiàn) . 31 5.4.3 員工信息管理展示 . 37 5.4.4 部門信息管理展示 . 37 5.4.5 其他模塊實現(xiàn) . 38 6 系統(tǒng)測試 . 39 6.1 功能測試 . 39 6.2 界面測試 . 40 7 設(shè)計總結(jié) . 41 參考文獻(xiàn) . 42 謝 辭 . 43 附 錄 . 45 1 1 前言 1.1 概述 人力資源管理信息系統(tǒng)( Human Resource Information System, HRIS)是一個用來為制定人力資源決策提供信息的集成系統(tǒng),是為了提高企業(yè)人力資源管理水平而開發(fā)的。主要目標(biāo)是通過對員工及人力資源活動信息(招 聘、工資)等的編制來提高效率,及時與用戶溝通,用最少的人力、物力滿足用戶需求。 人力資源管理信息系統(tǒng)在企業(yè)的有效實施,將會促進(jìn)企業(yè)人力資源管理向規(guī)范化、標(biāo)準(zhǔn)化、決策科學(xué)化發(fā)展;促使企業(yè)人力資源管理人員從日常大量的行政事務(wù)性工作中解脫出來,逐步專注于對企業(yè)的人力資源管理活動進(jìn)行計劃,組織,監(jiān)督和咨詢職能;調(diào)動企業(yè)各級管理者和每一位普通員工都積極參與到人力資源管理活動中來。并且通過大力推進(jìn)人力資源管理信息化建設(shè),優(yōu)化了企業(yè)人力資源管理流程,建立起開放式的人力資源管理模式,從而提升企業(yè)人力資源管理水平和管理效率, 充分調(diào)動一切有利因素,最終使人成為企業(yè)經(jīng)營發(fā)展中真正的第一資源。 人力資源管理信息系統(tǒng)是人力資源管理的電子信息化,是企業(yè)基于高速度、大容量的硬件和先進(jìn)的 IT 軟件的人力資源管理模式,即人力資源管理信息化或自動化。 1.2 問題的現(xiàn)狀及其意義 隨著時代的發(fā)展,社會的進(jìn)步, IT 領(lǐng)域的日新月異,越來越多的企業(yè)建立、發(fā)展、壯大、成熟。截止到 2011 年,我國工商管理局注冊的企業(yè)超過了 3500 萬,其中中小型企業(yè)占了 99%。這些都是人力資源管理系統(tǒng)的潛在客戶。 隨著公司的成長和壯大,公司里的員工也逐漸增加,每年的人力資源管理 的成本也不斷增加,這不僅耗費公司的資金,同時也耗費了大量的人力。所以,公司需要一個系統(tǒng),一個能夠管理公司人力資源的系統(tǒng)。 近年來,一些較大的企業(yè)經(jīng)常自行開發(fā) HR 管理系統(tǒng),這樣可以節(jié)省他們許多不必要的浪費。但是實踐證明,這個方式實現(xiàn)起來很難。一方面,企業(yè)內(nèi)部的人員往往缺乏項目經(jīng)驗,結(jié)果做出的東西絕大部分不符合客戶的需求;另一方面,這種形式的軟件開發(fā)不參與市場競爭,僅僅是供給內(nèi)部使用,極大地可能導(dǎo)致開發(fā)人員的敷衍了事,使得系統(tǒng)無法起到它的作用。 此外,就是我國正處于傳統(tǒng)管理方式向人力資源管理過渡的時期,企業(yè)中的 管理方法和思想都在發(fā)生著巨大的變化,這是對 HR 管理系統(tǒng)的一個巨大的挑戰(zhàn)。 本系統(tǒng)的主要針對的對象是一些中小型企業(yè),對他們的人力資源,按照企業(yè)的需求,對其績效考核管理、薪酬管理等進(jìn)行了完善的開發(fā)。利用現(xiàn)在較新的技術(shù),實現(xiàn)人力資源管理系統(tǒng)的精細(xì)化、自動化、人性化,為企業(yè)的發(fā)展做出理性的決策,提高人員的管理利用率,為公司的發(fā)展和人才儲備提供一個完善的、良好的平臺。 2 1.3 本設(shè)計的目標(biāo) 利用現(xiàn)有的技術(shù),了解人力資源管理系統(tǒng)開發(fā)的流程和所要實現(xiàn)的主要功能,同時對一些企業(yè)的內(nèi)部的管理進(jìn)行了解,進(jìn)而對系統(tǒng)進(jìn)行特定功能的擴(kuò) 展。 另一方面,就是要打破傳統(tǒng)人力資源管理系統(tǒng)的一貫的風(fēng)格,打造出一個全新的,更具有親和力的系統(tǒng),使得企業(yè)的員工愿意使用本系統(tǒng)。 3 2 開發(fā)環(huán)境及相關(guān)技術(shù)介紹 2.1 系統(tǒng)開發(fā)環(huán)境 使用 B/S 架構(gòu),運行環(huán)境是 JDK1.7.0_09 服務(wù)器操作系統(tǒng): Windows 7 數(shù)據(jù)庫: Oracle 10G Web 服務(wù)器: apache-tomcat-6.0.32 開發(fā)工具: Myeclipse10, Ext Desiger, PL/SQL Developer, Power Desiger 2.2 技術(shù)介 紹 2.2.1 系統(tǒng)設(shè)計的主要技術(shù) 本人力資源管理系統(tǒng)是在 Extjs+Struts2+Hibernate 框架的基礎(chǔ)上開發(fā)的。是一個典型的 J2EE 系統(tǒng)。所以系統(tǒng)也分為 表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是基于 javascript的 ExtJS 技術(shù),而數(shù)據(jù)的交互格式則使用 JSON 技術(shù)、這些在下面有詳細(xì)的介紹。 主要使用技術(shù): Struts2、 Hibernate、 ExtJs、 JavaScript、 HTML、 Json 2.2.2 Struts2 的介紹 STRUTS 是 Apache 組織的一個開放源碼的項目,它是一個可重用的 MVC 設(shè)計。STRUTS 應(yīng)用有 3 個主要部件: Servlet 及負(fù)責(zé)具體業(yè)務(wù)處理的 Action 類( Controller),JSP 頁面( view)和 STRUTS 應(yīng)用的業(yè)務(wù)邏輯封裝( Model)。 STRUTS 實質(zhì)上就是在 JSP 基礎(chǔ)上實現(xiàn)的一個 MVC 框架 , Struts2 框架的大致處理流程如下: 1) 瀏覽器發(fā)送請求 2) 核心控制器 FilterDispatcher 根據(jù)請求決定調(diào)用合適的 Action 3) Web Work 的攔截器鏈自動對請求應(yīng)用通用功能 4) 回調(diào) Action 的 execute 方法,該方法先獲取用戶請求參數(shù),然后執(zhí)行某種數(shù)據(jù)庫操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫中檢索信息。實際上,因為 Action 只是一個控制器,它會調(diào)用業(yè)務(wù)邏輯組件來處理用戶的請求 5) Action 的 execute 方法處理結(jié)果信息將被輸出到瀏覽器中,可以是 HTML 頁面、圖像,也可以是 PDF 文檔或者其他文檔。此時支持的視圖技術(shù)非常多,既支持JSP,也支持 Velocity、 FreeMarker 等模板技術(shù) 4 2.2.3 Hibernate 的介紹 Hibernate 是一個面向 Java 環(huán)境的對象 /關(guān)系映射( ORM)工具,是 J2EE 應(yīng)用的持久層解決方案, Hibernate 不僅管理 Java 類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度縮短使用 JDBC 處理持久化的時間。 Hibernate 與其他 ORM 框架對比具有如下優(yōu)點: 1) 開源和免費的 License,方便需要時研究源代碼,改寫源代碼,進(jìn)行功能定制 2) 輕量級封裝,避免引入過多復(fù)雜的問題,調(diào)試容易,減輕程序員負(fù)擔(dān) 3) 具有可擴(kuò)展性, API 開發(fā)。功能不夠用的時候,自己編碼進(jìn)行擴(kuò)展 4) 開發(fā)者活躍,產(chǎn)品有穩(wěn)定的發(fā)展保障 2.2.4 ExtJS 的介紹 ExtJS 是一種主要用于創(chuàng)建前端用戶界面,是一個基本與 后臺 技術(shù)無關(guān)的前端 ajax框架 。 ExtJS 可以用來開發(fā) RIA 也即富 客戶端 的 AJAX 應(yīng)用,是一個用 javascript 寫的,主要用于創(chuàng)建前端用戶界面,是一個與 后臺 技術(shù)無關(guān)的前端 ajax 框架 。因此,可以把 ExtJS用在 .Net、 Java、 Php 等各種開發(fā)語言開發(fā)的應(yīng)用中。 ExtJs 最開始基于 YUI 技術(shù),由開發(fā)人員 JackSlocum 開發(fā),通過參考 JavaSwing 等機(jī)制來組織可視化組件,無論從 UI 界面上 CSS 樣式的應(yīng)用,到數(shù)據(jù)解析上的 異常處理 ,都可算是一款不可多得的 JavaScript客戶端 技術(shù)的精品。 Ext 的 UI 組件模型和開發(fā)理念脫胎、成型于 Yahoo 組件庫 YUI 和 Java 平臺 上 Swing兩者,并為開發(fā)者屏蔽了大量跨 瀏覽器 方面的處理。相對來說, EXT 要比開發(fā)者直接針對 DOM、 W3C 對象模型開發(fā) UI 組件輕松。 2.2.5 Json 的介紹 JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于 JavaScript( Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON 采用完全獨立于語言的文本格式,但是也使用了類似于 C 語言家族的習(xí)慣(包括 C, C+, C#, Java, JavaScript, Perl, Python 等)。這些特性使 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成。 json 簡單 說就是 javascript 中的對象和數(shù)組,所以這兩種結(jié)構(gòu)就是對象和數(shù)組 2 種結(jié)構(gòu),通過這兩種結(jié)構(gòu)可以表示各種復(fù)雜的結(jié)構(gòu) 1、對象:對象在 js 中表示為 “”擴(kuò)起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 key: value,key: value,.的鍵值對的結(jié)構(gòu),在面向?qū)ο蟮恼Z言中, key 為對象的屬性, value 為對應(yīng)的屬性值,所以很容易理解,取值方法為 對象 .key 獲取屬性值,這個屬性值的類型可以是 數(shù)字、字 5 符串、數(shù)組、對象幾種。 2 、數(shù)組:數(shù)組在 js 中是中括號 “” 擴(kuò) 起 來 的 內(nèi) 容 , 數(shù) 據(jù) 結(jié) 構(gòu) 為 java,javascript,vb,.,取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。 經(jīng)過對象、數(shù)組 2 種結(jié)構(gòu)就可以組合成復(fù)雜的數(shù)據(jù)結(jié)構(gòu)了。 2.2.6 面向?qū)ο蟮慕榻B 隨著計算機(jī)硬件設(shè)備功能的進(jìn)一步提高,使得面向?qū)ο蟮木幊坛蔀榭赡?。面向?qū)ο蟮木幊谈臃先祟惖乃季S方式,編寫的程序更加健壯和強(qiáng)大,更重要的是,面向?qū)ο缶幊坦膭顒?chuàng)造性的程序設(shè)計。面向?qū)ο缶幊淌且环N先進(jìn)的編程思想,更加容易解決復(fù)雜的問題。面向?qū)ο缶幊痰闹饕卣饔校?( 1)封裝性:面向?qū)ο缶幊毯诵乃枷胫痪褪菍?數(shù)據(jù)和對數(shù)據(jù)的操作封裝在一起。通過抽象,即從具體的實例中抽取共同的性質(zhì)形成一般的概念,比如類的概念。 ( 2)繼承:繼承體現(xiàn)了一種編程模式。子類可以繼承父類的屬性和功能,即子類繼承了父類所具有的數(shù)據(jù)和數(shù)據(jù)上的操作,同時又可以增添子類獨有的數(shù)據(jù)和數(shù)據(jù)上的操作。 ( 3)多態(tài):多態(tài)性是指允許不同的類的對象對同一消息做出相應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享等優(yōu)勢,很好的解決了應(yīng)用程序中函數(shù)同名問題。 6 3 系統(tǒng)需求分析 3.1 可行性分析 3.1.1 技術(shù)可行性 應(yīng) 為已經(jīng)基本上掌握了開發(fā)時所要使用的技術(shù),而且在項目之外也做過一些關(guān)于這方面的 DEMO,所以在規(guī)定的時間和某些限制的條件下,功能基本可以實現(xiàn),開發(fā)可以完成。 3.1.2 經(jīng)濟(jì)可行性 由于在系統(tǒng)的開發(fā)中,用到的很多技術(shù),例如 Struts2、 Hibernate、 EXTJS3.0、 JSON等,都是開源的,所以,在開發(fā)中,基本沒有什么成本的產(chǎn)生。這個系統(tǒng)經(jīng)過未來的改進(jìn)后,我相信它所帶來的效益遠(yuǎn)遠(yuǎn)會超過它的開發(fā)成本。在經(jīng)濟(jì)這方面,絕對是一本萬利。 3.1.3 環(huán)境可行性 由于在開發(fā)中,使用了一些 javascript 的 dom 的操作,所以,本系統(tǒng)在 IE8 以上的瀏覽器版本下可以正常運行,在其他瀏覽器,如 firefox、 chrome 等,可能出現(xiàn)一些兼容問題。 3.2 功能需求分析 功能需求定義了開發(fā)人員 在系統(tǒng)開發(fā)時 必須實現(xiàn)的軟件功能, 這樣的話用戶就可以通過系統(tǒng)來完成他所要做的事。根據(jù)市面上人力資源管理系統(tǒng)的基本業(yè)務(wù)需求,并經(jīng)過自己的分析,得到了系統(tǒng)的功能模塊 通過分析,本系統(tǒng)應(yīng)該實現(xiàn)以下功能: ( 1) 登錄功能: 用于防止非法用戶的非法登錄,提高了系統(tǒng)的保密性; ( 2) 員工信息管理: 管理員和高級管理員可對公司員工的基本信息進(jìn)行增 加、刪除、修改和查詢的操作 ( 3) 招聘信息管理: 管理員和高級管理員 可以發(fā)布、 查詢、修改、 刪除招聘信息。 ( 4) 培訓(xùn)信息管理: 管理員和高級管理員 根據(jù)具體的情況設(shè)置人員培訓(xùn),可修改、刪除、添加培訓(xùn)信息,為員工的升遷提供科學(xué)的依據(jù)。 ( 5) 獎懲信息管理: 管理員和高級管理員可以 對獎懲信息的增加、刪除 、查詢、修改 操作,為薪資、升遷等提供依據(jù)。 ( 6) 薪資信息管理: 管理員和高級管理員可以 對員工薪資 信息進(jìn)行 的增加 和查詢等。 ( 7) 考勤信息管理:管理員和高級管理員查看考勤信息,實現(xiàn)公司管理員對當(dāng)日 7 為參加考勤人員的 考勤處理。 ( 8) 高級操作 模塊: 高級管理員系統(tǒng)的管理員、公司部門、公司職位 進(jìn)行管理(增加、刪除 、查看、修改 )。 4 總體設(shè)計 4.1 系統(tǒng)的總體功能框架設(shè)計 根據(jù)系統(tǒng)的功能需求分析后,設(shè)計出的系統(tǒng)的總體架構(gòu)圖,如圖 4.1 所示。 8 人力資源管理系統(tǒng)員工管理招聘管理薪資管理高級管理培訓(xùn)管理管理員管理部門管理職位管理考勤管理獎罰管理 圖 4.1 系統(tǒng)總體架構(gòu)圖 4.2 系統(tǒng)各模塊用例圖分析 ( 1)系統(tǒng)的總體用例圖 高級管理員可以使用系統(tǒng)中的所有功能,而管理員除了管理員管理、部門管理和職位管理不能使用外,其他和高級管理員一樣。高級管理員在管理員管理中,可以修改管理員的權(quán) 限,如圖 4.2 所示。 9 高級管理員 : 1管理員管理 : 1員工管理 : 1部門管理 : 1 職位管理 : 1管理員 : 1招聘管理 : 1培訓(xùn)管理 : 1考勤管理 : 1薪資管理 : 1獎罰管理 : 1人力資源管理系統(tǒng) 圖 4.2 系統(tǒng)用例圖 ( 2)員工信息管理的用例圖 用例名稱:員工信息管理 簡要描述: 管理員和高級管理員可對公司員工的基本信息進(jìn)行增加、刪除、修改和查詢的操作 參與者: 高級管理員、管理員 。 用例圖如圖 4.3 所示: 管理員 : 2高級管理員 : 5員工管理 : 2增加員工刪除員工查詢員工修改員工 圖 4.3 員工信息管理用例圖 ( 3)招聘信息管理的用例圖 用例名稱: 招聘信息管理。 簡要描述: 管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。 10 參與者: 管理員、高級管理員 。 用例圖如圖 4.4 所示: 管理員 : 3高級管理員 : 6招聘管理 : 2增加招聘信息修改招聘信息刪除招聘信息查詢招聘信息 圖 4.4 招聘信息管理用例圖 ( 4)培訓(xùn)信息管理 的用例圖 用例名稱: 培訓(xùn)信息管理 簡要描述: 高級管理員和 管理員可以對 培訓(xùn)進(jìn)行添加、修改、刪除等操作。 參與者: 管理員、高級管理員 。 用例圖如圖 4.5 所示: 管理員 : 4高級管理員 : 7培訓(xùn)管理 : 2增加培訓(xùn)信息修改培訓(xùn)信息刪除培訓(xùn)信息查詢培訓(xùn)信息 圖 4.5 培訓(xùn)信息管理用例圖 ( 5)獎罰管理的用例圖 11 用例名稱: 獎罰 管理 簡要描述: 高級管理員和 管理員可以對 員工的獎罰信息進(jìn)行添加、修改、刪除等操作。 參與者: 管理員、高級管理員 。 用例圖如圖 4.6 所示: 管理員 : 5高級管理員 : 8獎罰管理 : 2增加獎罰信息修改獎罰信息刪除獎罰信息查詢獎罰信息 圖 4.6 獎罰管理用例圖 ( 6)薪資信息管理的用例圖 用例名稱: 薪資信息管理 簡要描述:系統(tǒng)管理員 可以對員工薪資進(jìn)行核算和發(fā)放,也可以 查看所有員工的工資發(fā)放情況。 參與者: 管理員、高級管理員 。 用例圖如圖 4.7 所示: 管理員 : 6高級管理員 : 9增加薪資信息薪資管理 : 2修改薪資信息刪除薪資信息查詢薪資信息 圖 4.7 薪資信息管理用例圖 ( 7)考勤信息管理的用例圖 用例名稱: 考勤信息管理 12 簡要描述: 管理員、高級管理員查看、刪除考勤信息,考勤記錄的添加油打卡機(jī)的當(dāng)日信息來自動錄入。 參與者: 管理員、高級管理員 。 用例圖如圖 4.8 所示: 管理員 : 6高級管理員 : 9薪資管理 : 2刪除薪資信息查詢薪資信息 圖 4.8 考勤信息管理用例圖 ( 8)管理員管理的用例圖 用例名稱: 管理員 管理 簡要描述: 高級管理員對管理員的信息進(jìn)行增加、刪除、修改和查詢。 參與者: 高級管理員 。 用例圖如圖 4.9 所示: 高級管理員 : 2管理員管理 : 2增加管理員刪除管理員修改管理員查詢管理員 圖 4.9 管理員管理用例圖 ( 9)部門管理的用例圖 用例名稱: 部門 管理 簡要描述: 高級管理員對部門的信息進(jìn)行增加、刪除、修改和查詢。 13 參與者: 高級管理員 。 用例圖如圖 4.10 所示: 高級管理員 : 3增加部門修改部門刪除部門查詢部門部門管理 : 2 圖 4.10 部門管理用例圖 ( 10)職位管理的用例圖 用例名稱: 職位 管理 簡要描述: 高級管理員對職位的信息進(jìn)行增加、刪除、修改和查詢。 參與者: 高級管理員 。 用例圖如圖 4.11 所示: 高級管理員 : 4職位管理 : 2增加職位修改職位刪除職位查詢職位 圖 4.11 職位管理用例圖 4.3 業(yè)務(wù)流程圖 根據(jù)人力資源管理系統(tǒng)的需求分析和各各用例的分析,繪制出該系 統(tǒng)的業(yè)務(wù)流程圖,見圖 4.12。 14 圖 4.12 人力資源管理系統(tǒng)業(yè)務(wù)流程圖 4.4 數(shù)據(jù)庫設(shè)計分析 4.4.1 數(shù)據(jù)庫總體設(shè)計 本系統(tǒng)使用的是 oracle 10G,主要設(shè)計的表共有 9 個,分別是:管理員信息表,部門信息表,職位信息表,員工信息表,培訓(xùn)信息表,獎罰信息表,薪資信息表,考勤信息表,招聘信息表。系統(tǒng)的數(shù)據(jù)庫關(guān)系結(jié)構(gòu)圖如下圖 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 人力資源管理數(shù)據(jù)庫關(guān)系結(jié)構(gòu)圖 4.4.2 數(shù)據(jù)庫數(shù)據(jù)字典 ( 1)管理員信息表( hr_users) 管理員信息表用于存放管理員的信息,其結(jié)構(gòu)見表 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) 部門信息表用于存放公司部門的信息,其結(jié)構(gòu)見表 4.2。 表 4.2 部門信息表 16 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 deptId INTEGER 主鍵 部門的 ID 號 2 deptName VARCHAR 20 非空 部門的名稱 ( 3)職位信息表( hr_duty) 職位信息表用于存放公司職位的信息,其結(jié)構(gòu)見表 4.3。 表 4.3 職位信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 dutyId INTEGER 主鍵 職位的 ID 號 2 dutyDeptId INTEGER 外鍵 職位所在部門的 id 3 dutyName VARCHAR 20 非空 職位名稱 ( 4)員工信息表( hr_employee) 員工信息表用于存放公司員工的信息,其結(jié)構(gòu)見表 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 非空 員工手機(jī)號碼 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) 招聘信息表用于存放公司招聘的信息,其結(jié)構(gòu)見表 4.5。 表 4.5 招聘信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 recrId INTEGER 主鍵 招聘信息 ID 2 recrName VARCHAR 50 非空 招聘信息名稱 3 recrContent VARCHAR 500 非空 招聘信息內(nèi)容 4 recrDate VARCHAR 20 非空 招聘信息發(fā)放日期 ( 6)培訓(xùn)信息表( hr_train) 培訓(xùn)信息表用于存放公司培訓(xùn)的信息,其結(jié)構(gòu)見表 4.6。 表 4.6 培訓(xùn)信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 trainID INTEGER 主鍵 培訓(xùn)信息 ID 2 trainName VARCHAR 20 非空 培訓(xùn)信息名稱 3 trainGoal VARCHAR 20 非空 培訓(xùn)目的 18 4 trainStudent VARCHAR 200 非空 培訓(xùn)參加人名單 5 trainStartDate VARCHAR 20 非空 培訓(xùn)開始時間 6 trainEndDate VARCHAR 20 非空 培訓(xùn)結(jié)束時間 7 trainStudentNum INTEGER 非空 參訓(xùn)最大人數(shù) 8 trainTeacher VARCHAR 10 非空 培訓(xùn)教室 9 trainGrade VARCHAR 10 非空 培訓(xùn)等級 10 trainEleaseDate VARCHAR 20 非空 信息放出時間 備注: 1、 trainGrade: 0 為初級 , 1 為中級, 2 為高級 ( 7)薪資信息表( hr_salary) 薪資信息表用于存放公司薪資的信息,其結(jié)構(gòu)見表 4.7。 表 4.7 薪資信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 salaryID INTEGER 主鍵 薪資 ID 2 salaryEployeeID INTEGER 外鍵 薪資對應(yīng)員工 id 3 salaryMonth VARCHAR2 20 非空 發(fā)放薪資月份 4 salaryBasic INTEGER 非空 基礎(chǔ)工資 5 salaryBouns INTEGER 非空 獎金 6 salaryForfeit INTEGER 非空 罰款金額 7 salaryReleaseDate VARCHAR2 20 非空 信息發(fā)放時間 備注: 1、 員工的實拿工資為: salaryBasic+ salaryBouns- salaryForfeit ( 8)獎罰信息表( hr_rewardpunish) 獎罰信息表用于存放公司員工的獎罰的信息,其結(jié)構(gòu)見表 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:為當(dāng)前登錄系統(tǒng)的管理員 ( 9)考勤信息表( hr_attendance) 考勤信息表用于存放公司員工的考勤的信息,其結(jié)構(gòu)見表 4.9。 表 4.8 考勤信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 attendID INTEGER 主鍵 考勤信息 id 2 attendEmployeeID INTEGER 外鍵 考勤對應(yīng)員工 ID 3 attendDate VARCHAR2 20 非空 考勤日期 4 attendIsWork VARCHAR2 10 非空 是否上班 備注: 1、 attendIsWork: 0 為缺勤, 1 為上班 5 系統(tǒng)詳細(xì)設(shè)計 5.1 系統(tǒng)運行環(huán)境和部署架構(gòu) 系統(tǒng)運行的操作系統(tǒng)是 WINDOWS7,數(shù)據(jù)數(shù)據(jù)庫采用 oracle 10G,服務(wù)器則采用apache-tomcat-6.0.32 應(yīng)用服務(wù)器。 這個系統(tǒng)部署在一個服務(wù)器上和一個數(shù)據(jù)庫服務(wù)器 上,過意該系統(tǒng)可以在公司的局域網(wǎng)中使用,也可以在廣域網(wǎng)中訪問。此外,由于該系統(tǒng)運用了許多 JS 腳本,所以使用瀏覽器時,應(yīng)選用 IE8 或以上的版本,以避免不兼容無法運行的問題。 20 5.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計 系統(tǒng)的結(jié)構(gòu)為傳統(tǒng)的 B/S 架構(gòu),即“瀏覽器 /服務(wù)器”架構(gòu) ;編碼模式為Extjs+Struts2+Hibernate;邏輯的結(jié)構(gòu)為數(shù)據(jù)的存儲,業(yè)務(wù)邏輯的處理,用戶界面的開發(fā)。為用戶提供更好的系統(tǒng)體驗。 5.3 系統(tǒng)業(yè)務(wù)流程 系統(tǒng)的業(yè)務(wù)流程,嚴(yán)格按照 J2EE 的應(yīng)用設(shè)計規(guī)范和 JavaScript 的引用規(guī)范。用戶從瀏覽器進(jìn)入系 統(tǒng),在系統(tǒng)中進(jìn)行業(yè)務(wù)操作的時候,在 extjs 中使用了一些控件 ,進(jìn)而出發(fā)了 action 的請求。 該請求被 ActionServlet 攔截,進(jìn)入 Struts 框架的控制。 系 統(tǒng)的所有 action 請求, 都 被 ActionServlet 攔截,由 Struts2 的 MVC 框架控制 .此外,在關(guān)于數(shù)據(jù)的交互中,系統(tǒng)使用的是 JSON 格式的數(shù)據(jù)來進(jìn)行數(shù)據(jù)傳輸,無論是數(shù)據(jù)庫向界面,還是界面向數(shù)據(jù)庫,都是這樣。 瀏覽器 中的 獲得數(shù)據(jù)后向服務(wù)器端發(fā)送請求( request), FilterDispatch 接收到從瀏覽器發(fā)送來的請求后將相應(yīng)的數(shù)據(jù)請求分 發(fā)到相應(yīng)的 Action 的 指定 方法進(jìn)行處理,方法通過 BeanFactory 創(chuàng)建實現(xiàn)類的對象 ,實現(xiàn)類對象調(diào)用其響應(yīng)的業(yè)務(wù)邏輯方法,業(yè)務(wù)邏輯層的方法又調(diào)用 Dao 層的方法進(jìn)行數(shù)據(jù)庫的操作,對數(shù)據(jù)進(jìn)行持久化。 相應(yīng)的時序圖如下圖 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 系統(tǒng)業(yè)務(wù)時序圖 21 5.4 系統(tǒng)各模塊類圖 由于系統(tǒng)的類和 javabean 內(nèi)的屬比較多,所以我根據(jù)系統(tǒng)的功能模塊,將類圖拆分成以下 10 個子類圖,分別詳細(xì)的說明了個各類的屬性和方法以及類之間的關(guān)系。 (1)登錄功能類圖 登錄功能用于實現(xiàn)用戶登錄,其類圖如圖 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)管理員信息管理功能類圖 管理員信息管理功能,用于實現(xiàn)管理員信息管理,見圖 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)部門信息管理功能類圖 部門信息管理功能,用于實現(xiàn)部門信息管理,見圖 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)職位信息管理功能類圖 職位信息管理功能,用于實現(xiàn)職位信息管理,見圖 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)員工信息管理功能類圖 員工信息管理功能,用于實現(xiàn)員工信息管理,見圖 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)培 訓(xùn)信息管理功能類圖 培訓(xùn)信息管理功能,用于實現(xiàn)培訓(xùn)信息管理,見圖 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 培訓(xùn)信息管理功能類圖 (7)招聘信息管理功能類圖 招聘信息管理功能,用于實現(xiàn)招聘信息管理,見圖 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)考勤信息管理功能類圖 考勤信息管理功能,用于實現(xiàn)考勤信息管理,見圖 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)薪資信息管理功能類圖 薪資信息管理功能,用于實現(xiàn)薪資信息管理,見圖 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)獎罰信息管理功能類圖 獎罰信息管理 功能,用于實現(xiàn)獎罰信息管理,見圖 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 系統(tǒng)代碼實現(xiàn) 由于系統(tǒng)的各模塊的相應(yīng)的實現(xiàn)方法基本相同,所以在這里,我只選用一個模塊來進(jìn)行實現(xiàn)。在此,我選用用戶登錄模塊和管理員信息管理模塊。 5.5.1 用戶登錄模塊實現(xiàn) (1)登錄界面,運用了 Extjs+struts2+hibernate 的技術(shù)實現(xiàn)的功能,在這里有輸入內(nèi)容校驗及回饋給后臺經(jīng)行數(shù)據(jù)庫數(shù)據(jù)對比的步驟。當(dāng)輸入正確的用戶名和密碼就可以登錄到系統(tǒng)的主頁面,失敗的話會彈出提示,并且回到登錄頁面。效果展示:如圖 5.12、圖 5.13、圖 5.14、圖 5.15 所示。 26 圖 5.12 登陸界面效果圖 圖 5.13 登錄成功效果圖 圖 5.14 登錄失敗效果圖 27 圖 5.15 系統(tǒng)主界面效果圖 (2)代碼實現(xiàn): 首先,因為這個系統(tǒng)的用戶界面是基于 extjs 的,所以,在 JSP 頁面中,只要引入Extjs 主要的兩個 js 文件和一個 CSS 文件。然后就是要引入登錄界面的 js。 1) Jsp 頁面代碼: (Login.jsp) 歡迎登陸 2)登錄頁面 JS 實現(xiàn): (js-login.js) 這里的代碼是負(fù)責(zé)生成登錄信息錄入窗口。等輸入信息后,點擊確定,觸發(fā) action,將 textfield 內(nèi)的信息傳到后臺進(jìn)行驗證。在此使用到了 EXTJS 自帶的 ajax 技術(shù)。當(dāng)服務(wù)器響應(yīng)了成功的信息,則跳轉(zhuǎn),響應(yīng)失敗的信息,先提示登錄失敗并清空textfield 內(nèi)的信息。 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:系統(tǒng)正在驗證您的登錄信息 ,請稍候 ., 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 負(fù)責(zé)獲取從前臺 submit 操作后傳過來的信息,并經(jīng)行驗證,如果數(shù)據(jù)庫有這個信息,就響應(yīng)成功信息,如果數(shù)據(jù)庫沒有這個信息,則響應(yīng)失敗信息。 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 的技術(shù)。主要的功能就是來查詢表中是否存在相應(yīng)的記錄。如果有,就返回這個記錄,如果沒有,就返回空。 在這里調(diào)用了一個自定義的工具類,用于創(chuàng)建 Hibernate 的數(shù)據(jù)庫連接,相應(yīng)代碼見附錄 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 管理員管理模塊實現(xiàn) (1)該模塊主要是給高級管理員提供一個可以增、刪、改、查管理員的界面。效果展示:如圖 5.16、圖 5.17、圖 5.18 所示。 圖 5.16 管理員管理效果圖 32 圖 5.17 管理員管理添加管理員 圖 5.17 管理員管理修改管理員 33 圖 5.18 管理員管理刪除管理員 (2)代碼實現(xiàn): 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進(jìn)行 for循環(huán)實現(xiàn)功能 /iE需要重新將 timeString轉(zhuǎn)換成數(shù)組 timeArray,再進(jìn)行循環(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 員工信息管理 招聘信息管理 培訓(xùn)信息管理 獎懲信息管理 薪資信息管理 考勤信息管理 $userInfo.username 2)管理員管理頁面 js:( sample.js) 這里定義了窗口中所有的控件,以及一些方法的調(diào)用等等。見附錄 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)管理員管理模塊相關(guān)前臺功能 js: (hrUsersOper.js) 是用于完成前臺中的一些功能的一些方法,如建立管理員添加、修改、刪除的頁面,和處理各種前臺的邏輯功能。代碼見附錄 2 4)管理員管理模塊相關(guān) Action: (UserAction.java) 用于處理前端發(fā)過來的數(shù)據(jù),并經(jīng)行相應(yīng)的處理,代碼見附錄 2 5)管理員管理模塊相關(guān) Dao: (HrUsersDao.java) 持久層,負(fù)責(zé)完成和數(shù)據(jù)庫的一些操作,被管理員管理模塊相關(guān) Action 調(diào)用,代碼見附錄 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 其他模塊實現(xiàn) 其他模塊,包括職位信息管理模塊、招聘信息管理模塊、培訓(xùn)信息管理模塊、薪資信息管理模塊、獎罰信息管理模塊和考勤信息管理模塊,這 6 個模 塊,和以上管理員信息管理模塊的實現(xiàn)過程基類似,基本上都是重復(fù)那個幾個步驟。然而不同是一下這兩點:1、在 action 中 response 的字符串不同,因為不同的信息,要封裝成不同的字符串發(fā) 39 給前臺。 2、就是 Struts2 框架處理不同 action。 這樣做的好處是使得整個人力資源管理系統(tǒng)結(jié)構(gòu)非常清晰,各個模塊劃分得很清楚,各自只處理各自功能頁面的請求,從而降低了耦合性。 6 系統(tǒng)測試 為了使得用戶在使用這個人力資源管理系統(tǒng)時,有更好的用戶體驗,并且不會出現(xiàn)一些操作時的不舒適,或者是一些數(shù)據(jù)無法讀取 或者保存,在此進(jìn)行系統(tǒng)的測試。只要運用了兩種測試方式:功能測試和界面測試。 6.1 功能測試 對系統(tǒng)的各項功能盡享驗證,更具功能測試用例,逐項測試,檢查系統(tǒng)是否達(dá)到需求分析中所提到的功能。 功能測試用例如下: 表 6.1 功能測試用例 序號 用例名稱 描述 預(yù)期結(jié)果 運行結(jié)果 1 非用戶登錄 輸入不正確信息 不能登錄 不能登錄,并彈出警告
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)職員勞動合同模板
- 商業(yè)城建設(shè)合同樣本
- 臨時租車司機(jī)招聘合同
- 2025合同補(bǔ)充、變更、解除申請表
- 2025上海室內(nèi)裝飾合同
- 2025城市裝修店面合同
- 2025合同評審單范文
- 2024年航空公司與機(jī)場間的航空運輸服務(wù)合同
- 2025個人購買土地合同范本
- 2024年餐飲服務(wù)加盟合同
- 政治-2025年八省適應(yīng)性聯(lián)考模擬演練考試暨2025年四川省新高考教研聯(lián)盟高三年級統(tǒng)一監(jiān)測試題和答案
- 2024年中國醫(yī)藥研發(fā)藍(lán)皮書
- 坍塌、垮塌事故專項應(yīng)急預(yù)案(3篇)
- 品管圈PDCA獲獎案例-心內(nèi)科降低心肌梗死患者便秘發(fā)生率醫(yī)院品質(zhì)管理成果匯報
- 2023年初級會計師《初級會計實務(wù)》真題及答案
- 2024-2025學(xué)年三年級上冊道德與法治統(tǒng)編版期末測試卷 (有答案)
- 2025蛇年學(xué)校元旦聯(lián)歡晚會模板
- 陜西省安康市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- WPS Office辦公軟件應(yīng)用教學(xué)教案
- 2024年度租賃期滿退房檢查清單:租戶與房東的交接確認(rèn)單
- 第八版糖尿病
評論
0/150
提交評論