有點(diǎn)干貨 | 如何搭建企業(yè)級(jí)賬務(wù)系統(tǒng)?看這篇給你思路

0 評(píng)論 13063 瀏覽 39 收藏 14 分鐘

本文作者所在的公司提供全鏈路的風(fēng)控信貸服務(wù),主要通過(guò)售賣數(shù)據(jù)產(chǎn)品和提供本地化系統(tǒng)部署服務(wù)獲得盈利,這篇文章總結(jié)了他負(fù)責(zé)賬務(wù)系統(tǒng)的工作經(jīng)驗(yàn)和心得,希望能幫你對(duì)業(yè)財(cái)領(lǐng)域的產(chǎn)品設(shè)計(jì)提供些思路和借鑒。

筆者目前就職于一家中型的互聯(lián)網(wǎng)金服企業(yè),公司提供全鏈路的風(fēng)控信貸服務(wù),主要通過(guò)售賣數(shù)據(jù)產(chǎn)品和提供本地化系統(tǒng)部署服務(wù)獲得盈利。公司內(nèi)部自研的系統(tǒng)超過(guò)100多個(gè),包括支持性業(yè)務(wù)系統(tǒng)及職能系統(tǒng)等等,本文將以筆者負(fù)責(zé)了2年多的賬務(wù)系統(tǒng)來(lái)分享一些工作經(jīng)驗(yàn)心得,希望可以幫助大家對(duì)業(yè)財(cái)領(lǐng)域的產(chǎn)品設(shè)計(jì)提供些思路和借鑒。

一、項(xiàng)目背景介紹

1. 業(yè)務(wù)背景

筆者公司的業(yè)務(wù)模式具有一定的獨(dú)特性,不同于我們常見(jiàn)的市面上供應(yīng)鏈類公司的進(jìn)銷存模式。公司主要為各大銀行和金融機(jī)構(gòu)提供信貸領(lǐng)域的風(fēng)控服務(wù),客戶主要通過(guò)請(qǐng)求公司的數(shù)據(jù)產(chǎn)品接口產(chǎn)生費(fèi)用,可以簡(jiǎn)單地理解為請(qǐng)求一次接口收費(fèi)0.5元,一個(gè)月若是有1w人請(qǐng)求同一個(gè)接口則公司需要收費(fèi)5000元。

2. 業(yè)務(wù)核心痛點(diǎn)

  1. 如何將請(qǐng)求的不同的產(chǎn)品的計(jì)費(fèi)量與單價(jià)進(jìn)行匹配出具賬單?
  2. 出具賬單后如何與客戶進(jìn)行對(duì)賬?并且能夠有留存?
  3. 與客戶對(duì)賬無(wú)誤后,如何通過(guò)系統(tǒng)為客戶開(kāi)具服務(wù)發(fā)票?
  4. 客戶收到發(fā)票后進(jìn)行了打款,如何將賬單、發(fā)票、回款進(jìn)行一一關(guān)聯(lián)和匹配呢?
  5. 有了賬單、發(fā)票、回款信息后,如何通過(guò)這三類基礎(chǔ)要素統(tǒng)計(jì)各種維度的財(cái)務(wù)分析匯總報(bào)表呢?

3. 系統(tǒng)定位

根據(jù)上面提到的業(yè)務(wù)背景和業(yè)務(wù)痛點(diǎn),我們基本就能夠明確系統(tǒng)的基本定位,以及需要支持的業(yè)務(wù)功能和流程,概括來(lái)講的話,系統(tǒng)定位為:集合了賬單、開(kāi)票、回款、財(cái)務(wù)報(bào)表的全流程一體化管理系統(tǒng)。

二、系統(tǒng)業(yè)務(wù)流程說(shuō)明

上圖為筆者繪制的一份簡(jiǎn)版的賬務(wù)系統(tǒng)的核心業(yè)務(wù)流程圖,通過(guò)這張圖我們來(lái)拆解每個(gè)業(yè)務(wù)模塊。

1. 創(chuàng)建計(jì)費(fèi)單

