李霞






























摘要:近年來,我國企業(yè)的信息化建設(shè)越來越全面,充分提高了企業(yè)管理的效率。企業(yè)的資金管理是企業(yè)管理中較為重要的一個環(huán)節(jié)。對于企業(yè)資金的信息化管理,實時監(jiān)控是一種科學(xué)化的企業(yè)管理手段。許多企業(yè)雖然認(rèn)識到資金管理對企業(yè)發(fā)展的重要性,但是管理意識不足,管理方案缺乏,尤其是傳統(tǒng)企業(yè)對于企業(yè)信息化管理的認(rèn)知程度不足。本文就以北京尚誠致遠(yuǎn)科技有限公司資金管理為背景,采用J2EE技術(shù)對企業(yè)資金使用實現(xiàn)全方位的管理和監(jiān)控。
關(guān)鍵詞:資金管理;信息化;J2EE
引言
自從全球脫離了經(jīng)濟危機的霧霾之后,經(jīng)濟的復(fù)蘇和跨國經(jīng)濟活動也越來越多,利率和匯率對企業(yè)的經(jīng)濟影響也越加深刻,企業(yè)單純的財務(wù)管理已經(jīng)不能應(yīng)對當(dāng)今的經(jīng)濟變化形式。財務(wù)管理漸漸轉(zhuǎn)變成了資金管理,隨著信息化建設(shè)的越來越全面,資金管理體系也越來越完善。資金管理是一個龐大的課題,包括現(xiàn)金管理、投資咨詢、風(fēng)險評估、利率和匯率監(jiān)控和銀行關(guān)系維護(hù)等等。伴隨著國外企業(yè)信息化建設(shè)的一步一步推進(jìn),國內(nèi)企業(yè)傳統(tǒng)的管理方式導(dǎo)致企業(yè)信息化建設(shè)緩慢。資金管理作為企業(yè)管理的重中之重,資金管理體系逐漸成為一個衡量一個企業(yè)信息化的標(biāo)準(zhǔn)。
國內(nèi)自動化辦公越來越普及,企業(yè)的信息化管理也進(jìn)入快速推進(jìn)時期。北京尚誠致遠(yuǎn)科技有限公司在自動化辦公方面取得了巨大進(jìn)展。資金集中管理、預(yù)算管理控制、財務(wù)集中核算、銀行和企業(yè)財務(wù)管理互聯(lián)早已有了解決方案,也為我們這套綜合的資金管理系統(tǒng)提供了基礎(chǔ)模塊。根據(jù)北京尚誠致遠(yuǎn)科技有限公司的整體規(guī)劃,該公司的資金管理業(yè)務(wù)大致分為以下幾塊:資金計劃額度分配,資金收款認(rèn)證,資金付款審核,以及資產(chǎn)分配管理。其中資產(chǎn)管理屬于公司信息化管理中除了金錢以外的公司財產(chǎn)的管理與使用。各個業(yè)務(wù)又有不同的子模塊,并且各個模塊之前也有相互交叉,同時與外圍的會計核算系統(tǒng)、TMS等系統(tǒng)集成。對于北京尚誠致遠(yuǎn)科技公司資金管理系統(tǒng)的業(yè)務(wù)熟悉后,為了公司的信息化建設(shè),決定開發(fā)這套資金管理監(jiān)控系統(tǒng)。
上世紀(jì)40年代便開始有了企業(yè)資金管理體系,這個體系近年來也越來越成熟。尤其是計算機的誕生,直接將企業(yè)資金管理劃入到了自動化辦公板塊。國外也有很多公司專注于企業(yè)自動化辦公系統(tǒng)的研發(fā)。資金的實時管理是企業(yè)信息化管理的重要部分。在發(fā)達(dá)國家企業(yè)資金的實時管理和監(jiān)控都已經(jīng)比較成熟,企業(yè)都有成熟的解決方案。雖然國內(nèi)部分企業(yè)生產(chǎn)力水平達(dá)到世界一流,但我國計算機發(fā)展起步較晚,企業(yè)信息化建設(shè)不全面,尤其是在企業(yè)資金管理上更是沒有權(quán)威的解決方案,這就難以推進(jìn)國內(nèi)基于計算機的資金實時監(jiān)控系統(tǒng)的研究和應(yīng)用。
國內(nèi)越來越多的企業(yè)也認(rèn)識到資金管理的重要性,而一批大型企業(yè)憑借雄厚的資金實力,借鑒銀行資金管理模式,運用理財手段、現(xiàn)代網(wǎng)絡(luò)技術(shù),實行資金集中管理,取得了顯著的成效。他們特別注重用信息化的手段強化企業(yè)的資金集中管理。但是,較為完善和專業(yè)的企業(yè)資金管理解決方案卻一直沒有創(chuàng)新產(chǎn)品。本文就北京尚誠致遠(yuǎn)科技有限公司的資金管理監(jiān)控系統(tǒng)的設(shè)計進(jìn)行簡要說明。
1 項目可行性分析
1.1可行性分析
本系統(tǒng)的設(shè)計將采用應(yīng)用較為廣泛的B/S模式,技術(shù)支撐依托于J2EE體系結(jié)構(gòu)。這個項目采用了現(xiàn)在比較流行的MVC模式,M層使用了javaBean來映射表單數(shù)據(jù)和對應(yīng)數(shù)據(jù)表,V層使用了JSP技術(shù)以及大量的css與javaScript,C層使用了Servlet技術(shù),完全滿足了這個項目的需求。另外,在操作數(shù)據(jù)庫時底層仍采用JDBC技術(shù),但是得到了很好的封裝,使用已經(jīng)封裝好的c3p0數(shù)據(jù)庫連接框架,只要將數(shù)據(jù)庫信息保存到配置文件中,便實現(xiàn)了數(shù)據(jù)庫連接,也實現(xiàn)了javaBean往數(shù)據(jù)庫的映射。這就是北京尚城致遠(yuǎn)科技有限公司資金管理監(jiān)控系統(tǒng)的基本技術(shù)概要。
軟件技術(shù)架構(gòu)都比較完善,硬件方面windows系統(tǒng)都可以適應(yīng)。現(xiàn)有硬件的處理速度足以滿足項目需求。現(xiàn)有機器大部分可以運行該項目,項目的運行基本不會改變原有計算機的運行狀態(tài)以及系統(tǒng)架構(gòu)。而且項目整體操作類似現(xiàn)有大部分信息系統(tǒng)管理軟件,業(yè)務(wù)邏輯上不會有太大問題。并且前期項目搭建,會有專業(yè)人士來做。
1.2軟件工程設(shè)計理論和技術(shù)
每一個系統(tǒng)軟件在開發(fā)之前都要經(jīng)過軟件設(shè)計,軟件設(shè)計具體又包括需求設(shè)計,詳細(xì)設(shè)計,系統(tǒng)架構(gòu)設(shè)計。有需求設(shè)計來推出詳細(xì)設(shè)計,具體說明用戶需要哪些功能模塊,有詳細(xì)設(shè)計退出系統(tǒng)架構(gòu)設(shè)計。在系統(tǒng)架構(gòu)設(shè)計中項軟件開發(fā)人員具體介紹功能點的實現(xiàn)與難點的突破等。
下圖為大家簡單介紹軟件設(shè)計的主要組成。
(1)UML技術(shù)
UML建模技術(shù),是用來將軟件進(jìn)行可視化建模的一種技術(shù)。首先要了解模型是什么,模型就是將現(xiàn)實世界中的物體,進(jìn)行抽象的模擬和簡化。為了使軟件系統(tǒng)更容易被理解,就出現(xiàn)了建模。建模有哪些有點:
可以對系統(tǒng)進(jìn)行可視化分析,使其更接近需求。
可以看出系統(tǒng)構(gòu)造的模板。
降低了軟件系統(tǒng)文檔化的難度。
UML建模包括七種視圖:
(2)J2EE技術(shù)介紹
目前的java平臺包括三個版本,一種是用于小型嵌入式設(shè)備上的軟件開發(fā)J2ME,還一種是簡單桌面應(yīng)用的J2SE,以及最后一種用于企業(yè)級平臺搭建的J2EE。
J2EE平臺具有諸多優(yōu)點,它具有很好的可伸縮性、靈活性、易維護(hù)性等。這幾點又體現(xiàn)在J2EE平臺能夠保存現(xiàn)有的IT資產(chǎn),對于一些現(xiàn)有的基于J2EE平臺的項目可以進(jìn)行迭代開發(fā),既可以加入新的功能模塊,也能保留原來功能模塊。并且J2EE平臺的產(chǎn)品幾乎能在任何操作系統(tǒng)上運行,也就免去了對硬件環(huán)境的要求,現(xiàn)有的操作系統(tǒng)和硬件資源任然可以使用。
而我們的系統(tǒng)正采用了J2EE平臺,這里主要運用到J2EE規(guī)范中的JDBC、JSP、Java Servlet、XML等。
(3)Struts2
SSH(Struts +Spring +Hibernate)三大框架,今天來總結(jié)一下Struts2的一些知識。所謂框架么,其實就像我們蓋房子一樣,需要先搭建支架,然后再進(jìn)行添磚加瓦,使之達(dá)到完美。而在軟件開發(fā)中,框架也是一樣的:就是將通用的代碼進(jìn)行封裝,使我們可以重復(fù)利用,達(dá)到了高效開發(fā)的效果。當(dāng)然既然已經(jīng)搭建好的框架,用到我們的系統(tǒng)中,我們就需要學(xué)習(xí)它,怎么使我們自己獨有的代碼和框架進(jìn)行完美的結(jié)合。因為大家都在用這些優(yōu)秀的框架,所以框架的學(xué)習(xí),其實就是框架規(guī)范的學(xué)習(xí)。有了規(guī)范,有個約束,有了統(tǒng)一,才能更加有利于合作的開發(fā)。
(4)Hibernate
這是一個數(shù)據(jù)庫的操作框架,Hibernate中提供了兩個級別的緩存
第一級別的緩存是 Session 級別的緩存,它是屬于事務(wù)范圍的緩存。這一級別的緩存由 hibernate 管理的,一般情況下無需進(jìn)行干預(yù)
第二級別的緩存是 SessionFactory 級別的緩存,它是屬于進(jìn)程范圍的緩存
SessionFactory 的緩存可以分為兩類:
內(nèi)置緩存: Hibernate 自帶的, 不可卸載. 通常在 Hibernate 的初始化階段, Hibernate 會把映射元數(shù)據(jù)和預(yù)定義的 SQL 語句放到 SessionFactory 的緩存中, 映射元數(shù)據(jù)是映射文件中數(shù)據(jù)的復(fù)制, 而預(yù)定義 SQL 語句時 Hibernate 根據(jù)映射元數(shù)據(jù)推到出來的. 該內(nèi)置緩存是只讀的.
外置緩存(二級緩存): 一個可配置的緩存插件. 在默認(rèn)情況下,SessionFactory 不會啟用這個緩存插件. 外置緩存中的數(shù)據(jù)是數(shù)據(jù)庫數(shù)據(jù)的復(fù)制, 外置緩存的物理介質(zhì)可以是內(nèi)存或硬盤。
(5) Spring
Spring是一個輕量級的IOC和AOP容器框架:a,輕量級:程序?qū)崿F(xiàn)不是很復(fù)雜,代碼不是很多,占用資源不是很多,沒有侵入性;b,IOC(Inversion of Control 控制反轉(zhuǎn)):對象創(chuàng)建責(zé)任的反轉(zhuǎn)(重點,核心);c, Aop(Aspect Oriented Programming):一種面向橫切面編程的思想方式,可以進(jìn)行功能性擴展,看前邊的一篇轉(zhuǎn)載的博客:面向橫切面(AOP)編程d,容器:可以容納對象,并且可以控制對象的生命周期。
Spring框架是進(jìn)行對象管理,對象關(guān)聯(lián),解耦的一個中間層框架。SSH(Struts+Spring+Hibernate)三大Spring在中間就起著一個承上啟下的作用。好,首先我們先來看一下Spring框架的一些知識點,通過下邊這張圖來總括一下:
(6) JavaScript
JavaScript雖然是一種編程語言,但它非常簡單。它是處理html頁面的腳本語言。是由網(wǎng)景公司創(chuàng)建,JavaScript首次出現(xiàn)時功能非常有限,甚至編寫完的代碼只能運行在一種瀏覽器。直到W3C的出現(xiàn),制定了一系列標(biāo)準(zhǔn)使得JavaScript得到了廣泛傳播。它可以增加頁面生動性并使其以全新方式與用戶進(jìn)行交流。我們項目中也大量使用js來增加頁面效果。
(7) JQuery
jQuery是一套封裝了的IavaScript庫。jQuery只是腳本庫,并不是腳本框架。它并不能解決腳本的引用管理與功能管理中的問題,這是腳本框架要做的事。但腳本庫可以幫我實現(xiàn)很多業(yè)務(wù)邏輯上的問題,jQuery的出現(xiàn)提高了編寫JS腳本的效率,增強了代碼的健壯性,讓代碼看起來更加優(yōu)雅。
jQuery有哪些特點:首先就是提供了強大的功能函數(shù),讓代碼更整潔,尤其是其強大的選擇器,其次解決瀏覽器兼容問題,豐富絢麗的UI實現(xiàn)。
(8) MySQL
在互聯(lián)網(wǎng)技術(shù)中,MySql數(shù)據(jù)庫已經(jīng)是非常普及的數(shù)據(jù)庫。MySql與其他數(shù)據(jù)相比有它自己獨具一格的一面,它的架構(gòu)應(yīng)用在多種場景時依然非常合適,能應(yīng)對自如。MySql不僅性能指標(biāo)出眾,實際裝機容量與應(yīng)用領(lǐng)域都高于其他數(shù)據(jù)庫。MySql相比其他數(shù)據(jù)庫有著更加全面的測試,同時也有著更多的相關(guān)技術(shù)文檔。它的優(yōu)勢體現(xiàn)在應(yīng)用范圍廣,運行穩(wěn)定,高性價比等。
(9) MVC
MVC是現(xiàn)代web開發(fā)中非常流行的一種設(shè)計模式,將整個應(yīng)用劃分為三層結(jié)構(gòu):視圖層(V),模型層(M)與控制層(C)。
模型是企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則模型。在MVC里面,該模型要處理的任務(wù)最多。通過模型返回的數(shù)據(jù)是與數(shù)據(jù)格式無關(guān)的。該模型可為多個視圖提供數(shù)據(jù)。適用于模型的代碼只寫一次可復(fù)用的多個視圖,從而減少重復(fù)代碼。視圖是向用戶展示信息并做交互的頁面。
視圖層既可以顯示模型層的數(shù)據(jù),也可以轉(zhuǎn)發(fā)到控制層將模型層的數(shù)據(jù)進(jìn)行處理。視圖層也是三層中用戶可以直接看到的“層”。控制器層在項目中起到控制轉(zhuǎn)發(fā)的作用,其中也包含了對模式數(shù)據(jù)的操作,處理等事務(wù)。
控制層更多的是Servlet來實現(xiàn),當(dāng)今能實現(xiàn)控制轉(zhuǎn)發(fā)的框架有很多,不單單是Servlet,比如struts。控制層通過模型層來操作數(shù)據(jù)庫,然后將數(shù)據(jù)轉(zhuǎn)發(fā)到視圖層顯示給用戶。
總之,MVC三層是協(xié)調(diào)工作的,視圖層與用戶交互,接受用戶請求,模型層用于將實體映射到數(shù)據(jù)庫,起到封裝作用,讓開發(fā)者只面對事先封裝的模型,控制層來處理用戶請求和操作模型層,也是整個項目的難點所在,是整個項目業(yè)務(wù)邏輯的核心。
(10)JDBC
JDBC是一套API庫,專門用來建立數(shù)據(jù)庫連接,操作數(shù)據(jù)庫,它對多所有數(shù)據(jù)庫提供了統(tǒng)一的接口。 簡化了開發(fā)流程,統(tǒng)一的java接口。每一個支持java的數(shù)據(jù)庫生產(chǎn)商自己來做JDBC驅(qū)動程序,然后提供統(tǒng)一的接口供開發(fā)者使用,這樣簡化了java開發(fā)者操作數(shù)據(jù)庫的流程,這種做法也是java“一處編寫,處處運行”的思想。而需要更換項目的數(shù)據(jù)庫時,只需要修改數(shù)據(jù)庫驅(qū)動類即可,所以說JDBC的API有著很大的價值和意義。
(11)DBUtils
這是一個數(shù)據(jù)庫的操作組件,有點類似當(dāng)今流行的Hibernate,能夠?qū)?shù)據(jù)庫操作結(jié)果轉(zhuǎn)換為各種數(shù)據(jù)集合,例如List,Map等,但是其底層仍然是JDBC實現(xiàn)的。那么這個數(shù)據(jù)庫操作組件有什么特色呢。首先是對于數(shù)據(jù)表的讀寫,結(jié)果集能很好的處理為java中的集合,比如List,Map,Set。其次,操作數(shù)據(jù)表時只需要傳入sql語句即可,同樣支持占位符。最后,這個組件能夠使用數(shù)據(jù)源,能通過JNDI和數(shù)據(jù)庫連接池技術(shù)來進(jìn)行性能優(yōu)化,尤其是對數(shù)據(jù)庫連接的重復(fù)使用。
1.3項目開發(fā)環(huán)境與運行平臺
(1)運行平臺
項目開發(fā)所使用的服務(wù)器是Tomcat,它是由Apache發(fā)起的,是一個開源免費的產(chǎn)品,我們就用它作為項目的服務(wù)器。同時,它還是SUN公司推薦的Servlet容器,它能夠跟大部分主流的HTTP服務(wù)器一起協(xié)同工作,并且可靠,穩(wěn)定,效率高。
Tomcat服務(wù)器主要有以下特色:
免費開源,網(wǎng)上資料齊全很適合我們這種小型項目。
安裝部署簡單,體積小,是一個適合新手使用的WEB容器。
更新快,跨平臺。由于Tomcat本身是java寫的,所以具有跨平臺性。
除了服務(wù)器端,前段也用到了大量js與css技術(shù)。整體屬于JavaEE體系架構(gòu)。
(2)開發(fā)環(huán)境
操作系統(tǒng):Windows 7。
服務(wù)器軟件:Tomcat6.0。
瀏覽器:IE、Fire Fox、360。
開發(fā)工具:MyEclipse。
(3)C3P0
這是一個開源的連接池庫,仍使用JDBC,它實現(xiàn)了jdbc3和jdbc2的拓展與規(guī)范。現(xiàn)在流行的Hibernate與Spring都使用了這種連接框架。它的配置信息如下
數(shù)據(jù)連接配置
2需求分析
在軟件開發(fā)的過程中,首先要做的就是需求分析。一個項目最終能否符合用戶的需求,絕大部分在于需求分析工作做得是否到位。下面就對北京尚誠致遠(yuǎn)科技有限公司的資金管理與監(jiān)控系統(tǒng)進(jìn)行業(yè)務(wù)上的需求分析介紹。
2.1 企業(yè)資金管理業(yè)務(wù)架構(gòu)
完善的企業(yè)資金管理業(yè)務(wù)應(yīng)該主要包括以下三個大的方面:現(xiàn)金管理(CashManagement),資金交易管理(Treasury Transaction Management),即管理企業(yè)在多頭寸時的投資以及在缺頭寸時的融資。風(fēng)險管理(Risk Management),即對企業(yè)所面臨的資金風(fēng)險進(jìn)行識別和衡量,同時對于可能發(fā)生的風(fēng)險進(jìn)行有效的防范。對于企業(yè)資金管理人員來說,還需要考慮會計處理,和資金報告等相關(guān)工作內(nèi)容。
企業(yè)資金管理的主要業(yè)務(wù)框架
2.1現(xiàn)金管理
企業(yè)資金管理之中,最原始的莫過于現(xiàn)金管理,現(xiàn)金管理是近現(xiàn)代企業(yè)資金管理中必不可少的一部分。其中包括企業(yè)現(xiàn)金流的預(yù)測,企業(yè)現(xiàn)金池的管理,銀行賬戶的管理,收款及付款的管理四大部分。下面章節(jié)中將分別對這四部分做進(jìn)一步的介紹。
(1) 現(xiàn)金流預(yù)測
現(xiàn)金流預(yù)測是企業(yè)資金管理的基礎(chǔ),企業(yè)工作人員應(yīng)當(dāng)對企業(yè)的現(xiàn)金流向做出一定預(yù)測,如果能對現(xiàn)金流作出準(zhǔn)確的預(yù)測,就可以促進(jìn)資金的流動,增大投資收益。在預(yù)測資金流向的同時,對企業(yè)的資金風(fēng)險也能進(jìn)行簡單的預(yù)測與評估。雖然單純的預(yù)測,缺乏理論知識,但是我們可以借助于企業(yè)信息化中的技術(shù)手段,對當(dāng)前企業(yè)的資金模式進(jìn)行建模,分析,最終得出資金流向的預(yù)測。
對于企業(yè)的流動性預(yù)測和現(xiàn)金計劃來說,首先需要獲取內(nèi)部和外部銀行的數(shù)據(jù)。在獲取銀行數(shù)據(jù)后需要對數(shù)據(jù)進(jìn)行對帳(銀行對帳放在后面章節(jié)描述)。然后對現(xiàn)金的頭寸和現(xiàn)金的預(yù)測進(jìn)行查詢,編制現(xiàn)金計劃的報表。在這些工作的基礎(chǔ)上,分析實際與預(yù)測的匹配程度,對企業(yè)的融資成本進(jìn)行分析,對企業(yè)面臨的流動性風(fēng)險進(jìn)行預(yù)測,在此基礎(chǔ)上進(jìn)行投融資的決策。
對企業(yè)來說,現(xiàn)金流的預(yù)測信息收集主要通過以下四個途徑:
①企業(yè)的預(yù)算數(shù)據(jù)。一般企業(yè)都會制定一定經(jīng)營周期(一年或半年)的預(yù)算數(shù)據(jù),并進(jìn)行滾動式(每季度或每個月)的更新。一般來說,預(yù)算數(shù)據(jù)可以提供給企業(yè)現(xiàn)金流的長期預(yù)測信息。
②企業(yè)的應(yīng)收/應(yīng)付信息。企業(yè)一般都會有類似供應(yīng)商付款和銷售收入這樣的應(yīng)收應(yīng)付信息。應(yīng)收應(yīng)付周期一般都是一個月,所以應(yīng)收/應(yīng)付信息成了企業(yè)短期現(xiàn)金流預(yù)測的主要來源。
③企業(yè)的資金計劃。企業(yè)的各個分子公司或其他成員單位會定期提交資金計劃給資金中心或集團資金部。這類信息可以作為企業(yè)中期的現(xiàn)金流預(yù)測的主要來源。
④資金業(yè)務(wù)(Treasury Activity)。企業(yè)的資金業(yè)務(wù)也會影響到企業(yè)的現(xiàn)金流預(yù)測。舉例來說,某企業(yè)有一筆10 年長期貸款,每半年付息,到期還本付息,這也就意味著這個企業(yè)每半年會有一筆利息支出的現(xiàn)金流,10 年后到期還會有一筆歸還本金的現(xiàn)金流。
(2) 企業(yè)資金池
企業(yè)資金池是為了方便管理人員對企業(yè)當(dāng)前的資金狀況有一定的把握。企業(yè)需要在資金池中建立多個子賬戶,并且為每個子賬戶分配特定的金額。在資金池的使用中需要加上審核流程,只有有相應(yīng)權(quán)限的管理員審核通過后,資金才能在資金池中流轉(zhuǎn)與使用,既保障了企業(yè)資金的安全性,也對公司現(xiàn)金進(jìn)行了高效的管理。
(3) 銀行賬戶管理
企業(yè)對銀行賬戶的管理的目的是為了高效地,準(zhǔn)確地管理企業(yè)(包括總部和各個分公司)的銀行賬戶結(jié)構(gòu)和信息,從而提高企業(yè)現(xiàn)金的流動性和有效利用率,為建立企業(yè)現(xiàn)金池提供基礎(chǔ)保障。企業(yè)銀行賬戶管理一般包括銀行賬戶開戶信息的維護(hù),銀行賬戶結(jié)構(gòu)的管理,銀行賬戶余額的管理,銀行賬戶交易管理和銀行賬戶對帳管理。如下圖所示:
其中收支兩條線是目前大多數(shù)企業(yè)所普遍采用的一種賬戶管理模式,收支兩條線模式的工作方式如圖3-2 所示:
從圖3-2 中可以看出在分公司有資金需求時可以提交付款申請,企業(yè)會從資金中心的總賬戶下?lián)苜Y金到分公司支出賬戶;同時,資金中心也會定期將分公司的收入賬戶的盈余上收到資金中心總賬戶供企業(yè)內(nèi)部賬戶使用。
(4) 資金調(diào)撥
資金調(diào)撥包括企業(yè)內(nèi)部的資金調(diào)撥和企業(yè)對外的收付款。
企業(yè)內(nèi)部的資金調(diào)撥保證了企業(yè)內(nèi)部資金流轉(zhuǎn)的高效,有利于企業(yè)資金的有效利用,達(dá)到了企業(yè)利益的最大化。一般對企業(yè)的資金部門來說,最大的工作量就集中在對企業(yè)收款和付款的管理,所以對于收款和付款的管理也是現(xiàn)金管理中一個重要的組成部分。
對收款來說,企業(yè)需要及時地了解收入的情況,這是高效地利用資金的前提;對于付款來說,企業(yè)需要安全的,完善的流程控制,以降低資金支付的風(fēng)險。同時企業(yè)需要一個集中的付款平臺,以保證企業(yè)可以使用一個統(tǒng)一的平臺通過不同的銀行進(jìn)行資金的支付。
2.2 資金交易管理
企業(yè)資金交易管理又叫做投融資管理,是在建立良好現(xiàn)金管理的基礎(chǔ)上,企業(yè)利用各種金融工具在多頭寸的時候進(jìn)行投資,缺頭寸時進(jìn)行融資的過程。資金管理是資金管理的核心。在當(dāng)前開放的國際金融市場上,企業(yè)在進(jìn)行投融資的時候,有很多種選擇。
從投融資的市場業(yè)務(wù)角度來區(qū)分,主要可以分成四大類,分別是貨幣市場交易,資本市場交易,衍生品交易,外匯交易。
投資管理是對企業(yè)的各種金融投資進(jìn)行跟蹤和管理。一般企業(yè)可投資品種包括:銀行存款、票據(jù)、基金(股票型基金、債券型基金等)、債券(國債、企債、金融債、債券回購)、股權(quán)投資等;融資管理是對企業(yè)的融資進(jìn)行統(tǒng)一的管理和跟蹤,其中的融資工具包括上市、發(fā)債(普通債券、可轉(zhuǎn)債)、銀行貸款、票據(jù)、保函、信用證等。
當(dāng)然,為了規(guī)避風(fēng)險,企業(yè)還會利用各種對沖(Hedging)金融產(chǎn)品進(jìn)行套期保值,比如利用外匯遠(yuǎn)期規(guī)避匯率風(fēng)險;利用利率掉期來規(guī)避利率風(fēng)險等。
2.3風(fēng)險管理
企業(yè)在建立有效現(xiàn)金管理的基礎(chǔ)上,會去進(jìn)行投融資,那么風(fēng)險管理對于企業(yè)來說是非常必要的。市場風(fēng)險是指在資金融通和貨幣資金的經(jīng)營過程中,由于金融市場變動帶來的影響,使資金所有者的收入與預(yù)期產(chǎn)生偏差。利率、匯率、商品和證券的市場風(fēng)險是企業(yè)面臨的最主要的市場風(fēng)險。對于市場風(fēng)險,企業(yè)可以采用情景分析和對在險價值(VaR)的評估來測算市場風(fēng)險對于企業(yè)資金頭寸的影響,以便企業(yè)及早地采取措施,降低風(fēng)險發(fā)生所帶來的損失。對于流動性風(fēng)險來說,目前企業(yè)主要是通過貸款和內(nèi)部資金的調(diào)撥來解決流動性風(fēng)險的問題。
操作風(fēng)險是由于人員操作或者系統(tǒng)失效等外部因素帶來的風(fēng)險。為了避免操作性風(fēng)險,企業(yè)在進(jìn)行資金交易的時候必須有完善的審核流程控制;同時,建立適合企業(yè)資金管理要求的信息系統(tǒng)。
對于法律風(fēng)險,企業(yè)要加強自身法律意識,同時還要加強企業(yè)法律部門和審計部門的建設(shè)力度,提高法律部門和審計部門的人員素質(zhì)。
2.4企業(yè)資金管理運作模式
借鑒銀行的資金管理運作模式,企業(yè)資金管理一般也分為對于資金管理部門前、中、后臺的管理, 如圖3-3 所示。
從圖中可以看出前臺人員(Front Office)負(fù)責(zé)交易的錄入和日常處理,其中包括貸款交易,債券交易,票據(jù)交易,外匯交易和金融衍生品交易等。中臺人員(Middle Office)負(fù)責(zé)風(fēng)險管理和限額管理等。后臺人員(Back Office)負(fù)責(zé)交易的清算,會計出賬,資金報告等。
2.5企業(yè)資金管理業(yè)務(wù)流程
(1)業(yè)務(wù)流程概述
企業(yè)資金管理業(yè)務(wù)流程包括現(xiàn)金流預(yù)測,內(nèi)部現(xiàn)金管理,資金運作,交易執(zhí)行管理等,如圖3-4 所示:
圖3-4 中,現(xiàn)金流預(yù)測是基于業(yè)務(wù)產(chǎn)生的實際應(yīng)收數(shù)據(jù)、銀行數(shù)據(jù)以及預(yù)算數(shù)據(jù),企業(yè)根據(jù)這些數(shù)據(jù)進(jìn)行現(xiàn)金流預(yù)測;內(nèi)部現(xiàn)金管理在現(xiàn)金流預(yù)測的基礎(chǔ)上,對公司銀行賬戶進(jìn)行管理,建立合理的資金池結(jié)構(gòu),并對資金頭寸進(jìn)行管理,實現(xiàn)賬戶之間資金的調(diào)撥;資金運作是在準(zhǔn)確的現(xiàn)金流預(yù)測和內(nèi)部現(xiàn)金管理的基礎(chǔ)上,企業(yè)需要對風(fēng)險進(jìn)行分析,確定合理的投融資決策;交易執(zhí)行管理是根據(jù)制定的投融資決策,進(jìn)行交易的執(zhí)行管理。在資金運作過程中,前、中、后臺人員對流程進(jìn)行控制,分工合作。前臺進(jìn)行交易的錄入、審核與授權(quán),中臺進(jìn)行風(fēng)險的控制和限額的檢查,后臺進(jìn)行結(jié)算和會計處理。
(2)資金交易流程分析
企業(yè)資金管理中核心的業(yè)務(wù)流程就是對于交易的生命周期的管理。這里對交易的定義是:一切可以導(dǎo)致企業(yè)資金頭寸發(fā)生變化的資金活動。它不僅包括投融資交易,還包括一般性付款和收款,利息的收入和支出等。交易可能產(chǎn)生企業(yè)資金頭寸的正向變化,也可能產(chǎn)生企業(yè)資金頭寸的負(fù)向變化,下面本文將以兩個實際的例子來解釋企業(yè)的實際交易流程,從而進(jìn)一步分析和優(yōu)化企業(yè)的交易流程。
我們先以企業(yè)長期貸款(Loan)為例。首先,企業(yè)因資金需求,需要向某銀行貸款,
銀行一般都會對企業(yè)授予一定的授信額度(Credit Line),也就是銀行愿意向企業(yè)貸款的最大限額。接著企業(yè)會確認(rèn)該銀行授信額度是否能滿足此次貸款的需求,在不能滿足企業(yè)貸款需求的情況下,企業(yè)一般會要求銀行增加對其的授信,或者拆分貸款并向多家銀行貸款,直至滿足企業(yè)融資需求。其次,企業(yè)會和銀行商討貸款合同的細(xì)節(jié),比如貸款利率,還本付息周期等具體內(nèi)容。接著,雙方達(dá)成共識,簽署合同。最后,銀行根據(jù)合同金額提供給企業(yè)資金,企業(yè)根據(jù)合同還本付息,直至全部貸款償還完畢。對于企業(yè)來講,這些活動都涉及到相關(guān)業(yè)務(wù)角色的一系列活動,其中包括交易員錄入交易,到后臺的審核結(jié)算。
對 于 企 業(yè) 的 投 資 交 易 (Investment) 來說, 企業(yè)一般都會對于不同交易對手方(Counterparty)或者交易類型定義不同交易限額也就是企業(yè)在與某一對手方進(jìn)行交易或者進(jìn)行某種交易的最大值。以購買債券(Bond)為例。首先企業(yè)會檢查購買此類債券的限額,如在限額之內(nèi),企業(yè)可以購買該債券。接著,通過相關(guān)人員審核和授權(quán)后,交易員可以在市場上購買該債券。最后,企業(yè)支付現(xiàn)金并持有債券。在企業(yè)持有債券的期間,會獲得該債券的利息,同時債券在市場上價格是浮動的,企業(yè)也可以在確認(rèn)獲利的情況下,將債券買出,這當(dāng)然也會涉及到相關(guān)業(yè)務(wù)角色的授權(quán)。通過對企業(yè)資金管理的交易流程進(jìn)行深入地分析,可以抽象出企業(yè)資金管理中交易的管理流程。圖3-5 描述了資金管理中的交易管理的主流程。
從圖3-5 中可以看出資金交易的主流程:首先,由前臺人員(Front Office) 建立資金交易;接著,中臺人員(Middle Office)進(jìn)行風(fēng)險的控制,其中包括交易限額或敞口的檢查,以及企業(yè)關(guān)注的其他一些風(fēng)險指標(biāo),例如:VaR;然后,后臺人員(Back Office)一般會根據(jù)限額和各種風(fēng)險指標(biāo)來對交易進(jìn)行審批。交易審批過后,后臺人員還會對交易的結(jié)算信息進(jìn)行審批。企業(yè)都會有自身特色的交易和結(jié)算的審批流程;審批通過后,出納可以對交易進(jìn)行最終地結(jié)算。
2.6基于CTR 模型的系統(tǒng)
本節(jié)將通過用例的方式闡述了基于 CTR 模型的資金管理系統(tǒng)的需求。
(1)需求概述
圖 3-6 用語境圖(Context Diagram)方式,概述了相關(guān)人員和系統(tǒng)對于企業(yè)資金管理系統(tǒng)的需求。
從圖中可以看出,IT 人員希望通過系統(tǒng)來維護(hù)企業(yè)資金相關(guān)的一些基礎(chǔ)數(shù)據(jù),免去了他們手工維護(hù)的辛苦;現(xiàn)金管理人員系統(tǒng)通過系統(tǒng)來有效管理企業(yè)賬戶信息,管理企業(yè)資金池,提高企業(yè)現(xiàn)金的流動性,最好還能通過該系統(tǒng)進(jìn)行收付款的支付,這樣可以減少他們大量的工作量;資金管理人員希望通過該系統(tǒng)管理企業(yè)資金交易,維護(hù)交易狀態(tài)并對交易進(jìn)行估值等平時他們經(jīng)常要做的工作;風(fēng)險管理人員希望該系統(tǒng)能提供一個有效評估和控制企業(yè)資金風(fēng)險的平臺;企業(yè)司庫或者財務(wù)總監(jiān)則希望系統(tǒng)能夠提供制定企業(yè)發(fā)展和投融資決策的有效信息;外部系統(tǒng)要和企業(yè)資金管理交換數(shù)據(jù)和信息。
(2)基礎(chǔ)數(shù)據(jù)需求
在進(jìn)行需求分析之前,首先必須要了解和企業(yè)資金管理相關(guān)的一些基礎(chǔ)數(shù)據(jù),以及這些基礎(chǔ)數(shù)據(jù)的哪些信息是需要在本系統(tǒng)中維護(hù)的。表3-2 給出了資金管理系統(tǒng)中要維護(hù)的一些關(guān)鍵的基礎(chǔ)數(shù)據(jù)。
下面簡要介紹一下這些關(guān)鍵的基礎(chǔ)數(shù)據(jù)需要在系統(tǒng)中維護(hù)的主要信息:
①企業(yè)組織架構(gòu)主要有業(yè)務(wù)單位名稱、地址、電話、傳真、郵件地址、層級、法
人實體、本幣幣種、報告幣種、以及各業(yè)務(wù)單位的層級關(guān)系等信息需要在系統(tǒng)
中維護(hù);
②企業(yè)銀行賬戶主要有賬戶名稱,賬號,開戶人,開戶銀行名稱,賬戶幣種,電
子轉(zhuǎn)賬代碼,SWIFT 代碼等信息需要在系統(tǒng)中維護(hù);
③交易對手主要有交易對手名稱、地址、電話、聯(lián)系人、傳真、郵件地址、層級、
交易對手類型等信息需要在系統(tǒng)中維護(hù);
④交易對手銀行賬戶主要有賬戶名稱、賬號、開戶人、開戶銀行名稱、賬戶幣種、
電子轉(zhuǎn)賬代碼、SWIFT 代碼等信息需要在系統(tǒng)中維護(hù)
⑤貨幣信息需要在系統(tǒng)中維護(hù)的信息有:貨幣名稱、計息基準(zhǔn)、小數(shù)位數(shù)、歸整
原則、貨幣發(fā)行國、以及貨幣之間報價方式(直接報價,間接報價)等
⑥市場數(shù)據(jù)主要有相關(guān)貨幣、報價日期、買入價(Bid Price)、賣出價(Offer Price),
最終價(Last Price)等信息需要在系統(tǒng)中維護(hù);
⑦結(jié)算方式主要有結(jié)算名稱,結(jié)算類型需要在系統(tǒng)中維護(hù);
⑧業(yè)務(wù)種類主要業(yè)務(wù)名稱、相關(guān)交易對手等信息需要在系統(tǒng)中維護(hù);
⑨信用額度主要有幣種,匯率,復(fù)核日,到期日,有效期間,額度,保證金,費
率,使用單位,適用交易等信息需要在系統(tǒng)中維護(hù);
⑩風(fēng)險敞口主要有敞口值計算標(biāo)準(zhǔn),敞口分組信息,適用交易,期限,敞口值等
信息需要在系統(tǒng)中維護(hù);
(3)參與者
參與者(Actor)是具有行為能力的事物。參與者不僅可以由人來扮演,也可以是組織,軟件或機器。參與者并不屬于系統(tǒng),它通過系統(tǒng)邊界直接和系統(tǒng)進(jìn)行有意義的交互。表3-3 列出了系統(tǒng)的參與者。
表3-3 TMS參與者
(4)資金管理系統(tǒng)的互連
正如前文闡述的一樣,作為企業(yè)的核心系統(tǒng),資金管理系統(tǒng)除了本身有若干個子系統(tǒng)構(gòu)成以外,還要和其他的企業(yè)信息系統(tǒng)互連,以獲得系統(tǒng)需要的信息。圖3-4 展現(xiàn)了典型的資金管理系統(tǒng)與其他企業(yè)信息系統(tǒng)的互連情況。
圖 3- 4 典型資金管理系統(tǒng)互連
從圖中我們可以看出,企業(yè)資金管理系統(tǒng)要和以下四個系統(tǒng)互連:
①銀企直連系統(tǒng):資金管理系統(tǒng)一般會作為企業(yè)的支付平臺與各個銀行的銀企直
連系統(tǒng)互連。目前國內(nèi)大多數(shù)銀行都已經(jīng)提供了銀企直連系統(tǒng),但是不同的銀
行提供的接口會有差異,但是所有的銀行都會提供以下3 類接口:支付,賬戶
余額查詢和賬戶交易明細(xì)查詢。支付接口需要資金管理系統(tǒng)提供支付賬號,支付金額,支付目的等支付信息。賬戶余額查詢和賬戶交易明細(xì)查詢需要資金管理系統(tǒng)提供賬戶號,賬戶名和日期等信息。
②ERP:資金管理系統(tǒng)需要ERP(例如:SAP,Oracle)的應(yīng)收/應(yīng)付信息,從而可以
更準(zhǔn)確和全面地進(jìn)行現(xiàn)金預(yù)測和支付管理。
③行情系統(tǒng):資金管理系統(tǒng)需要獲取行情系統(tǒng)(例如:Bloomberg,Reuters)的市場
數(shù)據(jù)(例如:利率,匯率,股票價等)以支持系統(tǒng)的運行。
④預(yù)算系統(tǒng):資金管理系統(tǒng)也包括了預(yù)算系統(tǒng),預(yù)算又分為月度資金預(yù)算與年度資金預(yù)算,從這兩方面結(jié)合來提高預(yù)算的準(zhǔn)確性。
3系統(tǒng)設(shè)計
(1)系統(tǒng)公共模塊設(shè)計與開發(fā)
系統(tǒng)公共功能主要分為消息與待辦,審核流程,附件上傳下載,圖表統(tǒng)計,
用戶權(quán)限,綜合查詢。這里簡單為大家介紹消息、審核流程、附件上傳這三個比較常用且關(guān)鍵的模塊。
消息與待辦模塊是公用的模塊,每個用戶登錄進(jìn)來會看到兩個頁面,分別是消息和待辦。消息主要是顯示當(dāng)前用戶的消息和待辦事項。消息比如是資金緊張消息,待辦比如是資金下發(fā)需要審核的消息。消息和待辦為系統(tǒng)中共用接口,其他模塊來調(diào)用,同時需要傳遞代辦的內(nèi)容和接收人,消息也是如此。
審核流程設(shè)計為xml配置模式,審核節(jié)點的選擇分為通過與駁回,在xml中來配置審核頁面與駁回之后的跳轉(zhuǎn)頁面。而審核通過頁面無需設(shè)置,通過代表流程結(jié)束。每個需要審核的模塊,在提交審核時會調(diào)用一個公用的方法,來啟動審核流程,但是需要向這個審核流程接口提供一個參數(shù)來告訴這個審核流程啟動哪一個模塊,這時系統(tǒng)就加載之前的xml來指定跳轉(zhuǎn)頁面。
附件上傳下載主要是針對一些資料的發(fā)送和下載。資料可是審核文件,也可以是發(fā)票之類的文件。附件作為系統(tǒng)中必不可少的數(shù)據(jù)元,附件的上傳與下載我們采用struts2特有的附件上傳功能,這里需要導(dǎo)入文件下載上傳的兩個文件,一個是commons-fileupload-1.2.2.jar,另一個是commons-io-2.0.1.jar。
企業(yè)具體業(yè)務(wù)模塊分析
企業(yè)具體的業(yè)務(wù)模塊分為資金計劃額度管理、收款管理、付款管理、公司業(yè)務(wù)管理以及數(shù)據(jù)集成五個主要模塊,各個模塊之前業(yè)務(wù)又有交叉。
資金計劃管理分為債權(quán)回收、資金籌集、資金預(yù)算控制、資金計劃發(fā)布審核等。債權(quán)回收主要是公司記錄外企業(yè)或個人對公司所欠債務(wù)的管理,包括債務(wù)清還時的數(shù)據(jù)增、刪、改、查以及債務(wù)是否到賬的審批流程,和賬務(wù)資料附件的上傳與共享等。資金籌集主要是發(fā)布公司資金籌計劃,吸納社會資源,資金籌集需走審核流程,與籌集資金得相關(guān)附件上傳和籌集計劃的增、刪、改、查。資金預(yù)算控制是資金計劃管理中對資金計劃發(fā)布的資金數(shù)進(jìn)度最大最小以及是否發(fā)送提醒消息的控制。資金計劃發(fā)布審核則應(yīng)用系統(tǒng)公共功能的審核流程。
收款管理主要是收款項目的增、刪、改、查以及收款確認(rèn)的審核流程。
付款管理同收款管理類似,都是項目的增、刪、改、查以及付款項目的審核流程。
公司業(yè)務(wù)管理主要是公司內(nèi)部的項目管理,事務(wù)管理。項目管理主要是項目成本預(yù)算,項目開支管理,項目收益管理,項目在公司收入來源上占有重要地位。事務(wù)管理主要是用戶管理,部門管理,角色管理等等子模塊的增、刪、改、查操作。
3.1總體設(shè)計
本節(jié)從功能架構(gòu),邏輯架構(gòu),部署架構(gòu)三個方面闡述了企業(yè)資金管理系統(tǒng)的總體設(shè)
計思路和方案。
(1)系統(tǒng)功能架構(gòu)
整個企業(yè)資金管理系統(tǒng)從功能上可以分為基礎(chǔ)數(shù)據(jù)管理,現(xiàn)金管理,資金交易管理,
風(fēng)險管理和對外接口構(gòu)成,如圖4-1 所示:
圖 4- 1 系統(tǒng)功能架構(gòu)
基礎(chǔ)數(shù)據(jù)管理是企業(yè)資金管理的基礎(chǔ),用于維護(hù)系統(tǒng)其他模塊所需要的一些基礎(chǔ)數(shù)據(jù),包括企業(yè)組織架構(gòu),交易對手信息,交易類型信息,貨幣信息等。
現(xiàn)金管理是企業(yè)資金管理系統(tǒng)業(yè)務(wù)的基礎(chǔ)功能模塊。通過該模塊,企業(yè)可以進(jìn)行現(xiàn)金管理的相關(guān)業(yè)務(wù)的操作。
資金交易管理是企業(yè)資金管理系統(tǒng)的核心功能模塊。通過該模塊,企業(yè)可以對其投融資交易進(jìn)行管理。
對外接口子系統(tǒng)是企業(yè)資金管理系統(tǒng)對外的接口。通過該模塊,系統(tǒng)可以與諸如行
情系統(tǒng),銀行系統(tǒng),預(yù)算系統(tǒng)和ERP 系統(tǒng)交換數(shù)據(jù)。
(2)系統(tǒng)邏輯架構(gòu)
本系統(tǒng)采用分層架構(gòu)(Layered Architecture)的設(shè)計。從邏輯上分成三層,分別是數(shù)據(jù)訪問層,業(yè)務(wù)邏輯層和表現(xiàn)層。
數(shù)據(jù)訪問層(Data Access Layer):數(shù)據(jù)訪問層實現(xiàn)了對數(shù)據(jù)操作的封裝,提供了對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行讀寫的接口。系統(tǒng)需要實現(xiàn)的數(shù)據(jù)層,就是提供對數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行抽象,對外提供對數(shù)據(jù)進(jìn)行操作的接口。其他所有的組件都可以通過直接調(diào)用數(shù)據(jù)層接口的方式,獲得或修改數(shù)據(jù)庫數(shù)據(jù),而不用考慮數(shù)據(jù)庫的具體實現(xiàn)。如圖 4-2 所示,為本系統(tǒng)數(shù)據(jù)訪問層的結(jié)構(gòu)圖,其中DALFactory 為創(chuàng)建數(shù)據(jù)訪問層
對象的工廠;IDAL 定義了各種數(shù)據(jù)訪問操作的接口;SQLServerDAL 和OracleDAL 分
別實現(xiàn)了IDAL 中定義的接口,以支持SQLServer 數(shù)據(jù)庫的訪問和Oracle 數(shù)據(jù)庫的訪問;Entities 中定義了數(shù)據(jù)訪問層需要使用的業(yè)務(wù)實體對象,對象只有屬性,沒有行為。
圖 4- 2 數(shù)據(jù)訪問層結(jié)構(gòu)圖
業(yè)務(wù)邏輯層(Business Rules Layer):業(yè)務(wù)邏輯層是系統(tǒng)架構(gòu)中主要部分。它位于數(shù)據(jù)訪問層與表示層之間。如圖4-3 所示,IBLL 定義了系統(tǒng)業(yè)務(wù)邏輯的操作的接口;BLL 是整個系統(tǒng)的核心,實現(xiàn)了整個系統(tǒng)的業(yè)務(wù)邏輯。從圖中還可以看出,業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的訪問是通過接口模IDAL 來完成的,與具體的訪問邏輯無關(guān),實現(xiàn)了層與層之間的松散耦合。
圖 4- 3 業(yè)務(wù)邏輯層與數(shù)據(jù)訪問層的關(guān)系
表現(xiàn)層(Presentation Layer):系統(tǒng)與最終用戶的接口,與用戶發(fā)生交互,接收用戶輸入,并將接收到的信息發(fā)送給邏輯層處理。展現(xiàn)形式可以是窗口模式(Windows Form),也可以是網(wǎng)頁形式(Web Form)。
(3)典型部署架構(gòu)
圖 4-4 展示了系統(tǒng)的典型的部署圖。從圖中可以看出局域網(wǎng)用戶,通過使用局域網(wǎng)客戶端(LAN Client)訪問應(yīng)用服務(wù)器,來使用本系統(tǒng)。應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器部署在企業(yè)內(nèi)部的局域網(wǎng)內(nèi)。遠(yuǎn)程客戶端則可以通過使用VPN(Virtual Private Network)來訪問應(yīng)用服務(wù)。
圖 4- 4 系統(tǒng)部署架構(gòu)圖
3.2基礎(chǔ)數(shù)據(jù)管理
基礎(chǔ)數(shù)據(jù)管理子系統(tǒng)分別從用戶和組管理,用戶權(quán)限管理,企業(yè)組織架構(gòu)管理,交易對手的管理,交易類型管理,貨幣管理,假期管理,市場數(shù)據(jù)管理,信用額度管理,風(fēng)險敞口管理等數(shù)據(jù)進(jìn)行管理。基礎(chǔ)數(shù)據(jù)管理的目的是對企業(yè)資金管理系統(tǒng)需要的基礎(chǔ)數(shù)據(jù)進(jìn)行維護(hù),設(shè)計上最主要的工作就是對基礎(chǔ)數(shù)據(jù)的增加(Add),刪除(Delete),修改(Update)和查詢(Query),以及建立相關(guān)基礎(chǔ)數(shù)據(jù)的關(guān)系。
3.3現(xiàn)金管理
現(xiàn)金管理子系統(tǒng)包含企業(yè)資金池,企業(yè)資金計劃,收付款管理,賬戶頭寸管理,賬戶交易管理等模塊,如圖4-7 所示。
圖4- 7 現(xiàn)金管理子系統(tǒng)功能架構(gòu)
企業(yè)資金池是企業(yè)現(xiàn)金管理的關(guān)鍵和基礎(chǔ),主要作用是建立企業(yè)銀行賬戶的結(jié)構(gòu)和歸集關(guān)系;企業(yè)資金計劃是由相關(guān)人員填報的收付款預(yù)測信息,或由ERP 系統(tǒng)導(dǎo)入的應(yīng)收應(yīng)付信息(AP/AR);收付款管理用于記錄企業(yè)實際收付款信息,其中付款還可以通過銀企直聯(lián)系統(tǒng)進(jìn)行支付。具體方式將在4.6 對外接口章節(jié)中詳細(xì)介紹;賬戶交易管理是用于維護(hù)企業(yè)賬戶銀行對賬單的信息,可以人工輸入也可以通過對外接口導(dǎo)入系統(tǒng)。具體導(dǎo)入方式將在后面詳細(xì)介紹;賬戶頭寸管理是用戶維護(hù)企業(yè)銀行賬戶的可用余額的,可以人工輸入也可以通過對外接口導(dǎo)入系統(tǒng)。下面章節(jié)中將具體闡述企業(yè)資金池的設(shè)計。
現(xiàn)金管理的關(guān)鍵數(shù)據(jù)表及其關(guān)系如圖 4-11 所示。其中,表trsDEAL,trsDEAL_TRAN 和表trsDEAL_INPUT_CFLOW 用于存放由收付款管理模塊錄入的實際的收付款交易。表trsSETTLE 和trsSETTLE_DETAIL 存放了實際收付款交易所產(chǎn)生的結(jié)算數(shù)據(jù);表trsCORP_BANKACCOUNT 用于存放企業(yè)銀行賬戶數(shù)據(jù); 表trsACCOUNT_POOL 用于存放企業(yè)銀行賬戶池的數(shù)據(jù); 表trsACCOUNT_POOL_GROUP 用于存放企業(yè)銀行賬戶池組的數(shù)據(jù); 表trsCASH_FORCAST 用于存放由資金計劃產(chǎn)生的收付款預(yù)測數(shù)據(jù),和從ERP 中導(dǎo)入的應(yīng)收應(yīng)付數(shù)據(jù);表trsBANK_ACCOUNT_BALANCE 用于存放企業(yè)銀行賬戶的余額數(shù)據(jù);
表trsBANK_TRAN 用于存放由賬戶交易管理輸入的銀行對帳單數(shù)據(jù)。
圖 4- 8 現(xiàn)金管理模塊關(guān)鍵數(shù)據(jù)表
3.4資金交易管理
資金交易管理模塊是企業(yè)通過各類金融工具進(jìn)行資金交易的平臺。首先,在模塊的分類設(shè)計上,本系統(tǒng)考慮了交易市場、交易目的、交易期限的因素,將資金交易設(shè)計由五大模塊組成:
①外匯交易管理模塊:主要功能是負(fù)責(zé)外匯即期,外匯遠(yuǎn)期,外匯掉期的錄入和交易后續(xù)的管理。
②債券交易管理模塊:主要功能是負(fù)責(zé)債券發(fā)行、債券買賣的錄入和交易后續(xù)的
管理。
③票據(jù)交易管理模塊:主要功能是負(fù)責(zé)票據(jù)發(fā)行、票據(jù)買賣的錄入和交易后續(xù)的
管理。
④對沖交易管理模塊:主要功能是負(fù)責(zé)利率期權(quán),利率掉期,遠(yuǎn)期利率協(xié)定這些
對沖交易的錄入和交易后續(xù)的管理
⑤長期資金交易管理模塊:主要功能是負(fù)責(zé)長期貸款和長期投資交易的錄入和交
易后續(xù)的管理。
⑥短期資金交易管理模塊:主要功能是負(fù)責(zé)短期貸款和短期融資交易的錄入和交
易后續(xù)的管理。
(1)交易審批流程
從資金交易的錄入到交易進(jìn)入結(jié)算這個過程,系統(tǒng)在設(shè)計上可以最多支持配置兩個審批節(jié)點,分別是審核(Check)和授權(quán)(Authorize)。如圖4-16 所示為系統(tǒng)資金交易審批的流程。
首先前臺交易員通過系統(tǒng)進(jìn)行交易錄入,錄入交易的基本信息。
接著系統(tǒng)會進(jìn)行敞口或限額的檢查,如果額度超限,系統(tǒng)會提示交易員做限額的調(diào)整,待交易員調(diào)整限額或修改交易金額后,系統(tǒng)會再次進(jìn)行限額檢查;
然后,如果交易沒有超限,系統(tǒng)會對交易作審核狀態(tài)的檢查,確定該交易是否需要審核。如果需要審核,則系統(tǒng)提交交易給交易審核員審核,如果交易被審核通過,則系統(tǒng)對交易進(jìn)行授權(quán)狀態(tài)檢查;如果不需要審核,則系統(tǒng)直接對交易進(jìn)行授權(quán)狀態(tài)檢查。
最后,待系統(tǒng)檢查授權(quán)狀態(tài)后,如交易需要授權(quán),則系統(tǒng)提交交易給交易授權(quán)員進(jìn)行授權(quán),如果交易通過授權(quán),則交易進(jìn)入結(jié)算流程。如果交易不需要授權(quán),則交易直接進(jìn)入結(jié)算流程。
圖4-9 交易流程圖
(2)結(jié)算審批流程
同樣對于結(jié)算流程來說,系統(tǒng)在設(shè)計上可以最多支持配置兩個審批節(jié)點,分別是審核(Check)和授權(quán)(Authorize)。如圖4-9 所示為系統(tǒng)結(jié)算審批的流程。
首先結(jié)算人員通過系統(tǒng)錄入或修改結(jié)算信息。接著系統(tǒng)會根據(jù)錄入的結(jié)算信息判斷結(jié)算信息是否需要實際的結(jié)算。如果不需要,結(jié)算過程完成;如果需要,系統(tǒng)進(jìn)行結(jié)算審核狀態(tài)檢查。
然后,系統(tǒng)會對結(jié)算信息做審核狀態(tài)的檢查,確定該結(jié)算信息是否需要審核。如果需要審核,則系統(tǒng)提交該結(jié)算信息給結(jié)算審核員審核,如果結(jié)算被審核通過,則系統(tǒng)對結(jié)算進(jìn)行授權(quán)狀態(tài)檢查;如果不需要審核,則系統(tǒng)直接對結(jié)算進(jìn)行授權(quán)狀態(tài)檢查。
最后,待系統(tǒng)檢查授權(quán)狀態(tài)后,如結(jié)算需要授權(quán),則系統(tǒng)提交結(jié)算給結(jié)算授權(quán)員進(jìn)行授權(quán),如果結(jié)算通過授權(quán),則交易結(jié)算成功。如果結(jié)算不需要授權(quán),則交易結(jié)算完成。
圖4- 10 結(jié)算審批流程圖
3.5風(fēng)險管理
本系統(tǒng)中風(fēng)險管理子系統(tǒng)包括情景分析和在險價值(VaR)的計算。
(1)情景分析
目前本系統(tǒng)支持兩種情景分析,分別是利率情景分析和匯率情景分析,情景分析計算流程如圖4-211 所示
圖 4- 11 情景分析流程圖
圖 4-11 中,確定分析對象是用戶選擇需要進(jìn)行情景分析的資產(chǎn)或者負(fù)債;接著,用戶需要確定分析的基準(zhǔn),比如利率情景分析,用戶需要選擇某一天的利率收益率曲線(Yield Curve)作為比較基準(zhǔn);然后,用戶需要確定分析情景,比如利率上移5 個基點(BasePoint)或下降5 個基點(Base Point);最后,系統(tǒng)利用設(shè)定的情景,計算資產(chǎn)或負(fù)債在該情景發(fā)生時的貼現(xiàn)值NPV(Net Present Value)。系統(tǒng)專門設(shè)計了一個 NPVCalculator 類,來計算NPV。要計算資金或負(fù)責(zé)的NPV,最重要的就是要確定貼現(xiàn)因子(Discount Factor),計算Discount Factor 的公式如下:
Df =1/(1+ Rate×Days) / DIY (4-2)
其中 Df 代表貼現(xiàn)因子,Rate 代表市場利率,Days 代表估值日期到當(dāng)前的天數(shù),DIY
代表一年的天數(shù),一般為365 或360。
(2)VaR 的計算
目前系統(tǒng)支持“方差-協(xié)方差”方式計算VaR 值
“方差—協(xié)方差”法是運用歷史數(shù)據(jù),計算資產(chǎn)組合的 VaR 值。其基本思路為[21]:
首先,通過歷史數(shù)據(jù)計算出資產(chǎn)組合的收益的方差、標(biāo)準(zhǔn)差、協(xié)方差;
第二,將資產(chǎn)組合收益模擬為正態(tài)分布形式,可以計算得出反映分布偏離均值程度的臨界值;
第三,建立各個數(shù)值與風(fēng)險損失的關(guān)系模型,推導(dǎo) VaR 值。
系統(tǒng)設(shè)計了一個 VaRCalculator 的類,用于計算VaR 值。計算公式為:
VaR =ω *α *σ Δt
其中ω 為持有期初資產(chǎn)的價值,α 為置信水平,Δt為持有期,σ 為協(xié)方差,σ 可用以下公式計算
3.6對外接口
一般來說,企業(yè)資金管理系統(tǒng)對外接口主要包括以下4 個部分:銀企直連系統(tǒng)接口,ERP 應(yīng)收/應(yīng)付(AP/AR)數(shù)據(jù)接口,市場數(shù)據(jù)接口,以及預(yù)算數(shù)據(jù)接口。但是為了應(yīng)對未來可能與其他企業(yè)信息系統(tǒng)接口的需求,所以系統(tǒng)的接口必須非常的靈活。本系統(tǒng)中對外接口的核心是數(shù)據(jù)傳輸引擎(Data Transfer Engine),其作用主要有兩點:
(1) 將系統(tǒng)內(nèi)的一些基礎(chǔ)數(shù)據(jù)(例如:銀行帳號信息)和支付數(shù)據(jù)導(dǎo)出系統(tǒng),并形成平面文件(例如:XML,CSV)。
(2) 將其他系統(tǒng)產(chǎn)生的平面文件所包含的信息,導(dǎo)入系統(tǒng),供相關(guān)模塊使用。
數(shù)據(jù)傳輸引擎的結(jié)構(gòu)
(1) 其中Data Definition 被稱為數(shù)據(jù)定義器,該數(shù)據(jù)定義器有兩個作用:
在數(shù)據(jù)傳輸引擎執(zhí)行導(dǎo)出任務(wù)時,確定系統(tǒng)中哪些數(shù)據(jù)可以被導(dǎo)出;
在數(shù)據(jù)傳輸引擎執(zhí)行導(dǎo)入任務(wù)時,確定哪些外部數(shù)據(jù)可以被導(dǎo)入。
(2) Data Mapping 被稱作數(shù)據(jù)映射器,其也有兩個作用:
在數(shù)據(jù)傳輸引擎執(zhí)行導(dǎo)出任務(wù)時,確定導(dǎo)出文件的格式
在數(shù)據(jù)傳輸引擎執(zhí)行導(dǎo)入任務(wù)時,確定導(dǎo)入的數(shù)據(jù)與系統(tǒng)的內(nèi)部數(shù)據(jù)的對應(yīng)關(guān)系。
(3) Data Transfer 被稱作數(shù)據(jù)傳輸器,其作用是執(zhí)行已經(jīng)被數(shù)據(jù)定義器定義過,并由數(shù)據(jù)映射器作過映射的數(shù)據(jù)傳輸任務(wù)。
4系統(tǒng)實現(xiàn)
4.1系統(tǒng)實現(xiàn)
(1)實現(xiàn)環(huán)境
本系統(tǒng)的開發(fā)的操作系統(tǒng)主要采用 Windows Server 2003 R2 Standard Edition &
Enterprise Edition。集成開發(fā)環(huán)境采用Visual Studio .Net 2005 Sp1,源代碼版本控制采用Visual SourceSafe 6.0d,數(shù)據(jù)庫采用SQL Server 2000SP4 和Oracle 10.2.0.3,開發(fā)語言C#.NET 和ASP.NET,報表工具為Crystal Report XI。
(2)功能實現(xiàn)
本章節(jié)將通過外匯交易管理為例,介紹系統(tǒng)的功能實現(xiàn)。
首先,外匯遠(yuǎn)期交易的錄入。圖 5-1 顯示了系統(tǒng)外匯交易的錄入界面。
圖 5- 1 外匯遠(yuǎn)期交易錄入界面
從圖5-1粗體字為必填項。填好所有的必填項,交易就可以保存了。保存交易時,系統(tǒng)會根據(jù)交易金額和所選風(fēng)險敞口,計算交易是否超限,如果交易超限,系統(tǒng)會提示用戶。如沒有超限,系統(tǒng)會正常保存交易。
交易保存后系統(tǒng)會自動生成交易單(Deal Ticket),如圖5-2 所示
圖 5- 2 外匯遠(yuǎn)期交易單
交易被保存以后,交易就進(jìn)入審批流程,圖5-3 顯示了交易審批的主界面。
圖 5- 3 交易審核授權(quán)主界面
從圖5-3 中紅色橢圓標(biāo)注的地方可以看出交易目前只需要授權(quán)(Authorize),而不需要審核(Check)。
待交易被審批通過后,用戶就可以在系統(tǒng)內(nèi)管理交易的狀態(tài)和交易的頭寸信息了,
圖5-4 顯示了系統(tǒng)處理外匯遠(yuǎn)期交易管理的主界面。從圖中標(biāo)注紅色橢圓的地方可以看出,目前該交易可以進(jìn)行的操作為提前交割(Pre-Deliver),展期(Roll Forward),交割 (Deliver)和查看交易歷史明細(xì)和產(chǎn)生的現(xiàn)金流(History)。
圖 5- 4 外匯交易狀態(tài)管理
圖5-5 顯示了交易的明細(xì)和產(chǎn)生的現(xiàn)金流。
圖 5- 5 外匯遠(yuǎn)期交易明細(xì)
5系統(tǒng)測試
5.1測試的目的與目標(biāo)
在此系統(tǒng)進(jìn)行初步實現(xiàn)之后,開始進(jìn)行對系統(tǒng)進(jìn)行測試,找出系統(tǒng)中存在的Bug,通過測試,用提交的Bug報告來為以后軟件的改進(jìn)提供標(biāo)準(zhǔn)和參考,能夠在以后的系統(tǒng)改進(jìn)中找到依據(jù)。
測試后的軟件各模塊基本功能可以順利進(jìn)行,盡可能的提高軟件的健壯性。
5.2測試方法
從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實現(xiàn)的角度劃分:黑盒測試和白盒測試;
從是否執(zhí)行程序的角度:靜態(tài)測試和動態(tài)測試;
從軟件開發(fā)的過程按階段劃分有:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試、
驗收測試、回歸測試、Alpha測試、Beta測試,單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位 ─ 程序模塊(這里所說的程序模塊在Java中一個模塊就是一個方法)。
5.3測試結(jié)論
把開始的代碼寫得越好,它出現(xiàn)的錯誤也就越少,你也就越能相信所做過的測試是徹底的。系統(tǒng)化測試以一種有序方式設(shè)法探測潛在的麻煩位置。同樣,毛病最可能出現(xiàn)在邊界,這可以通過手工的或者程序的方式檢查。自動進(jìn)行測試是最理想的,用得越多越好,因為機器不會犯錯誤、不會疲勞、不會用臆想某此實際無法工作的東西能行來欺騙自己。回歸測試檢查一個程序是否能產(chǎn)生與它們過去相同的輸出。在做了小改變之后就測試是一種好技術(shù), 能幫助我們將出現(xiàn)問題的范圍局部化,因為新問題一般就出現(xiàn)在新代碼里面。
測試和排錯常常被說成是一個階段,實際上它們根本不是同一件事。簡單地說,排錯是在你已經(jīng)知道程序有問題時要做的事情。而測試則是在你在認(rèn)為程序能工作的情況下,排錯是在你已經(jīng)知道程序有問題時要做的事情。而測試則是在你在認(rèn)為程序能工作的情況下,為設(shè)法打敗它而進(jìn)行的一整套確定的系統(tǒng)化的試驗。
Edsger Dijkstra有一個非常有名的說法:測試能夠說明程序中有錯誤,但卻不能說明其中沒有錯誤。他的希望是,程序可以通過某種構(gòu)造過程正確地做出來,這樣就不再會有錯誤了,因此測試也就不必要了。這確實是個美好生活的目標(biāo),但是,對今天的實際程序而言,這仍然還只是一個理想。所以應(yīng)該集中精力討論如何測試,如何才能夠更快地發(fā)現(xiàn)程序錯誤,如何才可以使得工作更有成效、效率更高。
6結(jié)束語
本文首先介紹了系統(tǒng)的背景與意義,對于企業(yè)資金管理業(yè)務(wù)進(jìn)行了細(xì)化和設(shè)計,接下來又簡單分析了這個系統(tǒng)的實現(xiàn)方式與數(shù)據(jù)庫設(shè)計。北京尚誠致遠(yuǎn)科技有限公司的資金管理監(jiān)控系統(tǒng)是本人應(yīng)用所學(xué)計算機理論知識的一次成功實戰(zhàn)。深切理解了面向?qū)ο蟮淖兂伤悸放cMVC的設(shè)計模式。更認(rèn)識到計算機對人們生活的改變無處不在,對于傳統(tǒng)行業(yè)的轉(zhuǎn)型至關(guān)重要。傳統(tǒng)行業(yè)更加高效的運營與管理離不開企業(yè)的信息化建設(shè),同時也希望我國各行各業(yè)的信息化建設(shè)也越來越完善。
參考文獻(xiàn)
[1]種新文.面向?qū)ο蟮墓芾硇畔⑾到y(tǒng)分析與設(shè)計[J].科技信息,2007,02:23-25
[2]孫鑫.Struts2深入詳解[M].電子工業(yè)出版社,2008
[3]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2002
[4]邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)分析[M].北京:清華大學(xué)出版社,2003
[5] Ray Harris. Murach’s JavaScript and DOM Scripting,2009.9
[6] Gordon S. Linoff, Michael J. Berry. Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management,2011.4
[7] Jiawei Han, Micheline Kamber, Jian Pei. Data Mining: Concepts and Techniques, Third Edition,2011.7
[8] 張曉東.Java 數(shù)據(jù)庫高級教程[M].北京:清華大學(xué)出版社,2002.
[9] 姜芳艽.DBMS 與 DSMS 的比較研究[J].微計算機信息,2011,23(2):158-160.
[10] Couch J 著.馬琳譯.JavaEE 寶典[M].北京:電子工業(yè)出版社,2012.
[11]魏從剛,何衛(wèi)平,王建利等.基于 JavaEE 的分布式項目管理系統(tǒng)應(yīng)用研究[J].制造業(yè)自動化,2010,26(11):62—65.
[12]安淑名.加強流動資金管理的對策[J].發(fā)展,2006,11(2):23-25.
[13]林祝春.銀企互聯(lián)模式探討[J].華南金融電腦,2006,9(4):34-37.
[14]姬愛華.淺談對銀行承兌匯票的管理[J].煤碳經(jīng)濟研究,2006,5(3):18-19.
[15]朱小華,馬筱融.談?wù)劻鲃淤Y金管理電腦化問題[J].上海金融,2006,8(6):24-25.
[16]王儒.論強化公司流動資金管理[J].經(jīng)濟與管理研究,2006,24(3):56-58.
[17]桑楠.嵌入式系統(tǒng)原理及應(yīng)用開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
[18]賀貴明,定清.管理系統(tǒng)的面向?qū)ο竽P驮O(shè)計[J].計算機研究與發(fā)展, 1994, 31 (09): 61-65.
[19]謝子松.基于 UML 的工作流建模的研究與應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2005,1(2):57-58.
[20]林祝春.銀企互聯(lián)模式探討[J].華南金融電腦,2006,9(3):45-47.
[21]Emit R Powell SG Manufacturer incentives to improve retail service level[J]. European Journal of Operational Research,1998,104:437-450.
[22]程剛.公司集團信息系統(tǒng)的建設(shè)[J].中國信息導(dǎo)報,1998,7(3):13-16.
[23]Thomas Novak, Donna H off man, Adam Detached ,The Influence of Goal—Directed and Experiential Activities on Online Flow Experiences[J], Journal of Consumer Psychology,2003.6
[24]程剛. 論公司集團信息系統(tǒng)的建設(shè)[J].決策借鑒,2007,16(3):40-42.
[25]榮敦河.資金管理系統(tǒng)研究生論文.大連理工研究生論文,200868
[26]劉星星.基于 B/S 模式的學(xué)生信息管理系統(tǒng)[J].軟件導(dǎo)刊,2006.