人力資源畢業(yè)設(shè)計--基于java的公司人力資源管理系統(tǒng)_第1頁
已閱讀1頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于java的公司人力資源管理系統(tǒng)</p><p><b>  中國·珠海</b></p><p><b>  二○一三年五月</b></p><p> 學(xué) 院:專 業(yè):姓 名:指導(dǎo)老師:</p><p> 學(xué) 號:職 稱:</p&

2、gt;<p><b>  誠信承諾書</b></p><p>  本人鄭重承諾:本人承諾呈交的畢業(yè)設(shè)計《基于java的公司人力資源管理系統(tǒng)》是在指導(dǎo)教師的指導(dǎo)下,獨立開展研究取得的成果,文中引用他人的觀點和材料,均在文后按順序列出其參考文獻(xiàn),設(shè)計使用的數(shù)據(jù)真實可靠。</p><p>  本人簽名: </p><

3、;p>  日期: 年 月 日</p><p>  基于java的公司人力資源管理系統(tǒng)</p><p><b>  摘 要</b></p><p>  目前,社會上的各種各樣的中小型企業(yè)中,所使用的人力資源管理系統(tǒng)大多都是基于B/S架構(gòu),所以,我選用當(dāng)前比較熱門的Struts2+Hibernate架構(gòu)來進行本系統(tǒng)的搭建

4、。同時,為了界面的美觀,我使用了EXTJS的javascript技術(shù)來設(shè)計用戶使用界面,為客戶提供一個流暢和美觀的web界面。數(shù)據(jù)庫采用了oracle。在數(shù)據(jù)傳輸方面,使用了JSON和AJAX的技術(shù)實現(xiàn)信息的異步操作。</p><p>  根據(jù)軟件開發(fā)的流程,對本系統(tǒng)的開發(fā)進行了需求分析,確定了系統(tǒng)將要實現(xiàn)的功能模塊:員工信息管理、招聘信息管理、培訓(xùn)信息管理、獎懲信息管理、薪資信息管理、考勤信息管理、部門信息管理

5、、管理員信息管理、職位信息管理,這九個模塊。然后根據(jù)需要,在前臺實現(xiàn)了各個模塊的增、刪、改、查的操作。</p><p>  本系統(tǒng)運用了AJAX技術(shù),在登陸之后,實現(xiàn)了無頁面跳轉(zhuǎn)的數(shù)據(jù)異步加載,使得系統(tǒng)運行時更加流暢。</p><p>  關(guān)鍵詞:Struts2;hibernate;ExtJs;B/S架構(gòu);Json;面向?qū)ο?;人力資源管理系統(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本設(shè)計的目標(biāo)2</p><p>  2開發(fā)環(huán)境及相關(guān)技術(shù)介紹3</p><p>  2.1系統(tǒng)開發(fā)環(huán)境3</p><p><b>  2.2技術(shù)介紹3</b></

14、p><p>  2.2.1系統(tǒng)設(shè)計的主要技術(shù)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面向?qū)ο蟮慕榻B5</p><p><b>  3系統(tǒng)需求分析6</b></p><p>  3.1可行性分析6</p><p>  3.1.1 技術(shù)可行性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總體設(shè)計8</b></p><p>  4.1系統(tǒng)的總體功能框架設(shè)計8</p><p>  4.2系統(tǒng)各模塊用例圖分析8</p><p>  4.3業(yè)務(wù)流程圖14</p><p>  4.4數(shù)據(jù)庫設(shè)計分析14</p

17、><p>  4.4.1數(shù)據(jù)庫總體設(shè)計14</p><p>  4.4.2數(shù)據(jù)庫數(shù)據(jù)字典15</p><p>  5系統(tǒng)詳細(xì)設(shè)計20</p><p>  5.1系統(tǒng)運行環(huán)境和部署架構(gòu)20</p><p>  5.2系統(tǒng)體系結(jié)構(gòu)設(shè)計20</p><p>  5.3系統(tǒng)業(yè)務(wù)流程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設(shè)計總結(jié)42</b></p&g

