電子公文管理系統(tǒng)_第1頁(yè)
電子公文管理系統(tǒng)_第2頁(yè)
電子公文管理系統(tǒng)_第3頁(yè)
電子公文管理系統(tǒng)_第4頁(yè)
電子公文管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ElectronicdocumentmanagementsystemAbstract:Withtherapiddevelopmentofnetworkinformation,thetraditionalformofinformationdisseminationbasedoncharactersnolongermeetstheneeds.Theofficesystembasedonwebismoreandmorenecessary.Thissystemisdesignedanddevelopedtomeetsuchneeds.Withthefurtherdevelopmentoftheelectronicworkofofficialdocumentsinadministrativeorgansandcompanies,theelectronicmanagementofofficialdocumentshasbecomeastrategicissueforgovernmentorgansandcompanies.However,thecurrentmanagementtechnologyandstandardsofofficialdocumentsarenotmatureenough.Inordertofurtherpromotetheconstructionofgovernmentinformatization,itisnecessarytofurtherresearchanddevelopanInternet-basedofficialdocumentmanagementsystemtoadapttotheneweraImprovetheefficiencyofofficialdocumentmanagementandimprovetheperformanceofthegovernmentandthecompany.ThissystemistouseJavaWebtechnologyforthedevelopmentofelectronicdocumentmanagementwebsite,andlaterthedatabaseisMySQLdatabase.Thesystemischaracterizedbysimpleoperation,friendlyinterface,goodflexibility,highsecurityandstableoperation.Keywords:Electronicdocument,MySQL,Java,JavaScript目錄第一章緒論 31.1系統(tǒng)開(kāi)發(fā)背景及意義 3第二章需求分析 52.1系統(tǒng)目標(biāo) 52.2系統(tǒng)設(shè)計(jì)計(jì)劃 52.3系統(tǒng)性能需求 6第三章關(guān)鍵技術(shù)介紹及數(shù)據(jù)庫(kù)設(shè)計(jì) 73.1系統(tǒng)開(kāi)發(fā)工具及環(huán)境 73.1.1idea 73.1.2VisualStudioCode 83.2SSM框架 83.2.1Spring框架 83.2.2SpringMVC 93.2.3Mybatis 93.2.4SpringSecurity 93.2.5如何SpringBoot啟動(dòng) 103.3Node.js 103.4Vue.js 103.5系統(tǒng)E-R圖設(shè)計(jì) 113.4數(shù)據(jù)表設(shè)計(jì) 12第四章系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn) 144.1系統(tǒng)總體設(shè)計(jì) 144.2系統(tǒng)模塊 144.2.1系統(tǒng)流程圖 144.2.2功能模塊描述 164.3用戶登錄模塊 164.4用戶管理模塊 184.5公文起草管理模塊 204.6公文查看模塊 21第五章系統(tǒng)測(cè)試 235.1測(cè)試目的 235.2測(cè)試方法 235.3測(cè)試實(shí)例 23第六章總結(jié) 25參考文獻(xiàn) 26致謝 27緒論隨著改革的深入以及經(jīng)濟(jì)的快速發(fā)展,計(jì)算機(jī)已經(jīng)進(jìn)入各行各業(yè)以及尋百姓家中。如何利用好計(jì)算機(jī)的優(yōu)點(diǎn)來(lái)解放生產(chǎn)力是我們迫切需要研究的。本文從公文管理的角度切入,研究如何通過(guò)計(jì)算機(jī)去完成傳統(tǒng)的公文管理。在分析了企業(yè)和政府機(jī)構(gòu)的公文需求之后,開(kāi)發(fā)了一套人機(jī)交互友好、操作便捷的電子公文管理系統(tǒng)。利用先進(jìn)的關(guān)系型數(shù)據(jù)庫(kù)作為數(shù)據(jù)的持久化存儲(chǔ),利用互聯(lián)網(wǎng)javaweb技術(shù)進(jìn)行后臺(tái)開(kāi)發(fā),利用html、JavaScript、CSS三駕馬車(chē)構(gòu)建用戶端的優(yōu)美界面。通過(guò)電子公文管理系統(tǒng),用戶可以迅速的起草一篇公文,審核員可以及時(shí)收到通知進(jìn)行審核,審核通過(guò)即可以下發(fā)公文。這種方式不僅便捷、高效,還能節(jié)約成本,保護(hù)生態(tài)環(huán)境。傳統(tǒng)的紙質(zhì)公文需要大量的紙張,當(dāng)我們使用電子版之后,便可以廢棄中間一些無(wú)關(guān)緊要的步驟產(chǎn)生的紙張浪費(fèi)。1.1系統(tǒng)開(kāi)發(fā)背景及意義如今傳統(tǒng)的公文管理和公文處理流程的方式己經(jīng)不再適應(yīng)當(dāng)今社會(huì)的發(fā)展要求,經(jīng)過(guò)十多年的快速發(fā)展,我國(guó)的數(shù)據(jù)庫(kù)管理技術(shù)己經(jīng)廣泛地應(yīng)用于各個(gè)領(lǐng)域,并逐步實(shí)現(xiàn)產(chǎn)業(yè)化。但信息管理系統(tǒng)在工廠、企業(yè)的應(yīng)用,還遠(yuǎn)落后世界先進(jìn)水平,主要表現(xiàn)在:公文管理系統(tǒng)使用范圍相對(duì)狹窄,公文管理系統(tǒng)穩(wěn)定性較差、功能相對(duì)單一等。公文管理軟件在中國(guó)雖然己有十幾年的發(fā)展歷程,但由于當(dāng)時(shí)的管理模式、思想觀念遠(yuǎn)遠(yuǎn)滯后于國(guó)外,所以相對(duì)而言,公文管理軟件開(kāi)發(fā)運(yùn)用還處于“較為初級(jí)階段”,公文管理軟件市場(chǎng)的競(jìng)爭(zhēng)還不是很激烈。而目前公文管理軟件的典型特征就是成品實(shí)用性較差、廠商較多而且雜亂,因此開(kāi)發(fā)適合本企業(yè)的公文管理系統(tǒng)是企業(yè)正規(guī)化、科學(xué)化的必要條件。公文管理的開(kāi)發(fā),其功能將真正擴(kuò)展到全方位公文管理的范疇。公文管理信息系統(tǒng)的意義在于:充分利用網(wǎng)絡(luò)資源,進(jìn)一步優(yōu)化和再造管理流程,使公文的管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確,使公文管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確;增強(qiáng)系統(tǒng)可視化的設(shè)計(jì),提高用戶的可操作性,盡可能減少用戶培訓(xùn);總的來(lái)說(shuō),公文管理系統(tǒng)建設(shè)就是希望通過(guò)優(yōu)化和再造流程的公文管理重建,使將來(lái)的公文系統(tǒng)成為企業(yè)準(zhǔn)確、開(kāi)放、安全、可靠的數(shù)據(jù)平臺(tái);最終實(shí)現(xiàn)開(kāi)發(fā)人才、服務(wù)人才、利用人才和降低人力資源成本、提高公文管理的利用效率的目的。需求分析需求分析是系統(tǒng)開(kāi)發(fā)必要環(huán)節(jié),也是重中之重;需求過(guò)程中研究業(yè)務(wù)工作,以期設(shè)計(jì)出有助于業(yè)務(wù)工作的更加完善的系統(tǒng)。作為該過(guò)程的結(jié)果,需求規(guī)格說(shuō)明書(shū)是對(duì)系統(tǒng)的功能和行為完整的描述。系統(tǒng)設(shè)計(jì)將來(lái)自于需求和分析的抽象規(guī)格說(shuō)明轉(zhuǎn)變?yōu)槊嫦蛘鎸?shí)世界的設(shè)計(jì)。一旦構(gòu)建完成,該系統(tǒng)就會(huì)投入使用,同時(shí)會(huì)不可避免地產(chǎn)生更多的新需求。同時(shí),需求過(guò)程與分析活動(dòng)之間有相當(dāng)程度的重疊,分析建模對(duì)于設(shè)定工作的范圍和其他一些事來(lái)說(shuō)是必要的,所以我們利用分析模型來(lái)描述需求過(guò)程,隨著開(kāi)發(fā)工作的繼續(xù),分析活動(dòng)在工作中占的比例將變得越來(lái)越大,直到所有需求都已知。系統(tǒng)功能分析是在系統(tǒng)開(kāi)發(fā)的總體任務(wù)的基礎(chǔ)上完成的。公文管理系統(tǒng)需要完成的功能主要有:用戶管理模塊,公文起草模塊,公文查看模塊和公文審批模塊。在數(shù)據(jù)庫(kù)方面,利用關(guān)系數(shù)據(jù)庫(kù)功能強(qiáng)大的查詢語(yǔ)言對(duì)企業(yè)各類(lèi)信息入庫(kù)保存,按要求及時(shí)處理。該系統(tǒng)集輸入、維護(hù)、查詢、和各種處理為一體,各種操作可以通過(guò)菜單進(jìn)行,操作快捷、方便,性能高效、強(qiáng)大;使用易懂、易會(huì),形象增強(qiáng)的數(shù)據(jù)處理,用戶均可根據(jù)需要自行使用。2.1系統(tǒng)目標(biāo)本系統(tǒng)是一個(gè)公文管理系統(tǒng),在實(shí)施過(guò)程中主要實(shí)現(xiàn)以下目標(biāo):(1)界面友好、美觀,體現(xiàn)公文管理的特點(diǎn),而且操作簡(jiǎn)便。各功能模塊層次清晰,代碼高效易懂。添加和編輯簡(jiǎn)便、清晰,提高工作效率。查詢方便,數(shù)據(jù)存儲(chǔ)安全可靠。2.2系統(tǒng)設(shè)計(jì)計(jì)劃為了達(dá)到設(shè)計(jì)目標(biāo),系統(tǒng)設(shè)計(jì)如下:(1)具有友好的管理界面,易于理解,使用方便,使管理人員能夠快速準(zhǔn)確地找到自己的需求。(2)用戶可以輸入數(shù)據(jù)進(jìn)行檢查,以避免錯(cuò)誤的數(shù)據(jù)輸入,盡可能地減少人為錯(cuò)誤。(3)高效快捷的查詢功能,幫助管理人員快速查找所需信息。(4)用戶有權(quán)限之分,不同權(quán)限的用戶可以實(shí)現(xiàn)不同的功能,方便系統(tǒng)管理,提高系統(tǒng)安全性。(5)系統(tǒng)穩(wěn)定、安全、可靠、易于維護(hù)。(6)空間功能擴(kuò)展。(7)每個(gè)模塊的功能是自動(dòng)化的,以盡量減少手工工作。2.3系統(tǒng)性能需求系統(tǒng)穩(wěn)定性。要求系統(tǒng)健壯性好,運(yùn)行時(shí)間為全年,低出錯(cuò)率。系統(tǒng)可修改性。修改系統(tǒng)一個(gè)模塊或者部分,而不影響其他模塊的使用,也不需要修改其他模塊。簡(jiǎn)便易用性。系統(tǒng)應(yīng)具有良好的可操作性和易維護(hù)性,界面風(fēng)格友好實(shí)用。(4)響應(yīng)時(shí)間合理性。內(nèi)網(wǎng)的訪問(wèn)有延遲,因此內(nèi)網(wǎng)系統(tǒng)應(yīng)提供足夠的帶寬,這樣就可以使使用該公文管理系統(tǒng)的眾多用戶對(duì)系統(tǒng)訪問(wèn)更迅速便捷關(guān)鍵技術(shù)介紹及數(shù)據(jù)庫(kù)設(shè)計(jì)3.1系統(tǒng)開(kāi)發(fā)工具及環(huán)境3.1.1ideaIDEA是JetBrains公司的一款產(chǎn)品,自2001年發(fā)布以來(lái),每年都在對(duì)版本進(jìn)行升級(jí)與優(yōu)化,在頁(yè)面擁有大量的忠實(shí)用戶,許多大公司都在使用IDEA作為產(chǎn)品開(kāi)發(fā)的首選集成開(kāi)發(fā)軟件。IDEA作為一款使用java語(yǔ)言開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境,不僅GUI設(shè)計(jì)的非常精美,而且功能還非常的強(qiáng)大,已經(jīng)遠(yuǎn)遠(yuǎn)地超越了我們平時(shí)使用的eclipse。例如,在配置Springxml文件時(shí),只需要輸入類(lèi)名,即可自動(dòng)查找該類(lèi)的全限定名,并且在代碼輸入階段,也會(huì)進(jìn)行智能檢查,例如,當(dāng)我們使用String進(jìn)行數(shù)個(gè)字符串拼接時(shí),IDEA會(huì)智能的提醒我們?cè)揝tring變量可以修為一個(gè)String變量,而不是重復(fù)的字符串拼接,這樣,大大減少了JVM資源額消耗。在代碼重構(gòu)方面,IDEA只需要基礎(chǔ)類(lèi)名,即可將整個(gè)項(xiàng)目所有類(lèi)的類(lèi)名進(jìn)行全部修改,非常的人性化。在J2EE方面,IDEA支持眾多的開(kāi)源框架,例如Maven,Spring,MyBatis,Hibernate等等。并且可以自動(dòng)生成該框架的配置文件,無(wú)需手動(dòng)創(chuàng)建xml配置文件以及手動(dòng)導(dǎo)入xml約束。IDEA的宗旨是減少程序員的工作量,讓程序員從重復(fù)的繁重的代碼中脫離出來(lái)。所以,IDEA最大的特點(diǎn)便是智能編碼IDEA提倡的是智能編碼,IDEA的特色功能有以下幾點(diǎn):1.可以自己設(shè)定代碼規(guī)范。2.對(duì)JUnit的完美支持。3.對(duì)代碼編寫(xiě)能夠?qū)崟r(shí)檢查報(bào)錯(cuò)。4.代碼智能提示。5.對(duì)java語(yǔ)言的完美支持。3.1.2VisualStudioCodeVisualStudioCode是微軟公司開(kāi)源的一款輕量級(jí)編輯器。相比較于VisualStudio而言,VisualStudioCode啟動(dòng)更快,消耗資源更少。究其原因,是因?yàn)閂isualStudioCode使用的是跨平臺(tái)技術(shù)解決方案——electron桌面應(yīng)用程序。electron基于Node環(huán)境開(kāi)發(fā),可以讓開(kāi)發(fā)者通過(guò)與寫(xiě)網(wǎng)頁(yè)一樣的原生體驗(yàn)去編寫(xiě)HTML、CSS、JavaScript構(gòu)建應(yīng)用。VisualStudioCode提供了多種編程語(yǔ)言的支持,常用的語(yǔ)言支持度高達(dá)五十多種語(yǔ)言,包括但不限于:JavaScript、Java、C、C++、C#、Python、Rust等等。因?yàn)閑lectron使用的是chromev8引擎,所以相應(yīng)的來(lái)說(shuō),VisualStudioCode的運(yùn)行速度也是相當(dāng)快的,占用系統(tǒng)資源更少。調(diào)試方面,VisualStudioCode支持通過(guò)安裝插件的方案進(jìn)行調(diào)試,可以安裝過(guò)chromedebug插件調(diào)試網(wǎng)頁(yè)開(kāi)發(fā),也可以安裝安卓開(kāi)發(fā)插件進(jìn)行adb調(diào)試。3.2SSM框架3.2.1Spring框架目前市面上的企業(yè)級(jí)java應(yīng)用,基本上均由Spring、SpringMVC、Mybatis三大框架構(gòu)成。從成本角度來(lái)說(shuō),SSM框架均為社區(qū)開(kāi)源框架,不見(jiàn)免費(fèi),而且一直有專(zhuān)業(yè)的團(tuán)隊(duì)進(jìn)行維護(hù),社區(qū)也在貢獻(xiàn)自己的力量。從技術(shù)選型角度來(lái)說(shuō),SSM框架不僅社區(qū)活躍度高,而且在應(yīng)用開(kāi)發(fā)中使用率非常的高。眾所周知的互聯(lián)網(wǎng)企業(yè)——阿里巴巴,重度依賴(lài)于javaweb技術(shù),阿里巴巴集團(tuán)內(nèi)部的javaweb應(yīng)用幾乎都采用SSM框架為基礎(chǔ)。并且在日常開(kāi)發(fā)中遇到的問(wèn)題,社區(qū)解決方案也是齊全的。Spring是一款企業(yè)級(jí)開(kāi)發(fā)框架,他的好處有兩點(diǎn),第一,IOC,即控制反轉(zhuǎn)。IOC的理念是將對(duì)象的管理交由Spring框架,Spring中有一個(gè)統(tǒng)一用來(lái)管理Bean的容器,叫做BeanFactory,BeanFactory另外還有一個(gè)面向應(yīng)用開(kāi)發(fā)者的衍生:ApplicationContext。開(kāi)發(fā)者可以通過(guò)繼承該類(lèi)去向Spring容器調(diào)用Bean。第二,AOP,AOP中文意思是面向切面編程。何為面向切面,舉個(gè)例子,假如現(xiàn)在有一個(gè)項(xiàng)目,需要記錄用戶的各種操作日志,比如登錄,退出,刪除,添加等等,我們需要在用戶操作完成之后添加記錄日志的代碼。但是,添加日志的代碼確實(shí)重復(fù)、冗余的代碼,這對(duì)于系統(tǒng)的維護(hù)來(lái)說(shuō)是非常不友好的。這個(gè)時(shí)候,我們就可以利用切面技術(shù),編寫(xiě)一段記錄日志的代碼,讓AOP去實(shí)現(xiàn)代碼的織入,從而使得代碼更加簡(jiǎn)潔。3.2.2SpringMVCSpringMVC是一款MVC框架,它的實(shí)現(xiàn)原理是所有請(qǐng)求均交給一個(gè)核心類(lèi)DispatcherServlet去完成。DispatcherServlet本質(zhì)上也是一個(gè)Servlet,當(dāng)請(qǐng)求達(dá)到DispatcherServlet時(shí),將會(huì)通過(guò)內(nèi)部一系列的流程去處理web請(qǐng)求。首先,處理器映射器查找對(duì)應(yīng)的處理器。其次,處理器適配器去包裝請(qǐng)求的數(shù)據(jù),轉(zhuǎn)發(fā)到對(duì)應(yīng)的處理器。然后,由對(duì)應(yīng)的處理器去完成相應(yīng)的數(shù)據(jù)處理。處理完成之后,帶著Model數(shù)據(jù)轉(zhuǎn)發(fā)到Vie視圖層,這里的視圖層可以是JSP,也可以是其他的模板,例如:FreeMraker。最后,將渲染好的視圖返回給用戶。3.2.3MybatisMybatis是一款半ORM框架。ORM全稱(chēng)ObjectRelationalMapping,中文名為對(duì)象關(guān)系映射。ORM框架的好處就是,將數(shù)據(jù)庫(kù)字段與對(duì)象之間建立一一對(duì)應(yīng)關(guān)系,可以通過(guò)描述對(duì)象的方式將數(shù)據(jù)持久化到數(shù)據(jù)中。常用的ORM框架有兩種,第一種是Hibernate,第二種是Mybatis。Hibernate相比于Mybatis而言,Hibernate無(wú)需編寫(xiě)SQL,可以做到真正的操作對(duì)象去完成數(shù)據(jù)持久化。而Mybatis則是通過(guò)另外一種方式去實(shí)現(xiàn)對(duì)象持久化——自己編寫(xiě)SQL。自己編寫(xiě)SQL的好處就是,簡(jiǎn)單直白,便于代碼的維護(hù)。3.2.4SpringSecuritySpringSecurity也是Spring家族中眾多的一員。使用Spring的好處就是,Spring社區(qū)對(duì)于常見(jiàn)的企業(yè)開(kāi)發(fā)問(wèn)題提供了一套的解決方案,并且可以完美的適配Spring。SpringSecurity可以通過(guò)配置需要攔截的url,做到只有通過(guò)認(rèn)證和授權(quán)才可以訪問(wèn)被保護(hù)的url。SpringSecurity的前身是AcegiSecurity,在被收納為Spring子項(xiàng)目后正式更名為SpringSecurity?,F(xiàn)版本的SpringSecurity不僅新增了原生OAuth框架,還支持更加現(xiàn)代化的密碼加密方式,可以預(yù)見(jiàn),在Java應(yīng)用安全領(lǐng)域,SpringSecurity會(huì)成為首先被推崇的安全解決方案。雖然SpringSecurity有強(qiáng)大的功能,但它同時(shí)也有很高的學(xué)習(xí)成本。它囊括了身份認(rèn)證的各種應(yīng)用場(chǎng)景以及Web安全的大量知識(shí),僅官方參考手冊(cè)就有數(shù)十萬(wàn)字,并且還省略了諸多實(shí)現(xiàn)細(xì)節(jié)。許多開(kāi)發(fā)人員在面對(duì)這樣的“龐然大物”時(shí)無(wú)從入手,更因?yàn)閷?duì)其不夠了解而在實(shí)際項(xiàng)目中不敢輕易采用。3.2.5如何SpringBoot啟動(dòng)SpringBoot應(yīng)用有一個(gè)入口類(lèi),其本質(zhì)上是一個(gè)main函數(shù),只需啟動(dòng)main函數(shù)即可運(yùn)行SpringBoot項(xiàng)目。當(dāng)我們需要打包項(xiàng)目部署到生產(chǎn)環(huán)境中時(shí),SpringBoot支持多種打包方式,例如:war包和jar包。war包可以部署在tomcat容器里,但是,SpringBoot本身集成了內(nèi)嵌Serlvet容器,可以將項(xiàng)目打包成jar包,通過(guò)更加簡(jiǎn)單的命令行的方式去啟動(dòng)jar包,在啟動(dòng)的時(shí)候配上自己需要的參數(shù)即可。例如:server.port參數(shù)可以指定運(yùn)行的端口,server.context-path可以指定前綴路徑,files.active可以指定激活的配置,logging.file指定日志輸出位置等等。3.3Node.js簡(jiǎn)單點(diǎn)來(lái)說(shuō),node.js就是一款運(yùn)行在服務(wù)端的JavaScript框架,其主要的核心是Google公司開(kāi)發(fā)的V8引擎。V8引擎通過(guò)獨(dú)特的架構(gòu)設(shè)計(jì),使得執(zhí)行JavaScript代碼的速度非??欤⑶倚阅芊浅:?。非阻塞式I/O可以很大程度上的提高系統(tǒng)的性能,因?yàn)槌绦驁?zhí)行過(guò)程中相對(duì)耗時(shí)的操作便是I/O,假如I/O是阻塞式的,那么當(dāng)遇到網(wǎng)絡(luò)環(huán)境不好或者I/O數(shù)據(jù)量過(guò)大的時(shí)候,整個(gè)系統(tǒng)將處于僵死的狀態(tài),從用戶體驗(yàn)角度來(lái)看是極其不利的。3.4Vue.jsVue.js是一款MVVM框架。它的實(shí)現(xiàn)原理是通過(guò)ES6的新語(yǔ)法,Object.defineProperty劫持?jǐn)?shù)據(jù),給數(shù)據(jù)添加set、get屬性,并且使用觀察者模式實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。目前在國(guó)內(nèi)實(shí)用程度僅次于React框架,但是相比較于React框架來(lái)說(shuō)更加簡(jiǎn)單,容易上手。與傳統(tǒng)的JQuery相比,Vue的優(yōu)點(diǎn)便是Vue不需要直接去操縱dom元素,Vue內(nèi)部維護(hù)了一套Vdom,即虛擬dom,當(dāng)Vue監(jiān)聽(tīng)的數(shù)據(jù)發(fā)生修改時(shí),Vue可以迅速的修改vdom,達(dá)到性能的提升。3.5系統(tǒng)E-R圖設(shè)計(jì)隨著數(shù)據(jù)表的設(shè)計(jì),為了能夠產(chǎn)生一個(gè)物理系統(tǒng)來(lái)滿足客戶的需求,接下來(lái)應(yīng)該畫(huà)出系統(tǒng)的E-R圖,使設(shè)計(jì)系統(tǒng)的目標(biāo)更加明確,效率更高,從而可以表示實(shí)體類(lèi)型、屬性之間的聯(lián)系。繪制E-R圖可以幫助設(shè)計(jì)師更好地理清各要素之間的關(guān)系,奠定了堅(jiān)實(shí)的基礎(chǔ)。用戶基本信息實(shí)體的E-R圖如下:用戶基本信息實(shí)體住址獎(jiǎng)編號(hào)性別生日電話姓名生日用戶基本信息實(shí)體E-R圖公文實(shí)體創(chuàng)建人公文實(shí)體創(chuàng)建人公文名審核人創(chuàng)建時(shí)間修改時(shí)間編號(hào)審批狀態(tài)公文實(shí)體E-R圖其他的圖不再一一列舉。3.4數(shù)據(jù)表設(shè)計(jì)本文采用的系統(tǒng)共有6個(gè)數(shù)據(jù)表,大部分表有超過(guò)6列的數(shù)據(jù)錄入,并且各數(shù)據(jù)表之間有一定的聯(lián)系,便于管理者管理。每個(gè)表都有一個(gè)ID列作為主鍵,設(shè)置為符號(hào)規(guī)范,屬性是列的標(biāo)識(shí),增量為1,便于數(shù)據(jù)記錄,防止數(shù)據(jù)存儲(chǔ)的重復(fù)和混淆。下表是sys_users的數(shù)據(jù)表設(shè)計(jì),主要有用戶名、密碼、是否啟用等,用于判斷登陸系統(tǒng)的用戶身份,決定開(kāi)放的功能,增強(qiáng)系統(tǒng)安全。用戶表列名數(shù)據(jù)類(lèi)型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是自增IDuser_idvarchar50否否用戶idpasswordvarchar50否否加密密碼enabledtinyint1否否啟用create_timedatetime否否創(chuàng)建時(shí)間update_timedatetime否否更新時(shí)間如下的表是sys_user_info表,其中記載了用戶的基本全部基礎(chǔ)信息,包括姓名、生日、年齡、電話、住址等等,是對(duì)整個(gè)系統(tǒng)運(yùn)行都非常重要的表,具體信息如圖,其中ID是主鍵,為標(biāo)識(shí)且自增。用戶信息表列名數(shù)據(jù)類(lèi)型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是自增IDuser_idvarchar50否否用戶IDuser_namevarchar50否否用戶名gendertinyint1否否用戶性別ageint4否否年齡birthdaydatetime否否生日addressvarchar200否否地址create_timedatetime否否創(chuàng)建時(shí)間update_timedatetime否否更新時(shí)間如下的表是sys_authorities表,其中記載了用戶的全部角色信息,包括用戶id,角色,是對(duì)整個(gè)系統(tǒng)運(yùn)行都非常重要的表,具體信息如圖,其中ID是主鍵,為標(biāo)識(shí)且自增。權(quán)限表列名數(shù)據(jù)類(lèi)型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是自增IDuser_idvarchar50否否用戶IDauthorityvarchar50否否角色create_timedatetime否否創(chuàng)建時(shí)間update_timedatetime否否更新時(shí)間最后,是document表,該表包括如公文id,公文名稱(chēng),公文內(nèi)容,發(fā)布人,審核人,審核狀態(tài)等,這是下列設(shè)計(jì),其中ID是識(shí)別和增量主鍵。列名數(shù)據(jù)類(lèi)型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是自增IDcreate_timedatetime否否創(chuàng)建時(shí)間update_timedatetime否否更新時(shí)間document_idvarchar255否否公文號(hào)document_namevarchar255否否公文名create_user_idvarchar50否否創(chuàng)建人idapprovervarchar50否否審批人idflagvarchar2否否審批流程document_contentlong_text-否否公文內(nèi)容第四章系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn)4.1系統(tǒng)總體設(shè)計(jì)本項(xiàng)目主要面向系統(tǒng)內(nèi)用戶,例如:管理員,科室管理員等等。不同身份的人員登錄后有不同的頁(yè)面展示。用戶登錄,用戶信息查詢,用戶信息修改,公文起草管理,公文查看管理、公文審批管理等。從而實(shí)現(xiàn)公文信息快速可查,易于學(xué)生對(duì)自己個(gè)人信息的修改。方便了管理員對(duì)宿舍及學(xué)生信息的查詢和管理,提高管理效率。本系統(tǒng)主要采用前后端分離的模式開(kāi)發(fā)。前后端分離的好處是,開(kāi)發(fā)人員各司其職,秩序關(guān)注各自的功能模塊。采用token形式的鑒權(quán)方案,使得項(xiàng)目不存在CSRF的安全風(fēng)險(xiǎn)。后端開(kāi)發(fā)語(yǔ)言為Java,開(kāi)發(fā)框架采用SSM框架,以Springboot為載體前端使用Vue、JavaScript、AntdUI庫(kù)。4.2系統(tǒng)模塊4.2.1系統(tǒng)流程圖登錄 否用戶 是 用戶管理 公文管理 公文下發(fā)公文審核公文起草用戶信息修改用戶信息新增用戶信息列表公文下發(fā)公文審核公文起草用戶信息修改用戶信息新增用戶信息列表 4.2.2功能模塊描述本系統(tǒng)主要分為兩大功能模塊。第一,用戶管理模塊。一個(gè)良好的系統(tǒng)必須需要一個(gè)用戶管理模塊,可以添加系統(tǒng)內(nèi)用戶,編輯用戶的基本信息和權(quán)限。第二,公文管理模塊。公文管理模塊主要包括公文起草,公文查看,公文審批和公文下發(fā)。4.3用戶登錄模塊用戶登錄模塊才用AntDesign的設(shè)計(jì)風(fēng)格,預(yù)留了賬號(hào)密碼和手機(jī)驗(yàn)證碼登錄兩大入口。考慮到時(shí)間問(wèn)題和技術(shù)學(xué)習(xí)成本,暫時(shí)實(shí)現(xiàn)了用戶密碼登錄功能。界面如下圖所示:用戶密碼登錄只需要輸入正確的用戶密碼即可登錄。該界面是用過(guò)手機(jī)號(hào)和驗(yàn)證碼登錄的,目前暫未實(shí)現(xiàn)相關(guān)功能。登錄核心代碼:publicAuthenticationauthenticate(Authenticationauthentication)throwsAuthenticationException{Assert.isInstanceOf(JwtAuthenticationToken.class,authentication,messages.getMessage("AbstractUserDetailsAuthenticationProvider.onlySupports","OnlyJwtAuthenticationTokenissupported"));//DetermineusernameStringusername=(authentication.getPrincipal()==null)?"NONE_PROVIDED":authentication.getName();UserDetailsloadedUser;try{loadedUser=this.getUserDetailsService().loadUserByUsername(username);if(loadedUser==null){thrownewInternalAuthenticationServiceException("UserDetailsServicereturnednull,whichisaninterfacecontractviolation");}}catch(UsernameNotFoundExceptionnotFound){log.debug("User{}notfound",username);thrownewBadCredentialsException(messages.getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials","Badcredentials"));}catch(Exceptionex){thrownewInternalAuthenticationServiceException(ex.getMessage(),ex);}preAuthenticationChecks.check(loadedUser);additionalAuthenticationChecks(loadedUser,(JwtAuthenticationToken)authentication);postAuthenticationChecks.check(loadedUser);ObjectprincipalToReturn=loadedUser;returncreateSuccessAuthentication(principalToReturn,authentication,loadedUser);}4.4用戶管理模塊用戶管理模塊主要實(shí)現(xiàn)的功能為用戶的新增,用戶的修改以及用戶刪除。用戶列表界面:該界面展示系統(tǒng)內(nèi)所有已經(jīng)啟用并且擁有角色信息的用戶。點(diǎn)擊新增用戶,彈出一個(gè)對(duì)話框,可以在此對(duì)話框里面進(jìn)行用戶信息的填寫(xiě),當(dāng)所有必填字段填寫(xiě)完成之后,點(diǎn)擊確定按鈕,將進(jìn)行用戶填寫(xiě)的信息校驗(yàn),校驗(yàn)通過(guò)之后,將會(huì)用ajax方式把用戶信息發(fā)送至后端服務(wù)器,服務(wù)器新增用戶成功之后,返回一個(gè)消息體給前端,前端接受到之后將會(huì)提醒管理員新增用戶操作是否成功。當(dāng)點(diǎn)擊表單欄中具體的用戶修改按鈕時(shí),將彈出上述界面,該界面將用戶的信息全部回寫(xiě)到表單中,一目了然。點(diǎn)擊刪除時(shí),將彈出一個(gè)氣泡提示框,避免用戶誤操作刪除用戶。當(dāng)再次點(diǎn)擊確定后,后臺(tái)將用戶的權(quán)限數(shù)據(jù)刪除,用戶表的enabled字段置為false。用戶新增核心代碼:@Transactional(isolation=Isolation.REPEATABLE_READ)publicResponseWrapper<Null>addUser(UserInfouserInfo){StringuserId=UUID.randomUUID().toString(true);Useruser=newUser();user.setUserId(userId);user.setEnabled(true);user.setPassword(passwordEncoder.encode(DEFAULT_PASSWORD));userService.addUser(user);UserRoleuserRole=newUserRole();userRole.setAuthority(Roles.STAFF.getRole());userRole.setUserId(userId);userRoleService.getBaseMapper().insert(userRole);userInfo.setUserId(userId);intinsert=baseMapper.insert(userInfo);if(insert>0){returnresultFactory.success(null);}else{returnresultFactory.fail("新增失敗");}}用戶刪除核心代碼:@Transactional(rollbackFor=Exception.class,isolation=Isolation.READ_COMMITTED)publicResponseWrapper<Null>deleteUser(StringuserId){//enabled置為falseWrapper<User>userWrapper=newUpdateWrapper<User>().lambda().eq(User::getUserId,userId);UserentityUser=newUser();entityUser.setUserId(userId);entityUser.setEnabled(false);entityUser.setUpdateTime(newDate());userService.getBaseMapper().update(entityUser,userWrapper);//刪除角色信息Wrapper<UserRole>userRoleWrapper=newUpdateWrapper<UserRole>().lambda().eq(UserRole::getUserId,userId);userRoleService.getBaseMapper().delete(userRoleWrapper);returnresultFactory.success(MessageConstants.DELETE_OK,1);}4.5公文起草管理模塊公文起草管理模塊提供一個(gè)可編輯的頁(yè)面,讓用戶可以以富文本編輯的方式去編輯公文。這里采用的技術(shù)是一款開(kāi)源的輕量級(jí)的web富文本編輯器——wangEditor。wangEditor的優(yōu)點(diǎn)眾多,包括但不限于:開(kāi)源、輕量、配置方便,使用簡(jiǎn)單、支持IE等等。初始化界面的時(shí)候,提交按鈕被置為灰色,即不可點(diǎn)擊狀態(tài)。只有用戶填寫(xiě)了公文名稱(chēng)和選擇了審批人之后,并且公文正文部分也進(jìn)行了編輯,才可以進(jìn)行提交。當(dāng)用戶全部填寫(xiě)之后,便可以點(diǎn)擊提交按鈕。4.6公文查看模塊該模塊的主要功能為查看所有的公文信息,并且在此頁(yè)面可以進(jìn)行公文的審核。首先展示目前系統(tǒng)內(nèi)的所有公文,包括未審核,已審核和已下發(fā)的公文,默認(rèn)按照為審核,審核通過(guò),審核駁回、已下發(fā)的順序進(jìn)行排列。審核人點(diǎn)擊公文名稱(chēng)時(shí),可以查看詳細(xì)的公文內(nèi)容,如下圖所示:當(dāng)用戶點(diǎn)擊《望海樓:中國(guó)方案推動(dòng)疫情防控國(guó)際合作》標(biāo)題時(shí),將會(huì)彈出對(duì)應(yīng)的對(duì)話框,顯示該公文的具體內(nèi)容。最后一列的操作具有三個(gè)功能,第一,審核通過(guò)。如果該篇公文沒(méi)有什么問(wèn)題,即可以點(diǎn)擊通過(guò)。第二,審核駁回。如果公文需要繼續(xù)寧修改,操作員可以點(diǎn)擊審核駁回,對(duì)公文進(jìn)行駁回操作。第三,審核通過(guò)之后點(diǎn)擊下發(fā),可以將公文進(jìn)行下發(fā)。第五章系統(tǒng)測(cè)試系統(tǒng)開(kāi)發(fā)完成后,在軟件開(kāi)發(fā)階段的最后一步就是對(duì)系統(tǒng)進(jìn)行測(cè)試。測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤。我對(duì)本系統(tǒng)做了相應(yīng)部分的測(cè)試。5.1測(cè)試目的程序測(cè)試是指程序測(cè)試就是在程序投入運(yùn)行前,對(duì)程序的需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是保證程序質(zhì)量的關(guān)鍵步驟。在系統(tǒng)正式交付運(yùn)行前,一般需要做系統(tǒng)測(cè)試,來(lái)檢測(cè)系統(tǒng)是否符合預(yù)期開(kāi)發(fā)的目標(biāo)、產(chǎn)品的使用是否方便、產(chǎn)品在運(yùn)行過(guò)程中是否會(huì)出現(xiàn)錯(cuò)誤。測(cè)試的目的也正是為了解決以上幾方面的問(wèn)題。5.2測(cè)試方法在系統(tǒng)測(cè)試的各種方法中,通常使用的有兩種:即黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試是指將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測(cè)試軟件的外部特性。根據(jù)軟件的需求分析和設(shè)計(jì)規(guī)格設(shè)計(jì)測(cè)試方式,從程序的輸入和輸出特性上測(cè)試是否滿足設(shè)定的功能。而白盒測(cè)試則是將軟件看做一個(gè)按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來(lái)選定測(cè)試用例,對(duì)軟件的邏輯路徑及過(guò)程進(jìn)行測(cè)試,檢查它與設(shè)計(jì)是否相符。本系統(tǒng)采用的測(cè)試方法為黑盒測(cè)試:首先測(cè)試系統(tǒng)完成的功能是否滿足初期的需求分析。發(fā)現(xiàn)系統(tǒng)已基本完成了添加、修改、刪除和模糊查詢等相關(guān)功能,在具體的模塊中均實(shí)現(xiàn)了預(yù)期目標(biāo)。其次測(cè)試程序的設(shè)計(jì)規(guī)格,本系統(tǒng)開(kāi)發(fā)完成一共應(yīng)用相關(guān)的表和一些程序窗體,屬于中小型企業(yè)所使用的程序系統(tǒng),符合預(yù)期要求。5.3測(cè)試實(shí)例(1)用戶登錄測(cè)試測(cè)試內(nèi)容:在數(shù)據(jù)庫(kù)的操作用戶表中添加用戶名和密碼,并為其分配相應(yīng)的權(quán)限。進(jìn)而轉(zhuǎn)到前臺(tái)界面,首先輸入錯(cuò)誤的用戶名、密碼,驗(yàn)證是否提示錯(cuò)誤并且不能登錄,然后輸入正確的用戶名和密碼,驗(yàn)證是否成功登錄。結(jié)果顯示用戶輸入錯(cuò)誤的用戶名和密碼時(shí)提示“輸入用戶名或密碼錯(cuò)誤,請(qǐng)重新登錄”。當(dāng)用戶輸入正確的用戶名和密碼時(shí),順利進(jìn)入系統(tǒng)主界面。因此,本次測(cè)試的測(cè)試結(jié)果為成功。添加功能測(cè)試測(cè)試內(nèi)容:在用戶新增頁(yè)面進(jìn)行測(cè)試。單擊新建按鈕,在彈出的對(duì)話框中填入相應(yīng)的信息點(diǎn)擊確定按鈕進(jìn)行提交。若有部分必填字段未輸入則提示“請(qǐng)將相關(guān)信息輸入完整”,如果相關(guān)信息輸入完整,則彈出“保存成功”的彈出窗口。然后進(jìn)入SQL數(shù)據(jù)庫(kù)查看相關(guān)信息,發(fā)現(xiàn)相關(guān)信息已經(jīng)錄入用戶基本表和用戶表中。同樣的方式,對(duì)其他具有相同添加功能的功能模塊進(jìn)行操作,發(fā)現(xiàn)均能達(dá)到相同的效果。因此,本次測(cè)試的測(cè)試結(jié)果為成功。修改功能測(cè)試測(cè)試內(nèi)容:在各自的功能模塊中點(diǎn)擊編輯按鈕進(jìn)行修改操作。根據(jù)模糊查詢的相關(guān)查詢條件查詢出相應(yīng)的數(shù)據(jù),點(diǎn)擊顯示在界面數(shù)據(jù)庫(kù)中相應(yīng)的數(shù)據(jù),則相關(guān)數(shù)據(jù)顯示在窗體界面

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論