計(jì)費(fèi)單顧名思義為用來(lái)計(jì)費(fèi)的單子,在這個(gè)單子里將包含的需要計(jì)費(fèi)的信息,從流程圖中我們可以看出計(jì)費(fèi)單的上游業(yè)務(wù)是CRM的合同,也就是說(shuō)其實(shí)計(jì)費(fèi)單的計(jì)費(fèi)信息最初來(lái)源于客戶與我司簽署的合同,則計(jì)費(fèi)單是將合同中有關(guān)計(jì)費(fèi)的信息進(jìn)行了提煉和轉(zhuǎn)換,通過(guò)計(jì)費(fèi)單去作為后續(xù)出具賬單的依據(jù)和憑證。

在計(jì)費(fèi)單中包含產(chǎn)品信息、單價(jià)信息、計(jì)費(fèi)方式、賬號(hào)信息等等。

2. 生成賬單

賬單的上游業(yè)務(wù)是計(jì)費(fèi)單,通過(guò)計(jì)費(fèi)單我們就能知道賬單中需要包含的每個(gè)產(chǎn)品的計(jì)費(fèi)方式和單價(jià)等基礎(chǔ)信息,則只要再有了每個(gè)產(chǎn)品數(shù)量(調(diào)用量),就可以為客戶出具完整的賬單,那么調(diào)用量則是來(lái)源于BI系統(tǒng)的調(diào)用日志,在觸發(fā)重跑賬單時(shí),將計(jì)費(fèi)信息和調(diào)用量進(jìn)行匹配和組合,最終生成賬單。

通過(guò)上述兩個(gè)步驟,來(lái)解決我們剛才提到的業(yè)務(wù)核心痛點(diǎn)1。

3. 賬單確認(rèn)核賬

當(dāng)有了賬單之后,就需要考慮如何與客戶進(jìn)行對(duì)賬,那就到了解決業(yè)務(wù)痛點(diǎn)2的時(shí)候了。在之前線下業(yè)務(wù)模式中,我們調(diào)研到銷售同事是跟客戶通過(guò)公司郵箱發(fā)送賬單的方式來(lái)展開(kāi)對(duì)賬工作,這樣的方式放在系統(tǒng)上來(lái)進(jìn)行也是非常方便的,同時(shí)也符合他們之前的工作習(xí)慣,于是我們決定在賬務(wù)系統(tǒng)上支持每個(gè)客戶的賬單通過(guò)系統(tǒng)來(lái)發(fā)送到客戶郵箱中。

系統(tǒng)在發(fā)送時(shí)會(huì)附帶好賬單,通過(guò)在系統(tǒng)中維護(hù)好收件人即可,郵件發(fā)送后若客戶回復(fù)郵件,系統(tǒng)可以抓取到回復(fù)郵件自動(dòng)帶回到賬單中,便于銷售同事進(jìn)行確認(rèn)核賬。

4. 申請(qǐng)開(kāi)票

當(dāng)賬單確認(rèn)核賬后,一般客戶就會(huì)要求我司為其開(kāi)具相關(guān)服務(wù)發(fā)票,客戶見(jiàn)票回款。開(kāi)具發(fā)票是賬務(wù)系統(tǒng)中使用最為頻繁的功能模塊之一,也有著比較復(fù)雜的邏輯處理。目前我們賬務(wù)系統(tǒng)在開(kāi)票時(shí)包含多種類型,將會(huì)在下面展開(kāi)來(lái)講。

5. 拆分回款

為客戶開(kāi)具發(fā)票后,客戶一般會(huì)在約定的幾個(gè)工作日后進(jìn)行回款,賬務(wù)系統(tǒng)與主流的各大銀行做到了銀企直連,客戶進(jìn)行銀行打款后當(dāng)日也會(huì)回傳到賬務(wù)系統(tǒng),則銷售同事通過(guò)操作賬務(wù)系統(tǒng)將回款進(jìn)行拆分,同樣在拆分回款時(shí)也包含多種類型,將會(huì)在下面展開(kāi)來(lái)講。

6. 賬戶

每個(gè)客戶在我們的賬務(wù)系統(tǒng)都擁有自己的賬戶,在賬戶中管理著每個(gè)客戶的余額及對(duì)應(yīng)的每筆收入和支出的流水,當(dāng)然有的賬戶中可能還會(huì)產(chǎn)生壞賬或人工調(diào)整金額等,總之所有會(huì)影響的客戶余額的操作都會(huì)在賬戶中體現(xiàn)出來(lái)。

在確立賬戶時(shí),需要明確賬戶的維度,是客戶維度還是客戶+業(yè)務(wù)線維度,亦或是客戶+業(yè)務(wù)線+產(chǎn)品維度等等。