20、t;<p><b>  參考文獻(xiàn)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ā)的。主要目標(biāo)是通過對員工及人力資源活動信息(招聘、工資)等的編制來提高效率,及時與用戶溝通,用最少的人力、物力滿足用戶需求。</p><p>  人力資源管理信

22、息系統(tǒng)在企業(yè)的有效實施,將會促進企業(yè)人力資源管理向規(guī)范化、標(biāo)準(zhǔn)化、決策科學(xué)化發(fā)展;促使企業(yè)人力資源管理人員從日常大量的行政事務(wù)性工作中解脫出來,逐步專注于對企業(yè)的人力資源管理活動進行計劃,組織,監(jiān)督和咨詢職能;調(diào)動企業(yè)各級管理者和每一位普通員工都積極參與到人力資源管理活動中來。并且通過大力推進人力資源管理信息化建設(shè),優(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領(lǐng)域的日新月異,越來越多的企業(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)驗,結(jié)果做出的東西絕大部分不符合客戶的需求;另一方面,這種形式的軟件開發(fā)不參與市場競爭,僅僅是供給內(nèi)部使用,極大地可能導(dǎo)致開發(fā)人員的敷衍了事,使得系統(tǒng)無法起到它的作用。</p><p>  此外,就是我國正處于傳統(tǒng)管理方式向人力資源管理過渡的時期,企業(yè)中的管理方法和思想都在發(fā)生著巨大的變化,這是對HR管理系統(tǒng)

26、的一個巨大的挑戰(zhàn)。</p><p>  本系統(tǒng)的主要針對的對象是一些中小型企業(yè),對他們的人力資源,按照企業(yè)的需求,對其績效考核管理、薪酬管理等進行了完善的開發(fā)。利用現(xiàn)在較新的技術(shù),實現(xiàn)人力資源管理系統(tǒng)的精細(xì)化、自動化、人性化,為企業(yè)的發(fā)展做出理性的決策,提高人員的管理利用率,為公司的發(fā)展和人才儲備提供一個完善的、良好的平臺。</p><p><b>  1.3本設(shè)計的目標(biāo)<

27、/b></p><p>  利用現(xiàn)有的技術(shù),了解人力資源管理系統(tǒng)開發(fā)的流程和所要實現(xiàn)的主要功能,同時對一些企業(yè)的內(nèi)部的管理進行了解,進而對系統(tǒng)進行特定功能的擴展。</p><p>  另一方面,就是要打破傳統(tǒng)人力資源管理系統(tǒng)的一貫的風(fēng)格,打造出一個全新的,更具有親和力的系統(tǒng),使得企業(yè)的員工愿意使用本系統(tǒng)。</p><p>  2開發(fā)環(huán)境及相關(guān)技術(shù)介紹</

28、p><p><b>  2.1系統(tǒng)開發(fā)環(huán)境</b></p><p>  使用B/S架構(gòu),運行環(huán)境是JDK1.7.0_09</p><p>  服務(wù)器操作系統(tǒng):Windows 7</p><p>  數(shù)據(jù)庫:Oracle 10G</p><p>  Web服務(wù)器:apache-tomcat-6.0.32

29、</p><p>  開發(fā)工具:Myeclipse10,Ext Desiger,PL/SQL Developer,Power Desiger</p><p><b>  2.2技術(shù)介紹</b></p><p>  2.2.1系統(tǒng)設(shè)計的主要技術(shù)</p><p>  本人力資源管理系統(tǒng)是在Extjs+Struts2+Hibe

30、rnate框架的基礎(chǔ)上開發(fā)的。是一個典型的J2EE系統(tǒng)。所以系統(tǒng)也分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是基于javascript的ExtJS技術(shù),而數(shù)據(jù)的交互格式則使用JSON技術(shù)、這些在下面有詳細(xì)的介紹。</p><p>  主要使用技術(shù):Struts2、Hiber

31、nate、ExtJs、JavaScript、HTML、Json</p><p>  2.2.2 Struts2的介紹</p><p>  STRUTS是Apache組織的一個開放源碼的項目,它是一個可重用的MVC設(shè)計。STRUTS應(yīng)用有3個主要部件:Servlet及負(fù)責(zé)具體業(yè)務(wù)處理的Action類(Controller),JSP頁面(view)和STRUTS應(yīng)用的業(yè)務(wù)邏輯封裝(Model)

32、。</p><p>  STRUTS實質(zhì)上就是在JSP基礎(chǔ)上實現(xiàn)的一個MVC框架,Struts2框架的大致處理流程如下:</p><p><b>  瀏覽器發(fā)送請求</b></p><p>  核心控制器FilterDispatcher根據(jù)請求決定調(diào)用合適的Action</p><p>  Web Work的攔截器鏈自動

33、對請求應(yīng)用通用功能</p><p>  回調(diào)Action的execute方法,該方法先獲取用戶請求參數(shù),然后執(zhí)行某種數(shù)據(jù)庫操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫中檢索信息。實際上,因為Action只是一個控制器,它會調(diào)用業(yè)務(wù)邏輯組件來處理用戶的請求</p><p>  Action的execute方法處理結(jié)果信息將被輸出到瀏覽器中,可以是HTML頁面、圖像,也可以是PDF文檔或者

34、其他文檔。此時支持的視圖技術(shù)非常多,既支持JSP,也支持Velocity、FreeMarker等模板技術(shù)</p><p>  2.2.3 Hibernate的介紹</p><p>  Hibernate是一個面向Java環(huán)境的對象/關(guān)系映射(ORM)工具,是J2EE應(yīng)用的持久層解決方案,Hibernate不僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度縮短使用

35、JDBC處理持久化的時間。Hibernate與其他ORM框架對比具有如下優(yōu)點:</p><p>  開源和免費的License,方便需要時研究源代碼,改寫源代碼,進行功能定制</p><p>  輕量級封裝,避免引入過多復(fù)雜的問題,調(diào)試容易,減輕程序員負(fù)擔(dān)</p><p>  具有可擴展性,API開發(fā)。功能不夠用的時候,自己編碼進行擴展</p><

36、;p>  開發(fā)者活躍,產(chǎn)品有穩(wěn)定的發(fā)展保障</p><p>  2.2.4 ExtJS的介紹</p><p>  ExtJS是一種主要用于創(chuàng)建前端用戶界面,是一個基本與后臺技術(shù)無關(guān)的前端ajax框架。</p><p>  ExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應(yīng)用,是一個用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個與后臺技術(shù)無關(guān)的前

37、端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應(yīng)用中。ExtJs最開始基于YUI技術(shù),由開發(fā)人員JackSlocum開發(fā),通過參考JavaSwing等機制來組織可視化組件,無論從UI界面上CSS樣式的應(yīng)用,到數(shù)據(jù)解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術(shù)的精品。</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語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。</p><p>  json簡單說就是javascript中的對象和數(shù)組,所以這兩種結(jié)構(gòu)就是對象和數(shù)組2種

40、結(jié)構(gòu),通過這兩種結(jié)構(gòu)可以表示各種復(fù)雜的結(jié)構(gòu)</p><p>  1、對象:對象在js中表示為“{}”擴起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 {key:value,key:value,...}的鍵值對的結(jié)構(gòu),在面向?qū)ο蟮恼Z言中,key為對象的屬性,value為對應(yīng)的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。</p><p>  2、

