SSM+中小型企业绩效管理系统毕业设计-附源码081536
?SSM中小型企業(yè)績效管理系統(tǒng)
摘 要
在市場競爭日趨激烈的今天,利用人力資源來獲取競爭優(yōu)勢已得到了管理者和學者們的共識。而績效管理作為現(xiàn)代人力資源管理的核心問題,也逐漸被中小民營企業(yè)所重視。近年來,我國中小民營企業(yè)發(fā)展迅速,為社會穩(wěn)定、經(jīng)濟發(fā)展做出了不可忽視的貢獻。但中小民營企業(yè)在實施績效管理時的落后性制約了其進一步發(fā)展。如何提高企業(yè)中人力資源的素質(zhì)和績效,有效的績效管理是關鍵的一環(huán)。目前,許多中小民營企業(yè)都注意到了績效管理的重要性,并采取了許多方法,但其效果并不明顯,有的竟適得其反。中小型企業(yè)績效管理已成為管理界最關注的課題之一。
中小型企業(yè)績效管理系統(tǒng)主要功能模塊包括部門管理、員工管理、打卡記錄管理、工時信息管理、工資信息管理、評價中心、文件中心管理等,采取面對對象的開發(fā)模式進行軟件的開發(fā)和硬體的架設,能很好的滿足實際使用的需求,完善了對應的軟體架設以及程序編碼的工作,采取MySQL作為后臺數(shù)據(jù)的主要存儲單元,采用ssm框架、Java技術、Ajax技術進行業(yè)務系統(tǒng)的編碼及其開發(fā),實現(xiàn)了本系統(tǒng)的全部功能。本次報告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎。針對中小型企業(yè)績效管理系統(tǒng)的各項需求以及技術問題進行分析,證明了系統(tǒng)的必要性和技術可行性,然后對設計系統(tǒng)需要使用的技術軟件以及設計思想做了基本的介紹,最后來實現(xiàn)中小型企業(yè)績效管理系統(tǒng)和部署運行使用它。
關鍵詞:績效管理;ssm框架;企業(yè)管理
SSM performance management system for small and medium-sized enterprises
Abstract
In today's increasingly fierce market competition, the use of human resources to obtain competitive advantage has been the consensus of managers and scholars. As the core issue of modern human resource management, performance management has gradually been paid attention to by small and medium-sized private enterprises. In recent years, China's small and medium-sized private enterprises have developed rapidly and made non negligible contributions to social stability and economic development. However, the backwardness of small and medium-sized private enterprises in the implementation of performance management restricts their further development. How to improve the quality and performance of human resources in enterprises, effective performance management is the key link. At present, many small and medium-sized private enterprises have noticed the importance of performance management and adopted many methods, but the effect is not obvious, and some are counterproductive. Performance management of small and medium-sized enterprises has become one of the most concerned topics in the management field.
The main functional modules of the performance management system of small and medium-sized enterprises include department management, employee management, punch in record management, man hour information management, salary information management, evaluation center, file center management, etc. the object-oriented development mode is adopted for software development and hardware erection, which can well meet the needs of actual use and improve the corresponding software erection and program coding, MySQL is used as the main storage unit of background data, and SSM framework, Java technology and Ajax technology are used to code and develop the business system, which realizes all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the performance management system of small and medium-sized enterprises, proves the necessity and technical feasibility of the system, then makes a basic introduction to the technical software and design idea needed to design the system, and finally realizes the performance management system of small and medium-sized enterprises and deploys and runs it.
Key words:?Performance management; SSM framework; business management
目 ?錄
第1章 緒論
1.1?研究背景
1.2?研究內(nèi)容
1.3?論文組成結(jié)構(gòu)
第2章 開發(fā)工具及相關技術介紹
2.1?HTTP協(xié)議
2.2?Java語言與JDK開發(fā)環(huán)境
2.3 SSM框架
2.4 Mysql數(shù)據(jù)庫
第3章 系統(tǒng)分析
3.1?可行性分析
3.1.1?經(jīng)濟可行性
3.1.2?技術可行性
3.1.3?操作可行性
3.2?性能分析 ?
3.3?系統(tǒng)操作流程
3.3.1用戶登錄流程 9
3.3.2信息添加流程 10
3.3.3信息刪除流程 10
第4章 系統(tǒng)設計
4.1系統(tǒng)架構(gòu)設計
4.2開發(fā)流程設計
4.3數(shù)據(jù)庫設計 12
4.3.1實體ER圖
4.3.2數(shù)據(jù)表 13
第5章 系統(tǒng)實現(xiàn) 17
5.1數(shù)據(jù)庫訪問層的實現(xiàn) 17
5.2注冊模塊的實現(xiàn) 20
5.3用戶登錄模塊的實現(xiàn) 23
5.4 用戶資料修改模塊的實現(xiàn) 24
5.5部門信息模塊的實現(xiàn) 28
5.6用戶管理模塊的實現(xiàn) 31
5.7打卡記錄管理模塊 33
5.8?文件中心管理模塊的實現(xiàn) 34
5.8?工資信息管理模塊的實現(xiàn) 34
第6章 系統(tǒng)測試 35
6.1??測試目的 35
6.2?測試方案設計 35
6.2.1 測試策略 35
6.2.2 測試分析 35
6.3 測試結(jié)果 36
第7章 總結(jié)與展望 37
參考文獻 38
致謝 40
績效依次來源于管理學中,在不同的人眼中,對于績效的理解是不一樣的,有的人認為績效是員工的工作結(jié)果中對于企業(yè)有貢獻的部分,還有人認為績效是指完成工作的效率和成績,還有的人認為績效是對工作的過程和結(jié)果進行評估后的結(jié)果等等。我們通常所說的績效大多是指在一段時間內(nèi)的工作的結(jié)果及其產(chǎn)生的影響,在企業(yè)中,具工的績效往往是指員工在工作中對工作完成的成果、質(zhì)量以及對企業(yè)的其他貢獻。首先,績效管理能使公司完成定期完成任務目標。通過將任務目標分解,具體到海一個員工身 上。
讓每一個員工都能清楚地知道自己應該完成的目標,建立員工個人和公司目標的聯(lián)系。在日常生活中,銷售公司往往都會有一個 銷售目標,比如一個月或者一個季度、一年之內(nèi)完成多少的銷售量,然后公司將銷售:分攤到每一個員工的身上,變成員工的個人目標,這就要求員工圍繞這個目標去找客戶,發(fā)揮出員工的主觀能動性,想方設法完成目標,其次,有助于員工的職業(yè)發(fā)展規(guī)劃。通過績效管理,企業(yè)能夠全面系統(tǒng)地了解到員工的表現(xiàn)情況,了解員工的能力與潛力,從而對員工的未來職業(yè)發(fā)展規(guī)劃進行準確全面的評估。對于員工個人,績效管理能讓員工認真對待工作,努力完成工作目標,通過對目標的完成過程和結(jié)果,發(fā)現(xiàn)自己在工作中的問題,幫助員工更好地完善自己,加強員工的工作積極性和工作能力,實現(xiàn)員工自我價值。最后,績效管理能實現(xiàn)員工與公司之間的共贏。在績效管理中,績效的基礎就是公司與員工雙方利益的結(jié)合。員工通過績效,發(fā)揮主動性,積極完成目標,實現(xiàn)自己的價值,公司通過績效,在員工實現(xiàn)自我價值的同時,也為公司創(chuàng)造了效益,滿足了公司對利益的追求,從而實現(xiàn)了共贏。
中小型企業(yè)績效管理系統(tǒng)的開發(fā)及實現(xiàn),所需要的工作內(nèi)容:
(1)首先是確定選題,確定好所要做的系統(tǒng),并對系統(tǒng)的背景及現(xiàn)在面臨的一些問題等進行系統(tǒng)的初步確認。
(2)系統(tǒng)確認完成后,結(jié)合系統(tǒng)開發(fā)的需求進行確認系統(tǒng)開發(fā)所使用的技術,中小型企業(yè)績效管理系統(tǒng)的開發(fā)使用SSM框架,數(shù)據(jù)庫進行平臺的搭建開發(fā),確認好使用的技術進行技術分析,所使用的技術是否可以完成系統(tǒng)的實現(xiàn)。
(3)確定好系統(tǒng)使用的技術,進行在線確認系統(tǒng)所劃分的用戶角色,并且根據(jù)用戶角色劃分確定所要設計的功能模塊,對中小型企業(yè)績效管理系統(tǒng)的設計主要劃分別為管理員和用戶角色,并所使用的功能模塊也相應不同,但是系統(tǒng)的數(shù)據(jù)庫實現(xiàn)的內(nèi)容是交互的,用戶可以隨時根據(jù)自己的需求進行課程信息,對于系統(tǒng)工作人員可以根據(jù)自己的分管內(nèi)容進行在線信息的處理及操作,管理員獲取到所有用戶的詳細數(shù)據(jù)信息,并根據(jù)需求進行第一時間處理解決。
(4)系統(tǒng)的功能模塊確認完成后進行程序及界面的設計,設計完成后,并且通過測試來判斷程序是否完善,對于系統(tǒng)測試,需要不同的用戶進行不同的內(nèi)容編輯及提交,及使用不同的測試方式找出程序中存在的漏洞,并對程序出現(xiàn)的漏洞問題進行在線解決處理,如果測試系統(tǒng)沒有任何問題時,可以將系統(tǒng)上傳進行正式操作使用。
根據(jù)市場調(diào)研得到的信息數(shù)據(jù),結(jié)合國內(nèi)外前沿研究,利用相關系統(tǒng)開發(fā)和設計方法,最終設計出中小型企業(yè)績效管理系統(tǒng)?。
本文共有七章,如下所示。
第一章概述了中小型企業(yè)績效管理系統(tǒng)的研究目的和意義;精煉地總結(jié)了國內(nèi)外在內(nèi)的領域研究情況和未來的研究趨勢,最后給出了論文的組成結(jié)構(gòu)。
第二章簡要概述了本文所用的開發(fā)技術和工具。
第三章簡要對系統(tǒng)各業(yè)務流程進行需求分析、可行性分析。
第四章對中小型企業(yè)績效管理系統(tǒng)進行設計。
第五章對中小型企業(yè)績效管理系統(tǒng)進行實現(xiàn),并貼出相關頁面截圖,語言描述出具體功能實現(xiàn)的操作方法。
第六章對中小型企業(yè)績效管理系統(tǒng)采用測試用例的方式來對一些主要功能模塊測試,最后得出測試結(jié)果。
第七章總結(jié)全文并對未來的研究做出展望。
超文本傳輸協(xié)議(HTTP)作為協(xié)作式與分布式的通信協(xié)議,其以萬維網(wǎng)交換信息作為前提條件。HTTP為IEIF的國際化標準指標,在制定相關標準與實現(xiàn)內(nèi),W3C積極參與其中,同時發(fā)揮著不可替代的作用。其能夠借助超文本標記語言,將文檔在服務器與瀏覽器之間相互傳輸。HTML作為構(gòu)架文檔的標記語言,這些文檔內(nèi)將包括有關信息的鏈接,用戶僅需要點擊其中一個鏈接就能夠訪問多媒體對象與圖像,同時獲得該鏈接項所具有的附加信息。
Java是美國sun公司所推出的一款程序設計語言,其能夠在多個平臺內(nèi)應用,具有良好兼容性,進而其憑借自身優(yōu)勢在數(shù)據(jù)中心、個人PC與科技超級計算機等平臺內(nèi)廣泛應用,具有目前最為龐大的開發(fā)者專業(yè)社群。
JDK為美國sun公司為java開發(fā)員所推出的一款全新產(chǎn)品,要是沒有JDK的情況下,所安裝的java程序也就無法運行。
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡單的web項目的框架。
1.1 Spring
Spring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實體類的構(gòu)造方法來實例化對象。也可以稱之為項目中的粘合劑。
Spring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個對象,而是讓Spring框架幫你來完成這一切。
1.2 SpringMVC
SpringMVC在項目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔中介或是前臺這樣的職責,將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執(zhí)行的操作。SpringMVC相當于SSH框架中struts。
1.3 mybatis
mybatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進行的sql語句映射。在每次與數(shù)據(jù)庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執(zhí)行sql命令。
頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務層,業(yè)務層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
數(shù)據(jù)庫是系統(tǒng)開發(fā)過程中不可或缺的一部分。 在WEB應用方面,MySQL AB開發(fā)了一個具有很大優(yōu)勢的MySQL關系數(shù)據(jù)庫管理系統(tǒng)。 MySQL可以將數(shù)據(jù)存儲在不同的表中,這非常靈活,并且還可以提高系統(tǒng)在實際應用中的速度。 數(shù)據(jù)庫訪問最常用于標準SQL語言,MySQL用于SQL語言,因此它具有高度兼容性。數(shù)據(jù)庫的操作是必不可少的,包括對數(shù)據(jù)庫表的增加、刪除、修改、查詢等功能。現(xiàn)如今,數(shù)據(jù)庫可以分為關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫,Mysql屬于關系性數(shù)據(jù)庫,Mysql數(shù)據(jù)庫是一款小型的關系型數(shù)據(jù)庫,它以其自身特點:體積小、速度快、成本低等,Mysql數(shù)據(jù)庫是目前最受歡迎的開源數(shù)據(jù)庫。
在WEB應用技術中, Mysql數(shù)據(jù)庫支持不同的操作系統(tǒng)平臺,雖然在不同平臺下的安裝和配置都不相同,但是差別也不是很大,Mysql在Windows平臺下兩種安裝方式,二進制版和免安裝版。安裝完Mysql數(shù)據(jù)庫之后,需要啟動服務進程,相應的客戶端就可以連接數(shù)據(jù)庫,客戶端可通過命令行或者圖形界面工具登錄數(shù)據(jù)庫。
本系統(tǒng)將在經(jīng)濟、技術、操作這三個角度上進行可行性分析。
整個系統(tǒng)從設計到開發(fā)以及測試過程嚴謹步驟齊全,所有工作任務全部由本人完成,并未獲取外部技術支持,節(jié)約了一切服務成本開銷以及人工成本,在硬件方面,為節(jié)約成本使用一臺二手移動工作站作為項目部署服務器以及數(shù)據(jù)庫服務器,成本在一萬元一下,真?zhèn)€網(wǎng)絡部署也是由本人獨立完成不涉及到其他人工費用,整個開發(fā)過程本著低成本,低消耗的原則。
技術可行性分析的目的是確認該系統(tǒng)能否利用現(xiàn)有技術實現(xiàn),并評估開發(fā)效率和完成情況。技術的可行性是指在當前的技術條件下,計算機軟件和硬件的開發(fā)是否能夠滿足發(fā)展的要求。因為該系統(tǒng)的開發(fā)基于SSM語言,所以開發(fā)該系統(tǒng)所需的軟件和硬件條件可以在普通計算機上滿足。因為它占用的內(nèi)存相對較少,所以用Mysql數(shù)據(jù)庫開發(fā)和設計軟件理論上沒有問題,因為它占用的內(nèi)存太少。上述技術可以有效地保證系統(tǒng)的成功和高效開發(fā)。
中小型企業(yè)績效管理系統(tǒng)的使用界面簡單易于操作,采用常見的界面窗口來登錄界面,通過電腦進行訪問操作,用戶只要平時使用過電腦都能進行訪問操作。此系統(tǒng)的開發(fā)采用SSM技術開發(fā),人性化和完善化是B/S結(jié)構(gòu)開發(fā)比較顯要的特點使得用戶操作相比較其他更加簡潔方便。易操作、易管理、交互性好在本系統(tǒng)操作上體現(xiàn)得淋漓盡致。
3.2性能分析
對于性能分析,與傳統(tǒng)的管理方式相比,傳統(tǒng)的管理方式是使用人工通過用紙和筆進行數(shù)據(jù)信息的統(tǒng)計和管理,并且這種方式對于存儲和查找某一數(shù)據(jù)信息都比較麻煩,隨著計算機網(wǎng)絡的到來,這種傳統(tǒng)的方法很難適應當下社會的發(fā)展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對于使用的時間和所要花費的費用都是比較高的,為了降低成本費用,提高用戶的工作效率,進行開發(fā)一套基于計算機和網(wǎng)絡技術的中小型企業(yè)績效管理系統(tǒng)。
中小型企業(yè)績效管理系統(tǒng)的開發(fā)設計時一個獨立的系統(tǒng),以流行數(shù)據(jù)庫進行數(shù)據(jù)的存儲開發(fā),主要是為了實現(xiàn)中小型企業(yè)績效管理系統(tǒng)的用戶角色及相對應的功能模塊,讓中小型企業(yè)績效管理系統(tǒng)的管理不會存在管理差異、低效率,而是跟傳統(tǒng)的管理信息恰好相反,中小型企業(yè)績效管理系統(tǒng)的實現(xiàn)可以節(jié)約資源,并且對于業(yè)務的處理速度也提高,速度快、效率高,功能性強大。
3.3系統(tǒng)操作流程
3.3.1用戶登錄流程
對于系統(tǒng)的安全性的第一關,就是用戶想要進入系統(tǒng),必須通過登錄窗口,輸入自己的登錄信息才可以進行登錄,用戶輸入的信息準確無誤后才可以進入到操作系統(tǒng)界面,進行功能模塊的相對應操作,如果用戶輸入的信息不正確,則窗口出現(xiàn)提示框,用戶登錄失敗,返回到第一步進行重新輸入,如圖3-1所示。
???????????????????????????????圖3-1登錄操作流程圖
3.3.2信息添加流程
對于中小型企業(yè)績效管理系統(tǒng),需要隨時添加所需要的數(shù)據(jù)信息,對于用戶添加信息,需要根據(jù)添加界面,根據(jù)選框的內(nèi)容進行填寫所要添加的數(shù)據(jù)信息,信息輸入完成后判斷數(shù)據(jù)信息是否符合要求,符合要求則添加完成,用戶所添加的信息不符合要求,則需要返回到第一步,重新輸入數(shù)據(jù)信息,再進行判斷操作,如圖3-2所示。
圖3-2 信息添加流程圖
3.3.3信息刪除流程
不管是哪個用戶角色進入到不通的系統(tǒng)操作界面,都可以進行不同的信息內(nèi)容的操作功能,對用系統(tǒng)數(shù)據(jù)信息的刪除,用戶一旦將信息刪除,那么該刪除的數(shù)據(jù)信息將無法恢復,所以用戶在對數(shù)據(jù)刪除事,一定判斷刪除的內(nèi)容是否是確定要刪除的,確定無誤后選擇確定刪除操作,如圖3-3所示。
圖3-3?信息刪除流程圖
4.1系統(tǒng)架構(gòu)設計
中小型企業(yè)績效管理系統(tǒng)項目的概述設計分析,主要內(nèi)容進行中小型企業(yè)績效管理系統(tǒng)信息的具體分析,進行數(shù)據(jù)庫的是設計,數(shù)據(jù)采用mysql數(shù)據(jù)庫,并且對于系統(tǒng)的設計采用比較人性化的操作設計,對于系統(tǒng)出現(xiàn)的錯誤信息可以及時做出處理及反饋。
中小型企業(yè)績效管理系統(tǒng)的設計基于現(xiàn)有的網(wǎng)絡,可以實現(xiàn)管理員:用戶管理、部門管理、員工管理、打卡記錄管理、工資信息管理、工時信息管理、文件中心管理、通告中心管理等詳細的了解及統(tǒng)計分析。根據(jù)系統(tǒng)功能需求建立的模塊關系圖如下圖:
?????????????????圖4-1管理員功能模塊圖
4.2開發(fā)流程設計
中小型企業(yè)績效管理系統(tǒng)的開發(fā)對管理模塊和系統(tǒng)使用的數(shù)據(jù)庫進行分析,編寫代開發(fā),規(guī)劃和操作是構(gòu)建信息管理應用程序的必要三步曲,它決定了系統(tǒng)是否能夠真正實現(xiàn)預設功能以及是否可以在成功設計后實施。在開發(fā)過程中,每個階段必須嚴格按照線性順序進行開發(fā),并且在相應階段生成的每個工作都可以通過技術進行驗證和檢查。確保一個階段完成后是正確的,不會造成下一階段拖拽現(xiàn)象,使系統(tǒng)完成設計功能后得到保證。
從中小型企業(yè)績效管理系統(tǒng)的成功開發(fā)經(jīng)驗來看,上述方法效果最為明顯,最大程度地降低了系統(tǒng)開發(fā)的復雜性。如圖4-2所示。
圖4-2開發(fā)系統(tǒng)流程圖
4.3數(shù)據(jù)庫設計
數(shù)據(jù)庫是信息系統(tǒng)的基礎和核心。數(shù)據(jù)庫設計的好壞直接影響到信息系統(tǒng)開發(fā)的成敗。創(chuàng)建數(shù)據(jù)庫表首先確定實體的屬性和實體之間的關系。根據(jù)關系創(chuàng)建一個數(shù)據(jù)表。4.3.1實體ER圖
數(shù)據(jù)庫是整個軟件編程中最重要的一個步驟,對于數(shù)據(jù)庫問題主要是判定數(shù)據(jù)庫的數(shù)量和結(jié)構(gòu)公式的創(chuàng)建。展示系統(tǒng)使用的是Mysql進行對數(shù)據(jù)庫進行管理,進行保證數(shù)據(jù)的安全性、穩(wěn)定性等。
概念模型的設計是為了抽象真實世界的信息,并對信息世界進行建模。它是數(shù)據(jù)庫設計的強大工具。數(shù)據(jù)庫概念模型設計可以通過E-R圖描述現(xiàn)實世界的概念模型。系統(tǒng)的E-R圖顯示了系統(tǒng)中實體之間的鏈接。而且Mysql數(shù)據(jù)庫是自我保護能力比較強的數(shù)據(jù)庫,下圖主要是對數(shù)據(jù)庫實體的E-R圖:
(1) 打卡記錄實體圖,如圖4-3所示:
??圖4-3 打卡記錄實體圖
?(2)工時信息圖如圖4-4所示:
圖4-4工時信息實體圖
這些功能可以充分滿足中小型企業(yè)績效管理系統(tǒng)的需求。此系統(tǒng)功能較為全面如下圖系統(tǒng)功能結(jié)構(gòu)如圖4-5所示。
?????????????????????????????????
????????????????????????????圖4-5系統(tǒng)功能結(jié)構(gòu)圖
4.3.2數(shù)據(jù)表
我們可以根據(jù)數(shù)據(jù)結(jié)構(gòu)的詳細分析要求,我們根據(jù)輸入和輸出數(shù)據(jù)量的要求進行分析,確定什么表表,結(jié)構(gòu)之間的關系,我們可以驗證,調(diào)整和完善,查詢和瀏覽過程,可以實現(xiàn)數(shù)據(jù)庫,以使用戶對數(shù)據(jù)和功能有更多要求。
基于系統(tǒng)使用的數(shù)據(jù)庫管理系統(tǒng)的特點,對數(shù)據(jù)庫的概念模型進行了轉(zhuǎn)換和構(gòu)建。但是,這個系統(tǒng)只需要充分考慮中小型企業(yè)績效管理系統(tǒng)的功能,而且組織比較清晰。
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| staff_id | int | 11 | 是 | 是 | 員工ID |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | varchar | 64 | 是 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| age | varchar | 64 | 否 | 否 | 年齡 |
| department | varchar | 64 | 否 | 否 | 部門 |
| post | 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 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| salary_information_id | int | 11 | 是 | 是 | 工資信息ID |
| month | varchar | 64 | 否 | 否 | 月份 |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | int | 11 | 否 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| department | varchar | 64 | 否 | 否 | 部門 |
| post | varchar | 64 | 否 | 否 | 崗位 |
| hourly_wage | varchar | 64 | 否 | 否 | 時薪 |
| total_working_hours_of_this_month | varchar | 64 | 否 | 否 | 本月總工時 |
| absence_days | int | 11 | 否 | 否 | 缺勤天數(shù) |
| salary_of_this_month | varchar | 64 | 否 | 否 | 本月工資 |
| deduction_for_absence | varchar | 64 | 否 | 否 | 缺勤扣款 |
| net_salary | varchar | 64 | 否 | 否 | 實發(fā)工資 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| punch_in_record_id | int | 11 | 是 | 是 | 打卡記錄ID |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | int | 11 | 否 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| department | varchar | 64 | 否 | 否 | 部門 |
| post | varchar | 64 | 否 | 否 | 崗位 |
| clock_in | datetime | 0 | 否 | 否 | 上班打卡 |
| clock_out_after_work | datetime | 0 | 否 | 否 | 下班打卡 |
| punch_in_date | date | 0 | 否 | 否 | 打卡日期 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| notification_center_id | int | 11 | 是 | 是 | 通告中心ID |
| notice_title | varchar | 64 | 否 | 否 | 通告標題 |
| notice_attachment | varchar | 255 | 否 | 否 | 通告附件 |
| notifier | varchar | 64 | 否 | 否 | 通告人 |
| date_of_announcement | date | 0 | 否 | 否 | 通告日期 |
| notice_content | longtext | 0 | 否 | 否 | 通告內(nèi)容 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| message_center_id | int | 11 | 是 | 是 | 留言中心ID |
| message_title | varchar | 64 | 否 | 否 | 留言標題 |
| message_type | varchar | 64 | 否 | 否 | 留言類型 |
| message_time | date | 0 | 否 | 否 | 留言時間 |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | int | 11 | 否 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| message_content | text | 0 | 否 | 否 | 留言內(nèi)容 |
| message_reply | text | 0 | 否 | 否 | 留言回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| man_hour_information_id | int | 11 | 是 | 是 | 工時信息ID |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | int | 11 | 否 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| department | varchar | 64 | 否 | 否 | 部門 |
| post | varchar | 64 | 否 | 否 | 崗位 |
| basic_working_hours | int | 11 | 否 | 否 | 基本工時 |
| overtime_hours | int | 11 | 否 | 否 | 加班工時 |
| total_man_hours_today | varchar | 64 | 否 | 否 | 今日總工時 |
| punch_in_date | date | 0 | 否 | 否 | 打卡日期 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| file_center_id | int | 11 | 是 | 是 | 文件中心ID |
| document_title | varchar | 64 | 否 | 否 | 文件標題 |
| enclosure | varchar | 255 | 否 | 否 | 附件 |
| publisher | varchar | 64 | 否 | 否 | 發(fā)布人 |
| release_time | date | 0 | 否 | 否 | 發(fā)布時間 |
| file_information | text | 0 | 否 | 否 | 文件信息 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| evaluation_center_id | int | 11 | 是 | 是 | 評價中心ID |
| employee_performance | varchar | 64 | 否 | 否 | 員工表現(xiàn) |
| evaluator | varchar | 64 | 否 | 否 | 評價人 |
| evaluation_time | date | 0 | 否 | 否 | 評價時間 |
| employee_job_number | varchar | 64 | 否 | 否 | 員工工號 |
| employee_account_number | int | 11 | 否 | 否 | 員工賬號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| evaluation_content | text | 0 | 否 | 否 | 評價內(nèi)容 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| department_management_id | int | 11 | 是 | 是 | 部門管理ID |
| department | varchar | 64 | 否 | 否 | 部門 |
| person_in_charge | varchar | 64 | 否 | 否 | 負責人 |
| post | varchar | 64 | 否 | 否 | 崗位 |
| specific_personnel | text | 0 | 否 | 否 | 具體人員 |
| remarks | text | 0 | 否 | 否 | 備注 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
該系統(tǒng)是通過jdbc和MySQL達成連接的,新建一個jdbc.properties文件來填寫與數(shù)據(jù)庫連接所需要的驅(qū)動和參數(shù)。
jdbc.driverClass=com.MySQL.jdbc.Driver
jdbc.url=jdbc:MySQL://localhost:3306/tsi
jdbc.username=root
jdbc.password=123
第一個參數(shù)代表MySQL數(shù)據(jù)庫的驅(qū)動,第二個參數(shù)代表要連接的數(shù)據(jù)庫,第三個和第四個參數(shù)代表數(shù)據(jù)庫連接名和密碼。
后臺與數(shù)據(jù)庫訪問主要是通過HQL語句來進行查詢的,查詢語句中的表名是表格的實體類名,在這種查詢語句中*是不允許使用的,除非適合聚合函數(shù)一起使用才可以。
用戶在填寫數(shù)據(jù)的時候必須與注冊頁面上的驗證相匹配否則會注冊失敗,注冊頁面的表單驗證是通過JavaScript進行驗證的,用戶名的長度必須在6到18之間,郵箱必須帶有@符號,密碼和密碼確認必須相同,你輸入的密碼,系統(tǒng)會根據(jù)你輸入密碼的強度給出指定的值,電話號碼和身份證號碼必須要求輸入格式與生活相符合,當你前臺驗證通過的時候你點擊注冊,表單會將你輸入的值通過name值傳遞給后臺并保存到數(shù)據(jù)庫中。
用戶注冊流程圖如下圖所示。
圖5-1用戶注冊流程圖
用戶注冊代碼如下:
????/**
?????* 注冊
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????Map<String,Object> map = service.readBody(request.getReader());
????????query.put("username",String.valueOf(map.get("username")));
????????List list = service.selectBaseList(service.select(query, new HashMap<>()));
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????map.put("password",service.encryption(String.valueOf(map.get("password"))));
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
????}
????public void insert(Map<String,Object> body){
????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
????????baseMapper.insert(entity);
????????log.info("[{}] - 插入操作:{}",entity);
}
主要由兩部分組成,登錄前的登錄界面以及登錄后的用戶功能界面。登錄界面,要求用戶輸入用戶名和密碼,當用戶名和密碼其中一個輸入為空時,給出提示“用戶名,密碼不能為空”。獲取用戶名和密碼后到數(shù)據(jù)庫中查找,如果用戶名存在,以及對應的密碼正確,則登錄成功,否則登錄失敗。登錄失敗后給出提示,并把焦點停在文本框中。登錄成功后將該次會話的全局變量username設置為用戶名。登錄成功后進入會員的功能模塊,主要有會員基本信息修改,已經(jīng)發(fā)布族譜申報信息管理,發(fā)布信息,和退出功能。退出功能是清除全局變量username的值,并跳回到首頁。
登錄流程圖如下圖所示。
圖5-1登錄流程圖
用戶登錄界面如下圖所示。
圖5-1登錄流程圖
登錄代碼如下:
????/**
?????* 登錄
?????* @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;
}
用戶登錄/注冊成功之后可以修改自己的基本信息。修改頁面的表單中每一個input的name值都要與實體類中的參數(shù)相匹配,在用戶點擊修改頁面的時候,如果改后用戶名與數(shù)據(jù)庫里面重復了,頁面會提示該用戶名已經(jīng)存在了,否則通過Id來查詢用戶,并將用戶的信息修改為表單提交的數(shù)據(jù)。
如果部門信息需要修改,管理員可以通過查詢數(shù)據(jù)庫中的部門信息數(shù)據(jù),查詢部門信息數(shù)據(jù)是通過ajax技術來進行查詢的,需要傳遞部門名稱、部門類型等參數(shù)然后在返回到該頁面中,可以選中要修改或刪除的那條信息,如果選中了超過一條數(shù)據(jù),頁面會挑一個窗口提醒只能選擇一條數(shù),如果沒有選中數(shù)據(jù)會挑一個窗口題型必須選擇一條數(shù)據(jù)。當選擇確認修改的時候,后臺會根據(jù)傳過來的id到數(shù)據(jù)庫查詢,并將結(jié)果返回到修改頁面中,可以在修改頁面中修改剛剛選中的信息當點擊確認的時候from表單會將修改的數(shù)據(jù)提交到后臺并保存到數(shù)據(jù)庫中,就是說如果提交的數(shù)據(jù)數(shù)據(jù)庫中存在就修改,否則就保存。
部門信息展示界面如下圖所示。
圖5-1部門信息展示界面
根據(jù)需求,需要對用戶進行添加、刪除或修改詳情信息。刪除或修改用戶時,系統(tǒng)根據(jù)用戶的狀態(tài)判定為可刪除狀態(tài)下,才會給出刪除和修改鏈接,點擊刪除鏈接按鈕時,請求到達后臺,還會先查詢用戶狀態(tài)再次做出判定能否刪除。點擊修改鏈接按鈕時,會跳轉(zhuǎn)到修改信息的頁面,重新填寫好數(shù)據(jù)后,數(shù)據(jù)提交到后臺會對數(shù)據(jù)庫中相應的記錄做出修改。
添加用戶時,會給出數(shù)據(jù)填寫的頁面,該頁面根據(jù)填寫好的用戶編號同樣會事先發(fā)送Ajax請求查詢編號是否已存在,數(shù)據(jù)填寫好之后提交到后臺,會調(diào)用相關服務在數(shù)據(jù)庫中插入記錄。
用戶管理流程圖如下圖所示。
圖5-1用戶管理流程圖
用戶管理頁面設計效果如下圖所示。
圖5-1用戶管理界面
用戶管理關鍵代碼如下所示。
@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
根據(jù)需求,需要對打卡記錄進行添加、刪除或修改詳情信息。刪除或修改打卡記錄時,系統(tǒng)根據(jù)打卡記錄的狀態(tài)判定為可刪除狀態(tài)下,才會給出刪除和修改鏈接,點擊刪除鏈接按鈕時,請求到達后臺,還會先查詢打卡記錄狀態(tài)再次做出判定能否刪除。點擊修改鏈接按鈕時,會跳轉(zhuǎn)到修改信息的頁面,重新填寫好數(shù)據(jù)后,數(shù)據(jù)提交到后臺會對數(shù)據(jù)庫中相應的記錄做出修改。
添加打卡記錄時,會給出數(shù)據(jù)填寫的頁面,該頁面根據(jù)填寫好的打卡記錄編號同樣會事先發(fā)送Ajax請求查詢編號是否已存在,數(shù)據(jù)填寫好之后提交到后臺,會調(diào)用相關服務在數(shù)據(jù)庫中插入記錄。
打卡記錄管理流程圖如下圖所示。
圖5-1打卡記錄管理流程圖
打卡記錄管理頁面設計效果如下圖所示。
圖5-1打卡記錄管理界面
打卡記錄管理關鍵代碼如下所示。
??@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);
}
根據(jù)需求,需要對文件信息進行添加、刪除或修改詳情信息。刪除或修改文件信息時,系統(tǒng)根據(jù)文件信息的狀態(tài)判定為可刪除狀態(tài)下,才會給出刪除和修改鏈接,點擊刪除鏈接按鈕時,請求到達后臺,還會先查詢文件信息狀態(tài)再次做出判定能否刪除。點擊修改鏈接按鈕時,會跳轉(zhuǎn)到修改信息的頁面,重新填寫好數(shù)據(jù)后,數(shù)據(jù)提交到后臺會對數(shù)據(jù)庫中相應的記錄做出修改。
添加文件信息時,會給出數(shù)據(jù)填寫的頁面,該頁面根據(jù)填寫好的文件信息編號同樣會事先發(fā)送Ajax請求查詢編號是否已存在,數(shù)據(jù)填寫好之后提交到后臺,會調(diào)用相關服務在數(shù)據(jù)庫中插入記錄。
文件中心管理流程圖如下圖所示。
圖5-1文件信息管理流程圖
文件中心管理頁面設計效果如下圖所示。
圖5-1文件中心管理界面圖
文件中心管理關鍵代碼如下。
?public Map<String, Object> success(Object o) {
????????Map<String, Object> map = new HashMap<>();
????????if (o == null) {
????????????map.put("result", null);
????????????return map;
????????}
????????if (o instanceof List) {
????????????if (((List) o).size() == 1) {
???????????????o = ?((List) o).get(0);
????????????????map.put("result", o);
????????????}else {
????????????????String jsonString = JSONObject.toJSONString(o);
????????????????JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
????????????????map.put("result", objects);
????????????}
????????} else if (o instanceof Integer || o instanceof String) {
????????????map.put("result", o);
????????} else {
????????????String jsonString = JSONObject.toJSONString(o);
????????????JSONObject jsonObject = JSONObject.parseObject(jsonString);
????????????JSONObject j = service.covertObject(jsonObject);
????????????map.put("result", j);
????????}
????????return map
根據(jù)需求,需要對工資信息進行添加、刪除或修改詳情信息。刪除或修改工資信息時,系統(tǒng)根據(jù)工資信息的狀態(tài)判定為可刪除狀態(tài)下,才會給出刪除和修改鏈接,點擊刪除鏈接按鈕時,請求到達后臺,還會先查詢工資信息狀態(tài)再次做出判定能否刪除。點擊修改鏈接按鈕時,會跳轉(zhuǎn)到修改信息的頁面,重新填寫好數(shù)據(jù)后,數(shù)據(jù)提交到后臺會對數(shù)據(jù)庫中相應的記錄做出修改。
添加工資信息時,會給出數(shù)據(jù)填寫的頁面,該頁面根據(jù)填寫好的工資信息編號同樣會事先發(fā)送Ajax請求查詢編號是否已存在,數(shù)據(jù)填寫好之后提交到后臺,會調(diào)用相關服務在數(shù)據(jù)庫中插入記錄。
工資信息管理流程圖如下圖所示。
圖5-1工資信息管理流程圖
工資信息管理頁面設計效果如下圖所示。
圖5-1工資信息管理界面圖
工資信息管理關鍵代碼如下。
?public Map<String, Object> success(Object o) {
????????Map<String, Object> map = new HashMap<>();
????????if (o == null) {
????????????map.put("result", null);
????????????return map;
????????}
????????if (o instanceof List) {
????????????if (((List) o).size() == 1) {
???????????????o = ?((List) o).get(0);
????????????????map.put("result", o);
????????????}else {
????????????????String jsonString = JSONObject.toJSONString(o);
????????????????JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
????????????????map.put("result", objects);
????????????}
????????} else if (o instanceof Integer || o instanceof String) {
????????????map.put("result", o);
????????} else {
????????????String jsonString = JSONObject.toJSONString(o);
????????????JSONObject jsonObject = JSONObject.parseObject(jsonString);
????????????JSONObject j = service.covertObject(jsonObject);
????????????map.put("result", j);
????????}
????????return map
程序設計不能保證沒有錯誤,這是一個開發(fā)過程,在錯誤或錯誤的過程中難以避免,這是不可避免的,但我們不能使這些錯誤始終存在于系統(tǒng)中,錯誤可能會造成無法估量的后果 如系統(tǒng)崩潰,安全信息,系統(tǒng)無法正常啟動,導致安裝用戶手機屏幕等,為了避免這些問題,我們需要測試程序,并發(fā)現(xiàn)這些問題,并糾正它們 ,并使系統(tǒng)更長時間穩(wěn)定成熟,本章的作用是發(fā)現(xiàn)這些問題,并對其進行修改,雖然耗時費力,但長期非常重要和必要系統(tǒng)的開發(fā)。
軟件測試與開發(fā)過程是一樣的,都必須按照軟件工程的正規(guī)原理進行,遵守管理學理論。不過,目前國內(nèi)的軟件測試已經(jīng)積累了大量經(jīng)驗和方法,步驟相對成熟,軟件測試的效率也越來越高。
中小型企業(yè)績效管理系統(tǒng)的實現(xiàn),對于系統(tǒng)中功能模塊的實現(xiàn)及操作都必須通過測試進行來評判系統(tǒng)是否可以準確的實現(xiàn)。在中小型企業(yè)績效管理系統(tǒng)正式上傳使用之前必須做的一步就是系統(tǒng)測試,對于測試發(fā)現(xiàn)的錯誤及時修改處理,保證系統(tǒng)準確無誤的供給用戶使用。
6.2.1 測試策略
1、功能測試
從用戶的角度來看,測試時不了解新開發(fā)軟件的內(nèi)部結(jié)構(gòu),因此可以將系統(tǒng)與黑匣子進行比較,盲目輸入后可以查看系統(tǒng)給出的反饋。這種測試屬于黑盒測試,在測試中如果輸入錯誤信息系統(tǒng)會報錯。
2、性能測試
測試軟件程序的整體狀況(稱為性能測試)通常使用自動化測試工具來檢測系統(tǒng)的整體功能,在負載測試和壓力測試之間進行分配,在某些情況下,將這兩種情況結(jié)合起來。雖然壓力測試可以檢測到系統(tǒng)可以提供的最高級別的服務,但負載測試可以測試系統(tǒng)如何響應增加的負載。
6.2.2 測試分析
測試評估系統(tǒng)質(zhì)量的方法不局限于系統(tǒng)編碼和過程,應該與軟件設計工作和歷史需求分析密切相關。
軟件測試應遵循以下原則:
(1)軟件測試應盡快進行,整個測試部分應在軟件開發(fā)和設計的整個過程中進行。如發(fā)現(xiàn)錯誤,立即處理,將大大減少軟件開發(fā)的時間,并提高軟件的質(zhì)量。
(2)在軟件的各種測試中,測試過程中使用的計劃、報告等應妥善處理和存儲。其主要目的是為了便于以后系統(tǒng)的維護。
(3)軟件測試整個過程中的聚類現(xiàn)象應優(yōu)先考慮。
(4)對于軟件測試,我們應該盡量不去和自己設計的系統(tǒng)進行參考,而是要測試對方的程序,以確保軟件測試結(jié)果的客觀性和公平性。
(5)整個測試計劃嚴格按照軟件測試的具體實施細則進行。
(6)對整個測試結(jié)果進行綜合檢查,盡量避免重復錯誤。
本中小型企業(yè)績效管理系統(tǒng)滿足用戶的要求和需求,本中小型企業(yè)績效管理系統(tǒng)的使用能夠有效的提高用戶的使用率。
測試后得到的性能和用例,系統(tǒng)具有足夠的正確性、可靠性、穩(wěn)定性,并且可以對輸入數(shù)據(jù)進行準確的點擊操作處理和響應測試用戶的體驗也得到了很好的反饋和響應時間。合理的范圍,可以兼容所有主流瀏覽器,設計所需的效果。
通過中小型企業(yè)績效管理系統(tǒng)的開發(fā),本人鞏固了之前學過的知識,如今將平時所學到的知識融合在設計中,在設計過程中,做了很多的準備,首先,在數(shù)據(jù)庫系統(tǒng)的設計過程中,尤其是在數(shù)據(jù)庫的工作原理、工作特點,對其深刻的討論,與此同時,對于小型站點來說,最好服務器的選擇,其次,利用所學的知識點分析所做的系統(tǒng),并在此基礎上設計。
目前本系統(tǒng)已經(jīng)上線,正在試運行階段,用戶反饋良好,基本完成用戶所需,試運行過程中沒有出現(xiàn)阻斷性問題,有一些不足和小問題也及時予以修正,系統(tǒng)上線后,為了保證數(shù)據(jù)的安全性,對系統(tǒng)進行了備份操作,系統(tǒng)備份是每兩個月備份一次,數(shù)據(jù)庫備份為每周備份一次,系統(tǒng)部署在租賃的云平臺服務器中。
本次系統(tǒng)上線成功后,得到了用戶的高度認可,但是在功能上和性能上還需做進一步的研究處理,使其有更高的性能和更好的用戶體驗。
系統(tǒng)在以后的升級過程中,需要解決一系列用戶所提出的問題,例如打印過程中如何避免瀏覽器的兼容性問題,大量用戶訪問時,如何保持較高的響應速度,在系統(tǒng)今后的升級過程中將著重解決這些安全性問題。
參考文獻
[1]李娟.淺談促進企業(yè)績效管理考核合理化的方法[J].現(xiàn)代企業(yè),2022(03):42-43.
[2]鄧元元.中小企業(yè)績效管理的現(xiàn)狀及對策[J].行政事業(yè)資產(chǎn)與財務,2022(03):23-25.
[3]趙小婷.企業(yè)績效管理與薪酬管理機制的結(jié)合探析[J].現(xiàn)代商業(yè),2022(03):75-77.DOI:10.14097/j.cnki.5392/2022.03.023.
[4]陳飛.淺析數(shù)字化時代背景下中小企業(yè)績效管理創(chuàng)新[J].商場現(xiàn)代化,2022(01):98-100.DOI:10.14013/j.cnki.scxdh.2022.01.036.
[5]趙祥.淺析國有企業(yè)績效管理中存在的問題及對策[J].中國管理信息化,2022,25(02):113-115.
[6]徐燕.大數(shù)據(jù)時代的企業(yè)績效管理探究[J].中國產(chǎn)經(jīng),2021(24):108-110.
[7]張秀花.通信行業(yè)成長型企業(yè)績效管理中存在的問題及應對措施[J].企業(yè)改革與管理,2021(23):104-105.DOI:10.13768/j.cnki.cn11-3793/f.2021.2342.
[8]王愛娜.數(shù)字化轉(zhuǎn)型中食品企業(yè)績效管理探究[J].食品研究與開發(fā),2021,42(23):239.
[9]袁利.集團企業(yè)績效管理中存在的問題及對策[J].全國流通經(jīng)濟,2021(34):70-72.DOI:10.16834/j.cnki.issn1009-5292.2021.34.019.
[10]梅慧.互聯(lián)網(wǎng)時代企業(yè)績效管理創(chuàng)新方法研究[J].中國集體經(jīng)濟,2021(33):45-46.
[11]孫慶波.溝通策略在企業(yè)績效管理中的探究[J].中國產(chǎn)經(jīng),2021(20):144-145.
[12]李靈瑤,顧全根,王宇葉.大數(shù)據(jù)時代管理會計在企業(yè)績效管理中的應用探討[J].上海商業(yè),2021(09):28-29.
[13]丘雪平.基于PDCA模型視角下的現(xiàn)代企業(yè)績效管理研究[J].今日財富(中國知識產(chǎn)權),2021(09):196-198.
[14]何軍強.當代企業(yè)績效管理及績效考核體系的作用機制研究[J].商場現(xiàn)代化,2021(15):85-87.DOI:10.14013/j.cnki.scxdh.2021.15.031.
[15]姜溟涵.淺析大數(shù)據(jù)時代企業(yè)績效管理現(xiàn)狀及其體系的創(chuàng)新應用[J].環(huán)渤海經(jīng)濟瞭望,2021(07):155-156.DOI:10.16457/j.cnki.hbhjjlw.2021.07.072.
[16]麻文君. 基于BSC的H高新技術企業(yè)績效管理體系應用研究[D].青島科技大學,2021.
[17]劉慧敏. 中小型民營企業(yè)績效管理體系優(yōu)化研究[D].山西大學,2021.DOI:10.27284/d.cnki.gsxiu.2021.000752.
致謝
時光飛逝,轉(zhuǎn)眼間我在學校的這些年生活即將結(jié)束,回顧這幾年的學習生活,收獲良多,既有幸福也有難過,學校生活的結(jié)束對于我來說也是一個新的開始。論文即將完成,在此,我心中有許多想要感謝的人。首先感謝我的導師,不僅在學習研究方面加以指導,也在生活和為人處世上給予幫助。還要感謝授課老師,你們嚴謹?shù)膶W術精神和積極向上的工作態(tài)度都在激勵我的成長和進步。感謝多年來一直生活在一起的室友,謝謝你們多年來的陪伴和照顧。最后,要感謝各位論文評審老師,感謝您們在百忙之中抽空評閱本論文并給出寶貴的意見和建議。
?點贊+收藏+關注 ?→ ?私信領取本源代碼、數(shù)據(jù)庫
總結(jié)
以上是生活随笔為你收集整理的SSM+中小型企业绩效管理系统毕业设计-附源码081536的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js实现下载xls文件
- 下一篇: c++随机函数