日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

ssm基于Java的微小企业人事管理系统的设计与实现毕业设计源码231012

發(fā)布時間:2024/3/7 windows 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssm基于Java的微小企业人事管理系统的设计与实现毕业设计源码231012 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ssm微小企業(yè)人事管理系統(tǒng)的設(shè)計與實現(xiàn)

摘?要

科技進(jìn)步的飛速發(fā)展引起人們?nèi)粘I畹木薮笞兓?#xff0c;電子信息技術(shù)的飛速發(fā)展使得電子信息技術(shù)的各個領(lǐng)域的應(yīng)用水平得到普及和應(yīng)用。信息時代的到來已成為不可阻擋的時尚潮流,人類發(fā)展的歷史正進(jìn)入一個新時代。在現(xiàn)實運(yùn)用中,應(yīng)用軟件的工作規(guī)則和開發(fā)步驟,采用Java技術(shù)微小企業(yè)人事管理系統(tǒng)。

本設(shè)計主要實現(xiàn)集人性化、高效率、便捷等優(yōu)點于一身的微小企業(yè)人事管理系統(tǒng),完成 首頁、用戶管理、部門管理、員工請假管理、薪資管理、通知公告管理、招聘信息管理等功能模塊。系統(tǒng)通過瀏覽器與服務(wù)器進(jìn)行通信,實現(xiàn)數(shù)據(jù)的交互與變更。本系統(tǒng)通過科學(xué)的管理方式、便捷的服務(wù)提高了工作效率,減少了數(shù)據(jù)存儲上的錯誤和遺漏。微小企業(yè)人事管理系統(tǒng)使用Java語言,采用基于 MVC模式的SSM技術(shù)進(jìn)行開發(fā),使用 MyEclipse 2017 CI 10 編譯器編寫,數(shù)據(jù)方面主要采用的是微軟的MySQL關(guān)系型數(shù)據(jù)庫來作為數(shù)據(jù)存儲媒介,配合前臺HTML+CSS 技術(shù)完成系統(tǒng)的開發(fā)。

關(guān)鍵詞:微小企業(yè)人事管理系統(tǒng);Java語言;關(guān)系型數(shù)據(jù)庫;數(shù)據(jù)存儲

Design and Implementation of ssm Micro-enterprise Personnel Management System

Abstract

The rapid development of science and technology has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software are adopted, and the micro enterprise personnel management system based on Java technology is adopted.

This design mainly realizes the micro-enterprise personnel management system with the advantages of humanization, high efficiency and convenience, and completes the function modules such as home page, user management, department management, employee leave management, salary management, notice management and recruitment information management. The system communicates with the server through the browser to realize the interaction and change of data. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient service. Micro-enterprise personnel management system uses Java language, uses SSM technology based on MVC pattern to develop, and uses MyEclipse 2017 CI 10 compiler to write. In data aspect, it mainly uses Microsoft's MySQL relational database as data storage medium, and cooperates with front-end HTML+CSS technology to complete the system development.

Key words:?Micro enterprise personnel management system; Java language; Relational database; Data storage

目 ?錄

第1章 緒論

1.1?研究背景與意義

1.2?開發(fā)現(xiàn)狀

1.3?本文的組織結(jié)構(gòu)

第2章 相關(guān)技術(shù)介紹

2.1?ssm框架介紹

2.2 MVVM模式介紹

2.3 B/S體系結(jié)構(gòu)介紹

2.4 B/S體系工作原理

2.5 Vue.js 主要功能 5

2.6?JavaScript 運(yùn)行模式 6

第3章 系統(tǒng)分析 7

3.1?可行性分析 7

3.1.1?技術(shù)可行性分析 7

3.1.2?經(jīng)濟(jì)可行性分析 7

3.1.3?操作可行性分析 7

3.2?功能需求分析 7

3.3?非功能需求分析 9

3.4?數(shù)據(jù)流程分析 9

第4章 系統(tǒng)設(shè)計

4.1?系統(tǒng)架構(gòu)設(shè)計

4.2?系統(tǒng)功能結(jié)構(gòu)

4.3?功能模塊設(shè)計

4.4?數(shù)據(jù)庫設(shè)計

4.4.1?概念模型

4.4.2?關(guān)系模型

4.4.3?數(shù)據(jù)表

第5章 系統(tǒng)實現(xiàn)

5.1?登錄模塊的實現(xiàn)

5.2?用戶子系統(tǒng)模塊的實現(xiàn) 20

5.2.1?用戶首頁模塊 20

5.2.2?考勤簽到模塊 21

5.2.3?招聘信息模塊

5.2.4?薪資管理模塊

5.2.5?員工請假模塊

5.3?管理員子系統(tǒng)模塊的實現(xiàn) 27

5.3.1?個人資料管理模塊 27

5.3.2?員工管理模塊

5.3.3?招聘信息管理模塊

5.3.4?部門管理模塊

第6章 系統(tǒng)測試 39

6.1?測試目的

6.2?測試過程 39

6.3?測試結(jié)果

第7章 總結(jié)與展望

參考文獻(xiàn)