41、數(shù)組:數(shù)組在js中是中括號“[]”擴起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。</p><p>  經(jīng)過對象、數(shù)組2種結(jié)構(gòu)就可以組合成復(fù)雜的數(shù)據(jù)結(jié)構(gòu)了。</p><p>  2.2.6面向?qū)ο蟮慕榻B

42、</p><p>  隨著計算機硬件設(shè)備功能的進一步提高,使得面向?qū)ο蟮木幊坛蔀榭赡堋C嫦驅(qū)ο蟮木幊谈臃先祟惖乃季S方式,編寫的程序更加健壯和強大,更重要的是,面向?qū)ο缶幊坦膭顒?chuàng)造性的程序設(shè)計。面向?qū)ο缶幊淌且环N先進的編程思想,更加容易解決復(fù)雜的問題。面向?qū)ο缶幊痰闹饕卣饔校?lt;/p><p> ?。?)封裝性:面向?qū)ο缶幊毯诵乃枷胫痪褪菍?shù)據(jù)和對數(shù)據(jù)的操作封裝在一起。通過抽象,即從具

43、體的實例中抽取共同的性質(zhì)形成一般的概念,比如類的概念。</p><p> ?。?)繼承:繼承體現(xiàn)了一種編程模式。子類可以繼承父類的屬性和功能,即子類繼承了父類所具有的數(shù)據(jù)和數(shù)據(jù)上的操作,同時又可以增添子類獨有的數(shù)據(jù)和數(shù)據(jù)上的操作。</p><p> ?。?)多態(tài):多態(tài)性是指允許不同的類的對象對同一消息做出相應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享