這里的主要提下賬單產(chǎn)生的負(fù)向支出和回款的正向收入。當(dāng)賬單核賬后,系統(tǒng)會(huì)生成對(duì)應(yīng)的支出扣減的流水,客戶的賬戶余額減少;當(dāng)客戶回款后拆分完成,系統(tǒng)會(huì)生成對(duì)應(yīng)的一筆收入的流水,賬戶余額增加。

7. 賬單開(kāi)票回款關(guān)聯(lián)表

這部分在流程圖中即是筆者用淺藍(lán)色的長(zhǎng)框框住的部分,是將賬單、開(kāi)票、回款三個(gè)表進(jìn)行了關(guān)聯(lián)匯總,此表在后續(xù)的財(cái)務(wù)數(shù)據(jù)的統(tǒng)計(jì)中經(jīng)常會(huì)作為中間表用到,比如計(jì)算哪些賬單是已開(kāi)票已回款或者已開(kāi)票未回款,哪些預(yù)付回款已開(kāi)票,哪些預(yù)付開(kāi)票是否回款等等,通過(guò)這張表可以得知各類的信息,為財(cái)務(wù)報(bào)表統(tǒng)計(jì)提供基礎(chǔ)數(shù)據(jù)。

8. 財(cái)務(wù)報(bào)表統(tǒng)計(jì)

財(cái)務(wù)報(bào)表的統(tǒng)計(jì)是根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景產(chǎn)生的,就筆者公司而言,目前在賬務(wù)系統(tǒng)中已上線的財(cái)務(wù)報(bào)表包含:封賬統(tǒng)計(jì)報(bào)表、包年權(quán)責(zé)報(bào)表、客戶賬齡表、客戶逾期表、逾期匯總表、財(cái)務(wù)賬齡表、財(cái)務(wù)收入大表、項(xiàng)目類收入表等等。

每個(gè)報(bào)表的處理邏輯和方法都是不一樣的,在接到財(cái)務(wù)報(bào)表相關(guān)需求時(shí),需要捋清楚報(bào)表內(nèi)的每個(gè)字段的計(jì)算邏輯,更重要的是財(cái)務(wù)報(bào)表是依據(jù)財(cái)務(wù)維度出具的,在理解每個(gè)字段背后的含義時(shí),需要結(jié)合一定的“財(cái)務(wù)原則”,不然很容易出現(xiàn)“我以為你說(shuō)的這個(gè)意思啊”這樣的場(chǎng)景。

三、系統(tǒng)核心元素關(guān)系

簡(jiǎn)單來(lái)說(shuō),賬務(wù)系統(tǒng)核心元素主要就是三個(gè):賬單、開(kāi)票、回款,在這三個(gè)元素中最核心基礎(chǔ)的當(dāng)然是賬單,其他的功能或者報(bào)表都是基于這些基礎(chǔ)元素進(jìn)行的延伸和拓展,所以我們需要先搞清楚這三者之間的會(huì)產(chǎn)生的哪些復(fù)雜的關(guān)聯(lián)關(guān)系。

1. 賬單

賬單是開(kāi)票和回款中間的橋梁,橋梁的作用體現(xiàn)在,開(kāi)票時(shí)需要關(guān)聯(lián)賬單,回款時(shí)也需要賬單。

2. 開(kāi)票

我們根據(jù)業(yè)務(wù)需要,支持針對(duì)產(chǎn)生的賬單進(jìn)行開(kāi)具發(fā)票,在開(kāi)具發(fā)票時(shí)必須選擇賬單,可開(kāi)票的金額需要小于等于當(dāng)前的賬單的金額;

另外一種開(kāi)票的業(yè)務(wù)場(chǎng)景為,客戶還未在我司產(chǎn)生賬單,也沒(méi)有預(yù)付款,但是需要我司提前進(jìn)行開(kāi)票,則如果只支持客戶對(duì)賬單進(jìn)行開(kāi)票,顯然無(wú)法適配當(dāng)前的業(yè)務(wù)場(chǎng)景,那么系統(tǒng)需要支持無(wú)賬單下開(kāi)票,確定好需要開(kāi)票的業(yè)務(wù)線即可;