致謝

  • 緒論
  • 研究背景與意義
  • 信息作為生產(chǎn)力最活躍的因素,很早就在人類經(jīng)濟(jì)生活中發(fā)揮著不可替代的作用,但把信息納入企業(yè)經(jīng)營管理系統(tǒng)中的高效處理和應(yīng)用是在計算機(jī)發(fā)明以后的50年代末。人事管理系統(tǒng)就是把分散的企業(yè)單位的職工信息實行統(tǒng)一,集中,規(guī)范的收集管理,建立分類編號管理,電腦存儲查詢以及防火,防潮,防蛀防盜等現(xiàn)代化,專業(yè)化的管理系統(tǒng),為企事業(yè)單位和職工解除后顧之憂。企業(yè)人事管理系統(tǒng)為企事業(yè)單位提供信息咨詢,信息檢索,信息寸取等服務(wù)。人事管理系統(tǒng)基本上能夠滿足現(xiàn)代企業(yè)人事管理系統(tǒng)使用表格對各種信息分門別類,組成企業(yè)人事管理系統(tǒng),可以方便地查詢,查閱,修改,交流和重復(fù)使用。

    企業(yè)人事管理是企業(yè)管理的一個重要內(nèi)容,隨著時代的進(jìn)步,企業(yè)也逐漸變得龐大起來。如何管理好企業(yè)內(nèi)部員工的信息,成為企業(yè)管理中的一個大的問題。在這種情況下,一個可以規(guī)范化,自動化的企業(yè)人事管理系統(tǒng)就顯的非常必要。

    人事管理系統(tǒng)的革命性變革出現(xiàn)在20世紀(jì)90年代末。由于市場競爭的需要,如何吸引和留住人才,激發(fā)員工的創(chuàng)造性、工作責(zé)任感和工作熱情已成為關(guān)系企業(yè)興衰的重要因素,人才已經(jīng)成為企業(yè)最重要的資產(chǎn)之一。

  • 開發(fā)現(xiàn)狀
  • 目前國內(nèi)的人事管理系統(tǒng)的開發(fā)技術(shù)已經(jīng)非常成熟,主要原因在于人事管理系統(tǒng)本身具有業(yè)務(wù)清晰、數(shù)據(jù)處理規(guī)范等許多優(yōu)點,為其信息化提供了必要的優(yōu)越條件,加上近十年計算機(jī)技術(shù)的飛躍發(fā)展,人事管理系統(tǒng)在國內(nèi)基本上已經(jīng)進(jìn)入了普及應(yīng)用的階段。國內(nèi)目前已有多種通用的人事管理系統(tǒng)軟件供應(yīng)用單位選擇使用,而且還有多種人事管理系統(tǒng)開發(fā)通用工具供用戶開發(fā)自己的人事管理系統(tǒng)擇用。應(yīng)該說,人事管理系統(tǒng)的開發(fā)與應(yīng)用在國內(nèi)已經(jīng)進(jìn)入了成熟階段。

    目前國內(nèi)的人事管理信息系統(tǒng)的特點:面向網(wǎng)絡(luò),采用大型、通用性好的數(shù)據(jù)庫機(jī)制;堅持標(biāo)準(zhǔn)化、規(guī)范化原則,提供靈活構(gòu)庫機(jī)制;提供強(qiáng)大的基礎(chǔ)信息管理功能,如員工管理、部門管理、考勤管理、權(quán)限管理、薪資管理,為各項人事業(yè)務(wù)的職能化管理提供有效、準(zhǔn)確的基礎(chǔ)數(shù)據(jù)支持;提供靈活、易操作的業(yè)務(wù)管理功能,實現(xiàn)人事業(yè)務(wù)職能化管理與基礎(chǔ)信息管理的有效結(jié)合;提供用于輸入的列表、模板組件和用于輸出的報表組件,使系統(tǒng)直觀,操作性好;為保證人事信息的機(jī)密性,提供安全的用戶權(quán)限管理機(jī)制;為更好地實現(xiàn)層與層之問的數(shù)據(jù)傳遞,提供點到點、報盤、郵件等多種傳輸方式,有效地實現(xiàn)指標(biāo)代碼、數(shù)據(jù)結(jié)構(gòu)、人事與編制信息綜合網(wǎng)絡(luò)管理、模 板、報表表樣及數(shù)據(jù)的發(fā)送接收。

    在國外,與我國的人事管理信息系統(tǒng)相對應(yīng)的是人力資源管理系統(tǒng)(HRMS,Human Resources Management System),該系統(tǒng)本身與其相應(yīng)的計算機(jī)信息應(yīng)用技術(shù)均非常成熟。國外幾乎所有發(fā)達(dá)國家均建立了自己的人力資源管理系統(tǒng),這個系統(tǒng)是全國性的,覆蓋了全國的人力資源管理。國外公司的人事部一般均建立了計算機(jī)信息系統(tǒng),負(fù)責(zé)公司內(nèi)部的人力資源。國外一些發(fā)達(dá)國家的企事業(yè)單位非常注重自身人力資源管理與決策支持系統(tǒng)的開發(fā)應(yīng)用。尤其是一些跨國公司,更是不惜巨大的投資開發(fā)相應(yīng)的人力資源管理與決策支持系統(tǒng)。人力資源管理與決策支持系統(tǒng)在跨國公司中,既不是一個普通的人事部,也不是一個福利部門,而是圍繞提高工作效率而設(shè)立的由多種信息、數(shù)據(jù)和活動形成的一個開放性系統(tǒng)。微軟的人事流動管理與決策支持系統(tǒng)就是其中一例。微軟于1997年開發(fā)了一個由6大模塊組成的人事管理與決策支持系統(tǒng)HeadlTrax,用于處理員工的招聘、晉升、調(diào)動或部門內(nèi)的變動。該系統(tǒng)使微軟任何級別的經(jīng)理都能夠迅速根據(jù)外界環(huán)境的變化調(diào)整部門結(jié)構(gòu)及人事安排;使人力資源部門可以使用這個電子工具進(jìn)行人力資源管理的趨勢分析;采用了數(shù)字授權(quán)技術(shù),使得經(jīng)理能夠把任何類型的人事申請的批準(zhǔn)職責(zé)下放給其他人,從而提供了靈活性,又不會使過程復(fù)雜化,較好地滿足了公司對人力資源管理的要求。

  • 本文的組織結(jié)構(gòu)
  • 第一章是緒論,本文章的開頭部分,對本題目的研究背景和研究意義等一些做文字性的描述。

    第二章研究了微小企業(yè)人事管理系統(tǒng)的所采用的開發(fā)技術(shù)和開發(fā)工具。

    第三章是系統(tǒng)分析部分,包括系統(tǒng)總體需求描述、功能性角度分析系統(tǒng)需求、非功能性等各個方面分析系統(tǒng)是否可以實現(xiàn)。

    第四章是系統(tǒng)設(shè)計部分,本文章的重要部分,提供了系統(tǒng)架構(gòu)的詳細(xì)設(shè)計和一些主要功能模塊的設(shè)計說明。

    第五章是系統(tǒng)的具體實現(xiàn),介紹系統(tǒng)的各個模塊的具體實現(xiàn)。

    第六章在前幾章的基礎(chǔ)上對系統(tǒng)進(jìn)行測試和運(yùn)行。

    最后對系統(tǒng)進(jìn)行了認(rèn)真的總結(jié),以此對未來有一個新的展望。

  • 相關(guān)技術(shù)介紹
  • ssm框架介紹
  • SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡單的web項目的框架。

    Spring
    Spring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實體類的構(gòu)造方法來實例化對象。也可以稱之為項目中的粘合劑。
    Spring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個對象,而是讓Spring框架幫你來完成這一切。
    SpringMVC
    SpringMVC在項目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔(dān)中介或是前臺這樣的職責(zé),將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應(yīng)請求所執(zhí)行的操作。SpringMVC相當(dāng)于SSH框架中struts。
    ??mybatis
    mybatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關(guān)聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進(jìn)行的sql語句映射。在每次與數(shù)據(jù)庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執(zhí)行sql命令。

    頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。

  • MVVM模式介紹
  • MVVM是Model-View-ViewModel的簡寫。它本質(zhì)上就是MVC 的改進(jìn)版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開。當(dāng)然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。微軟的WPF帶來了新的技術(shù)體驗,如Silverlight、音頻、視頻、3D、動畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時,在技術(shù)層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時發(fā)展演變過來的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進(jìn)去,以應(yīng)對客戶日益復(fù)雜的需求變化。

  • B/S體系結(jié)構(gòu)介紹
  • B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用。客戶機(jī)上只要安裝一個瀏覽器,如Chrome、Safari、Microsoft Edge、Netscape Navigator或Internet Explorer,服務(wù)器安裝SQL Server、Oracle、MYSQL等數(shù)據(jù)庫。瀏覽器通過Web Server同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。?

  • B/S體系工作原理
  • B/S架構(gòu)采取瀏覽器請求,服務(wù)器響應(yīng)的工作模式。

    用戶可以通過瀏覽器去訪問Internet上由Web服務(wù)器產(chǎn)生的文本、數(shù)據(jù)、圖片、動畫、視頻點播和聲音等信息;

    而每一個Web服務(wù)器又可以通過各種方式與數(shù)據(jù)庫服務(wù)器連接,大量的數(shù)據(jù)實際存放在數(shù)據(jù)庫服務(wù)器中;

    從Web服務(wù)器上下載程序到本地來執(zhí)行,在下載過程中若遇到與數(shù)據(jù)庫有關(guān)的指令,由Web服務(wù)器交給數(shù)據(jù)庫服務(wù)器來解釋執(zhí)行,并返回給Web服務(wù)器,Web服務(wù)器又返回給用戶。在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個巨大的網(wǎng),即全球網(wǎng)。而各個企業(yè)可以在此結(jié)構(gòu)的基礎(chǔ)上建立自己的Internet。

    在 B/S 模式中,用戶是通過瀏覽器針對許多分布于網(wǎng)絡(luò)上的服務(wù)器進(jìn)行請求訪問的,瀏覽器的請求通過服務(wù)器進(jìn)行處理,并將處理結(jié)果以及相應(yīng)的信息返回給瀏覽器,其他的數(shù)據(jù)加工、請求全部都是由Web Server完成的。通過該框架結(jié)構(gòu)以及植入于操作系統(tǒng)內(nèi)部的瀏覽器,該結(jié)構(gòu)已經(jīng)成為了當(dāng)今軟件應(yīng)用的主流結(jié)構(gòu)模式。

  • Vue.js 主要功能
  • Vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設(shè)計。Vue 的核心庫只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅(qū)動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復(fù)雜單頁應(yīng)用。

    Vue.js 的目標(biāo)是通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。

    Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,在與相關(guān)工具和支持庫一起使用時,Vue.js 也能驅(qū)動復(fù)雜的單頁應(yīng)用。

  • JavaScript 運(yùn)行模式
  • JavaScript是一種屬于網(wǎng)絡(luò)的高級腳本語言,已經(jīng)被廣泛用于Web應(yīng)用開發(fā),常用來為網(wǎng)頁添加各式各樣的動態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現(xiàn)自身的功能的。

    是一種解釋性腳本語言(代碼不進(jìn)行預(yù)編譯)。

    主要用來向HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)頁面添加交互行為。

    可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結(jié)構(gòu)和行為的分離。

    跨平臺特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺下運(yùn)行(如Windows、Linux、Mac、Android、iOS等)。

    ?JavaScript腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型,表達(dá)式和算術(shù)運(yùn)算符及程序的基本程序框架。JavaScript提供了四種基本的數(shù)據(jù)類型和兩種特殊數(shù)據(jù)類型用來處理數(shù)據(jù)和文字。而變量提供存放信息的地方,表達(dá)式則可以完成較復(fù)雜的信息處理。

  • 系統(tǒng)分析
  • 可行性分析
  • 本次設(shè)計基于B/S 模式下,運(yùn)用Java、JSP技術(shù)采用的是MySQL數(shù)據(jù)庫和Myeclipse實現(xiàn),總體的可行性共分為以下三個方面。

  • 技術(shù)可行性分析
  • 所謂的技術(shù)可行性就是在限定時間,前期擬定的功能能否被滿足。在開發(fā)設(shè)計上是否會遇上解決不了的問題。做完的項目能否被很好地應(yīng)用,如果存在缺點在后期的維護(hù)上是否存在很大的難度。在對這個系統(tǒng)評估后,認(rèn)定已存在的技術(shù)能達(dá)成目標(biāo)。用JSP技術(shù)來實現(xiàn)動態(tài)的頁面,嵌入低依賴性的設(shè)計模式,靈活的數(shù)據(jù)庫,配合穩(wěn)定的服務(wù)器,整個系統(tǒng)的運(yùn)行效率大大提升。由此可見,在技術(shù)層面達(dá)成目標(biāo)不是非非之想。

  • 經(jīng)濟(jì)可行性分析
  • 在項目上使用的工具大部分都是是當(dāng)下流行開源免費(fèi)的,所以在開發(fā)前期,開發(fā)時用于項目的經(jīng)費(fèi)將會大大降低,不會讓開發(fā)該軟件在項目啟動期受到經(jīng)費(fèi)的影響,所以經(jīng)濟(jì)上還是可行的。盡量用最少的花費(fèi)去滿足用戶的需求。省下經(jīng)費(fèi)用于人工費(fèi),以及設(shè)備費(fèi)用。將在無紙化,高效率的道路上越走越遠(yuǎn)。

  • 操作可行性分析
  • 本系統(tǒng)實現(xiàn)功能的操作很簡單,普通電腦的常見配置就可以運(yùn)行本軟件,并且只要粗通電腦使用的基本常識就可以流暢的使用本軟件。電腦具備連接互聯(lián)網(wǎng)的能力,并且可以正常訪問系統(tǒng),并不需要操作者有什么高超的能力,只需了解業(yè)務(wù)流程,并且按照專業(yè)知識進(jìn)行正確操作即可,所以微小企業(yè)人事管理系統(tǒng)具備操作可行性。

  • ??????????功能需求分析
  • 在系統(tǒng)開發(fā)設(shè)計前,應(yīng)該對功能做初步設(shè)想,清楚這個管理系統(tǒng)有什么板塊,每個板塊有什么功能,整體的設(shè)計是否滿足使用者的需求,接著對所開發(fā)的系統(tǒng)功能進(jìn)行的詳細(xì)分析總結(jié),從而設(shè)計出完整的系統(tǒng)并將其實現(xiàn)。用戶和開發(fā)人員的交流分析,使其達(dá)到最佳理解程度,使系統(tǒng)功能達(dá)到最佳。

    員工用例圖如下所示。

    ?

    圖3-1 員工用例圖

    管理員用例圖如下所示。

    ?

    圖3-2 管理員用例圖

    微小企業(yè)人事管理系統(tǒng)在對需求做解析后,整個系統(tǒng)主要分為兩個部分:管理員和員工,每個模塊下的分支功能不一樣。對功能做出如下說明:

    員工模塊:

    賬號登錄認(rèn)證。

    管理個人資料信息,修改可修改的信息項。

    提交員工請假申請、打卡,同時查看歷史已提交的請假申請、打卡記錄。

    員工考勤查詢,同時查看歷史已考勤的記錄。

    員工薪資查詢,同時查看歷史已薪資的記錄。

    管理員模塊:

    維護(hù)員工,審核員工的賬號,可以凍結(jié)員工的登錄權(quán)限,或者刪除員工賬號。

    薪資管理:登入之后,員工可查看薪資信息,管理員可對薪資進(jìn)行管理;?

    發(fā)布招聘信息,并可以銷毀某個招聘,更新招聘數(shù)據(jù),模糊搜索招聘數(shù)據(jù)等。

    管理員工考勤數(shù)據(jù)。

    維護(hù)員工工資數(shù)據(jù)。

    查看員工提交的請假申請、打卡數(shù)據(jù),管理員有權(quán)利維護(hù)它。

  • 非功能需求分析
  • 系統(tǒng)非功能需求有非常多,比如性能需求、可承載最大用戶數(shù)、穩(wěn)定性、易用性需求等。本系統(tǒng)分析時考慮到易用性需求,因為系統(tǒng)是給人使用的,所以必須充分從用戶的角度出發(fā),考慮用戶體驗,使系統(tǒng)易理解易上手易操作。

  • 數(shù)據(jù)流程分析
  • 一層數(shù)據(jù)流程圖包括了登錄、用戶功能和檢索維護(hù)等模塊,在登錄模塊使用到的數(shù)據(jù)存儲有用戶賬戶文檔,用戶功能模塊需要的存儲是用戶各功能模塊數(shù)據(jù)文檔,檢索維護(hù)是使用以上這些數(shù)據(jù)文檔通過關(guān)鍵詞進(jìn)行檢索。

    系統(tǒng)的一層數(shù)據(jù)流圖如下圖所示。

    ?

    圖3-2系統(tǒng)數(shù)據(jù)流圖(一層)

    二層數(shù)據(jù)流程是對一層數(shù)據(jù)流層圖中填寫登錄信息、用戶功能的細(xì)化。即:填寫登錄信息細(xì)化為填制信息、后臺審核,用戶功能細(xì)化為、用戶管理、部門管理、考勤簽到、員工請假、薪資管理、通知公告、招聘信息管理等操作。

    系統(tǒng)的二層數(shù)據(jù)流圖如下圖所示。

    ?

    圖3-4系統(tǒng)數(shù)據(jù)流圖(二層)

  • 系統(tǒng)設(shè)計
  • 系統(tǒng)架構(gòu)設(shè)計
  • 目前B/S體系的系統(tǒng)主要的數(shù)據(jù)訪問方式是:通過瀏覽器頁面用戶可以進(jìn)入系統(tǒng),系統(tǒng)可以自動對用戶向服務(wù)器發(fā)送的請求進(jìn)行處理,處理請求是在系統(tǒng)后臺中進(jìn)行的,用戶在瀏覽器頁面上進(jìn)行相應(yīng)操作,就能夠看到服務(wù)端傳遞的處理結(jié)果。微小企業(yè)人事管理系統(tǒng)主要分為視圖-模型-控制三層架構(gòu)設(shè)計。在視圖層中,主要是操作在服務(wù)器端向客戶端反饋并顯示的數(shù)據(jù),在模型層中,主要處理相關(guān)的業(yè)務(wù)邏輯、數(shù)據(jù)整合等,最后的控制層它介于視圖和模型之間,主要是調(diào)整兩層之間的關(guān)系,最終落實數(shù)據(jù)的傳遞。

    系統(tǒng)架構(gòu)圖如下圖所示。

    ?

    圖4-1系統(tǒng)架構(gòu)圖

  • 系統(tǒng)功能結(jié)構(gòu)
  • 系統(tǒng)設(shè)計的目的是分析系統(tǒng)包括的所有功能結(jié)構(gòu),為開發(fā)人員設(shè)計開發(fā)和實現(xiàn)系統(tǒng)做好準(zhǔn)備工作。經(jīng)過前期的需求調(diào)查、分析和整理之后,確定的總體需求主要包括多個模塊,分別是:部門管理、員工管理、招聘信息管理、通知公告管理、薪資管理、員工請假管理、考勤簽到管理。系統(tǒng)整體角色分為二個部分,一是員工、二是管理員。權(quán)限分布也是很明顯,員工是在除去瀏覽信息之外還具有查詢和管理自己賬戶信息、通知公告查詢、薪資查詢、員工請假、考勤簽到查詢等權(quán)限;管理員是最高權(quán)限擁有者。

    系統(tǒng)功能結(jié)構(gòu)圖如下圖所示。

    ?

    圖4-2系統(tǒng)功能結(jié)構(gòu)圖

  • 功能模塊設(shè)計
  • 員工考勤簽到模塊

    員工存在考勤簽到關(guān)系,關(guān)系為一對多,根據(jù)員工編號來將員工數(shù)據(jù)傳入到考勤簽到數(shù)據(jù)中,操作人為員工,然后生成考勤簽到列表,員工查看個人歷史考勤簽到列表,可以進(jìn)行數(shù)據(jù)銷毀。

    員工維護(hù)模塊

    操作人來錄入員工數(shù)據(jù),點擊員工錄入按鈕,依次填寫要錄入的員工數(shù)據(jù),點擊提交按鈕,將數(shù)據(jù)提交至數(shù)據(jù)庫,然后刷新員工數(shù)據(jù)頁面,每條數(shù)據(jù)右邊有刪除和編輯按鈕,來完成相應(yīng)的刪除和更新功能。

    員工薪資模塊

    員工存在薪資關(guān)系,關(guān)系為一對多,根據(jù)員工編號來將員工數(shù)據(jù)傳入到工資數(shù)據(jù)中,操作人為員工,然后生成工資列表,員工查看個人歷史工資列表,可以進(jìn)行數(shù)據(jù)銷毀。

    招聘信息維護(hù)模塊

    管理員點擊招聘信息管理菜單,點擊招聘信息添加子菜單,添加招聘信息數(shù)據(jù),填寫應(yīng)聘崗位、應(yīng)聘人姓名、性別、聯(lián)系電話、學(xué)歷、畢業(yè)院校、簡歷、應(yīng)聘日期成功后,招聘信息數(shù)據(jù)頁面刷新,新數(shù)據(jù)成功載入頁面。

    員工請假維護(hù)模塊

    根據(jù)員工請假申請、員工提交請假申請、打卡數(shù)據(jù),在個人后臺便可以查看到歷史提交的請假申請,管理員來維護(hù)請假申請,審批確認(rèn)已存在的請假申請。

    通知公告信息管理模塊

    用戶登錄系統(tǒng)后,可在公告板進(jìn)行發(fā)表建議,管理員在后臺可以查看或搜索公告信息,同時可回復(fù)或刪除公告信息。

  • 數(shù)據(jù)庫設(shè)計
  • 概念模型
  • 對于一個要開發(fā)的系統(tǒng)來說,E-R圖可以讓別人能更快更輕松的了解此系統(tǒng)的事務(wù)及它們之間的關(guān)系。根據(jù)系統(tǒng)分析階段所得出的結(jié)論確定了在微小企業(yè)人事管理系統(tǒng)中存在著多個實體分別是用考勤簽到、員工、薪資、員工請假、招聘信息、部門管理。

    系統(tǒng)總體ER圖如下圖所示。

    ?

    圖4-4系統(tǒng)總體ER圖

  • 關(guān)系模型
  • 管理員(管理員id、用戶名、密碼、權(quán)限)

    員工管理(員工管理id、工號、員工姓名、部門、審核狀態(tài))

    部門管理(部門管理id、部門、負(fù)責(zé)人、聯(lián)系電話、成立日期、部門人數(shù))

    招聘信息(招聘信息id、應(yīng)聘方式、招聘職位、部門、人數(shù)、學(xué)歷要求、職位要求)

    考勤簽到(考勤簽到id、工號、部門、考勤類型、簽到照片)

    薪資管理(薪資管理id、工號、發(fā)薪月份、基本工資、加班費(fèi)、補(bǔ)貼、獎金、考勤扣款、五險一金、實發(fā)工資)

    員工請假(員工請假、工號、部門、請假類型、請假天數(shù)、開始時間、結(jié)束時間、請假原因、審核狀態(tài)、審核回復(fù))

    通知公告(通知公告、標(biāo)題、相關(guān)附件、發(fā)布人、內(nèi)容)

  • 數(shù)據(jù)表
  • 數(shù)據(jù)庫邏輯結(jié)構(gòu)就是將E-R圖在數(shù)據(jù)庫中用具體的字段進(jìn)行描述。用字段和數(shù)據(jù)類型描述來使對象特征實體化,最后形成具有一定邏輯關(guān)系的數(shù)據(jù)庫表結(jié)構(gòu)。微小企業(yè)人事管理系統(tǒng)所需要的部分?jǐn)?shù)據(jù)結(jié)構(gòu)表如下表所示。

    salary_management表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    salary_management_id

    int

    11

    薪資管理ID

    job_number

    int

    11

    工號

    salary_month

    varchar

    64

    發(fā)薪月份

    base_pay

    int

    11

    基本工資

    overtime_pay

    int

    11

    加班費(fèi)

    subsidy

    int

    11

    補(bǔ)貼

    bonus

    int

    11

    獎金

    attendance_deduction

    int

    11

    考勤扣款

    five_insurances_and_one_fund

    int

    11

    五險一金

    net_salary

    varchar

    64

    實發(fā)工資

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    recruitment_information表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    recruitment_information_id

    int

    11

    招聘信息ID

    department

    varchar

    64

    部門

    recruitment_position

    varchar

    64

    招聘職位

    number_of_people

    varchar

    64

    人數(shù)

    application_method_

    text

    0

    應(yīng)聘方式

    educational_requirements

    text

    0

    學(xué)歷要求

    job_requirements

    text

    0

    職位要求

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    notice_announcement表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    notice_announcement_id

    int

    11

    通知公告ID

    title

    varchar

    64

    標(biāo)題

    relevant_attachments

    varchar

    255

    相關(guān)附件

    publisher

    varchar

    64

    發(fā)布人

    content

    text

    0

    內(nèi)容

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    employee_management表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    employee_management_id

    int

    11

    員工管理ID

    job_number

    varchar

    64

    工號

    employee_name

    varchar

    64

    員工姓名

    department

    varchar

    64

    部門

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    user_id

    int

    11

    用戶ID

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    employee_leave表:?

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    employee_leave_id

    int

    11

    員工請假ID

    job_number

    int

    11

    工號

    department

    varchar

    64

    部門

    leave_type

    varchar

    64

    請假類型

    leave_days

    varchar

    64

    請假天數(shù)

    start_time

    datetime

    0

    開始時間

    end_time

    datetime

    0

    結(jié)束時間

    reason_for_leave

    text

    0

    請假原因

    examine_state

    varchar

    16

    審核狀態(tài)

    examine_reply

    varchar

    255

    審核回復(fù)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    department_management表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    department_management_id

    int

    11

    部門管理ID

    department

    varchar

    64

    部門

    person_in_charge

    varchar

    64

    負(fù)責(zé)人

    contact_number

    varchar

    64

    聯(lián)系電話

    date_of_incorporation

    date

    0

    成立日期

    number_of_departments

    int

    11

    部門人數(shù)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    attendance_check_in表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    attendance_check_in_id

    int

    11

    考勤簽到ID

    job_number

    int

    11

    工號

    department

    varchar

    64

    部門

    attendance_type

    varchar

    64

    考勤類型

    check_in_photos

    varchar

    255

    簽到照片

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

  • 系統(tǒng)實現(xiàn)
  • 登錄模塊的實現(xiàn)
  • 系統(tǒng)的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進(jìn)入訪問。通過在登錄提交表單,后臺處理判斷是否為合法用戶,進(jìn)行頁面跳轉(zhuǎn),進(jìn)入系統(tǒng)中去。

    登錄合法性判斷過程:用戶輸入賬號和密碼后,系統(tǒng)首先確定輸入輸入數(shù)據(jù)合法性,然后在login.jsp頁面發(fā)送登錄請求,調(diào)用src下的mainctrl類的dopost方法來驗證。

    用戶登錄模塊的IPO如下所示:

    輸入:用戶名和密碼。

    處理:

    1)檢測用戶輸入的賬號、密碼是否正確及在數(shù)據(jù)庫已對應(yīng)存在。

    2)從數(shù)據(jù)庫中提取記錄,并儲存在本地的session中(timeout默認(rèn)=30min)。

    3)根據(jù)用戶名,將其顯示在系統(tǒng)首頁上。

    輸出:是否成功的信息。

    登錄流程圖如下所示。

    ?

    圖5-1登錄流程圖

    系統(tǒng)登錄界面如下所示。

    ?

    圖5-2系統(tǒng)登錄界面

    用戶登錄的邏輯代碼如下。

    /**

    ?????* 登錄

    ?????* @param data

    ?????* @param httpServletRequest

    ?????* @return

    ?????*/

    ????@PostMapping("login")

    ????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

    ????????log.info("[執(zhí)行登錄接口]");

    ????????String username = data.get("username");

    ????????String email = data.get("email");

    ????????String phone = data.get("phone");

    ????????String password = data.get("password");

    ????????List resultList = null;

    ????????QueryWrapper wrapper = new QueryWrapper<User>();

    ????????Map<String, String> map = new HashMap<>();

    ????????if(username != null && "".equals(username) == false){

    ????????????map.put("username", username);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}

    ????????else if(email != null && "".equals(email) == false){

    ????????????map.put("email", email);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}

    ????????else if(phone != null && "".equals(phone) == false){

    ????????????map.put("phone", phone);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}else{

    ????????????return error(30000, "賬號或密碼不能為空");

    ????????}

    ????????if (resultList == null || password == null) {

    ????????????return error(30000, "賬號或密碼不能為空");

    ????????}

    ????????//判斷是否有這個用戶

    ????????if (resultList.size()<=0){

    ????????????return error(30000,"用戶不存在");

    ????????}

    ????????User byUsername = (User) resultList.get(0);

    ????????Map<String, String> groupMap = new HashMap<>();

    ????????groupMap.put("name",byUsername.getUserGroup());

    ????????List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

    ????????if (groupList.size()<1){

    ????????????return error(30000,"用戶組不存在");

    ????????}

    ????????UserGroup userGroup = (UserGroup) groupList.get(0);

    ????????//查詢用戶審核狀態(tài)

    ????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){

    ????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

    ????????????if (res==null){

    ????????????????return error(30000,"用戶不存在");

    ????????????}

    ????????????if (!res.equals("已通過")){

    ????????????????return error(30000,"該用戶審核未通過");

    ????????????}

    ????????}

    ????????//查詢用戶狀態(tài)

    ????????if (byUsername.getState()!=1){

    ????????????return error(30000,"用戶非可用狀態(tài),不能登錄");

    ????????}

    ????????String md5password = service.encryption(password);

    ????????if (byUsername.getPassword().equals(md5password)) {

    ????????????// 存儲Token到數(shù)據(jù)庫

    ????????????AccessToken accessToken = new AccessToken();

    ????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

    ????????????accessToken.setUser_id(byUsername.getUserId());

    ????????????tokenService.save(accessToken);

    ????????????// 返回用戶信息

    ????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

    ????????????user.put("token", accessToken.getToken());

    ????????????JSONObject ret = new JSONObject();

    ????????????ret.put("obj",user);

    ????????????return success(ret);

    ????????} else {

    ????????????return error(30000, "賬號或密碼不正確");

    ????????}

    }

    ????public String select(Map<String,String> query,Map<String,String> config){

    ????????StringBuffer sql = new StringBuffer("select ");

    ????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

    ????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

    ????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

    ????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

    ????????}

    ????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

    ????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

    ????????}

    ????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

    ????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

    ????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

    ????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

    ????????}

    ????????log.info("[{}] - 查詢操作,sql: {}",table,sql);

    ????????return sql.toString();

    }

    ????public List selectBaseList(String select) {

    ????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

    ????????List<E> list = new ArrayList<>();

    ????????for (Map<String,Object> map:mapList) {

    ????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

    ????????}

    ????????return list;

    }

  • 用戶子系統(tǒng)模塊的實現(xiàn)
  • 用戶首頁模塊
  • 系統(tǒng)呈現(xiàn)出一種簡潔大方的首頁:界面簡約、鱗次櫛比,用戶能輕車熟路的使用。出于對系統(tǒng)使用群體廣泛的顧慮,應(yīng)有良好性能的后臺。

    如下圖所示為系統(tǒng)的首頁界面。

    ?

    圖5-3系統(tǒng)首頁界面

    其中載入前臺頁面的主要代碼如下。

    package com.project.demo.constant;

    /**

    ?*/

    public class FindConfig {

    ????public static String PAGE = "page";

    ????public static String SIZE = "size";

    ????public static String LIKE = "like";

    ????public static String ORDER_BY = "orderby";

    ????public static String FIELD = "field";

    ????public static String GROUP_BY = "groupby";

    ????public static String MIN_ = "_min";

    ????public static String MAX_ = "_max";

    }

  • 考勤簽到模塊
  • 考勤簽到過程中,首先使用getmap(id,"xinxi"),通過員工ID得到考勤簽到數(shù)據(jù),將員工數(shù)據(jù)賦值給員工考勤簽到,調(diào)用CommDAO的insert方法將考勤數(shù)據(jù)插入考勤表中,最后查看個人歷史員工考勤簽到記錄,可以銷毀歷史考勤數(shù)據(jù)。

    考勤簽到流程圖如下所示。

    ?

    圖5-4考勤簽到流程圖

    考勤簽到界面如圖所示。

    ?

    圖5-5考勤簽到界面

    考勤簽到管理界面如圖所示。

    ?

    圖5-6考勤簽到管理界面

    考勤簽到添加關(guān)鍵代碼如下所示。

    @PostMapping("/add")

    ????@Transactional

    ????public Map<String, Object> add(HttpServletRequest request) throws IOException {

    ????????service.insert(service.readBody(request.getReader()));

    ????????return success(1);

    ????}

    ????@Transactional

    ????public Map<String, Object> addMap(Map<String,Object> map){

    ????????service.insert(map);

    ????????return success(1);

    }

  • 招聘信息模塊
  • 招聘信息過程中,首先使用getmap(id,"xinxi"),通過招聘ID得到信息數(shù)據(jù),將招聘信息數(shù)據(jù)賦值給招聘信息,調(diào)用CommDAO的insert方法將招聘數(shù)據(jù)插入考勤表中,最后查看個人歷史招聘信息記錄,可以銷毀歷史招聘數(shù)據(jù)。

    招聘信息流程圖如下所示。

    ?

    圖5-7招聘信息流程圖

    招聘信息管理界面如圖所示。

    ?

    圖5-8招聘信息管理界面

    招聘信息關(guān)鍵代碼如下所示。

    @RequestMapping("/get_obj")

    ????public Map<String, Object> obj(HttpServletRequest request) {

    ????????List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

    ????????if (resultList.size() > 0) {

    ????????????JSONObject jsonObject = new JSONObject();

    ????????????jsonObject.put("obj",resultList.get(0));

    ????????????return success(jsonObject);

    ????????} else {

    ????????????return success(null);

    ????????}

    }

  • 薪資管理模塊
  • 薪資管理過程中,首先使用getmap(id,"xinxi"),通過員工ID得到員工數(shù)據(jù),將員工數(shù)據(jù)賦值給薪資管理,調(diào)用CommDAO的insert方法將工資數(shù)據(jù)插入工資表中,最后查看個人歷史薪資管理記錄,可以銷毀歷史工資數(shù)據(jù)。

    薪資管理流程圖如下所示。

    ?

    圖5-9薪資管理流程圖

    薪資管理界面如圖所示。

    ?

    圖5-10薪資管理界面

    薪資管理界面如圖所示。

    ?

    圖5-11薪資管理界面

    薪資管理關(guān)鍵代碼如下所示。

    @PostMapping("/set")

    @Transactional

    ????public Map<String, Object> set(HttpServletRequest request) throws IOException {

    ????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

    ????????return success(1);

    }

  • 員工請假模塊
  • 用戶提交員工請假,可以進(jìn)行新增、查看、修改以及刪除等相應(yīng)的請假申請管理操作。當(dāng)點擊"新增請假申請、打卡"的按鈕時,在請假申請、添加界面進(jìn)行詳細(xì)信息的添加操作。當(dāng)點擊"查看請假申請、打卡"超級鏈接時,會顯示所選的請假申請的信息,然后點擊"返回"再返回到其主頁面。

    員工請假界面如圖所示。

    ?

    圖5-12員工請假界面

    員工請假管理界面如圖所示。

    ?

    圖5-13員請假管理界面

    員工請假添加關(guān)鍵代碼如下所示。

    @RequestMapping(value = "/del")

    ????@Transactional

    ????public Map<String, Object> del(HttpServletRequest request) {

    ????????service.delete(service.readQuery(request), service.readConfig(request));

    ????????return success(1);

    }

  • 管理員子系統(tǒng)模塊的實現(xiàn)
  • 個人資料管理模塊
  • 用戶點擊登錄填寫賬號信息登錄后,會切換內(nèi)容為“某某用戶歡迎您”和歷史訂單,并給出注銷鏈接。當(dāng)用戶登錄成功后會將個人信息保存在session作用域中,點擊自己的用戶名時,會跳轉(zhuǎn)到個人詳細(xì)信息頁面,由后臺通過Freemarker取出session作用域中的用戶信息進(jìn)行動態(tài)渲染,例如,郵箱、電話號碼、用戶名等等。同時頁面上會顯示修改個人信息和修改密碼的按鈕,這時客戶可以修改自己的登錄密碼以保障賬號的安全性,防止被人竊取賬號,通過UserController.java的updatePassword()實現(xiàn),同時也可以根據(jù)自己的個人信息是否變動做出相應(yīng)的修改,通過updateUserInfo()實現(xiàn)。

    密碼修改流程圖如下所示。

    ?

    圖5-14密碼修改流程圖

    個人信息界面圖如下所示。

    ?

    圖5-15個人信息界面圖

    修改密碼界面如下所示。

    ?

    圖5-15修改密碼界面圖

    密碼修改關(guān)鍵代碼如下所示。

    public String encryption(String plainText) {

    ????????String re_md5 = new String();

    ????????try {

    ????????????MessageDigest md = MessageDigest.getInstance("MD5");

    ????????????md.update(plainText.getBytes());

    ????????????byte b[] = md.digest();

    ????????????int i;

    ????????????StringBuffer buf = new StringBuffer("");

    ????????????for (int offset = 0; offset < b.length; offset++) {

    ????????????????i = b[offset];

    ????????????????if (i < 0)

    ????????????????????i += 256;

    ????????????????if (i < 16)

    ????????????????????buf.append("0");

    ????????????????buf.append(Integer.toHexString(i));

    ????????????}

    ????????????re_md5 = buf.toString();

    ????????} catch (Exception e) {

    ????????????e.printStackTrace();

    ????????}

    ????????return re_md5;

    }

  • 員工管理模塊
  • 添加員工信息時,輸入必填字段后,表現(xiàn)層的YuangongController接受傳過來的員工信息參數(shù),再調(diào)用YuangongController類的addYuangong方法,經(jīng)過YuangongService業(yè)務(wù)層到Y(jié)uangongMapper持久層的處理,完成對整個添加員工信息的操作。addYuangong方法也和用戶管理中的addUser方法類似,同時做添加和修改工作。

    修改員工信息時,選擇需要修改的員工進(jìn)行修改,調(diào)用YuangongController控制器的editYuangong方法,拿到該員工原本的信息并顯示到頁面,管理員再對需要修改的員工信息字段進(jìn)行修改,完成后調(diào)用addYuangong方法,調(diào)用業(yè)務(wù)層的updateByKey方法,更新數(shù)據(jù)庫的員工信息表的數(shù)據(jù)。

    員工管理流程圖如下所示。

    ?

    圖5-16員工管理流程圖

    員工添加界面如下圖所示。

    ?

    圖5-17員工添加界面

    員工查詢界面如下圖所示。

    ?

    圖5-18員工查詢界面

    員工信息添加關(guān)鍵代碼如下所示。

    /**

    ?* 用戶組:用于用戶前端身份和鑒權(quán)(UserGroup)表實體類

    ?*

    ?* @author xxx

    ?*@since 202X-XX-XX

    ?*/

    @TableName("user_group")

    @Data

    @EqualsAndHashCode(callSuper = false)

    public class UserGroup implements Serializable {

    ????private static final long serialVersionUID = 968356951391304707L;

    ????/**

    ?????* 用戶組ID:[0,8388607]

    ?????*/

    ????@TableId(value = "group_id", type = IdType.AUTO)

    ????private Integer groupId;

    ????/**

    ?????* 顯示順序:[0,1000]

    ?????*/

    ????@TableField(value = "display")

    ????private Integer display;

    ????/**

    ?????* 名稱:[0,16]

    ?????*/

    ????@TableField(value = "name")

    ????private String name;

    ????/**

    ?????* 描述:[0,255]描述該用戶組的特點或權(quán)限范圍

    ?????*/

    ????@TableField(value = "description")

    ????private String description;

    ????/**

    ?????* 來源表:

    ?????*/

    ????@TableField(value = "source_table")

    ????private String sourceTable;

    ????/**

    ?????* 來源字段:

    ?????*/

    ????@TableField(value = "source_field")

    ????private String sourceField;

    ????/**

    ?????* 注冊位置:

    ?????*/

    ????@TableField(value = "register")

    ????private String register;

    ????/**

    ?????* 創(chuàng)建時間:

    ?????*/

    ????@TableField(value = "create_time")

    ????private Timestamp createTime;

    ????/**

    ?????* 更新時間:

    ?????*/

    ????@TableField(value = "update_time")

    ????private Timestamp updateTime;

    }

    ????/**

    ?????* 所在用戶組:[0,32767]決定用戶身份和權(quán)限

    ?????*/

    ????@TableField(value = "user_group")

    private String userGroup;

    /**

    ?* 用戶組:用于用戶前端身份和鑒權(quán)(UserGroup)表控制層

    ?*

    ?*/

    @RestController

    @RequestMapping("user_group")

    public class UserGroupController extends BaseController<UserGroup, UserGroupService> {

    ????/**

    ?????* 服務(wù)對象

    ?????*/

    ????@Autowired

    ????public UserGroupController(UserGroupService service) {

    ????????setService(service);

    ????}

    }

  • 招聘信息管理模塊
  • 刪除招聘信息時,選擇需要刪除的招聘信息進(jìn)行刪除,把主鍵的uId傳到ZhaopingController控制器,再調(diào)用控制器的deleteZhaoping方法,數(shù)據(jù)經(jīng)過ZhaopingService業(yè)務(wù)層解析和處理,請求ZhaopingMapper持久層調(diào)用deleteByPrimaryKey方法操作數(shù)據(jù)庫將招聘數(shù)據(jù)從數(shù)據(jù)庫中刪除。

    查找招聘信息時,輸入需要查找的招聘名,調(diào)用getData方法獲取所有數(shù)據(jù)并且進(jìn)行分頁,把獲取到的所有數(shù)據(jù)顯示到視圖上,這時候只需要用腳本方法便能快速查找,不涉及對數(shù)據(jù)庫操作。

    招聘信息管理流程圖如下所示。

    ?

    圖5-19招聘信息管理流程圖

    招聘信息添加界面如下圖所示。

    ?

    圖5-20招聘信息添加界面

    招聘信息查詢界面如下圖所示。

    ?

    圖5-21招聘信息查詢界面

    招聘信息添加關(guān)鍵代碼如下所示。

    Connection conn = this.getConn();

    try {

    Statement st = conn.createStatement();

    ????ResultSet rs = st.executeQuery("select * from "+tablename);

    ????ResultSetMetaData rsmd = rs.getMetaData();

    ????????????int i = rsmd.getColumnCount();

    ???? for(int j=1;j<=i;j++)

    ???? {

    ???? if(rsmd.getColumnName(j).equals("id"))continue;

    if(rsmd.getColumnName(j).equals("ID"))continue;

    if(rsmd.getColumnName(j).equals("iD"))continue;

    if(rsmd.getColumnName(j).equals("Id"))continue;

    ???? typemap.put(rsmd.getColumnName(j)+"---", rsmd.getColumnTypeName(j));

    ???? collist.add(rsmd.getColumnName(j));

    ???? ???? sql+=rsmd.getColumnName(j)+",";

    ???? }

    ???? sql = sql.substring(0,sql.length()-1);

    ????sql+=") values(";

    ????rs.close();

    ????st.close();

    } catch (SQLException e) {

    e.printStackTrace();

    }

  • 部門管理模塊
  • 用戶選擇部門添加部門管理記錄,用戶在yuangong_list查看員工,點擊部門,跳轉(zhuǎn)至peixun_add.jsp,添加部門則將添加的部門信息記錄數(shù)據(jù)封裝在HashMap中,然后調(diào)用CommDAO的insert方法將部門管理內(nèi)容插入記錄表中。

    部門管理流程圖如下所示。

    ?

    圖5-22部門管理流程圖

    部門管理界面如下圖所示。

    ?

    圖5-23部門管理界面

  • 系統(tǒng)測試
  • 測試目的
  • 在對該系統(tǒng)進(jìn)行完詳細(xì)設(shè)計和編碼之后,就要對微小企業(yè)人事管理系統(tǒng)的程序進(jìn)行測試,檢測程序是否運(yùn)行無誤,反復(fù)進(jìn)行測試和修改,使之最后成為完整的軟件,滿足用戶的需求,實現(xiàn)預(yù)期的功能。

  • 測試過程
  • 在軟件的測試過程中,通常測試人員需要針對不同的功能模塊設(shè)計多種測試用例。通過測試用例能夠及時發(fā)現(xiàn)代碼業(yè)務(wù)邏輯上是否與真實的業(yè)務(wù)邏輯相對應(yīng),及時發(fā)現(xiàn)代碼上或邏輯上的缺陷,以此來來完善系統(tǒng),提高軟件產(chǎn)品的質(zhì)量,使軟件具有良好的用戶體驗。

    登錄測試用例表如下所示。

    表6-1登錄測試用例

    測試性能

    用戶或操作員登錄系統(tǒng)

    用例目的

    測試用戶或操作員登錄系統(tǒng)時功能是否正常

    前提條件

    進(jìn)入用戶登錄頁面或操作員登錄頁面

    輸入條件

    預(yù)期輸出

    實際情況

    各項信息不予填寫,直接點擊登陸按鈕

    不允許登錄,提示填寫賬號相關(guān)信息

    一致

    填寫錯誤的登錄名或密碼后點擊登錄系統(tǒng)

    提示用戶名或密碼錯誤,要求重新填寫進(jìn)行登錄

    一致

    填寫與驗證碼信息不一致的信息

    系統(tǒng)顯示出提示信息,表明驗證碼錯誤,要求重新填寫

    一致

    考勤簽到測試用例表如下所示。

    表6-2考勤簽到測試用例

    測試性能

    用戶進(jìn)行考勤簽到的操作

    用例目的

    測試用戶進(jìn)行考勤簽到操作時,該功能是否正常

    前提條件

    用戶進(jìn)入員工詳情頁,該員工能夠被考勤

    輸入條件

    預(yù)期輸出

    實際情況

    對著某員工點擊“考勤”按鈕

    界面跳轉(zhuǎn)至考勤界面

    一致

    在考勤界面,輸入必填項,點擊“提交”按鈕

    提示“考勤成功”,并返回上一級界面

    一致

    在考勤界面,填寫考勤表單的時候未輸入完整,點擊“提交”按鈕

    提示“考勤失敗”

    一致

    員工管理測試用例表如下所示。

    表6-3員工管理測試用例

    測試性能

    員工相關(guān)信息管理功能

    用例目的

    測試系統(tǒng)操作者對員工相關(guān)信息進(jìn)行管理的功能是否正常

    前提條件

    登錄系統(tǒng)進(jìn)入相關(guān)管理頁面

    輸入條件

    預(yù)期輸出

    實際情況

    進(jìn)入員工管理界面,點擊“錄入”按鈕,填寫所有必填項,點擊提交

    提示“錄入成功”,并返回查詢界面

    一致

    進(jìn)入員工管理界面,點擊“錄入”按鈕,未填寫一個或者多個必填項,點擊提交

    提示“錄入失敗”,請?zhí)顚懕靥铐?/p>

    一致

    進(jìn)入員工管理界面,選擇要修改的一條數(shù)據(jù),點擊該條數(shù)據(jù)后面的“修改”按鈕?

    節(jié)目跳轉(zhuǎn)至修改界面

    一致

    在修改界面,修改可修改項后,點擊“提交”按鈕

    提示“修改成功”,并返回查詢界面

    一致

    進(jìn)入員工管理界面,點擊某條數(shù)據(jù)后面的刪除按鈕

    提示“是否要刪除該數(shù)據(jù)”,如果用戶點擊“確定”按鈕,則成功刪除該條數(shù)據(jù),并提示“刪除成功”,之后返回查詢界面

    一致

  • 測試結(jié)果
  • 經(jīng)過對此系統(tǒng)的測試,得出該系統(tǒng)足以滿足用戶日常需求,在功能項目和操作等方面也能滿足操作員對于其他用戶的管理。但是,還有很多功能有待添加,這個系統(tǒng)僅能滿足大部分的需求,還需要對此系統(tǒng)的功能更進(jìn)一步的完善,這樣使用起來才能更加的完美。

  • 總結(jié)與展望
  • 通過微小企業(yè)人事管理系統(tǒng)的開發(fā),本人鞏固了之前學(xué)過的知識,如今將平時所學(xué)到的知識融合在設(shè)計中,在設(shè)計過程中,做了很多的準(zhǔn)備,首先,在數(shù)據(jù)庫系統(tǒng)的設(shè)計過程中,尤其是在數(shù)據(jù)庫的工作原理、工作特點,對其深刻的討論,與此同時,對于小型站點來說,最好服務(wù)器的選擇,其次,利用所學(xué)的知識點分析所做的系統(tǒng),并在此基礎(chǔ)上設(shè)計。

    目前本系統(tǒng)已經(jīng)上線,正在試運(yùn)行階段,用戶反饋良好,基本完成用戶所需,試運(yùn)行過程中沒有出現(xiàn)阻斷性問題,有一些不足和小問題也及時予以修正,系統(tǒng)上線后,為了保證數(shù)據(jù)的安全性,對系統(tǒng)進(jìn)行了備份操作,系統(tǒng)備份是每兩個月備份一次,數(shù)據(jù)庫備份為每周備份一次,系統(tǒng)部署在租賃的云平臺服務(wù)器中。

    本次系統(tǒng)上線成功后,得到了用戶的高度認(rèn)可,但是在功能上和性能上還需做進(jìn)一步的研究處理,使其有更高的性能和更好的用戶體驗。

    系統(tǒng)在以后的升級過程中,需要解決一系列用戶所提出的問題,例如打印過程中如何避免瀏覽器的兼容性問題,大量用戶訪問時,如何保持較高的響應(yīng)速度,在系統(tǒng)今后的升級過程中將著重解決這些安全性問題。

    參考文獻(xiàn)

    [1]王曉欣.企業(yè)人事管理中員工激勵機(jī)制的構(gòu)建[J].人才資源開發(fā),2021(24):75-76.

    [2]吳亮.中小企業(yè)人事管理系統(tǒng)設(shè)計[J].科學(xué)技術(shù)創(chuàng)新,2020(31):73-74.

    [3]劉蓉,丁旭.現(xiàn)代企業(yè)人事管理信息系統(tǒng)的設(shè)計與實現(xiàn)[J].黃河.黃土.黃種人,2020(17):36-37.

    [4] Technology; Ivano-Frankivsk National Technical University of Oil and Gas Researchers Report Research in Technology (Digitalization As A Factor of Development of Enterprise Personnel)[J]. Journal of Technology,2020:

    [5]段修亮,趙霞.小型企業(yè)人事管理系統(tǒng)的設(shè)計與實現(xiàn)[J].科技風(fēng),2020(01):76.

    [6]張?zhí)煳?面向國有企業(yè)領(lǐng)導(dǎo)班子人事管理系統(tǒng)的設(shè)計與實現(xiàn)[J].企業(yè)科技與發(fā)展,2020(12):85-86.

    [7]曹智. 基于SSM框架的企業(yè)人事管理考勤系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2020.

    [8]許騰. 基于WEB的企業(yè)人事管理系統(tǒng)設(shè)計與實現(xiàn)[D].石家莊鐵道大學(xué),2019.

    [9]王惠.基于JSP的企業(yè)人事管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2019,14(33):75-77.

    [10]許天旸.企業(yè)人事管理系統(tǒng)設(shè)計與實現(xiàn)[J].電子世界,2019(11):177+179.

    [11]張平,程婷,趙明松,陸龍妹.中小企業(yè)人事管理系統(tǒng)設(shè)計與開發(fā)[J].科技創(chuàng)新與生產(chǎn)力,2019(04):96-98.

    [12]尚展壘,宋文軍. Oracle數(shù)據(jù)庫管理與開發(fā)[M].人民郵電出版社:, 201904.329.

    [13]Aliya Z. Gafiyatullina,Adeliya V. Pavlova,Maria V. Vesloguzova,Rayaz K. Takhaviev,Ilana B. Kashirina,Svetlana I. Ashmarina. Structure and Development of the Intellectual Potential of the Industrial Enterprise Personnel[J]. Review of European Studies,2019,7(1):

    [14]陸雛. 企業(yè)人事檔案管理軟件的開發(fā)[C]//源于實踐 服務(wù)全局——蘭臺工作縱橫.,2018:270-273.

    [15]于法鳴, 企業(yè)勞動人事管理系統(tǒng)軟件. 北京市,勞動和社會保障部勞動科學(xué)研究所,2018-01-01.

    致謝

    伴隨著設(shè)計的完成,大學(xué)生涯也隨之即將結(jié)束。大學(xué)期間是我最珍惜的時光,大學(xué)時光中學(xué)會了很多,也成長了很多,這段時光中每一段回憶都刻在腦海中。感謝一起學(xué)習(xí),一起成長同學(xué)們,和成長過程悉心教導(dǎo)的老師們,非常感激有你們的陪伴。

    首先感謝我的指導(dǎo)老師,設(shè)計的完成離不開老師的一系列指導(dǎo)。在畢業(yè)設(shè)計的完成過程中,老師給出了很多中肯的建議,正是由于老師一絲不茍的工作態(tài)度,我的設(shè)計才能順利的完成。

    最后,感謝在大學(xué)生涯中每一位教導(dǎo)我的老師,是你們教給了我豐富的知識,更教會了我遇到問題時,如何去應(yīng)對并解決。謝謝你們的幫助與支持。

    免費(fèi)領(lǐng)取本源代碼,請關(guān)注點贊+私信

    總結(jié)

    以上是生活随笔為你收集整理的ssm基于Java的微小企业人事管理系统的设计与实现毕业设计源码231012的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 色综合图片 | 久久这里只有精品久久 | 国产精品免费无遮挡无码永久视频 | 91精品亚洲| 91毛片视频 | 毛片视频在线免费观看 | 熟女人妻视频 | 超碰在97 | 国产视频一区二区在线观看 | 可以在线观看的av | 国产视频1 | 欧美黄色小说视频 | 男人靠女人免费视频网站 | 国产欧美日韩精品在线 | 韩国电影一区二区三区 | 欧美生活一级片 | 狠狠插综合 | 色精品| 超碰一区二区 | 国产一区在线播放 | 欧美一区视频在线 | 九色丨蝌蚪丨成人 | 日本爽妇网 | 日韩诱惑| 国产h视频在线 | 可以看的av网址 | av剧情在线 | 亚洲激情小视频 | yjizz视频网 国产乱人对白 | www九九九 | 在线一区二区三区 | 中文字幕第一区 | 黄色片网站在线播放 | 亚洲一级片在线播放 | 免费在线黄色片 | 欧美一级免费黄色片 | 国产精品成人免费精品自在线观看 | 丰满岳妇伦在线播放 | 久久精品不卡 | 欧美激情16p| 日本xx视频免费观看 | 日本精品免费在线观看 | 日本护士╳╳╳hd少妇 | av鲁丝一区鲁丝二区鲁丝三区 | 风韵丰满熟妇啪啪区老熟熟女 | 一女被多男玩喷潮视频 | 尤物视频在线观看国产性感 | julia一区二区 | 三级成人在线 | 青青草视频免费 | 91伊人| 日韩图色 | 在线观看黄色的网站 | 新版红楼梦在线高清免费观看 | 豆花视频在线播放 | 插插宗合网 | 成人久色 | 欧美日韩国产在线 | 黄色成人在线观看 | 色综合久久久 | 成人做受视频试看60秒 | www.色哟哟 | 亚洲黄网av | 美女伊人网 | 一级国产特黄bbbbb | 欧美一二三区 | 蜜桃视频久久一区免费观看入口 | 美女脱了裤子让男人桶 | 五月天婷婷色综合 | 亚洲成人精品一区 | 国产91在线视频 | 国产一级高清视频 | 日韩免费福利视频 | 插插插网站 | 亚洲天堂网一区 | 免费黄色在线 | 麻豆传谋在线观看免费mv | 六月色丁香| 亚洲免费视频网站 | 国产精品欧美一区喷水 | 欧美123区| 亚洲成人午夜影院 | 亚洲欧美日韩网站 | 国产精品3 | 日韩在线视屏 | 性视频网| 欧美日韩一区二区三区四区五区 | 中文字幕av网 | 国产白浆在线 | 婷婷人体 | 欧美在线不卡 | 女futa攻玩遍整个后宫 | 亚洲激情图片区 | 国产91视频在线 | 亚洲婷婷在线视频 | yy77777丰满少妇影院 | 涩涩视频网址 | 久久国语| 中文字幕精品在线 |