鄧小燕
摘要 本文從企業(yè)現(xiàn)金結(jié)算平臺的建設(shè)目標(biāo)出發(fā),對平臺進(jìn)行了需求分析以及設(shè)計,選用J2EE開發(fā)平臺,采用JSH模式及PostgreSQL數(shù)據(jù)庫作為企業(yè)現(xiàn)金結(jié)算平臺的技術(shù)架構(gòu)。對整個結(jié)算平臺的模塊設(shè)計、框架設(shè)計、數(shù)據(jù)庫設(shè)計及測試等工作進(jìn)行了研究。
【關(guān)鍵詞】現(xiàn)金結(jié)算平臺 J2EE PostgreSQL測試
本論文所設(shè)計的企業(yè)現(xiàn)金結(jié)算平臺是一款用于提高集團(tuán)公司之間現(xiàn)金處理效率的軟件平臺。此款軟件對集團(tuán)化公司內(nèi)部的現(xiàn)金流入流出情況進(jìn)行了合理的分類與劃分,規(guī)范了各類員工的具體職權(quán)。保證了集團(tuán)公司現(xiàn)金結(jié)算的準(zhǔn)確與高效,提供了多種結(jié)算報表,同時也為公司已有的其他系統(tǒng)提供數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)共享,以及集團(tuán)公司內(nèi)部的網(wǎng)絡(luò)化辦公。
1 企業(yè)現(xiàn)金結(jié)算平臺功能模塊設(shè)計
本文根據(jù)企業(yè)現(xiàn)金管理的工作流程,設(shè)計了一個符合企業(yè)公司業(yè)務(wù)流程,且安全性高,穩(wěn)定性好,擴(kuò)展性強(qiáng),操作簡便的ERP系統(tǒng)。該ERP系統(tǒng)不僅可以實(shí)現(xiàn)現(xiàn)金結(jié)算的網(wǎng)絡(luò)化操作;同時還可以提供人員和部門的相關(guān)信息,并可以設(shè)定權(quán)限,對員工進(jìn)行增刪改查;此外,現(xiàn)金結(jié)算完成的數(shù)據(jù),以及其它的一些重要數(shù)據(jù)也有專門模塊進(jìn)行管理,并可為企業(yè)已有的其它系統(tǒng)提供數(shù)據(jù)。
根據(jù)調(diào)研分析,企業(yè)現(xiàn)金結(jié)算平臺所涉及人員有五大類,分別是:一般用戶(T)、審批者(M)、會計(P)、業(yè)務(wù)人員(G)、系統(tǒng)管理者(S)。從業(yè)務(wù)流程的角度,我們將系統(tǒng)劃分為四大部分:結(jié)算部分,核對查詢模塊,權(quán)限管理模塊,結(jié)算數(shù)據(jù)管理模塊(如圖1所示)。
在結(jié)算部分,我們實(shí)現(xiàn)分模塊設(shè)計的方式來完成結(jié)算流程,以控制不同員工的職權(quán)。分為四個子模塊:申請,審批,稅務(wù)設(shè)定,報表輸出。申請模塊可以由任何類型的員工進(jìn)入,對本人的申請進(jìn)行增刪改查,并查詢審批狀態(tài)審批模塊由審批者,即M類型的員工進(jìn)入,進(jìn)行申請票單的逐級審批;稅務(wù)設(shè)定模塊由會計和業(yè)務(wù)人員進(jìn)入,即P,G類型的員工進(jìn)入,進(jìn)行申請票單的檢查,管理備用金,對審批完成的數(shù)據(jù)進(jìn)行現(xiàn)金支付處理,現(xiàn)金支付處理完的票單數(shù)據(jù)也可以進(jìn)行修改(金額不能修改)。報表輸出模塊也是由會計和業(yè)務(wù)人員進(jìn)入,即P,G類型的員工進(jìn)入,在這里主要是將處理完成的票單寫入流水賬,轉(zhuǎn)移財務(wù)系統(tǒng)的數(shù)據(jù),并可以生成相應(yīng)類型的報表,打印輸出。
核對查詢模塊,可以由會計和業(yè)務(wù)人員進(jìn)入,即P,G類型的員工進(jìn)入,分為三個子模塊:預(yù)支清算狀況,延遲結(jié)算預(yù)警,個別申請詳細(xì)表示。預(yù)支清算狀況是顯示該支付出納所屬子公司下被精算的預(yù)支申請;延遲結(jié)算預(yù)警是對未處理的數(shù)據(jù)按選擇延誤的時間來檢索未被處理的數(shù)據(jù),用來提醒相關(guān)操作人員及時處理被延誤的數(shù)據(jù)。個別申請詳細(xì)表示這里可以根據(jù)申請票單的ID號,查閱這條申請數(shù)據(jù)的詳細(xì)情況。
權(quán)限管理模塊分為三個子模塊:人員信息,部門信息,權(quán)限設(shè)定。人員信息模塊提供了根據(jù)職員編號,姓名或者昵稱的模糊檢索,查閱選定員工詳細(xì)信息的功能。部門信息模塊提供了按部門查詢部門所有員工,選擇員工,查看詳情的功能。這兩個地方是可以由任何類型的員工進(jìn)入查詢的。當(dāng)然,最重要的是權(quán)限設(shè)定模塊,這里只能由系統(tǒng)管理員(S類型)進(jìn)入設(shè)定設(shè)計權(quán)限類別,為員工賦權(quán)限。這里使用業(yè)務(wù).權(quán)限.角色.用戶的結(jié)構(gòu)來設(shè)計權(quán)限模塊。
結(jié)算數(shù)據(jù)管理模塊下有三個子模塊,分別是結(jié)算數(shù)據(jù)月末處理模塊,數(shù)據(jù)上傳下載模塊,銀行轉(zhuǎn)帳單生成模塊。由系統(tǒng)管理員(S類型)進(jìn)入。在月末處理模塊里,根據(jù)結(jié)算狀態(tài)進(jìn)行月末處理,結(jié)算完成的數(shù)據(jù)轉(zhuǎn)移到相同表結(jié)構(gòu)帶有LOG標(biāo)記表名的數(shù)據(jù)表中。數(shù)據(jù)上傳下載模塊里,完成了對數(shù)據(jù)庫多張表格的上傳下載功能,以便與其它系統(tǒng)共享數(shù)據(jù)。會計稅單生成模塊里生成根據(jù)會計系統(tǒng)要求的固定格式文件。
2 企業(yè)現(xiàn)金結(jié)算平臺的技術(shù)框架設(shè)計
企業(yè)現(xiàn)金結(jié)算平臺需要我們采用一次規(guī)劃,分期實(shí)現(xiàn)的增量開發(fā)模型。具有可移植性,可擴(kuò)展性和跨平臺性的J2EE開發(fā)平臺成為我們的首選,它已經(jīng)成為目前開發(fā)B/S模式的Web應(yīng)用的標(biāo)準(zhǔn)平臺?;贘2EE開發(fā)的框架有很多,我們選用JSH (Jsf+Spring+Hibemate)模式,將平臺架構(gòu)分為五個層次:客戶層、web層、業(yè)務(wù)邏輯層、持久層、數(shù)據(jù)層。這里的客戶層我們指的是瀏覽器,用戶可以通過瀏覽器訪問我們的系統(tǒng)。數(shù)據(jù)層指的是數(shù)據(jù)庫資源。我們會在后面對web層、業(yè)務(wù)邏輯層、持久層作出分析。
企業(yè)現(xiàn)金結(jié)算平臺的開發(fā)使用Spring的安全框架Acegi來實(shí)現(xiàn)權(quán)限管理。JSF實(shí)現(xiàn)了模型與視圖之間的完全解耦,使用MVC的設(shè)計模式,分離了視圖層,模型層和控制層,提高了軟件的可擴(kuò)展性和穩(wěn)定性;Spring作為一種實(shí)現(xiàn)了Ioc與Aop的輕量級容器,降低了Web開發(fā)的復(fù)雜度;Acegi作為Spring的安全架構(gòu),提供了豐富的安全解決方案。Hibernate對JDBC進(jìn)行了輕量級的對象封裝,方便開發(fā)人員使用面向?qū)ο缶幊痰乃枷雭聿倏v數(shù)據(jù)庫。實(shí)踐證明,使用整合JSH的開發(fā)平臺,可以充分發(fā)揮各框架的優(yōu)點(diǎn),提高系統(tǒng)開發(fā)的效率和質(zhì)量,降低Web開發(fā)的復(fù)雜度。
3 系統(tǒng)數(shù)據(jù)庫設(shè)計
對于基于J2EE的web系統(tǒng)的開發(fā)來說,設(shè)計一個合理的數(shù)據(jù)庫系統(tǒng),是整個開發(fā)過程中的重要一環(huán)。一個優(yōu)良的數(shù)據(jù)庫系統(tǒng),不僅可以簡化開發(fā)的流程,降低代碼的冗余度,還可以增加數(shù)據(jù)的獨(dú)立性,安全性,提供系統(tǒng)運(yùn)行的效率。因此,本系統(tǒng)在數(shù)據(jù)庫的設(shè)計、開發(fā)過程中,關(guān)鍵的步驟就是數(shù)據(jù)表的設(shè)計。需要使用正確的數(shù)據(jù)結(jié)構(gòu),方便對數(shù)據(jù)的存取操作,即要使數(shù)據(jù)庫規(guī)范化。本平臺使用第三范式3NF來設(shè)計數(shù)據(jù)庫,避免數(shù)據(jù)冗余。在比較了常見數(shù)據(jù)庫系統(tǒng)的特點(diǎn)后,本系統(tǒng)根據(jù)自身的需要選用了PostgreSQL數(shù)據(jù)庫系統(tǒng)。
我們在設(shè)計企業(yè)現(xiàn)金結(jié)算平臺的數(shù)據(jù)庫時把數(shù)據(jù)表分為三大類。一類是存放我們現(xiàn)金結(jié)算業(yè)務(wù)的數(shù)據(jù)表,一類是存放人員和部門信息的數(shù)據(jù)表,還有就是與權(quán)限相關(guān)的數(shù)據(jù)表。
3.1 業(yè)務(wù)相關(guān)數(shù)據(jù)表
根據(jù)現(xiàn)金結(jié)算業(yè)務(wù)的需求分析,為了便于系統(tǒng)的查詢與審核數(shù)據(jù)功能的實(shí)現(xiàn),我們首先得有一張用來存儲申請數(shù)據(jù)的表格;其次數(shù)據(jù)被審核的狀態(tài),每條數(shù)據(jù)審核的狀態(tài),由誰做的審核,也應(yīng)該有一張專表存儲;最后,結(jié)算完成的數(shù)據(jù)也應(yīng)整理到一張表格中;還有就是針對按月處理的結(jié)算完成的數(shù)據(jù)的備份表格了,本文設(shè)計了12張與現(xiàn)金結(jié)算業(yè)務(wù)相關(guān)的數(shù)據(jù)表,如表1。
3.2 系統(tǒng)信息相關(guān)數(shù)據(jù)表
我們來分析用來存放人員和部門信息的數(shù)據(jù)表。在遵循第三范式原則的基礎(chǔ)上,我們可以將人員和部門信息拆分7張表,分別是:人事信息表、員工詳細(xì)資料表、子公司表、部門表、部長信息表、職種表、技術(shù)工作類型表、人員關(guān)系表。
3.3 權(quán)限相關(guān)數(shù)據(jù)表
為了避免數(shù)據(jù)冗余和acegi框架配置的需要,我們在權(quán)限這里設(shè)計三張表:系統(tǒng)用戶表、系統(tǒng)權(quán)限表、用戶與權(quán)限關(guān)系表(如圖2所示)。
(1) mt_auth表:系統(tǒng)權(quán)限表。用來存放用戶權(quán)限配置信息,其中,authority字段存放以“role”開頭的權(quán)限標(biāo)志串。auth_type存放權(quán)限類型protected_res字段存放受保護(hù)的資源字符串。display字段存放權(quán)限顯示名稱。
(2) mt user info表:系統(tǒng)用戶表。用來存放用戶信息,即員工編號、姓名、密碼。
(3) mt_user_auth表:用戶與權(quán)限關(guān)系表。使用id worker和auth id作為復(fù)合主鍵。mtauth表和mt user mfo表是多對多關(guān)聯(lián),使用mt user auth作為關(guān)聯(lián)表。
4 企業(yè)現(xiàn)金結(jié)算平臺功能測試
系統(tǒng)測試是保證軟件質(zhì)量的關(guān)鍵步驟,是對系統(tǒng)設(shè)計是否全面,流程是否得以實(shí)現(xiàn)的最后復(fù)查。在測試階段,我們對該系統(tǒng)進(jìn)行了功能測試,用以檢測該結(jié)算平臺是否合理的實(shí)現(xiàn)了結(jié)算業(yè)務(wù)流程,能否滿足客戶的要求。在測試的策略上,我們采用了業(yè)務(wù)流程測試、非法數(shù)據(jù)測試、默認(rèn)數(shù)據(jù)測試、數(shù)據(jù)是否清空測試、必填項測試、按鈕功能測試、回車鍵和delete鍵測試、半角全角測試、確認(rèn)提示信息測試、Javascript腳本錯誤檢查等策略。
5 總結(jié)
該現(xiàn)金結(jié)算平臺是根據(jù)集團(tuán)公司之間現(xiàn)金結(jié)算業(yè)務(wù)流程而分析設(shè)計的一款ERP軟件。旨在實(shí)現(xiàn)結(jié)算管理的網(wǎng)絡(luò)化解決方案,提高結(jié)算的效率。利用ERP軟件對金額進(jìn)行系統(tǒng)化的統(tǒng)計與結(jié)算,降低人工紙面操作可能帶來的數(shù)據(jù)錯誤。通過權(quán)限的設(shè)置實(shí)現(xiàn)了不同員工對模塊的訪問控制,解決了資金信息外露等問題。
參考文獻(xiàn)
[1]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2008.
[2]惠剛,付超,使用JSF、Spring、Hibernate開發(fā)web應(yīng)用[J].微計算機(jī)信息,2008,24 (3-3).
[3]路鵬,殷兆麟,基于Spring的Acegi安全框架認(rèn)證與授權(quán)的分析及擴(kuò)展[J],計算機(jī)工程與設(shè)計,2007 (06): 48-51.
[4]張美娜.基于J2EE銀行信息安全監(jiān)控系統(tǒng)設(shè)計與實(shí)現(xiàn)[D].廈門:廈門大學(xué),2016.