【摘要】辦公自動(dòng)化系統(tǒng)近年來走入人們的生產(chǎn)生活之中,并逐步在現(xiàn)代企業(yè)中占據(jù)很重要的位置,進(jìn)而提高企業(yè)的辦事效率,節(jié)約人力資源,改進(jìn)辦公質(zhì)量。本文提出一種采用JAVA平臺(tái)中的SSH框架實(shí)現(xiàn)的辦公自動(dòng)化系統(tǒng)的方案,該方案使得整個(gè)系統(tǒng)模塊劃分清晰,從而方便企業(yè)內(nèi)部人員進(jìn)行有效的信息溝通,并取得了很好的效果。
【關(guān)鍵詞】Struts2;Hibernate;辦公自動(dòng)化
1.介紹
目前,我們處于一個(gè)信息化和大數(shù)據(jù)的時(shí)代,各行各業(yè)都需要對(duì)大量信息進(jìn)行處理。在日常辦公中,人們開始面對(duì)越來越多的復(fù)雜與繁冗的數(shù)據(jù),傳統(tǒng)的辦公方式逐漸無法滿足人類和社會(huì)發(fā)展的需求。計(jì)算機(jī)技術(shù)的迅猛發(fā)展,使其在辦公室中的應(yīng)用越來越廣泛,辦公自動(dòng)化開始成為主流的辦公方式。國(guó)務(wù)院電子振興辦辦公自動(dòng)化專家會(huì)議對(duì)辦公自動(dòng)化作了如下定義:辦公自動(dòng)化是利用先進(jìn)的科學(xué)技術(shù),不斷使人的辦公業(yè)務(wù)活動(dòng)物化于人以外的各種設(shè)備中,并由這些設(shè)備與辦公室人員構(gòu)成服務(wù)于某種目標(biāo)的人機(jī)信息處理系統(tǒng)。如今,辦公自動(dòng)化系統(tǒng)已經(jīng)逐漸進(jìn)入各個(gè)行業(yè),其便利的信息交流方式,較高的辦公工作效率受到了人們的歡迎[1]。
2.系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)目標(biāo)
本文從辦公自動(dòng)化系統(tǒng)的基礎(chǔ)要求出發(fā),將辦公的方便性和高效性考慮入內(nèi),達(dá)到降低系統(tǒng)的耦合性的目標(biāo),并實(shí)現(xiàn)OA辦公自動(dòng)化系統(tǒng)的主要功能模塊的操作。這樣可以保證系統(tǒng)實(shí)現(xiàn)后的高效性、高擴(kuò)展性和靈活性,達(dá)到協(xié)助工作人員處理日常工作的目標(biāo),從而減少了管理的繁瑣,實(shí)現(xiàn)辦公自動(dòng)化和信息化。
系統(tǒng)采用BS構(gòu)架模式并結(jié)合時(shí)下最流行的SSH框架,利用因特網(wǎng)信息交流的方便性與高效性,合理設(shè)計(jì)與規(guī)劃,最終實(shí)現(xiàn)員工信息管理、在線交流信息管理、個(gè)人公開文件夾管理、會(huì)議安排管理等典型辦公自動(dòng)化功能。
2.2 相關(guān)框架介紹
1)Struts2框架介紹:Struts2框架是在Struts1和WebWork技術(shù)基礎(chǔ)上進(jìn)行合并而產(chǎn)生的。Struts2以WebWork為核心,采用攔截器的機(jī)制實(shí)現(xiàn)用戶的請(qǐng)求。其主要分為模型、視圖和控制器三部分(即MVC),主要的設(shè)計(jì)理念是通過控制器解除表現(xiàn)邏輯和業(yè)務(wù)邏輯的耦合性,以提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和重用性。
2)Hibernate框架介紹:Hibernate是一個(gè)開源的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,方便開發(fā)人員開發(fā),使其可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù),從而提高開發(fā)效率[2]。Hibernate的HQL查詢數(shù)據(jù)語(yǔ)言是根據(jù)SQL面向?qū)ο蟮淖钚〉臄U(kuò)展來設(shè)計(jì)的,在對(duì)象和關(guān)系領(lǐng)域間提供了一個(gè)交互的橋。
3)Spring框架介紹:spring是為了解決應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的一個(gè)開源框架。其主要優(yōu)勢(shì)之一是分層架構(gòu),分層架構(gòu)方便開發(fā)者選擇組件。Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯和系統(tǒng)級(jí)服務(wù)進(jìn)行內(nèi)聚性開發(fā)。其簡(jiǎn)單性、可測(cè)試性和松耦合性使得應(yīng)用程序受益。
2.3 功能模塊劃分
經(jīng)過我們對(duì)辦公單位實(shí)際情況考察并認(rèn)真分析后,本系統(tǒng)包括的用戶有普通員工、部門領(lǐng)導(dǎo)和系統(tǒng)管理員三個(gè)角色,其分別具有不同的權(quán)限。普通員工具有個(gè)人信息的修改功能,可以查看部門通訊錄,管理個(gè)人在線信息,并可以查看個(gè)人日程安排和委托他人事項(xiàng)。部門領(lǐng)導(dǎo)不僅具有普通員工所有功能,還可以安排會(huì)議,查看會(huì)議記錄,并安排所在部門員工的待辦事項(xiàng)。系統(tǒng)管理員的權(quán)限最高,主要負(fù)責(zé)管理通知通告,具有對(duì)部門信息、員工信息和角色信息的增刪查改的功能。該OA辦公自動(dòng)化系統(tǒng)功能體系結(jié)構(gòu)如圖2.1所示:
2.4 數(shù)據(jù)庫(kù)設(shè)計(jì)
OA辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)離不開數(shù)據(jù)庫(kù)的設(shè)計(jì),而該系統(tǒng)在設(shè)計(jì)過程中遇到的主要難點(diǎn)也是數(shù)據(jù)庫(kù)設(shè)計(jì)。數(shù)據(jù)庫(kù)的設(shè)計(jì)在整個(gè)系統(tǒng)設(shè)計(jì)過程當(dāng)中扮演著舉足輕重的角色,一個(gè)好的數(shù)據(jù)庫(kù)能對(duì)系統(tǒng)的實(shí)現(xiàn)起到事半功倍的作用。系統(tǒng)在數(shù)據(jù)庫(kù)設(shè)計(jì)中需要充分考慮數(shù)據(jù)之間聯(lián)系,保證數(shù)據(jù)庫(kù)設(shè)計(jì)的規(guī)范化,從而在系統(tǒng)實(shí)現(xiàn)和之后的維護(hù)過程中不會(huì)發(fā)生插入、刪除和更新異常,使得后續(xù)工作高效的進(jìn)行。本系統(tǒng)主要數(shù)據(jù)表列舉如下:
該系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)采用MySQL,其開源性、多線程性和健壯性深受人們的歡迎[3]。數(shù)據(jù)庫(kù)部署于后臺(tái)服務(wù)器中,只有系統(tǒng)管理人員才能通過一定的認(rèn)證訪問數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。除此以外,系統(tǒng)不提供任何訪問數(shù)據(jù)庫(kù)的接口。
3.系統(tǒng)實(shí)現(xiàn)
3.1 關(guān)鍵模塊實(shí)現(xiàn)
在OA辦公自動(dòng)化系統(tǒng)實(shí)現(xiàn)過程中,在線信息和工作安排兩個(gè)模塊相對(duì)于其它較為復(fù)雜,同時(shí)也耗費(fèi)了大量的精力和時(shí)間。在此將這兩個(gè)模塊的實(shí)現(xiàn)過程詳細(xì)介紹如下:
a)在線信息管理
在線信息模塊相對(duì)復(fù)雜主要是因?yàn)樵谙到y(tǒng)的首頁(yè)需要?jiǎng)討B(tài)地顯示用戶的未讀信息數(shù)目,需要用到局部動(dòng)態(tài)刷新技術(shù)——Ajax技術(shù)[4]。同時(shí),用戶對(duì)在線信息模塊的增、刪、查、改操作相對(duì)于其它模塊也更多,因此對(duì)我們的數(shù)據(jù)庫(kù)設(shè)計(jì)提出了更高的要求,這也增加了該模塊的復(fù)雜度。在數(shù)據(jù)庫(kù)表的設(shè)計(jì)過程中,難度主要集中在對(duì)于已讀信息、未讀信息、已發(fā)信息、草稿等的表示和狀態(tài)轉(zhuǎn)換的設(shè)計(jì),需要設(shè)計(jì)人員極大的耐心。
b)工作安排管理
工作安排管理模塊涉及到員工之間相互指定待辦事項(xiàng),而該功能又需得到相互間的授權(quán),使其業(yè)務(wù)邏輯較為復(fù)雜。同時(shí),待辦事項(xiàng)的狀態(tài)最終會(huì)從未完成轉(zhuǎn)換為已完成,這也增加了該模塊的難度。
授權(quán)的業(yè)務(wù)流程也較為復(fù)雜,例如員工A想向員工B指定代辦任務(wù),員工A必須首先得到員工B的授權(quán)。與此同時(shí),在得到B的授權(quán)后,A可以向B指定代辦任務(wù),B也可隨時(shí)解除授權(quán)。因此,在設(shè)計(jì)該模塊的數(shù)據(jù)庫(kù)表時(shí)需要考慮復(fù)雜的邏輯關(guān)系,對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)能力提出了很高的要求。此處涉及到了user表、authorization表以及assignment表大量的增、刪、查、改的操作,工作量較大。
3.2 技術(shù)難點(diǎn)
在文件管理功能模塊中,維護(hù)與管理文件上傳和下載相對(duì)于其它操作較為復(fù)雜,下載模塊需要進(jìn)行較為復(fù)雜的struts配置,同時(shí)上傳和下載時(shí)還要進(jìn)行編碼轉(zhuǎn)換。
針對(duì)文件夾/文件的操作主要是增加文件夾、上傳文件、更改文件名、刪除文件/文件夾、分享文件夾、獲得全部文件夾。這部分的難度主要集中在SQL語(yǔ)句,需要有足夠耐心和細(xì)心。
對(duì)于上傳文件這塊,其struts的配置文件相對(duì)簡(jiǎn)單。而文件下載模塊struts比較復(fù)雜,其主要配置文件如下:
application/octet-stream;charset=utf-8
此處將下載文件contentType統(tǒng)一指定為application/octet-stream,同時(shí)將charset的值設(shè)置為utf-8
attachment;filename=”${name}”
attachment是告訴瀏覽器下載該文件,而filename則是在action中接收該文件的文件名,以便在用戶保存該文件時(shí)使用該文件名。
文件下載模塊的action部分,其主要步驟如下:
1)定義所需的變量;
2)創(chuàng)建需要下載的文件
File file=new File(“保存文件的路徑\"+dowFileName)
3)將下載的字節(jié)流寫入剛剛創(chuàng)建的文件
try{
//從file文件中獲得輸入字節(jié)流
fdlInputStream=new FileInput-Stream(file);
//下載時(shí)指定的文件名字用iso8859 -1編碼
name=new String(dowFileName.getBytes(),\"iso8859-1\");
}
catch(FileNotFoundException e){
System.out.println(“指定文件找不到”);
e.printStackTrace();“
}
文件上傳模塊action部分,主要步驟如下:
1)聲明所需的變量,其中許多變量是固定名稱;
2)創(chuàng)建新的文件,保存上傳的文件
File fileTo=new File(\"上傳文件的保存路徑\"+uploadFileName);
3)將頁(yè)面接收到的文件寫入剛剛創(chuàng)建的文件中去
TestCopy.copy(upload,fileTo)
4.結(jié)束語(yǔ)
本文結(jié)合現(xiàn)代辦公需求,依賴當(dāng)今流行的SSH框架整合技術(shù),具有良好的分層體系,使得該系統(tǒng)具有良好的擴(kuò)展性,可維護(hù)性和穩(wěn)定性。經(jīng)過后期的內(nèi)部測(cè)試,該系統(tǒng)很大程度上提高了辦公效率,節(jié)約了成本和資源,其高效數(shù)據(jù)處理能力在一定程度推進(jìn)了企業(yè)資源計(jì)劃(ERP)的實(shí)現(xiàn),值得繼續(xù)推廣和使用。
參考文獻(xiàn)
[1]孫敏.辦公自動(dòng)化[M].北京:北京理工大學(xué)出版社,2010.
[2]李剛.輕量級(jí)JavaEE企業(yè)應(yīng)用實(shí)戰(zhàn)(第3版)-Struts2 +Spring3+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2012.
[3]周靖,許青松譯.Leon Atkinson.MySQL核心編程:高級(jí)開發(fā)者者指南[M].北京:清華大學(xué)出版社,2003.
[4]王莉軍.在Web2.0設(shè)計(jì)模式下利用Ajax技術(shù)實(shí)現(xiàn)網(wǎng)頁(yè)數(shù)據(jù)動(dòng)態(tài)更新[J].渤海大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,3:29.
作者簡(jiǎn)介:
王亦寧(1990—),男,山西太原人,大學(xué)本科,現(xiàn)就讀于四川大學(xué)軟件學(xué)院軟件工程專業(yè)。
王小天(1991—),男,四川巴中人,大學(xué)本科,現(xiàn)就讀于四川大學(xué)軟件學(xué)院軟件工程專業(yè)。