44、等優(yōu)勢,很好的解決了應(yīng)用程序中函數(shù)同名問題。</p><p><b>  3系統(tǒng)需求分析</b></p><p><b>  3.1可行性分析</b></p><p>  3.1.1 技術(shù)可行性</p><p>  應(yīng)為已經(jīng)基本上掌握了開發(fā)時所要使用的技術(shù),而且在項目之外也做過一些關(guān)于這方面的DEM

45、O,所以在規(guī)定的時間和某些限制的條件下,功能基本可以實現(xiàn),開發(fā)可以完成。</p><p>  3.1.2 經(jīng)濟可行性</p><p>  由于在系統(tǒng)的開發(fā)中,用到的很多技術(shù),例如Struts2、Hibernate、EXTJS3.0、JSON等,都是開源的,所以,在開發(fā)中,基本沒有什么成本的產(chǎn)生。這個系統(tǒng)經(jīng)過未來的改進后,我相信它所帶來的效益遠(yuǎn)遠(yuǎn)會超過它的開發(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è)務(wù)需求,并經(jīng)過自己的分析,得到了系統(tǒng)的功能模塊</p><p>  通過分析,本系統(tǒng)應(yīng)該實現(xiàn)以下功能:</p><p> ?。?) 登錄功能:用于防止非法用戶的非法登錄,提高了系統(tǒng)的保密性;</p><p>  (2) 員工信

48、息管理:管理員和高級管理員可對公司員工的基本信息進行增加、刪除、修改和查詢的操作</p><p> ?。?) 招聘信息管理:管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。</p><p> ?。?) 培訓(xùn)信息管理:管理員和高級管理員根據(jù)具體的情況設(shè)置人員培訓(xùn),可修改、刪除、添加培訓(xùn)信息,為員工的升遷提供科學(xué)的依據(jù)。</p><p> ?。?) 獎懲信息管理:

49、管理員和高級管理員可以對獎懲信息的增加、刪除、查詢、修改操作,為薪資、升遷等提供依據(jù)。</p><p> ?。?) 薪資信息管理:管理員和高級管理員可以對員工薪資信息進行的增加和查詢等。</p><p> ?。?) 考勤信息管理:管理員和高級管理員查看考勤信息,實現(xiàn)公司管理員對當(dāng)日為參加考勤人員的考勤處理。</p><p> ?。?) 高級操作模塊:高級管理員系統(tǒng)的