但同時(shí)也會(huì)有客戶預(yù)付款的業(yè)務(wù),同樣還未產(chǎn)生賬單,則此時(shí)需要支持按照預(yù)付款進(jìn)行開(kāi)票,在開(kāi)票時(shí)必須要選擇客戶的某筆回款進(jìn)行開(kāi)票。

3. 回款

當(dāng)客戶進(jìn)行回款后,需要將回款拆分到對(duì)應(yīng)的賬單或者開(kāi)票,如此來(lái)讓賬單、開(kāi)票、回款三三者之間關(guān)聯(lián)起來(lái),最理想的數(shù)據(jù)情況則為,此賬單已開(kāi)票已回款。

1)回款拆分到賬單

將回款關(guān)聯(lián)拆分到對(duì)應(yīng)的賬單,給每個(gè)賬單分配回款金額,直到該筆款的回款金額分配完。

2)回款拆分到開(kāi)票

如果先對(duì)賬單進(jìn)行了開(kāi)票,客戶的回款對(duì)應(yīng)某張開(kāi)票,則此時(shí)通過(guò)將回款關(guān)聯(lián)拆分到開(kāi)票是最方便的,直接為開(kāi)票分配回款金額即可;但是這里需要注意到回款雖然是表面上拆分給了開(kāi)票,如果該張票當(dāng)時(shí)是開(kāi)到了賬單上時(shí),則在回款拆分到開(kāi)票時(shí),系統(tǒng)需要同時(shí)將回款金額分配該張票底層的賬單上,這樣才能保證賬、票、款一致。

3)回款拆分到預(yù)付

針對(duì)客戶先打款后產(chǎn)生賬單的業(yè)務(wù)類型,系統(tǒng)支持提前將回款的拆分到預(yù)付回款下,在拆分時(shí)不需要關(guān)聯(lián)賬單和開(kāi)票,只需要確認(rèn)好每條業(yè)務(wù)線需要分配的回款金額。

四、賬務(wù)系統(tǒng)架構(gòu)

上圖為筆者繪制的一份簡(jiǎn)單的功能架構(gòu)圖,基本包含了目前賬務(wù)系統(tǒng)核心的業(yè)務(wù)功能,可以將該圖與流程圖結(jié)合起來(lái)理解。

五、一些踩過(guò)的“坑”吧

1)賬務(wù)系統(tǒng)中的必然會(huì)出現(xiàn)大量的數(shù)字,是實(shí)打?qū)嵏鷶?shù)字打交道的系統(tǒng),在最初設(shè)計(jì)時(shí)一定要考慮清楚數(shù)值的類型,是采用double類型、float類型還是別的類型,最終的目的是保證系統(tǒng)在數(shù)值的精確度上是始終保持一致的,在這件事上我和我的團(tuán)隊(duì)是吃過(guò)虧的。

2)賬務(wù)系統(tǒng)的各個(gè)模塊的數(shù)據(jù)和功能的串聯(lián)型與關(guān)聯(lián)度是非常高的,舉個(gè)例子來(lái)說(shuō),當(dāng)你發(fā)現(xiàn)某個(gè)財(cái)務(wù)報(bào)表的某個(gè)字段統(tǒng)計(jì)計(jì)算有誤,很可能是因?yàn)樽畛踉谫~單已經(jīng)出錯(cuò),進(jìn)而導(dǎo)致開(kāi)票有誤、回款有誤、關(guān)聯(lián)表有誤,最終導(dǎo)致報(bào)表有誤,因此需要考慮在設(shè)計(jì)各個(gè)模塊時(shí)耦合度的問(wèn)題。

3)一般新系統(tǒng)的在上線時(shí),都會(huì)需要處理歷史數(shù)據(jù),賬務(wù)系統(tǒng)也不例外,尤其是針對(duì)各種期初數(shù)據(jù)的導(dǎo)入和處理是比較多的,而且相關(guān)人員在給到我們數(shù)據(jù)時(shí),往往是無(wú)法一次到位的,少不了在后續(xù)多次的修改和調(diào)整,然后再由我們的研發(fā)人員執(zhí)行sql。

因此針對(duì)這類問(wèn)題,可以考慮增加一些修改期初數(shù)據(jù)的功能,雖然我之前一直認(rèn)為這樣地低頻的導(dǎo)入期初數(shù)據(jù)的操作不需要做成系統(tǒng)功能,但從實(shí)際來(lái)看并非完全如此。

本文由@Joysaver?? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自 Unsplash, 基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!