

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于java的公司人力資源管理系統(tǒng)</p><p><b> 中國·珠海</b></p><p><b> 二○一三年五月</b></p><p> 學 院:專 業(yè):姓 名:指導老師:</p><p> 學 號:職 稱:</p&
2、gt;<p><b> 誠信承諾書</b></p><p> 本人鄭重承諾:本人承諾呈交的畢業(yè)設計《基于java的公司人力資源管理系統(tǒng)》是在指導教師的指導下,獨立開展研究取得的成果,文中引用他人的觀點和材料,均在文后按順序列出其參考文獻,設計使用的數(shù)據(jù)真實可靠。</p><p> 本人簽名: </p><
3、;p> 日期: 年 月 日</p><p> 基于java的公司人力資源管理系統(tǒng)</p><p><b> 摘 要</b></p><p> 目前,社會上的各種各樣的中小型企業(yè)中,所使用的人力資源管理系統(tǒng)大多都是基于B/S架構,所以,我選用當前比較熱門的Struts2+Hibernate架構來進行本系統(tǒng)的搭建
4、。同時,為了界面的美觀,我使用了EXTJS的javascript技術來設計用戶使用界面,為客戶提供一個流暢和美觀的web界面。數(shù)據(jù)庫采用了oracle。在數(shù)據(jù)傳輸方面,使用了JSON和AJAX的技術實現(xiàn)信息的異步操作。</p><p> 根據(jù)軟件開發(fā)的流程,對本系統(tǒng)的開發(fā)進行了需求分析,確定了系統(tǒng)將要實現(xiàn)的功能模塊:員工信息管理、招聘信息管理、培訓信息管理、獎懲信息管理、薪資信息管理、考勤信息管理、部門信息管理
5、、管理員信息管理、職位信息管理,這九個模塊。然后根據(jù)需要,在前臺實現(xiàn)了各個模塊的增、刪、改、查的操作。</p><p> 本系統(tǒng)運用了AJAX技術,在登陸之后,實現(xiàn)了無頁面跳轉的數(shù)據(jù)異步加載,使得系統(tǒng)運行時更加流暢。</p><p> 關鍵詞:Struts2;hibernate;ExtJs;B/S架構;Json;面向對象;人力資源管理系統(tǒng);</p><p>
6、Company human resources management system based on Java</p><p><b> Abstract</b></p><p> At present, most of the human resource management systems used bysmall and medium enterprise
7、s 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 t
8、o 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. </p><p> According to the so
9、ftware 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,
10、information management, rewards and punishment information management, salary information management, attendance information management, department of information management, administrator information management, informa
11、tion management, position the nine module</p><p> This system uses the AJAX technology, achieving no page jump asynchronous loading of data after login to make the system run more smoothly. </p><
12、p> Keywords: Struts2; Hibernate; B / S structure; ExtJs;Json; object-oriented; Human Resources</p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b&
13、gt; 1.1概述1</b></p><p> 1.2問題的現(xiàn)狀及其意義1</p><p> 1.3本設計的目標2</p><p> 2開發(fā)環(huán)境及相關技術介紹3</p><p> 2.1系統(tǒng)開發(fā)環(huán)境3</p><p><b> 2.2技術介紹3</b></
14、p><p> 2.2.1系統(tǒng)設計的主要技術3</p><p> 2.2.2 Struts2的介紹3</p><p> 2.2.3 Hibernate的介紹4</p><p> 2.2.4 ExtJS的介紹4</p><p> 2.2.5 Json的介紹4</p><p> 2.
15、2.6面向對象的介紹5</p><p><b> 3系統(tǒng)需求分析6</b></p><p> 3.1可行性分析6</p><p> 3.1.1 技術可行性6</p><p> 3.1.2 經(jīng)濟可行性6</p><p> 3.1.3 環(huán)境可行性6</p><
16、p> 3.2功能需求分析6</p><p><b> 4總體設計8</b></p><p> 4.1系統(tǒng)的總體功能框架設計8</p><p> 4.2系統(tǒng)各模塊用例圖分析8</p><p> 4.3業(yè)務流程圖14</p><p> 4.4數(shù)據(jù)庫設計分析14</p
17、><p> 4.4.1數(shù)據(jù)庫總體設計14</p><p> 4.4.2數(shù)據(jù)庫數(shù)據(jù)字典15</p><p> 5系統(tǒng)詳細設計20</p><p> 5.1系統(tǒng)運行環(huán)境和部署架構20</p><p> 5.2系統(tǒng)體系結構設計20</p><p> 5.3系統(tǒng)業(yè)務流程20</
18、p><p> 5.4系統(tǒng)各模塊類圖21</p><p> 5.5系統(tǒng)代碼實現(xiàn)25</p><p> 5.5.1用戶登錄模塊實現(xiàn)25</p><p> 5.5.2 管理員管理模塊實現(xiàn)32</p><p> 5.4.3 員工信息管理展示37</p><p> 5.4.4 部門信息管
19、理展示38</p><p> 5.4.5 其他模塊實現(xiàn)39</p><p><b> 6系統(tǒng)測試40</b></p><p> 6.1 功能測試40</p><p> 6.2 界面測試41</p><p><b> 7設計總結42</b></p&g
20、t;<p><b> 參考文獻43</b></p><p><b> 謝 辭44</b></p><p><b> 附 錄45</b></p><p><b> 1 前言</b></p><p><b> 1.1
21、概述</b></p><p> 人力資源管理信息系統(tǒng)(Human Resource Information System, HRIS)是一個用來為制定人力資源決策提供信息的集成系統(tǒng),是為了提高企業(yè)人力資源管理水平而開發(fā)的。主要目標是通過對員工及人力資源活動信息(招聘、工資)等的編制來提高效率,及時與用戶溝通,用最少的人力、物力滿足用戶需求。</p><p> 人力資源管理信
22、息系統(tǒng)在企業(yè)的有效實施,將會促進企業(yè)人力資源管理向規(guī)范化、標準化、決策科學化發(fā)展;促使企業(yè)人力資源管理人員從日常大量的行政事務性工作中解脫出來,逐步專注于對企業(yè)的人力資源管理活動進行計劃,組織,監(jiān)督和咨詢職能;調(diào)動企業(yè)各級管理者和每一位普通員工都積極參與到人力資源管理活動中來。并且通過大力推進人力資源管理信息化建設,優(yōu)化了企業(yè)人力資源管理流程,建立起開放式的人力資源管理模式,從而提升企業(yè)人力資源管理水平和管理效率,充分調(diào)動一切有利因素,
23、最終使人成為企業(yè)經(jīng)營發(fā)展中真正的第一資源。</p><p> 人力資源管理信息系統(tǒng)是人力資源管理的電子信息化,是企業(yè)基于高速度、大容量的硬件和先進的IT軟件的人力資源管理模式,即人力資源管理信息化或自動化。</p><p> 1.2問題的現(xiàn)狀及其意義</p><p> 隨著時代的發(fā)展,社會的進步,IT領域的日新月異,越來越多的企業(yè)建立、發(fā)展、壯大、成熟。截止到
24、2011年,我國工商管理局注冊的企業(yè)超過了3500萬,其中中小型企業(yè)占了99%。這些都是人力資源管理系統(tǒng)的潛在客戶。</p><p> 隨著公司的成長和壯大,公司里的員工也逐漸增加,每年的人力資源管理的成本也不斷增加,這不僅耗費公司的資金,同時也耗費了大量的人力。所以,公司需要一個系統(tǒng),一個能夠管理公司人力資源的系統(tǒng)。</p><p> 近年來,一些較大的企業(yè)經(jīng)常自行開發(fā)HR管理系統(tǒng),
25、這樣可以節(jié)省他們許多不必要的浪費。但是實踐證明,這個方式實現(xiàn)起來很難。一方面,企業(yè)內(nèi)部的人員往往缺乏項目經(jīng)驗,結果做出的東西絕大部分不符合客戶的需求;另一方面,這種形式的軟件開發(fā)不參與市場競爭,僅僅是供給內(nèi)部使用,極大地可能導致開發(fā)人員的敷衍了事,使得系統(tǒng)無法起到它的作用。</p><p> 此外,就是我國正處于傳統(tǒng)管理方式向人力資源管理過渡的時期,企業(yè)中的管理方法和思想都在發(fā)生著巨大的變化,這是對HR管理系統(tǒng)
26、的一個巨大的挑戰(zhàn)。</p><p> 本系統(tǒng)的主要針對的對象是一些中小型企業(yè),對他們的人力資源,按照企業(yè)的需求,對其績效考核管理、薪酬管理等進行了完善的開發(fā)。利用現(xiàn)在較新的技術,實現(xiàn)人力資源管理系統(tǒng)的精細化、自動化、人性化,為企業(yè)的發(fā)展做出理性的決策,提高人員的管理利用率,為公司的發(fā)展和人才儲備提供一個完善的、良好的平臺。</p><p><b> 1.3本設計的目標<
27、/b></p><p> 利用現(xiàn)有的技術,了解人力資源管理系統(tǒng)開發(fā)的流程和所要實現(xiàn)的主要功能,同時對一些企業(yè)的內(nèi)部的管理進行了解,進而對系統(tǒng)進行特定功能的擴展。</p><p> 另一方面,就是要打破傳統(tǒng)人力資源管理系統(tǒng)的一貫的風格,打造出一個全新的,更具有親和力的系統(tǒng),使得企業(yè)的員工愿意使用本系統(tǒng)。</p><p> 2開發(fā)環(huán)境及相關技術介紹</
28、p><p><b> 2.1系統(tǒng)開發(fā)環(huán)境</b></p><p> 使用B/S架構,運行環(huán)境是JDK1.7.0_09</p><p> 服務器操作系統(tǒng):Windows 7</p><p> 數(shù)據(jù)庫:Oracle 10G</p><p> Web服務器:apache-tomcat-6.0.32
29、</p><p> 開發(fā)工具:Myeclipse10,Ext Desiger,PL/SQL Developer,Power Desiger</p><p><b> 2.2技術介紹</b></p><p> 2.2.1系統(tǒng)設計的主要技術</p><p> 本人力資源管理系統(tǒng)是在Extjs+Struts2+Hibe
30、rnate框架的基礎上開發(fā)的。是一個典型的J2EE系統(tǒng)。所以系統(tǒng)也分為表現(xiàn)層、業(yè)務邏輯層和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是基于javascript的ExtJS技術,而數(shù)據(jù)的交互格式則使用JSON技術、這些在下面有詳細的介紹。</p><p> 主要使用技術:Struts2、Hiber
31、nate、ExtJs、JavaScript、HTML、Json</p><p> 2.2.2 Struts2的介紹</p><p> STRUTS是Apache組織的一個開放源碼的項目,它是一個可重用的MVC設計。STRUTS應用有3個主要部件:Servlet及負責具體業(yè)務處理的Action類(Controller),JSP頁面(view)和STRUTS應用的業(yè)務邏輯封裝(Model)
32、。</p><p> STRUTS實質上就是在JSP基礎上實現(xiàn)的一個MVC框架,Struts2框架的大致處理流程如下:</p><p><b> 瀏覽器發(fā)送請求</b></p><p> 核心控制器FilterDispatcher根據(jù)請求決定調(diào)用合適的Action</p><p> Web Work的攔截器鏈自動
33、對請求應用通用功能</p><p> 回調(diào)Action的execute方法,該方法先獲取用戶請求參數(shù),然后執(zhí)行某種數(shù)據(jù)庫操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫中檢索信息。實際上,因為Action只是一個控制器,它會調(diào)用業(yè)務邏輯組件來處理用戶的請求</p><p> Action的execute方法處理結果信息將被輸出到瀏覽器中,可以是HTML頁面、圖像,也可以是PDF文檔或者
34、其他文檔。此時支持的視圖技術非常多,既支持JSP,也支持Velocity、FreeMarker等模板技術</p><p> 2.2.3 Hibernate的介紹</p><p> Hibernate是一個面向Java環(huán)境的對象/關系映射(ORM)工具,是J2EE應用的持久層解決方案,Hibernate不僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度縮短使用
35、JDBC處理持久化的時間。Hibernate與其他ORM框架對比具有如下優(yōu)點:</p><p> 開源和免費的License,方便需要時研究源代碼,改寫源代碼,進行功能定制</p><p> 輕量級封裝,避免引入過多復雜的問題,調(diào)試容易,減輕程序員負擔</p><p> 具有可擴展性,API開發(fā)。功能不夠用的時候,自己編碼進行擴展</p><
36、;p> 開發(fā)者活躍,產(chǎn)品有穩(wěn)定的發(fā)展保障</p><p> 2.2.4 ExtJS的介紹</p><p> ExtJS是一種主要用于創(chuàng)建前端用戶界面,是一個基本與后臺技術無關的前端ajax框架。</p><p> ExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應用,是一個用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個與后臺技術無關的前
37、端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應用中。ExtJs最開始基于YUI技術,由開發(fā)人員JackSlocum開發(fā),通過參考JavaSwing等機制來組織可視化組件,無論從UI界面上CSS樣式的應用,到數(shù)據(jù)解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術的精品。</p><p> Ext的UI組件模型和開發(fā)理念脫胎、成型于Yahoo組件庫YU
38、I和Java平臺上Swing兩者,并為開發(fā)者屏蔽了大量跨瀏覽器方面的處理。相對來說,EXT要比開發(fā)者直接針對DOM、W3C對象模型開發(fā)UI組件輕松。</p><p> 2.2.5 Json的介紹</p><p> JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edit
39、ion - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。</p><p> json簡單說就是javascript中的對象和數(shù)組,所以這兩種結構就是對象和數(shù)組2種
40、結構,通過這兩種結構可以表示各種復雜的結構</p><p> 1、對象:對象在js中表示為“{}”擴起來的內(nèi)容,數(shù)據(jù)結構為 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。</p><p> 2、
41、數(shù)組:數(shù)組在js中是中括號“[]”擴起來的內(nèi)容,數(shù)據(jù)結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。</p><p> 經(jīng)過對象、數(shù)組2種結構就可以組合成復雜的數(shù)據(jù)結構了。</p><p> 2.2.6面向對象的介紹
42、</p><p> 隨著計算機硬件設備功能的進一步提高,使得面向對象的編程成為可能。面向對象的編程更加符合人類的思維方式,編寫的程序更加健壯和強大,更重要的是,面向對象編程鼓勵創(chuàng)造性的程序設計。面向對象編程是一種先進的編程思想,更加容易解決復雜的問題。面向對象編程的主要特征有:</p><p> (1)封裝性:面向對象編程核心思想之一就是將數(shù)據(jù)和對數(shù)據(jù)的操作封裝在一起。通過抽象,即從具
43、體的實例中抽取共同的性質形成一般的概念,比如類的概念。</p><p> (2)繼承:繼承體現(xiàn)了一種編程模式。子類可以繼承父類的屬性和功能,即子類繼承了父類所具有的數(shù)據(jù)和數(shù)據(jù)上的操作,同時又可以增添子類獨有的數(shù)據(jù)和數(shù)據(jù)上的操作。</p><p> (3)多態(tài):多態(tài)性是指允許不同的類的對象對同一消息做出相應。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享
44、等優(yōu)勢,很好的解決了應用程序中函數(shù)同名問題。</p><p><b> 3系統(tǒng)需求分析</b></p><p><b> 3.1可行性分析</b></p><p> 3.1.1 技術可行性</p><p> 應為已經(jīng)基本上掌握了開發(fā)時所要使用的技術,而且在項目之外也做過一些關于這方面的DEM
45、O,所以在規(guī)定的時間和某些限制的條件下,功能基本可以實現(xiàn),開發(fā)可以完成。</p><p> 3.1.2 經(jīng)濟可行性</p><p> 由于在系統(tǒng)的開發(fā)中,用到的很多技術,例如Struts2、Hibernate、EXTJS3.0、JSON等,都是開源的,所以,在開發(fā)中,基本沒有什么成本的產(chǎn)生。這個系統(tǒng)經(jīng)過未來的改進后,我相信它所帶來的效益遠遠會超過它的開發(fā)成本。在經(jīng)濟這方面,絕對是一本萬
46、利。</p><p> 3.1.3 環(huán)境可行性</p><p> 由于在開發(fā)中,使用了一些javascript的dom的操作,所以,本系統(tǒng)在IE8以上的瀏覽器版本下可以正常運行,在其他瀏覽器,如firefox、chrome等,可能出現(xiàn)一些兼容問題。</p><p><b> 3.2功能需求分析</b></p><p&g
47、t; 功能需求定義了開發(fā)人員在系統(tǒng)開發(fā)時必須實現(xiàn)的軟件功能,這樣的話用戶就可以通過系統(tǒng)來完成他所要做的事。根據(jù)市面上人力資源管理系統(tǒng)的基本業(yè)務需求,并經(jīng)過自己的分析,得到了系統(tǒng)的功能模塊</p><p> 通過分析,本系統(tǒng)應該實現(xiàn)以下功能:</p><p> ?。?) 登錄功能:用于防止非法用戶的非法登錄,提高了系統(tǒng)的保密性;</p><p> (2) 員工信
48、息管理:管理員和高級管理員可對公司員工的基本信息進行增加、刪除、修改和查詢的操作</p><p> (3) 招聘信息管理:管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。</p><p> (4) 培訓信息管理:管理員和高級管理員根據(jù)具體的情況設置人員培訓,可修改、刪除、添加培訓信息,為員工的升遷提供科學的依據(jù)。</p><p> ?。?) 獎懲信息管理:
49、管理員和高級管理員可以對獎懲信息的增加、刪除、查詢、修改操作,為薪資、升遷等提供依據(jù)。</p><p> ?。?) 薪資信息管理:管理員和高級管理員可以對員工薪資信息進行的增加和查詢等。</p><p> ?。?) 考勤信息管理:管理員和高級管理員查看考勤信息,實現(xiàn)公司管理員對當日為參加考勤人員的考勤處理。</p><p> (8) 高級操作模塊:高級管理員系統(tǒng)的
50、管理員、公司部門、公司職位進行管理(增加、刪除、查看、修改)。</p><p><b> 4總體設計</b></p><p> 4.1系統(tǒng)的總體功能框架設計</p><p> 根據(jù)系統(tǒng)的功能需求分析后,設計出的系統(tǒng)的總體架構圖,如圖4.1所示。</p><p> 圖4.1 系統(tǒng)總體架構圖</p>&
51、lt;p> 4.2系統(tǒng)各模塊用例圖分析</p><p> ?。?)系統(tǒng)的總體用例圖</p><p> 高級管理員可以使用系統(tǒng)中的所有功能,而管理員除了管理員管理、部門管理和職位管理不能使用外,其他和高級管理員一樣。高級管理員在管理員管理中,可以修改管理員的權限,如圖4.2所示。</p><p> 圖4.2 系統(tǒng)用例圖</p><p&g
52、t; ?。?)員工信息管理的用例圖</p><p> 用例名稱:員工信息管理</p><p> 簡要描述:管理員和高級管理員可對公司員工的基本信息進行增加、刪除、修改和查詢的操作</p><p> 參與者: 高級管理員、管理員。用例圖如圖4.3所示:</p><p> 圖4.3 員工信息管理用例圖</p><p&
53、gt; (3)招聘信息管理的用例圖</p><p> 用例名稱:招聘信息管理。</p><p> 簡要描述:管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。</p><p> 參與者: 管理員、高級管理員。</p><p> 用例圖如圖4.4所示:</p><p> 圖4.4 招聘信息管理用例圖&l
54、t;/p><p> (4)培訓信息管理的用例圖</p><p> 用例名稱:培訓信息管理</p><p> 簡要描述:高級管理員和管理員可以對培訓進行添加、修改、刪除等操作。</p><p> 參與者: 管理員、高級管理員。</p><p> 用例圖如圖4.5所示:</p><p>
55、圖4.5 培訓信息管理用例圖</p><p> ?。?)獎罰管理的用例圖</p><p><b> 用例名稱:獎罰管理</b></p><p> 簡要描述:高級管理員和管理員可以對員工的獎罰信息進行添加、修改、刪除等操作。</p><p> 參與者: 管理員、高級管理員。</p><p>
56、 用例圖如圖4.6所示:</p><p> 圖4.6 獎罰管理用例圖</p><p> ?。?)薪資信息管理的用例圖</p><p> 用例名稱:薪資信息管理</p><p> 簡要描述:系統(tǒng)管理員可以對員工薪資進行核算和發(fā)放,也可以查看所有員工的工資發(fā)放情況。</p><p> 參與者: 管理員、高級管理
57、員。</p><p> 用例圖如圖4.7所示:</p><p> 圖4.7 薪資信息管理用例圖</p><p> ?。?)考勤信息管理的用例圖</p><p> 用例名稱:考勤信息管理</p><p> 簡要描述:管理員、高級管理員查看、刪除考勤信息,考勤記錄的添加油打卡機的當日信息來自動錄入。 </p&
58、gt;<p> 參與者: 管理員、高級管理員。</p><p> 用例圖如圖4.8所示:</p><p> 圖4.8 考勤信息管理用例圖</p><p> ?。?)管理員管理的用例圖</p><p> 用例名稱:管理員管理</p><p> 簡要描述:高級管理員對管理員的信息進行增加、刪除、修
59、改和查詢。 </p><p> 參與者: 高級管理員。</p><p> 用例圖如圖4.9所示:</p><p> 圖4.9 管理員管理用例圖</p><p> (9)部門管理的用例圖</p><p><b> 用例名稱:部門管理</b></p><p> 簡
60、要描述:高級管理員對部門的信息進行增加、刪除、修改和查詢。 </p><p> 參與者: 高級管理員。</p><p> 用例圖如圖4.10所示:</p><p> 圖4.10 部門管理用例圖</p><p> ?。?0)職位管理的用例圖</p><p><b> 用例名稱:職位管理</b&g
61、t;</p><p> 簡要描述:高級管理員對職位的信息進行增加、刪除、修改和查詢。 </p><p> 參與者: 高級管理員。</p><p> 用例圖如圖4.11所示:</p><p> 圖4.11 職位管理用例圖</p><p><b> 4.3業(yè)務流程圖</b></p&g
62、t;<p> 根據(jù)人力資源管理系統(tǒng)的需求分析和各各用例的分析,繪制出該系統(tǒng)的業(yè)務流程圖,見圖4.12。</p><p> 圖4.12 人力資源管理系統(tǒng)業(yè)務流程圖</p><p> 4.4數(shù)據(jù)庫設計分析</p><p> 4.4.1數(shù)據(jù)庫總體設計</p><p> 本系統(tǒng)使用的是oracle 10G,主要設計的表共有9個
63、,分別是:管理員信息表,部門信息表,職位信息表,員工信息表,培訓信息表,獎罰信息表,薪資信息表,考勤信息表,招聘信息表。系統(tǒng)的數(shù)據(jù)庫關系結構圖如下圖4.13所示。</p><p> 圖4.13 人力資源管理數(shù)據(jù)庫關系結構圖</p><p> 4.4.2數(shù)據(jù)庫數(shù)據(jù)字典</p><p> ?。?)管理員信息表(hr_users)</p><p&g
64、t; 管理員信息表用于存放管理員的信息,其結構見表4.1。</p><p> 表4.1 管理員信息表</p><p> 備注: 1、userType:1為高級管理員,2為普通管理員</p><p> ?。?)部門信息表(hr_dept)</p><p> 部門信息表用于存放公司部門的信息,其結構見表4.2。</p>&l
65、t;p><b> 表4.2部門信息表</b></p><p> (3)職位信息表(hr_duty)</p><p> 職位信息表用于存放公司職位的信息,其結構見表4.3。</p><p><b> 表4.3職位信息表</b></p><p> ?。?)員工信息表(hr_employee
66、)</p><p> 員工信息表用于存放公司員工的信息,其結構見表4.4。</p><p><b> 表4.4員工信息表</b></p><p> 備注: 1、employeeSex:0為女性,1為男性</p><p> 2、employeeIcon:保留</p><p> (5)招聘信
67、息表(hr_recruiment)</p><p> 招聘信息表用于存放公司招聘的信息,其結構見表4.5。</p><p><b> 表4.5招聘信息表</b></p><p> ?。?)培訓信息表(hr_train)</p><p> 培訓信息表用于存放公司培訓的信息,其結構見表4.6。</p>&
68、lt;p><b> 表4.6培訓信息表</b></p><p> 備注: 1、trainGrade:0為初級,1為中級,2為高級</p><p> ?。?)薪資信息表(hr_salary)</p><p> 薪資信息表用于存放公司薪資的信息,其結構見表4.7。</p><p><b> 表4.7薪
69、資信息表</b></p><p> 備注: 1、員工的實拿工資為:salaryBasic+ salaryBouns- salaryForfeit</p><p> ?。?)獎罰信息表(hr_rewardpunish)</p><p> 獎罰信息表用于存放公司員工的獎罰的信息,其結構見表4.8。</p><p><b>
70、; 表4.8獎罰信息表</b></p><p> 備注: 1、rpName:用于指出這個字段是獎勵還是懲罰</p><p> 2、rpReleaseMan:為當前登錄系統(tǒng)的管理員</p><p> (9)考勤信息表(hr_attendance)</p><p> 考勤信息表用于存放公司員工的考勤的信息,其結構見表4.9。
71、</p><p><b> 表4.8考勤信息表</b></p><p> 備注: 1、attendIsWork:0為缺勤,1為上班</p><p><b> 5系統(tǒng)詳細設計</b></p><p> 5.1系統(tǒng)運行環(huán)境和部署架構</p><p> 系統(tǒng)運行的操作系統(tǒng)
72、是WINDOWS7,數(shù)據(jù)數(shù)據(jù)庫采用oracle 10G,服務器則采用apache-tomcat-6.0.32應用服務器。</p><p> 這個系統(tǒng)部署在一個服務器上和一個數(shù)據(jù)庫服務器上,過意該系統(tǒng)可以在公司的局域網(wǎng)中使用,也可以在廣域網(wǎng)中訪問。此外,由于該系統(tǒng)運用了許多JS腳本,所以使用瀏覽器時,應選用IE8或以上的版本,以避免不兼容無法運行的問題。</p><p> 5.2系統(tǒng)體系
73、結構設計</p><p> 系統(tǒng)的結構為傳統(tǒng)的B/S架構,即“瀏覽器/服務器”架構;編碼模式為Extjs+Struts2+Hibernate;邏輯的結構為數(shù)據(jù)的存儲,業(yè)務邏輯的處理,用戶界面的開發(fā)。為用戶提供更好的系統(tǒng)體驗。</p><p><b> 5.3系統(tǒng)業(yè)務流程</b></p><p> 系統(tǒng)的業(yè)務流程,嚴格按照J2EE的應用設計
74、規(guī)范和JavaScript的引用規(guī)范。用戶從瀏覽器進入系統(tǒng),在系統(tǒng)中進行業(yè)務操作的時候,在extjs中使用了一些控件,進而出發(fā)了action的請求。該請求被ActionServlet攔截,進入Struts框架的控制。系統(tǒng)的所有action請求,都被ActionServlet攔截,由Struts2的MVC框架控制.此外,在關于數(shù)據(jù)的交互中,系統(tǒng)使用的是JSON格式的數(shù)據(jù)來進行數(shù)據(jù)傳輸,無論是數(shù)據(jù)庫向界面,還是界面向數(shù)據(jù)庫,都是這樣。<
75、;/p><p> 瀏覽器中的獲得數(shù)據(jù)后向服務器端發(fā)送請求(request),F(xiàn)ilterDispatch接收到從瀏覽器發(fā)送來的請求后將相應的數(shù)據(jù)請求分發(fā)到相應的Action的指定方法進行處理,方法通過BeanFactory創(chuàng)建實現(xiàn)類的對象,實現(xiàn)類對象調(diào)用其響應的業(yè)務邏輯方法,業(yè)務邏輯層的方法又調(diào)用Dao層的方法進行數(shù)據(jù)庫的操作,對數(shù)據(jù)進行持久化。相應的時序圖如下圖5.1所示。</p><p>
76、; 圖5.1 系統(tǒng)業(yè)務時序圖</p><p> 5.4系統(tǒng)各模塊類圖</p><p> 由于系統(tǒng)的類和javabean內(nèi)的屬比較多,所以我根據(jù)系統(tǒng)的功能模塊,將類圖拆分成以下10個子類圖,分別詳細的說明了個各類的屬性和方法以及類之間的關系。</p><p><b> (1)登錄功能類圖</b></p><p>
77、 登錄功能用于實現(xiàn)用戶登錄,其類圖如圖5.2所示。 </p><p> 圖5.2 登錄功能類圖</p><p> (2)管理員信息管理功能類圖</p><p> 管理員信息管理功能,用于實現(xiàn)管理員信息管理,見圖5.3</p><p> 圖5.3 管理員信息管理功能類圖</p><p> (3)部門信息管理功能
78、類圖</p><p> 部門信息管理功能,用于實現(xiàn)部門信息管理,見圖5.4</p><p> 圖5.4 部門信息功能類圖</p><p> (4)職位信息管理功能類圖</p><p> 職位信息管理功能,用于實現(xiàn)職位信息管理,見圖5.5</p><p> 圖5.5 職位信息管理功能類圖</p>
79、<p> (5)員工信息管理功能類圖</p><p> 員工信息管理功能,用于實現(xiàn)員工信息管理,見圖5.6。</p><p> 圖5.6 員工信息管理功能類圖</p><p> (6)培訓信息管理功能類圖</p><p> 培訓信息管理功能,用于實現(xiàn)培訓信息管理,見圖5.7。</p><p> 圖
80、5.7 培訓信息管理功能類圖</p><p> (7)招聘信息管理功能類圖</p><p> 招聘信息管理功能,用于實現(xiàn)招聘信息管理,見圖5.8</p><p> 圖5.8 招聘信息管理功能類圖</p><p> (8)考勤信息管理功能類圖</p><p> 考勤信息管理功能,用于實現(xiàn)考勤信息管理,見圖5.9
81、。</p><p> 圖5.9 考勤信息管理功能類圖</p><p> (9)薪資信息管理功能類圖</p><p> 薪資信息管理功能,用于實現(xiàn)薪資信息管理,見圖5.10。</p><p> 圖5.10 薪資信息管理功能類圖</p><p> (10)獎罰信息管理功能類圖</p><p&g
82、t; 獎罰信息管理功能,用于實現(xiàn)獎罰信息管理,見圖5.11</p><p> 圖5.11 獎罰信息管理功能類圖</p><p><b> 5.5系統(tǒng)代碼實現(xiàn)</b></p><p> 由于系統(tǒng)的各模塊的相應的實現(xiàn)方法基本相同,所以在這里,我只選用一個模塊來進行實現(xiàn)。在此,我選用用戶登錄模塊和管理員信息管理模塊。</p>&
83、lt;p> 5.5.1用戶登錄模塊實現(xiàn)</p><p> (1)登錄界面,運用了Extjs+struts2+hibernate的技術實現(xiàn)的功能,在這里有輸入內(nèi)容校驗及回饋給后臺經(jīng)行數(shù)據(jù)庫數(shù)據(jù)對比的步驟。當輸入正確的用戶名和密碼就可以登錄到系統(tǒng)的主頁面,失敗的話會彈出提示,并且回到登錄頁面。效果展示:如圖5.12、圖5.13、圖5.14、圖5.15所示。</p><p> 圖5.
84、12 登陸界面效果圖</p><p> 圖5.13登錄成功效果圖</p><p> 圖5.14登錄失敗效果圖</p><p> 圖5.15系統(tǒng)主界面效果圖</p><p><b> (2)代碼實現(xiàn):</b></p><p> 首先,因為這個系統(tǒng)的用戶界面是基于extjs的,所以,在JSP
85、頁面中,只要引入Extjs主要的兩個js文件和一個CSS文件。然后就是要引入登錄界面的js。</p><p> 1)Jsp頁面代碼:(Login.jsp)</p><p> <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>&l
86、t;/p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"></p><p><b> <html></b></p><p><b> <head></b></p>
87、<p> <title>歡迎登陸</title></p><p> <link rel="stylesheet" type="text/css" href="../ext-3.0.0-noExample/resources/css/ext-all.css" /></p><p>
88、 <script type="text/javascript" src="../ext-3.0.0-noExample/adapter/ext/ext-base.js"></script></p><p> <script type="text/javascript" src="../ext-3.0.0-noEx
89、ample/ext-all.js"></script></p><p> <script type="text/javascript" src="js-login.js"></script></p><p><b> </head></b></p>
90、<p><b> <body></b></p><p> <img src='../desktop/wallpapers/desktop_bg2.jpg'></p><p><b> </body></b></p><p><b> <
91、/html></b></p><p> 2)登錄頁面JS實現(xiàn):(js-login.js)</p><p> 這里的代碼是負責生成登錄信息錄入窗口。等輸入信息后,點擊確定,觸發(fā)action,將textfield內(nèi)的信息傳到后臺進行驗證。在此使用到了EXTJS自帶的ajax技術。當服務器響應了成功的信息,則跳轉,響應失敗的信息,先提示登錄失敗并清空textfield內(nèi)的信
92、息。</p><p> Ext.onReady(function(){</p><p> Ext.QuickTips.init();</p><p> var form = new Ext.FormPanel({</p><p> height:100,</p><p> width:300,</p&g
93、t;<p> frame:true,</p><p> labelWidth:60,</p><p> labelAlign:'right',</p><p> baseCls:'x-plain',</p><p><b> items:[{</b></p&g
94、t;<p> xtype:'textfield',</p><p> name:'username',</p><p> fieldLabel:'用戶名',</p><p> maxLength:10,</p><p> minLength:1,</p>&
95、lt;p> allowBlank:false,</p><p> msgTarget:'side'</p><p><b> },{</b></p><p> xtype:'textfield',</p><p> name:'password',</
96、p><p> inputType:'password',</p><p> fieldLabel:'密 碼',</p><p> maxLength:10,</p><p> minLength:1,</p><p> allowBlank:false,</p>&l
97、t;p> msgTarget:'side'</p><p><b> }]</b></p><p><b> });</b></p><p> var window = new Ext.Window({</p><p> title:'用戶登錄',&l
98、t;/p><p> width:300,</p><p> height:150,</p><p> plain:true,</p><p> bodyStyle:'padding:5px;',</p><p> buttonAlign:'center',</p>&
99、lt;p> colseable:false,</p><p> resizable:false,</p><p> items:form,</p><p> buttons:[{</p><p> text:'登錄',</p><p> listeners:{</p>&
100、lt;p> 'click':function(){</p><p> if(form.getForm().isValid()){</p><p> form.getForm().submit({</p><p> url:'login',</p><p> method:"POST&q
101、uot;,</p><p> waitMsg:'系統(tǒng)正在驗證您的登錄信息,請稍候...',</p><p> success:function(form,action){</p><p> Ext.Msg.confirm('提示',action.result.msg,function(btn){ </p>
102、;<p> if(btn=='yes'){ </p><p> top.location="../desktop/desktop.jsp"; </p><p> }else{ } },this);</p><p><b> },</b></p><
103、p> failure:function(){</p><p> Ext.Msg.alert('提示','賬號或密碼錯誤');</p><p><b> }</b></p><p><b> });</b></p><p><b> }<
104、/b></p><p><b> }</b></p><p><b> }</b></p><p><b> },{</b></p><p> text:'重置',</p><p> listeners:{</p&g
105、t;<p> 'click':function(){</p><p> form.getForm().reset();</p><p><b> }</b></p><p><b> }</b></p><p><b> }]</b>&l
106、t;/p><p><b> });</b></p><p> window.show();</p><p><b> });</b></p><p> 3)登錄頁面的action:(LoginAction.java)</p><p> 這個Action負責獲取從前臺su
107、bmit操作后傳過來的信息,并經(jīng)行驗證,如果數(shù)據(jù)庫有這個信息,就響應成功信息,如果數(shù)據(jù)庫沒有這個信息,則響應失敗信息。</p><p> package com.wyc.hr.action;</p><p> import javax.servlet.http.HttpServletRequest;</p><p> import javax.servlet.
108、http.HttpServletResponse</p><p> import org.apache.struts2.ServletActionContext;</p><p> import com.opensymphony.xwork2.ActionSupport;</p><p> import com.wyc.hr.dao.LoginDao;<
109、/p><p> import com.wyc.hr.domain.HrUsers;</p><p> public class LoginAction extends ActionSupport {</p><p> private String username;</p><p> private String password;<
110、;/p><p> public String getUsername() {</p><p> return username;</p><p><b> }</b></p><p> public void setUsername(String username) {</p><p> t
111、his.username = username;</p><p><b> }</b></p><p> public String getPassword() {</p><p> return password;</p><p><b> }</b></p><p&g
112、t; public void setPassword(String password) {</p><p> this.password = password;</p><p><b> }</b></p><p> public String login() throws Exception{</p><p>
113、 HttpServletRequest request=ServletActionContext.getRequest();</p><p> HttpServletResponse response = ServletActionContext.getResponse();</p><p> LoginDao loginDao=new LoginDao();</p>
114、<p> HrUsers hruser=new HrUsers();</p><p> hruser.setUsername(getUsername());</p><p> hruser.setUserpassword(getPassword());</p><p> hruser=loginDao.checkHrUsers(hruser);&l
115、t;/p><p> if(hruser.getUserid()!=null){</p><p> response.setCharacterEncoding("UTF-8");</p><p> request.getSession().setAttribute("userInfo", hruser);</p>
116、<p> response.getWriter().write(</p><p> "{success:true,msg:'登錄成功!你的用戶名是:" + getUsername()</p><p> + ",你的密碼是:" + getPassword() + "。'}");</p>
117、<p><b> }else{</b></p><p> response.getWriter().write("{success:false}");}</p><p> return null;</p><p><b> } </b></p><p>&
118、lt;b> }</b></p><p> 4)登錄模塊的Dao:(LoginDao.java)</p><p> 這里主要運用的就是Hibernate的技術。主要的功能就是來查詢表中是否存在相應的記錄。如果有,就返回這個記錄,如果沒有,就返回空。在這里調(diào)用了一個自定義的工具類,用于創(chuàng)建Hibernate的數(shù)據(jù)庫連接,相應代碼見附錄1。</p><
119、p> package com.wyc.hr.dao;</p><p> import java.util.List;</p><p> import org.hibernate.Query;</p><p> import org.hibernate.Session;</p><p> import com.wyc.hr.do
120、main.HrUsers;</p><p> import com.wyc.hr.utils.HibernateUtil;</p><p> public class LoginDao {</p><p> public HrUsers checkHrUsers(HrUsers hrUser){</p><p> Session se
121、ssion=null;</p><p><b> try {</b></p><p> session=HibernateUtil.openSession();</p><p> Query query=session.createQuery("From HrUsers where username=? and userpass
122、word=?");</p><p> query.setString(0, hrUser.getUsername());</p><p> query.setString(1, hrUser.getUserpassword());</p><p> List<HrUsers> list=query.list();</p>
123、<p> if(list.size()==0){</p><p> return null;</p><p><b> }else{</b></p><p> return list.get(0);</p><p><b> }</b></p><p>
124、 } catch (Exception e) {</p><p> e.printStackTrace();</p><p> throw new RuntimeException(e.getMessage());</p><p><b> }finally{</b></p><p> if(session!=n
125、ull && session.isOpen()){</p><p> session.close();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力資源畢業(yè)設計--基于java的公司人力資源管理系統(tǒng)
- 人力資源管理系統(tǒng)畢業(yè)設計
- 人力資源管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計----人力資源管理系統(tǒng)
- 人力資源管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計--人力資源管理系統(tǒng)
- 人力資源管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---人力資源管理系統(tǒng)
- 基于java的人力資源管理系統(tǒng)
- 畢業(yè)設計---人力資源管理系統(tǒng)設計
- 非人力資源經(jīng)理的人力資源管理(人力資源管理)
- 人力資源管理系統(tǒng)畢業(yè)設計6
- 畢業(yè)設計-----企業(yè)人力資源管理系統(tǒng)
- 人力資源管理系統(tǒng)畢業(yè)設計論文
- 基于java web的人力資源管理系統(tǒng)
- 人力資源管理(新)(人力資源管理)
- 人力資源助理(人力資源管理)
- 人力資源經(jīng)理(人力資源管理)
- 人力資源規(guī)劃(人力資源管理)
- 基于web的人力資源管理系統(tǒng)畢業(yè)設計
評論
0/150
提交評論