50、管理員、公司部門、公司職位進行管理(增加、刪除、查看、修改)。</p><p><b>  4總體設(shè)計</b></p><p>  4.1系統(tǒng)的總體功能框架設(shè)計</p><p>  根據(jù)系統(tǒng)的功能需求分析后,設(shè)計出的系統(tǒng)的總體架構(gòu)圖,如圖4.1所示。</p><p>  圖4.1 系統(tǒng)總體架構(gòu)圖</p>&

51、lt;p>  4.2系統(tǒng)各模塊用例圖分析</p><p> ?。?)系統(tǒng)的總體用例圖</p><p>  高級管理員可以使用系統(tǒng)中的所有功能,而管理員除了管理員管理、部門管理和職位管理不能使用外,其他和高級管理員一樣。高級管理員在管理員管理中,可以修改管理員的權(quán)限,如圖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; ?。?)招聘信息管理的用例圖</p><p>  用例名稱:招聘信息管理。</p><p>  簡要描述:管理員和高級管理員可以發(fā)布、查詢、修改、刪除招聘信息。</p><p>  參與者: 管理員、高級管理員。</p><p>  用例圖如圖4.4所示:</p><p>  圖4.4 招聘信息管理用例圖&l

54、t;/p><p>  (4)培訓(xùn)信息管理的用例圖</p><p>  用例名稱:培訓(xùn)信息管理</p><p>  簡要描述:高級管理員和管理員可以對培訓(xùn)進行添加、修改、刪除等操作。</p><p>  參與者: 管理員、高級管理員。</p><p>  用例圖如圖4.5所示:</p><p>  

55、圖4.5 培訓(xùn)信息管理用例圖</p><p>  (5)獎罰管理的用例圖</p><p><b>  用例名稱:獎罰管理</b></p><p>  簡要描述:高級管理員和管理員可以對員工的獎罰信息進行添加、修改、刪除等操作。</p><p>  參與者: 管理員、高級管理員。</p><p>

56、  用例圖如圖4.6所示:</p><p>  圖4.6 獎罰管理用例圖</p><p>  (6)薪資信息管理的用例圖</p><p>  用例名稱:薪資信息管理</p><p>  簡要描述:系統(tǒng)管理員可以對員工薪資進行核算和發(fā)放,也可以查看所有員工的工資發(fā)放情況。</p><p>  參與者: 管理員、高級管理

57、員。</p><p>  用例圖如圖4.7所示:</p><p>  圖4.7 薪資信息管理用例圖</p><p>  (7)考勤信息管理的用例圖</p><p>  用例名稱:考勤信息管理</p><p>  簡要描述:管理員、高級管理員查看、刪除考勤信息,考勤記錄的添加油打卡機的當(dāng)日信息來自動錄入。 </p&

58、gt;<p>  參與者: 管理員、高級管理員。</p><p>  用例圖如圖4.8所示:</p><p>  圖4.8 考勤信息管理用例圖</p><p>  (8)管理員管理的用例圖</p><p>  用例名稱:管理員管理</p><p>  簡要描述:高級管理員對管理員的信息進行增加、刪除、修

59、改和查詢。 </p><p>  參與者: 高級管理員。</p><p>  用例圖如圖4.9所示:</p><p>  圖4.9 管理員管理用例圖</p><p> ?。?)部門管理的用例圖</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è)務(wù)流程圖</b></p&g

62、t;<p>  根據(jù)人力資源管理系統(tǒng)的需求分析和各各用例的分析,繪制出該系統(tǒng)的業(yè)務(wù)流程圖,見圖4.12。</p><p>  圖4.12 人力資源管理系統(tǒng)業(yè)務(wù)流程圖</p><p>  4.4數(shù)據(jù)庫設(shè)計分析</p><p>  4.4.1數(shù)據(jù)庫總體設(shè)計</p><p>  本系統(tǒng)使用的是oracle 10G,主要設(shè)計的表共有9個

63、,分別是:管理員信息表,部門信息表,職位信息表,員工信息表,培訓(xùn)信息表,獎罰信息表,薪資信息表,考勤信息表,招聘信息表。系統(tǒng)的數(shù)據(jù)庫關(guān)系結(jié)構(gòu)圖如下圖4.13所示。</p><p>  圖4.13 人力資源管理數(shù)據(jù)庫關(guān)系結(jié)構(gòu)圖</p><p>  4.4.2數(shù)據(jù)庫數(shù)據(jù)字典</p><p> ?。?)管理員信息表(hr_users)</p><p&g

64、t;  管理員信息表用于存放管理員的信息,其結(jié)構(gòu)見表4.1。</p><p>  表4.1 管理員信息表</p><p>  備注: 1、userType:1為高級管理員,2為普通管理員</p><p> ?。?)部門信息表(hr_dept)</p><p>  部門信息表用于存放公司部門的信息,其結(jié)構(gòu)見表4.2。</p>&l

65、t;p><b>  表4.2部門信息表</b></p><p> ?。?)職位信息表(hr_duty)</p><p>  職位信息表用于存放公司職位的信息,其結(jié)構(gòu)見表4.3。</p><p><b>  表4.3職位信息表</b></p><p>  (4)員工信息表(hr_employee

66、)</p><p>  員工信息表用于存放公司員工的信息,其結(jié)構(gòu)見表4.4。</p><p><b>  表4.4員工信息表</b></p><p>  備注: 1、employeeSex:0為女性,1為男性</p><p>  2、employeeIcon:保留</p><p> ?。?)招聘信

67、息表(hr_recruiment)</p><p>  招聘信息表用于存放公司招聘的信息,其結(jié)構(gòu)見表4.5。</p><p><b>  表4.5招聘信息表</b></p><p> ?。?)培訓(xùn)信息表(hr_train)</p><p>  培訓(xùn)信息表用于存放公司培訓(xùn)的信息,其結(jié)構(gòu)見表4.6。</p>&

68、lt;p><b>  表4.6培訓(xùn)信息表</b></p><p>  備注: 1、trainGrade:0為初級,1為中級,2為高級</p><p> ?。?)薪資信息表(hr_salary)</p><p>  薪資信息表用于存放公司薪資的信息,其結(jié)構(gòu)見表4.7。</p><p><b>  表4.7薪

69、資信息表</b></p><p>  備注: 1、員工的實拿工資為:salaryBasic+ salaryBouns- salaryForfeit</p><p> ?。?)獎罰信息表(hr_rewardpunish)</p><p>  獎罰信息表用于存放公司員工的獎罰的信息,其結(jié)構(gòu)見表4.8。</p><p><b>

70、;  表4.8獎罰信息表</b></p><p>  備注: 1、rpName:用于指出這個字段是獎勵還是懲罰</p><p>  2、rpReleaseMan:為當(dāng)前登錄系統(tǒng)的管理員</p><p> ?。?)考勤信息表(hr_attendance)</p><p>  考勤信息表用于存放公司員工的考勤的信息,其結(jié)構(gòu)見表4.9。

71、</p><p><b>  表4.8考勤信息表</b></p><p>  備注: 1、attendIsWork:0為缺勤,1為上班</p><p><b>  5系統(tǒng)詳細(xì)設(shè)計</b></p><p>  5.1系統(tǒng)運行環(huán)境和部署架構(gòu)</p><p>  系統(tǒng)運行的操作系統(tǒng)

72、是WINDOWS7,數(shù)據(jù)數(shù)據(jù)庫采用oracle 10G,服務(wù)器則采用apache-tomcat-6.0.32應(yīng)用服務(wù)器。</p><p>  這個系統(tǒng)部署在一個服務(wù)器上和一個數(shù)據(jù)庫服務(wù)器上,過意該系統(tǒng)可以在公司的局域網(wǎng)中使用,也可以在廣域網(wǎng)中訪問。此外,由于該系統(tǒng)運用了許多JS腳本,所以使用瀏覽器時,應(yīng)選用IE8或以上的版本,以避免不兼容無法運行的問題。</p><p>  5.2系統(tǒng)體系

73、結(jié)構(gòu)設(shè)計</p><p>  系統(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)體驗。</p><p><b>  5.3系統(tǒng)業(yè)務(wù)流程</b></p><p>  系統(tǒng)的業(yè)務(wù)流程,嚴(yán)格按照J(rèn)2EE的應(yīng)用設(shè)計

74、規(guī)范和JavaScript的引用規(guī)范。用戶從瀏覽器進入系統(tǒng),在系統(tǒng)中進行業(yè)務(wù)操作的時候,在extjs中使用了一些控件,進而出發(fā)了action的請求。該請求被ActionServlet攔截,進入Struts框架的控制。系統(tǒng)的所有action請求,都被ActionServlet攔截,由Struts2的MVC框架控制.此外,在關(guān)于數(shù)據(jù)的交互中,系統(tǒng)使用的是JSON格式的數(shù)據(jù)來進行數(shù)據(jù)傳輸,無論是數(shù)據(jù)庫向界面,還是界面向數(shù)據(jù)庫,都是這樣。<

75、;/p><p>  瀏覽器中的獲得數(shù)據(jù)后向服務(wù)器端發(fā)送請求(request),F(xiàn)ilterDispatch接收到從瀏覽器發(fā)送來的請求后將相應(yīng)的數(shù)據(jù)請求分發(fā)到相應(yīng)的Action的指定方法進行處理,方法通過BeanFactory創(chuàng)建實現(xiàn)類的對象,實現(xiàn)類對象調(diào)用其響應(yīng)的業(yè)務(wù)邏輯方法,業(yè)務(wù)邏輯層的方法又調(diào)用Dao層的方法進行數(shù)據(jù)庫的操作,對數(shù)據(jù)進行持久化。相應(yīng)的時序圖如下圖5.1所示。</p><p>

76、;  圖5.1 系統(tǒng)業(yè)務(wù)時序圖</p><p>  5.4系統(tǒng)各模塊類圖</p><p>  由于系統(tǒng)的類和javabean內(nèi)的屬比較多,所以我根據(jù)系統(tǒng)的功能模塊,將類圖拆分成以下10個子類圖,分別詳細(xì)的說明了個各類的屬性和方法以及類之間的關(guān)系。</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)培訓(xùn)信息管理功能類圖</p><p>  培訓(xùn)信息管理功能,用于實現(xiàn)培訓(xùn)信息管理,見圖5.7。</p><p>  圖

80、5.7 培訓(xùn)信息管理功能類圖</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)的各模塊的相應(yīng)的實現(xiàn)方法基本相同,所以在這里,我只選用一個模塊來進行實現(xiàn)。在此,我選用用戶登錄模塊和管理員信息管理模塊。</p>&

83、lt;p>  5.5.1用戶登錄模塊實現(xiàn)</p><p>  (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所示。</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ù)責(zé)生成登錄信息錄入窗口。等輸入信息后,點擊確定,觸發(fā)action,將textfield內(nèi)的信息傳到后臺進行驗證。在此使用到了EXTJS自帶的ajax技術(shù)。當(dāng)服務(wù)器響應(yīng)了成功的信息,則跳轉(zhuǎn),響應(yīng)失敗的信息,先提示登錄失敗并清空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負(fù)責(zé)獲取從前臺su

107、bmit操作后傳過來的信息,并經(jīng)行驗證,如果數(shù)據(jù)庫有這個信息,就響應(yīng)成功信息,如果數(shù)據(jù)庫沒有這個信息,則響應(yīng)失敗信息。</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的技術(shù)。主要的功能就是來查詢表中是否存在相應(yīng)的記錄。如果有,就返回這個記錄,如果沒有,就返回空。在這里調(diào)用了一個自定義的工具類,用于創(chuàng)建Hibernate的數(shù)據(jù)庫連接,相應(yīng)代碼見附錄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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論