新疆電信BOSS項(xiàng)目融合計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案_第1頁(yè)
新疆電信BOSS項(xiàng)目融合計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案_第2頁(yè)
新疆電信BOSS項(xiàng)目融合計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案_第3頁(yè)
新疆電信BOSS項(xiàng)目融合計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案_第4頁(yè)
新疆電信BOSS項(xiàng)目融合計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案_第5頁(yè)
已閱讀5頁(yè),還剩114頁(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)介

1、.:.;通訊系統(tǒng)中的計(jì)費(fèi)及營(yíng)帳系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)公開 by 碩士 from .電信學(xué)院.計(jì)算機(jī)技術(shù)摘要:隨著通訊企業(yè)的逐漸開展,行業(yè)競(jìng)爭(zhēng)的不斷加劇,用戶數(shù)量的不斷增多,用戶需求的不斷擴(kuò)展,原有的通訊網(wǎng)絡(luò)系統(tǒng)需求進(jìn)一步擴(kuò)展及改良。建立數(shù)據(jù)庫(kù)系統(tǒng),使通訊系統(tǒng)擁有一套穩(wěn)定的計(jì)費(fèi)、營(yíng)帳系統(tǒng)曾經(jīng)成為通訊企業(yè)今后開展的關(guān)鍵要素之一。在通訊網(wǎng)絡(luò)系統(tǒng)的計(jì)費(fèi)及綜合營(yíng)帳系統(tǒng)的運(yùn)用中,ORACLE的產(chǎn)品和技術(shù)具有許多無(wú)可爭(zhēng)議的優(yōu)勢(shì)。可以極好地滿足系統(tǒng)性能上的可靠性、平安性、先進(jìn)性、可管理性等方面的要求。本系統(tǒng)運(yùn)用ORACLE數(shù)據(jù)庫(kù)設(shè)計(jì)集中式計(jì)費(fèi)系統(tǒng)和綜合營(yíng)帳系統(tǒng),將計(jì)費(fèi)系統(tǒng)從原效力器上分別出來(lái),重新建立系統(tǒng)并采用新的

2、效力方式。實(shí)現(xiàn)系統(tǒng)的延續(xù)、穩(wěn)定運(yùn)轉(zhuǎn),給系統(tǒng)提供最大的高可靠性方案。營(yíng)帳系統(tǒng)對(duì)原運(yùn)用軟件進(jìn)展全面的改造,變成一致的數(shù)據(jù)庫(kù)。使原營(yíng)業(yè)系統(tǒng)變成通訊業(yè)務(wù)的一致營(yíng)帳受理系統(tǒng),成為一致的數(shù)據(jù)倉(cāng)庫(kù)。系統(tǒng)實(shí)現(xiàn)了綜合業(yè)務(wù)系統(tǒng)的一致功能,完成通訊業(yè)務(wù)在構(gòu)造上的綜合,支持多業(yè)務(wù)的捆綁效力。充分利用ORACLE的特性,聯(lián)機(jī)事務(wù)處置、數(shù)據(jù)分區(qū)技術(shù)特性在此發(fā)揚(yáng)出很大的作用,保證了數(shù)據(jù)庫(kù)查詢、運(yùn)轉(zhuǎn)、處置、缺點(diǎn)恢復(fù)的良好實(shí)現(xiàn),建立一套平安穩(wěn)定的數(shù)據(jù)庫(kù),并保證系統(tǒng)軟件新舊版本的平穩(wěn)過渡,實(shí)時(shí)可靠的進(jìn)展系統(tǒng)更新,保證主機(jī)系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)在未來(lái)可以在不影響消費(fèi)運(yùn)轉(zhuǎn)的情況下進(jìn)展擴(kuò)容。新疆電信BOSS工程交融計(jì)費(fèi)系統(tǒng)實(shí)現(xiàn)方案工程背景第一

3、章按照工程背景、國(guó)內(nèi)外技術(shù)現(xiàn)狀、論文任務(wù)和章節(jié)安排3小節(jié)來(lái)組織隨著新疆電信行業(yè)市場(chǎng)競(jìng)爭(zhēng)的不斷深化,以及中國(guó)電信股份對(duì)各省提出業(yè)務(wù)目的與要求的不斷提高,新疆電信為了更好地完成各項(xiàng)業(yè)務(wù)目的和方案,完成向以產(chǎn)品為主線、以市場(chǎng)為導(dǎo)向,以客戶為中心、以效益為目的的現(xiàn)代化企業(yè)轉(zhuǎn)變,構(gòu)成集團(tuán)化運(yùn)作,提出了BOSS工程交融計(jì)費(fèi)系統(tǒng)。需求分析第2章需求分析按照功能需求、性能需求、平安需求和開發(fā)平臺(tái)和言語(yǔ)4小節(jié)來(lái)組織新疆電信BOSS工程交融計(jì)費(fèi)系統(tǒng)計(jì)費(fèi)處置過程是一個(gè)運(yùn)用者運(yùn)用計(jì)費(fèi)系統(tǒng)的進(jìn)展各項(xiàng)業(yè)務(wù)處置的過程,流程與功能設(shè)計(jì)的目的是使得這個(gè)過程穩(wěn)定、準(zhǔn)確、及時(shí)、高效、靈敏。根據(jù)CTG-MBOSS規(guī)范與新疆電信的業(yè)務(wù)

4、需求,將交融計(jì)費(fèi)系統(tǒng)的流程分為七個(gè)部分,分別是:原始數(shù)據(jù)處置包括原始數(shù)據(jù)搜集、預(yù)處置、數(shù)據(jù)的交換與提交資料管理包括產(chǎn)品配置管理與客戶資料管理計(jì)費(fèi)數(shù)據(jù)處置包括批價(jià)處置、余額反算、出帳處置、帳單生成客服保證管理包括收費(fèi)管理、欠費(fèi)管理、呆壞賬管理系統(tǒng)保證包括稽核管理其他處置包括信息點(diǎn)布控、平臺(tái)保證、業(yè)務(wù)調(diào)度、查詢統(tǒng)計(jì)7、 系統(tǒng)架構(gòu)與平安管理包括網(wǎng)絡(luò)架構(gòu)、主機(jī)與存儲(chǔ)管理、數(shù)據(jù)庫(kù)管理、平安區(qū)域劃分與管理總體設(shè)計(jì)設(shè)計(jì)目的在中國(guó)電信新的計(jì)費(fèi)模型的指點(diǎn)下,設(shè)計(jì)一個(gè)多業(yè)務(wù)交融的、實(shí)時(shí)的、集中的、靈敏的、可擴(kuò)展的、可管理的綜合計(jì)費(fèi)帳務(wù)系統(tǒng)。詳細(xì)目的如下業(yè)務(wù)上實(shí)現(xiàn)交融業(yè)務(wù)的采集、批價(jià)、帳務(wù)以及客戶效力保證等處置。對(duì)

5、于在一定時(shí)期內(nèi)還存在的專業(yè)計(jì)費(fèi)系統(tǒng)以及預(yù)付費(fèi)管理平臺(tái),系統(tǒng)應(yīng)能對(duì)其進(jìn)展整合處置。根據(jù)各業(yè)務(wù)平臺(tái)的詳細(xì)情況,經(jīng)過各種方式實(shí)現(xiàn)預(yù)付費(fèi)和后付費(fèi)的交融處置和管理經(jīng)過產(chǎn)品、產(chǎn)品包、商品等模型的引入,為市場(chǎng)營(yíng)銷以及客戶效力提供更加靈敏的營(yíng)銷戰(zhàn)略以及客戶效力戰(zhàn)略的支撐,滿足企業(yè)向用戶提供更加優(yōu)質(zhì)的效力以及提高市場(chǎng)競(jìng)爭(zhēng)力的需求;能為新產(chǎn)品、新業(yè)務(wù)的快速部署提供良好支撐。根據(jù)業(yè)務(wù)平臺(tái)的詳細(xì)情況,實(shí)現(xiàn)更加實(shí)時(shí)的業(yè)務(wù)處置流程以及客戶效力呼應(yīng)。可以支持多方計(jì)費(fèi)和結(jié)算,將計(jì)費(fèi)帳務(wù)效力延伸到協(xié)作同伴,為目前和未來(lái)電信所大力開展的增值業(yè)務(wù)提供良好的計(jì)費(fèi)帳務(wù)支撐建立一致的信譽(yù)控制機(jī)制以及防欺詐機(jī)制,減少欠費(fèi)。建立一致的收入監(jiān)

6、管機(jī)制,經(jīng)過多方組合稽核、校驗(yàn)手段,如各環(huán)節(jié)信息點(diǎn)布控、基于流程的稽核等,保證計(jì)費(fèi)的準(zhǔn)確性,防止收入流失,從而保證企業(yè)的收入;提供與財(cái)務(wù)管理的一致接口為企業(yè)運(yùn)營(yíng)分析提供實(shí)時(shí)、完好、準(zhǔn)確的數(shù)據(jù)和信息。為未來(lái)3G業(yè)務(wù)的開展打下根底,為盡快建立中國(guó)電信上下一體化的、一致的計(jì)費(fèi)帳務(wù)管理系統(tǒng),構(gòu)建一致的業(yè)務(wù)支撐網(wǎng)打好根底。技術(shù)上采用一致的數(shù)據(jù)模型,符合集團(tuán)公司的一致數(shù)據(jù)模型規(guī)范,并支持企業(yè)制定的一致共享數(shù)據(jù)模型機(jī)制,保證數(shù)據(jù)的完好性和一致性。 完善的功能和流程支持:符合集團(tuán)公司規(guī)范中對(duì)功能和流程的定義,并支持特殊的功能和流程需求。對(duì)BPR和MR中的市場(chǎng)營(yíng)銷、產(chǎn)品管理、客戶效力等流程提供良好的計(jì)費(fèi)帳務(wù)支撐

7、。靈敏可擴(kuò)展的架構(gòu):遵照分層和復(fù)用設(shè)計(jì)理念,按照組件化、流程化、戰(zhàn)略化設(shè)計(jì)原那么,實(shí)現(xiàn)運(yùn)用與數(shù)據(jù)分別、運(yùn)用與流程分別、運(yùn)用與規(guī)那么分別,保證前后臺(tái)端到端的業(yè)務(wù)及時(shí)加載才干,構(gòu)成業(yè)務(wù)設(shè)計(jì)與系統(tǒng)開發(fā)同步完成的操作方式。支持企業(yè)運(yùn)用集成:基于一致的共享數(shù)據(jù)模型和企業(yè)運(yùn)用集成平臺(tái)實(shí)現(xiàn)業(yè)務(wù)集成。管理上全省/區(qū)一致業(yè)務(wù)處置和管理流程以及崗位設(shè)置,同時(shí)兼容各地市業(yè)務(wù)處置和管理流程的特殊性,IT系統(tǒng)的運(yùn)轉(zhuǎn)維護(hù)管理是IT系統(tǒng)發(fā)揚(yáng)作用的重要保證,是企業(yè)信息化的重要任務(wù)內(nèi)容之一,隨著企業(yè)信息系統(tǒng)、信息數(shù)據(jù)的集中,建立完善省集中方式下的系統(tǒng)運(yùn)轉(zhuǎn)維護(hù)管理、數(shù)據(jù)稽核、數(shù)據(jù)調(diào)度等的流程和規(guī)程。設(shè)計(jì)方法從總體框架上,采用自上

8、而下的設(shè)計(jì)方法,先從系統(tǒng)的總體框架上確定系統(tǒng)的實(shí)現(xiàn)方式,然后對(duì)系統(tǒng)進(jìn)展逐級(jí)分析,進(jìn)展功能設(shè)計(jì)、模塊設(shè)計(jì),并在電信模型的集成上對(duì)模型進(jìn)展推演和驗(yàn)證,并進(jìn)展相應(yīng)的完善和補(bǔ)充,進(jìn)展模型的物理設(shè)計(jì)。系統(tǒng)總體的框架構(gòu)造如下:總體流程設(shè)計(jì)整個(gè)的系統(tǒng)都是在處置各種各樣的數(shù)據(jù),對(duì)每一種數(shù)據(jù)的處置都有一個(gè)相對(duì)固定的處置流程。不同的數(shù)據(jù)所經(jīng)過的處置流程是不一樣的。一個(gè)流程由多個(gè)環(huán)節(jié)構(gòu)成,每一個(gè)環(huán)節(jié)點(diǎn)都對(duì)應(yīng)一個(gè)模塊。環(huán)節(jié)之間能夠是順序的先后關(guān)系,也可以是并列關(guān)系,一個(gè)環(huán)節(jié)可以執(zhí)行的條件是其前面的一個(gè)或多個(gè)環(huán)節(jié)曾經(jīng)完成,而同時(shí)該環(huán)節(jié)完成后,可以是一個(gè)或多個(gè)新的環(huán)節(jié),這樣并列的多個(gè)環(huán)節(jié)點(diǎn)可以并行執(zhí)行,而先后的兩個(gè)環(huán)節(jié)只

9、能順序執(zhí)行。一個(gè)環(huán)節(jié)可以是一個(gè)系統(tǒng)自動(dòng)執(zhí)行的義務(wù),也可以是一個(gè)需求由人工稽核確認(rèn)的稽核義務(wù)。系統(tǒng)中的主要流程有:按文件方式控制的實(shí)時(shí)計(jì)費(fèi)流程按話單流方式控制的實(shí)時(shí)計(jì)費(fèi)流程日帳流程月帳流程文件計(jì)費(fèi)流程計(jì)費(fèi)流程所處置的數(shù)據(jù)包括:聯(lián)機(jī)采集的計(jì)費(fèi)文件、脫機(jī)采集的計(jì)費(fèi)文件、上級(jí)公司下發(fā)的數(shù)據(jù)、其他系統(tǒng)提供的數(shù)據(jù)文件。該流程監(jiān)控的主體是文件。該流程的義務(wù)根本上都是實(shí)時(shí)運(yùn)轉(zhuǎn)的,流程的稽核在系統(tǒng)的每一個(gè)模塊內(nèi)部自動(dòng)完成。對(duì)稽核有異常的實(shí)時(shí)告警。該流程的構(gòu)造圖如下:實(shí)時(shí)話單流計(jì)費(fèi)流程該流程所對(duì)應(yīng)的模塊與文件方式根本一樣,只是該流程監(jiān)控的主體是實(shí)時(shí)采集的話單流。日帳流程日帳流程運(yùn)轉(zhuǎn)的單位是每天運(yùn)轉(zhuǎn)一次,控制的主體

10、對(duì)象是每天的日帳單。日帳流程的環(huán)節(jié)較多,每一個(gè)環(huán)節(jié)都有一些自動(dòng)稽核的模塊,也可以在流程中安排需求人工確認(rèn)的稽核義務(wù),這樣加強(qiáng)對(duì)流程的稽核控制。在系統(tǒng)穩(wěn)定的情況下,日帳流程是可以自動(dòng)運(yùn)轉(zhuǎn)的。月帳流程月出帳流程是一個(gè)月運(yùn)轉(zhuǎn)一次,處置過程中環(huán)節(jié)較多,在流程需求比較嚴(yán)厲的稽核控制,因此會(huì)插入較多的人工稽核環(huán)節(jié)。總體功能架構(gòu)設(shè)計(jì)計(jì)費(fèi)系統(tǒng)的總體流程圖如下:總體數(shù)據(jù)模型設(shè)計(jì)系統(tǒng)的總體數(shù)據(jù)模型采用了集團(tuán)的新的計(jì)費(fèi)模型作為根底進(jìn)展設(shè)計(jì)的。總體的概要模塊如下:系統(tǒng)接口總體設(shè)計(jì)與計(jì)費(fèi)系統(tǒng)有關(guān)的接口設(shè)計(jì)如下:系統(tǒng)部署設(shè)計(jì)系統(tǒng)部署主要是三方面的部署,在整個(gè)部署設(shè)計(jì)中,主要思索的時(shí)候分布式處置和系統(tǒng)的可擴(kuò)展性。根據(jù)新疆的

11、詳細(xì)情況,對(duì)其數(shù)據(jù)庫(kù)和運(yùn)用的物理部署圖如下:系統(tǒng)集成方案系統(tǒng)集成主要有三種方式:用戶界面集成嵌入式集成、運(yùn)用系統(tǒng)集成實(shí)時(shí)數(shù)據(jù)交換和數(shù)據(jù)集成批量數(shù)據(jù)交換。系統(tǒng)集成方式用戶界面集成嵌入式集成經(jīng)過Web 技術(shù)或其他客戶端調(diào)用技術(shù),在不觸及底層的運(yùn)用和數(shù)據(jù)的情況下,為用戶提供完好、易用、靈敏的運(yùn)用者界面,并實(shí)現(xiàn)簡(jiǎn)單的參數(shù)傳輸。運(yùn)用系統(tǒng)集成實(shí)時(shí)數(shù)據(jù)交換經(jīng)過EAI和其他運(yùn)用接口調(diào)用實(shí)現(xiàn)復(fù)雜的跨系統(tǒng)的業(yè)務(wù)邏輯和流程。數(shù)據(jù)集成批量數(shù)據(jù)交換經(jīng)過數(shù)據(jù)庫(kù)層面的同步和傳輸,實(shí)現(xiàn)數(shù)據(jù)共享。系統(tǒng)交融方案計(jì)費(fèi)系統(tǒng)的建立,主要思索現(xiàn)有分產(chǎn)品、多計(jì)費(fèi)系統(tǒng)的交融,在當(dāng)前向以客戶為導(dǎo)向的全業(yè)務(wù)運(yùn)營(yíng)商方向開展的情況下,這一點(diǎn)尤為重要

12、,系統(tǒng)交融的目的如下:實(shí)現(xiàn)預(yù)付費(fèi)與后付費(fèi)的交融支持靈敏帳期的交融計(jì)費(fèi)支持跨產(chǎn)品線的多種產(chǎn)品進(jìn)展捆綁的交融計(jì)費(fèi)靈敏支持各種優(yōu)惠和折扣的交融計(jì)費(fèi)系統(tǒng)交融方案表示圖詳細(xì)設(shè)計(jì)原始數(shù)據(jù)處置-數(shù)據(jù)采集數(shù)據(jù)交換采集處置流程闡明 數(shù)據(jù)交換采集模塊用來(lái)處置各種方式下的文件采集,包括如下以下幾種采集方式:EAI音訊處置采集方式DB記錄控制采集方式文件控制采集方式自動(dòng)采集方式這個(gè)模塊主要是實(shí)現(xiàn)各種方式下的采集,對(duì)于各種模塊他們有各自的特點(diǎn),例如EAI音訊處置采集方式他就是經(jīng)過IBM中間音訊鍵來(lái)實(shí)現(xiàn)的,先發(fā)音訊過來(lái),然后采集系統(tǒng)就根據(jù)音訊從效力器上面得到詳細(xì)的文件;DB記錄控制采集方式,這個(gè)就是根據(jù)數(shù)據(jù)庫(kù)中的記錄得到

13、的所需求采集的文件信息;文件控制方式就是采集某種文件然后根據(jù)這個(gè)文件的信息來(lái)得到所要采集的信息;自動(dòng)采集方式就是按照一定的規(guī)律來(lái)檢查能否有文件,有文件就采集。數(shù)據(jù)交換采集過程主要包括加載通用的采集參數(shù)信息,分不同的采集方式采集數(shù)據(jù),文件級(jí)校驗(yàn),寫日志處置幾個(gè)流程。加載通用的采集參數(shù)信息,建立一切采集方式所共享的數(shù)據(jù)源。數(shù)據(jù)交換采集過程是詳細(xì)執(zhí)行文件采集,與文件采集相關(guān)的參數(shù)闡明文件采集過程中要什么方式采集,采集過程中我們要做什么檢測(cè)等等。效力器參數(shù)從效力器參數(shù)表里獲取要銜接的詳細(xì)地址、用戶名、密碼、能否實(shí)現(xiàn)斷點(diǎn)續(xù)傳、采集方式、可以銜接的日期和時(shí)間等信息。文件類型參數(shù)得到每種文件效力器下不同文件

14、的詳細(xì)的命名 ;得到詳細(xì)文件的等級(jí),就是說(shuō)上一等級(jí)的數(shù)據(jù)沒有采集下面等級(jí)的數(shù)據(jù)就不能采集,同等級(jí)可以同時(shí)采集;得到文件能否可以在中斷后能否可以續(xù)傳;文件采集過來(lái)后要作什么處置標(biāo)識(shí)文件名命名參數(shù)從文件名命名參數(shù)表里得到各種對(duì)應(yīng)文件的命名方式;同時(shí)知道文件名里的代碼是不是特征碼,假設(shè)為特征碼,我們就用“*來(lái)表示其前和后面的代碼;假設(shè)不是就用?來(lái)代表其各位的代碼;得到不是特征碼其每位的詳細(xì)代碼;文件內(nèi)容格式定義參數(shù)得到文件頭、尾、內(nèi)容要包含的內(nèi)容得到文件頭或者文件尾包含幾行的信息;文件效力器目錄參數(shù)得到文件效力器作為文件的源和目的地址的目錄;得到文件能否是緊縮的、能否是有索引文件;得到文件的校驗(yàn)方式

15、;得到序列號(hào)的生成方式;得到錯(cuò)誤回饋文件類型;得到文件的級(jí)別能否有效;序列號(hào)規(guī)格定義參數(shù)得到每中文件目錄下的序列號(hào)的詳細(xì)生成方式;音訊內(nèi)容定義表參數(shù)得到某個(gè)效力器發(fā)給采集系統(tǒng)的音訊格式信息日志內(nèi)容定義表參數(shù)得到每個(gè)日志信息表有那些信息;校驗(yàn)方式定義參數(shù)得到每重校驗(yàn)方式在某種情況下所要做的校驗(yàn)包含那些校驗(yàn);分不同的采集方式進(jìn)展采集文件處置自動(dòng)控制方式這種控制方式就是先得到相應(yīng)的效力器和所要采集的文件名格式及其參數(shù),然后按照時(shí)間規(guī)律性來(lái)得到文件,和對(duì)文件所對(duì)應(yīng)的一些稽核要求來(lái)進(jìn)展做校驗(yàn)。文件控制方式這種方式就是先得到詳細(xì)文件控制方式,假設(shè)是根據(jù)總控文件或者根據(jù)索引文件的方式,我們先得到總控文件的文

16、件及其內(nèi)容,然后根據(jù)其內(nèi)容來(lái)處置得到詳細(xì)要采集的文件名,然后根據(jù)文件名得到詳細(xì)該文件是什么樣的文件,最后來(lái)得到對(duì)這種文件怎樣處置,例如稽核校驗(yàn),斷掉了能否要續(xù)傳。DB數(shù)據(jù)記錄控制方式對(duì)于這種記錄是先從某張表里得到要下載的文件記錄,然后根據(jù)記錄得到其對(duì)應(yīng)的效力地址和文件類型,最后得到其詳細(xì)的采集處置方式和稽核方式。 EAI音訊控制方式這種方式先經(jīng)過音訊得到要采集文件的一些信息,相當(dāng)于索引文件的內(nèi)容,然后我們根據(jù)這個(gè)信息得到文件的類型,最后我們根據(jù)文件類型和所處的目錄得到詳細(xì)采集的處置方式和文件稽核方式。日志處置日志處置對(duì)于不同的運(yùn)用系統(tǒng)他有不同的日志需求寫,例如如今我們的一點(diǎn)收費(fèi)系統(tǒng),有些文件采

17、集過來(lái)的是要先代碼轉(zhuǎn)換處置,有些是原始文件,就不用做代碼轉(zhuǎn)換這兩種就要寫不同的日志表。模塊類圖采集公共基類(CFtpBase)的設(shè)計(jì)/* * 采集公共基類 */class CFtpBase:public CThreadprivate:/* * 當(dāng)前采集的效力器信息、文件信息 */CFtpSystemInfo m_CurrentFtpSystemInfo;CIpDirectroyName m_CurrentIpDirectoryName;CFileTypem_CurrentFileType;public: /* * 銜接效力器 */BOOL ConnnectCurrentFtp();/* * 校

18、驗(yàn)文件*/BOOLAuditFile(char *szLocalDataFile, CFileDown &sFileDown, char *szAuditDetail);/* * 挪動(dòng)本地文件*/BOOLMoveLocalFile(const char *szDestFile,const char *szSourceFile);/* * 解壓本地文件*/BOOLUnZipLocalFile(const char *szLocalFilePath);/* * */BOOLGetLocalDirLs( const char *szListFilePath,const char *szLocalDi

19、r);/* * 拷貝本地文件*/BOOLCopyLocalFile(const char *szDestFile, const char *szSourceFile);/* * 刪除文件*/BOOLRemoveAFile(char *szFileName);/* * 得到文件的字節(jié)數(shù)*/BOOLGetFileSize(char *pFileName,double &nFileSize);/* * 更改FTP上面的文件名*/BOOLModifyFtpFile(const char* szFtpDir, const char* szFileName, int nModifyFlag);/* * 更

20、改本機(jī)上面的文件名*/BOOLModifyLocalFile(const char* szLocalDir, const char* szFileName, int nModifyFlag);/* * 開場(chǎng)采集一個(gè)文件*/BOOLGetOneFile(CFileDown &fileDown);/* * 得到滿足條件的文件列表*/BOOLGetFileList();/* * 根據(jù)文件序列號(hào)排序*/voidSortOne(CFileDown* pFileDown, int begin, int end);voidSort(CFileDown* pFileDown, int nFileCount);

21、/* * 創(chuàng)建采集結(jié)果文件*/BOOL CreateResultFile();/* * 寫各種日志表*/BOOL WriteAllLog(int nLogId);protected:/* * 檢驗(yàn)時(shí)間能否有效*/BOOLCheckTimeValid(char *szTime);/* * 檢驗(yàn)文件名能否有效*/BOOLCheckFileName(CFileDown fileDown);/* * 檢驗(yàn)文件尾格式能否有效*/BOOLCheckFileEnd(const char *szFilePath, CFileDown &fileDown, char *szRet);/* * 檢驗(yàn)文件頭格式能否

22、有效*/BOOLCheckFileHead(const char *szFilePath, CFileDown &fileDown, char *szRet);/* * 生成MD5信息*/BOOL CreateMD5Info();資料管理 資料管理包括產(chǎn)品的管理與用戶資料的管理。產(chǎn)品管理是指對(duì)電信產(chǎn)品、產(chǎn)品包以及商品的定義與維護(hù)。用戶資料管理包括客戶個(gè)人信息管理,客戶支付信息管理,與費(fèi)用相關(guān)的客戶的積分與信譽(yù)度的管理計(jì)費(fèi)數(shù)據(jù)處置計(jì)費(fèi)數(shù)據(jù)處置包括批價(jià)處置、入庫(kù)、帳務(wù)、營(yíng)收管理四大部分。批價(jià)處置批價(jià)進(jìn)程內(nèi)主要有兩種線程,一個(gè)是控制線程,用來(lái)整體上控制批價(jià)的過程,一個(gè)是業(yè)務(wù)線程,用來(lái)對(duì)詳細(xì)業(yè)務(wù)的事件

23、進(jìn)展批價(jià)處置。相應(yīng)地,在設(shè)計(jì)時(shí),運(yùn)用兩個(gè)類來(lái)完成這兩個(gè)功能,一個(gè)為批價(jià)控制類,用來(lái)做批價(jià)整體上地控制,包括對(duì)事務(wù)的控制,輸入輸出的控制,接納到的輸入話單進(jìn)展業(yè)務(wù)線程分派處置,監(jiān)控效力命令的處置;一個(gè)為事件批價(jià)類,用來(lái)對(duì)單個(gè)事件進(jìn)展批價(jià)處置。月租事件的處置與話單事件的處置根本上一樣,計(jì)費(fèi)為一個(gè)單獨(dú)的進(jìn)程,月租與帳務(wù)優(yōu)惠為一個(gè)進(jìn)程。月租事件的屬性包括如下屬性:業(yè)務(wù)類型,號(hào)碼,事件類型,時(shí)間,時(shí)長(zhǎng)天/月批價(jià)終了后,輸出事件中包含一個(gè)事件分類字段LS_FLD_EVENT_CATALOG,假設(shè)為月租類型和帳務(wù)類型,輸出模塊中將輸出事件送給月租和帳務(wù)優(yōu)惠用的音訊隊(duì)列,假設(shè)為計(jì)費(fèi)類型,輸出模塊將輸出事件送給

24、入庫(kù)程序用的音訊隊(duì)列中。模塊類圖模塊類設(shè)計(jì)/* * 批價(jià)控制類,由控制線程運(yùn)用 */class CRatingCtrl /* * 輸入對(duì)象指針 */ CDataInput *m_pDataInput; /* * 輸出對(duì)象指針 */ CDataOutput *m_pDataOutput; /* * 業(yè)務(wù)線程個(gè)數(shù) */ int nServiceThread; /* * 輸入模塊傳入的FArray*是曾經(jīng)分配好的空間 * 批價(jià)控制模塊將此事件的地址放入對(duì)應(yīng)處置線程的數(shù)組緩沖區(qū)中 * 當(dāng)事件批價(jià)完后,需求由批價(jià)業(yè)務(wù)線程將此事件的空間刪除 * m_pInputEvents在對(duì)象初始化的時(shí)候根據(jù)業(yè)務(wù)線程的

25、個(gè)數(shù) * 分配空間;對(duì)象析構(gòu)時(shí),刪除分配的空間 */ ArrayList *m_pInputEvents; /* * 每個(gè)線程緩沖區(qū)訪問互斥信號(hào)燈 */ ArrayList m_vBufferMutex; /* * 每個(gè)線程緩沖區(qū)訪問條件變量 */ ArrayList m_vBufferCond;public: /* * 構(gòu)造函數(shù) */ CRatingCtrl(); /* * 批價(jià)控制模塊的主控函數(shù) */ void Run(); /* * 開場(chǎng)一個(gè)事務(wù) */ bool StartTransaction(); /* * 提交一個(gè)事務(wù) */ bool CommitTransaction(); /*

26、 * 回滾一個(gè)事務(wù) */ bool RollbackTransaction(); /* * 處置事件,將輸入事件放入輸入事件緩沖區(qū)中 */ bool ProcessEvent(FArray* pInputEvent); /* * 批價(jià)回退 */ bool RollbackRating(); /* * 更新計(jì)費(fèi)參數(shù) */ bool UpdateParams(); /* * 退出批價(jià)進(jìn)程 */ void ExitProcess(UINT uExitCode = 0);/* * 【類功能的詳細(xì)描畫】 */class 【ClassName】/* 公共函數(shù)定義 */public:/* 功能描畫: 【函數(shù)

27、功能的詳細(xì)描畫】* param 【參數(shù)稱號(hào)1】【參數(shù)類別:入?yún)?出參/出入?yún)ⅰ俊緟?shù)功能描畫】* param 【參數(shù)稱號(hào)2】【參數(shù)類別:入?yún)?出參/出入?yún)ⅰ俊緟?shù)功能描畫】* return 【前往值闡明】*/ReturnType FunctionName(ParamType1 ParamName1, ParamType2 ParamName2,);/* 私有函數(shù)定義 */private:/* 功能描畫: 【函數(shù)功能的詳細(xì)描畫】* param 【參數(shù)稱號(hào)】【參數(shù)類別:入?yún)?出參/入出參】【參數(shù)功能描畫】* return 【前往值闡明】*/ReturnType FunctionName(Param

28、Type1 ParamName1, ParamType2 ParamName2,);/* 成員變量定義 */private:/* 【變量功能描畫以及能夠的取值闡明】*/VariableType VariableName;批價(jià)入庫(kù)正常清單表:UR_存放用戶的正常清單,按月份分表;無(wú)戶清單表:Anony_,由于無(wú)戶數(shù)據(jù)比較小,同時(shí)無(wú)戶數(shù)據(jù)需求一次堅(jiān)持可回收,故不按月份分表;誤單表:Error_,存放用戶的誤單數(shù)據(jù),由于誤單數(shù)據(jù)比較大,同時(shí)隔月后誤單普通不再進(jìn)展回收處置,故按月份進(jìn)展分表。入庫(kù)模塊功能:1將預(yù)處置模塊和批價(jià)模塊生成的結(jié)果數(shù)據(jù)插入到數(shù)據(jù)庫(kù)相應(yīng)的表中。2入庫(kù)數(shù)據(jù)回退,根據(jù)回退設(shè)定的條件將

29、曾經(jīng)入庫(kù)的數(shù)據(jù)從數(shù)據(jù)中去除掉。3入庫(kù)數(shù)據(jù)重做,根據(jù)重做設(shè)定的條件將曾經(jīng)入庫(kù)的數(shù)據(jù)插入到定義的回退。模塊涉及的表闡明表名 功能描畫IOID_SEQUENCE_TIOID序列定義表FORMAT_OUT_T輸出格式定義表FORMAT_OUT_DETAIL_T文件格式輸出定義明細(xì)表BILLING_CHECK_DETAIL_T計(jì)費(fèi)稽核信息表BILLING_CHECK_POINT_TINTERVENE_EVENT_TFORMAT_OUT_CONDITION_T輸出格式條件定義表FORMAT_RATING_T格式配置表USAGETYPE_T運(yùn)用記錄類型表card_flag_tTREE_STRUCT_ITEM

30、_TFORMAT_OUT_ITEM_T輸出格式子清單費(fèi)用序號(hào)定義表入庫(kù)程序首先創(chuàng)建一個(gè)入庫(kù)總控線程,入庫(kù)總控線程實(shí)現(xiàn)程序的一切流程。入庫(kù)總控線程流程:翻開相應(yīng)的音訊隊(duì)列;創(chuàng)建一個(gè)取隊(duì)列緩沖線程,取隊(duì)列緩沖線程從曾經(jīng)翻開的音訊隊(duì)列中讀取音訊,放到模塊的內(nèi)部隊(duì)列中;讀取參數(shù),創(chuàng)建總控線程的數(shù)據(jù)庫(kù)事務(wù)銜接;創(chuàng)建入庫(kù)對(duì)象,入庫(kù)公共參數(shù)初始化;創(chuàng)建一批入庫(kù)處置子線程;接納調(diào)度程序發(fā)送的指令,根據(jù)指令執(zhí)行相應(yīng)的操作;讀取內(nèi)部隊(duì)列中的音訊:假設(shè)是入庫(kù)操作的音訊:話單音訊轉(zhuǎn)發(fā)給入庫(kù)子線程處置;開場(chǎng)事務(wù)音訊通知入庫(kù)子線程事務(wù)開場(chǎng);事務(wù)提交音訊通知入庫(kù)子線程對(duì)事務(wù)進(jìn)展提交,事務(wù)回滾音訊通知入庫(kù)子線程對(duì)事務(wù)進(jìn)展回滾

31、。假設(shè)是回退操作的音訊:創(chuàng)建回退事務(wù);通知入庫(kù)子線程開場(chǎng)事務(wù);取回退數(shù)據(jù),構(gòu)成回退清單,送到內(nèi)部隊(duì)列;事務(wù)提交。入庫(kù)子線程讀取內(nèi)部隊(duì)列中的音訊,根據(jù)音訊中的內(nèi)部控制命令執(zhí)行相應(yīng)的操作模塊類設(shè)計(jì)類稱號(hào)功能描畫與其他類的關(guān)系CImpBase基類CIOID取下一個(gè)IOIDCFormatDef從數(shù)據(jù)庫(kù)中取出記錄格式的定義,根據(jù)FormatId查找對(duì)應(yīng)的入庫(kù)格式CIBASConf讀配置文件,設(shè)置參數(shù)CImpact公共參數(shù)的初始化,更新,Cimpact內(nèi)部參數(shù)的初始化,更新;提供入庫(kù)數(shù)據(jù)的事務(wù)開場(chǎng),事務(wù)提交,事務(wù)回滾,入庫(kù)處置方法;提供回退事務(wù)開場(chǎng),回退事務(wù)提交,回退事務(wù)回滾,回退數(shù)據(jù)生成,回退處置函數(shù),

32、事件形狀更新方法。從CimpBase承繼CImpAudit提供i對(duì)入庫(kù)數(shù)據(jù)進(jìn)展稽核的方法CImpBufItem入庫(kù)緩沖區(qū)類,提供兩個(gè)CimpBufItem對(duì)象的比較方法CImpBuffer提供從入庫(kù)緩沖區(qū)中取出相應(yīng)的格式配置的方法從CimpBase承繼CImpCardFlag建立一棵卡類標(biāo)識(shí)的CAVLTree,提供取卡類標(biāo)識(shí)方法CImpConnDB停供數(shù)據(jù)庫(kù)銜接操作CImpObj常規(guī)入庫(kù)對(duì)象類。提供屬性設(shè)置,音訊格式檢查,主清單入庫(kù),子清單入庫(kù),累帳,挑選累帳字段的方法從CimpBase承繼CImpObjMeter表底入庫(kù)對(duì)象類。重載了表底對(duì)象的屬性設(shè)置,主清單入庫(kù)1,子清單入庫(kù),累帳的方法從

33、CImpObj承繼CImpObjCumul累計(jì)資源入庫(kù)對(duì)象類CImpObjRB回退對(duì)象類。重載了累帳方法從CImpObj承繼CImpPara入庫(kù)參數(shù)類,提供了入庫(kù)參數(shù)初始化的一些方法和根據(jù)format_id獲得批價(jià)輸出格式的方法CImpTreeBatch批次樹對(duì)象。提供把累帳對(duì)象累到批次樹和巴批次樹入累帳天表的方法從CimpBase承繼CImpTreeCumul累計(jì)資源樹對(duì)象.重載累積資源累到累計(jì)資源樹和累計(jì)資源樹入庫(kù)的方法從CimpBase承繼CImpTreeMeter根底表底樹對(duì)象。重載方法實(shí)現(xiàn)把一條表底記錄累到表底樹上和表底樹入庫(kù)從CimpBase承繼CImpQueue內(nèi)部音訊隊(duì)列類從C

34、impBase承繼文件格式輸出格式定義構(gòu)造 */typedef struct _TFormatDetailTFormatDetail;輸出格式定義構(gòu)造 typedef struct _TFormatOut TFormatOut;/*子線程信息 */class CSubInfopublic:CSubInfo();CSubInfo();void Init(pthread_t ptid);void Reset();BOOL Check();void Error();void Exit();pthread_t m_ptid;CImpQueue m_ImpQueue;long m_lLoad;/負(fù)載統(tǒng)計(jì)

35、private:int m_nStatus;pthread_mutex_t mutex;/*子線程管理器 */lass CSubDealerpublic:CSubDealer();CSubDealer();/注冊(cè)子線程void Regist(CSubInfo* pSubInfo);/注冊(cè)統(tǒng)計(jì)線程void RegistStats(CSubInfo* pSubInfo);/音訊分發(fā)inline BOOL Deal(CImpMSG* pImpMSG);/封鎖子線程void SubClose();/檢測(cè)子線程BOOL SubCheck();BOOL SubCheck(int seq);BOOL Sta

36、tsCheck();/給子線程下控制命令void SubNotify(int CMD);/清空子線程隊(duì)列void SubClear();/恢復(fù)子線程形狀void SubReset();/負(fù)載報(bào)告void Report();private:int m_nSubCnt;/子線程數(shù)量CSubInfo* m_ppSubInfo10;/子線程信息CSubInfo* m_pSubStats;/統(tǒng)計(jì)子線程信息;/*子清單構(gòu)造 */typedef struct TSubList;/*子時(shí)段范圍段 */class CSubTodRangepublic:CDayRange *pParentDayRange;Dom

37、ainId nStartOffset;DomainId nEndOffset;DomainPriority nCalcPriority;帳務(wù)統(tǒng)計(jì)“源數(shù)據(jù)獲取是指從統(tǒng)計(jì)數(shù)據(jù)源表將原始數(shù)據(jù)取到內(nèi)存中。在一些情形下,獲取數(shù)據(jù)只是從一個(gè)數(shù)據(jù)庫(kù)中進(jìn)展簡(jiǎn)單的查詢操作即可。但在一次統(tǒng)計(jì)操作中,很能夠需求進(jìn)展兩個(gè)或更多表的關(guān)聯(lián),例如,從帳單表和資料表這兩個(gè)表中分別取出一些字段,構(gòu)成完成的統(tǒng)計(jì)數(shù)據(jù)源。假設(shè)帳單表和資料表在同一個(gè)數(shù)據(jù)庫(kù)中,那么可直接用SQL語(yǔ)句進(jìn)展兩個(gè)表的關(guān)聯(lián),甚至更多表之間的、條件更復(fù)雜的關(guān)聯(lián)。假設(shè)兩個(gè)表不在同一個(gè)庫(kù)中,那么需求將兩個(gè)表的數(shù)據(jù)分別取到內(nèi)存中再進(jìn)展關(guān)聯(lián)。本模塊對(duì)這種跨越數(shù)據(jù)庫(kù)進(jìn)展關(guān)

38、聯(lián)的情形作以下限制性商定(同一個(gè)數(shù)據(jù)庫(kù)內(nèi)的不同用戶沒有限制)最多支持兩個(gè)表的跨庫(kù)關(guān)聯(lián)。關(guān)聯(lián)時(shí)的條件僅支持“等于,即類似于以下操作:SELECT * FROM BILL_RENT_DETAIL_ITEM_T A, SERV_T B WHERE A.SERV_ID=B.SERV_ID支持多個(gè)字段的“與運(yùn)算,即類似于:SELECT * FROM BILL_RENT_DETAIL_ITEM_T A, SERV_T B WHERE A.SERV_ID=B.SERV_ID AND A.SERV_SEQ_ID=B.SERV_SEQ_ID進(jìn)展關(guān)聯(lián)的表允許定義各自獨(dú)立的數(shù)據(jù)過濾條件,即類似于:SELECT *

39、FROM BILL_RENT_DETAIL_ITEM_T A, SERV_T B WHERE A.SERV_ID=B.SERV_ID AND A.SERV_SEQ_ID=B.SERV_SEQ_IDAND (A.CHARGE0 OR A.CHARGE_MONTH 0)AND B.EFF_ACCT_MONTH= 200501數(shù)據(jù)獲取的詳細(xì)流程:根據(jù)參數(shù)表中定義的規(guī)那么構(gòu)造SQL語(yǔ)句。在參數(shù)表中提供了以下信息:數(shù)據(jù)源一。是一個(gè)SQL字符串,其中可以定義方式參數(shù),在程序執(zhí)行時(shí)被交換為實(shí)參。例如:SELECTSERV_ID,SERV_SEQ_ID,CHARGE,CHARGE_MONTH,BASE_FLA

40、G, ACCT_MONTH acct_month, ACC_DATE acct_date FROM BILL_RENT_DETAIL_ITEM_T WHERE BASE_FLAG0 AND HYPERLINK mailto:REGION_ID=REGION_ID REGION_ID=REGION_ID這個(gè)SQL語(yǔ)句也可以是兩個(gè)或更多表的關(guān)聯(lián),但這些進(jìn)展關(guān)聯(lián)的表都必需位于同一個(gè)數(shù)據(jù)庫(kù)內(nèi)可以屬于不同的用戶。 HYPERLINK mailto:SQL語(yǔ)句中的ACCT_MONTH SQL語(yǔ)句中的ACCT_MONTH、ACC_DATE、REGION_ID是方式參數(shù),在統(tǒng)計(jì)程序執(zhí)行時(shí),會(huì)被交換成帳務(wù)月、帳

41、務(wù)日、區(qū)域的實(shí)踐值。這里定義的SQL語(yǔ)句不能有ORDER BY子句。數(shù)據(jù)源一所屬數(shù)據(jù)庫(kù)ID。該數(shù)據(jù)庫(kù)ID指明該數(shù)據(jù)源是位于哪個(gè)數(shù)據(jù)庫(kù),該ID在DATABASE_INFO_T中進(jìn)展定義。數(shù)據(jù)源二、數(shù)據(jù)源二所屬數(shù)據(jù)庫(kù)ID??蛇x數(shù)據(jù)源一、二的關(guān)聯(lián)字段。定義了數(shù)據(jù)源一、二的記錄是經(jīng)過哪些字段關(guān)聯(lián)的??梢远x多個(gè)字段,構(gòu)成“與的關(guān)系。普通來(lái)說(shuō),對(duì)數(shù)據(jù)源一、二需求定義假設(shè)干個(gè)字段的關(guān)聯(lián)關(guān)系,假設(shè)沒有定義任何關(guān)聯(lián)關(guān)系,關(guān)聯(lián)操作將得到兩個(gè)數(shù)據(jù)源的笛卡爾集,對(duì)于較大規(guī)模的數(shù)據(jù)源,其笛卡爾集將是非常龐大的,因此統(tǒng)計(jì)程序作以下限制:假設(shè)兩個(gè)數(shù)據(jù)源要進(jìn)展關(guān)聯(lián),就必需至少定義一組關(guān)聯(lián)字段,否那么以為是參數(shù)設(shè)置錯(cuò)誤。根據(jù)

42、參數(shù)表中的以上信息構(gòu)造真實(shí)的將被發(fā)送到數(shù)據(jù)庫(kù)執(zhí)行的SQL語(yǔ)句:對(duì)數(shù)據(jù)源一或二執(zhí)行以下操作:用實(shí)踐取值交換SQL語(yǔ)句中的方式參數(shù)根據(jù)屬于數(shù)據(jù)源一的關(guān)聯(lián)字段,構(gòu)造ORDER BY子句。例如:數(shù)據(jù)源一和二經(jīng)過SERV_ID和SERV_SEQ_ID兩個(gè)字段進(jìn)展關(guān)聯(lián),那么參數(shù)表中有兩條記錄,分別是SERV_ID和SERV_SEQ_ID,那么從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)源一時(shí)所用的SQL語(yǔ)句為:SELECT . FROM ORDER BY SERV_ID,SERV_SEQ_ID查詢數(shù)據(jù)庫(kù),將結(jié)果集取到內(nèi)存。假設(shè)定義了兩個(gè)數(shù)據(jù)源,那么需求翻開兩個(gè)數(shù)據(jù)庫(kù)銜接,分別從不同的數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。在內(nèi)存中進(jìn)展兩個(gè)結(jié)果集的關(guān)聯(lián)。

43、由于在前面的步驟中構(gòu)造SQL語(yǔ)句時(shí),分別按關(guān)聯(lián)字段對(duì)數(shù)據(jù)源一、二的結(jié)果集進(jìn)展了排序,在內(nèi)存中可以簡(jiǎn)單地進(jìn)展條件判別,對(duì)結(jié)果集進(jìn)展關(guān)聯(lián)和過濾,得到最終所需的統(tǒng)計(jì)數(shù)據(jù)源。假設(shè)不預(yù)先對(duì)結(jié)果集進(jìn)展排序,就只需將一切的數(shù)據(jù)取到內(nèi)存中才干完成關(guān)聯(lián),所需的內(nèi)存占用能夠是不可接受的。分組統(tǒng)計(jì)流程根據(jù)前一階段所取到的數(shù)據(jù)源在內(nèi)存中完成了關(guān)聯(lián)的,按參數(shù)中設(shè)定的分組字段進(jìn)展統(tǒng)計(jì)。在參數(shù)中提供了以下信息:統(tǒng)計(jì)結(jié)果表名和數(shù)據(jù)庫(kù)ID。定義了統(tǒng)計(jì)結(jié)果存放的表和該表所在的數(shù)據(jù)庫(kù)。統(tǒng)計(jì)維度。描畫了需求按結(jié)果集的哪些字段進(jìn)展分組。統(tǒng)計(jì)計(jì)算量。描畫了需求對(duì)結(jié)果集的哪些字段進(jìn)展累計(jì),如累加、求最值、求均值等。在前一階段的獲取數(shù)據(jù)源的

44、操作中得到了關(guān)聯(lián)后的結(jié)果集,對(duì)該結(jié)果集中的每條記錄進(jìn)展統(tǒng)計(jì),并將統(tǒng)計(jì)的中間結(jié)果保管在內(nèi)存中的AVL樹中,樹的每個(gè)結(jié)點(diǎn)構(gòu)成一條統(tǒng)計(jì)的結(jié)果記錄。在對(duì)一切數(shù)據(jù)源進(jìn)展一遍累計(jì)后,將統(tǒng)計(jì)樹中的一切結(jié)點(diǎn)保管到數(shù)據(jù)庫(kù)中。設(shè)計(jì)思想闡明【詳細(xì)闡明該模塊的主要設(shè)計(jì)思想,使其他人可以明晰地了解他的設(shè)計(jì)意圖】本模塊的主要功能和設(shè)計(jì)思索在很多情況下,對(duì)數(shù)據(jù)的統(tǒng)計(jì)分析是由根本的排序、累加等操作來(lái)完成的,假設(shè)該操作是在關(guān)系數(shù)據(jù)庫(kù)中進(jìn)展,普通是由一系列GROUP BY語(yǔ)句來(lái)執(zhí)行,但此類操作經(jīng)常會(huì)耗用過多的數(shù)據(jù)庫(kù)資源,在分布式數(shù)據(jù)庫(kù)環(huán)境下的執(zhí)行效率和程序的復(fù)雜度能夠更難接受。例如,一個(gè)典型的統(tǒng)計(jì)操作:統(tǒng)計(jì)SERV_T中各種不同

45、的SERVICE_TYPE各有多少條記錄。可以在數(shù)據(jù)庫(kù)中執(zhí)行以下操作:select service_type,count(*) from serv_t group by service_type。數(shù)據(jù)庫(kù)要完成以上操作,需求從serv_t中取出每條記錄的service_type字段,對(duì)結(jié)果集有能夠要進(jìn)展排序、計(jì)數(shù)等操作,詳細(xì)步驟取決于數(shù)據(jù)庫(kù)的內(nèi)部實(shí)現(xiàn),無(wú)論如何,一切的操作都是在數(shù)據(jù)庫(kù)內(nèi)部完成的。假設(shè)用一個(gè)外部的程序從數(shù)據(jù)庫(kù)中取出需求統(tǒng)計(jì)的字段:select service_type from serv_t。對(duì)取到的結(jié)果集進(jìn)展分組統(tǒng)計(jì),得到每種service_type的數(shù)量,那么將整個(gè)統(tǒng)計(jì)操作的負(fù)

46、載分配到了數(shù)據(jù)庫(kù)主機(jī)和外部程序所在的主機(jī),這樣能夠有助于更快地完成統(tǒng)計(jì)操作,防止數(shù)據(jù)庫(kù)主機(jī)成為整個(gè)系統(tǒng)的性能瓶頸。統(tǒng)計(jì)的結(jié)果普通需求存放在專門的統(tǒng)計(jì)結(jié)果表中,該結(jié)果表和統(tǒng)計(jì)的數(shù)據(jù)源能夠位于不同的數(shù)據(jù)庫(kù)中。假設(shè)用存儲(chǔ)過程或簡(jiǎn)單的SQL語(yǔ)句,就需求經(jīng)過數(shù)據(jù)庫(kù)提供的遠(yuǎn)程操作機(jī)制如數(shù)據(jù)庫(kù)鏈來(lái)實(shí)現(xiàn)異地存取,但這種遠(yuǎn)程操作機(jī)制的性能往往達(dá)不到要求,或有其它一些缺陷。經(jīng)過外部的程序,可以從一個(gè)數(shù)據(jù)庫(kù)中取出結(jié)果集,在內(nèi)存中完成統(tǒng)計(jì)計(jì)算,再將統(tǒng)計(jì)結(jié)果存入另一個(gè)數(shù)據(jù)庫(kù)中。對(duì)于一些較為復(fù)雜的統(tǒng)計(jì),能夠需求在一些階段性的統(tǒng)計(jì)結(jié)果上進(jìn)展綜合分析??梢栽O(shè)定多個(gè)統(tǒng)計(jì)義務(wù),并依次執(zhí)行,較早執(zhí)行的義務(wù)為較晚執(zhí)行的義務(wù)預(yù)備數(shù)據(jù)。

47、客服保證管理 客服保證是出帳及帳單加載后開局面向前端客戶提供各項(xiàng)效力的管理過程,客服保證主要包括余額管理、收費(fèi)管理、欠費(fèi)管理及呆壞帳等方面的任務(wù)余額管理新增、變卦余額流程闡明根據(jù)擁有者類型、ID、余額類型,在余額賬本表Acct_Balance_t中找到對(duì)應(yīng)的余額賬本記錄,由于有效期的不同能夠有多條。根據(jù)余額類型,獲得能否允許提供發(fā)票標(biāo)志、能否調(diào)帳、計(jì)算利息、提取等標(biāo)志。根據(jù)入?yún)⒉僮黝愋?,判別詳細(xì)操作,假設(shè)生效時(shí)間和失效時(shí)間有作用需求新增一條記錄,假設(shè):新添加記錄:插入Acct_Balance_t一條記錄,同時(shí)判別運(yùn)用類型,假設(shè)是客戶用存款、用戶用存款、各種??睿枨蟛迦階cct_Use_Rul

48、e_t表運(yùn)用規(guī)那么帳戶用存款:不用插入運(yùn)用規(guī)那么客戶存款:Acct_Balance_t中的擁有者是客戶cust_id,客戶下的每一個(gè)在運(yùn)用規(guī)那么中插入一條記錄,acct_Balance_id一樣,這些帳戶一同運(yùn)用這筆余額,先后順序在沒有指明時(shí)一樣。用戶存款:Acct_Balance_t中的擁有者是用戶serv_id,同時(shí)在運(yùn)用規(guī)那么中插入一條記錄,記錄該用戶的Acct_id,Serv_id。產(chǎn)品存款:Acct_Balance_t中的擁有者是帳戶Acct_id,同時(shí)在運(yùn)用規(guī)那么中插入一條記錄,記錄帳戶的Acct_id和產(chǎn)品標(biāo)識(shí)product_id。這種情況能夠不會(huì)運(yùn)用費(fèi)用存款:帳戶費(fèi)用??睿珹c

49、ct_Balance_t中的擁有者是帳戶Acct_id,同時(shí)在運(yùn)用規(guī)那么中插入每一條??钣涗涃M(fèi)用項(xiàng)組項(xiàng),記錄帳戶的Acct_id和serv_id=0、product_id=0。用戶費(fèi)用??睿簬糍M(fèi)用??睿珹cct_Balance_t中的擁有者是用戶Serv_id,同時(shí)在運(yùn)用規(guī)那么中插入每一條??钣涗涃M(fèi)用項(xiàng)組項(xiàng),記錄改用戶的帳戶的Acct_id和用戶的serv_id,product_id=0。產(chǎn)品??睿簬糍M(fèi)用專款,Acct_Balance_t中的擁有者是帳戶Acct_id,同時(shí)在運(yùn)用規(guī)那么中插入每一條專款記錄費(fèi)用項(xiàng)組項(xiàng),記錄帳戶的Acct_id和用戶的serv_id=0,記錄product_i

50、d。不能用于沖減:不用插入運(yùn)用規(guī)那么。Acct_Balance_t中的擁有者是帳戶Acct_id。變卦記錄:根據(jù)Acct_Balance_Id,變卦Acct_Balance_t相應(yīng)記錄的金額、未打單金額根據(jù)發(fā)票標(biāo)識(shí)處置、時(shí)間。交納存款:判別能否可以提供發(fā)票提取存款/審批:判別能否可以提取轉(zhuǎn)出余額:判別能否可以轉(zhuǎn)帳轉(zhuǎn)入余額:調(diào)帳:判別能否可以調(diào)帳?記錄Acct_Balance_Log_t表。記錄payment,acct_get余額變卦 記錄返銷控制表 提供發(fā)票或收據(jù)余額查詢流程闡明根據(jù)入?yún)⑴袆e,查詢運(yùn)用者可用余額,還是擁有者擁有余額查詢運(yùn)用者可用余額:在運(yùn)用記錄中,根據(jù)acct_id查找到可以被

51、該帳/用戶/費(fèi)用項(xiàng)數(shù)組運(yùn)用的acct_Balance_ID,沒有在運(yùn)用期限內(nèi)的記錄剔除掉。還有限額參考費(fèi)用取的運(yùn)用類型,此處可以不取限額根據(jù)運(yùn)用者ID,在Acct_Balance_t中找到擁有的余額記錄,沒有在運(yùn)用期限內(nèi)的記錄剔除掉,周期運(yùn)用最高限額小于余額的記錄取最高限額。根據(jù)在運(yùn)用規(guī)那么中找到的acct_Balance_ID,在Acct_Balance_t中查找對(duì)應(yīng)的余額,沒有在運(yùn)用期限內(nèi)的記錄剔除掉,Acct_Balance_t中記錄的周期運(yùn)用最高限額、余額和運(yùn)用規(guī)那么中定義的周期運(yùn)用最高限額三者中取最小值加總獲得的一切記錄的可用余額,得到運(yùn)用者可用余額查詢擁有者擁有余額:根據(jù)擁有者ID

52、,在Acct_Balance_t中找到相應(yīng)余額,沒有在運(yùn)用期限內(nèi)的記錄剔除掉,周期運(yùn)用最高限額小于余額的記錄取最高限額。加總獲得的一切記錄的余額,得到擁有者擁有余額單個(gè)帳戶沖減流程闡明按帳戶沖減,將可用的余額記錄加載到內(nèi)存(需求包含可被專款沖減的產(chǎn)品、用戶、費(fèi)用項(xiàng)):先在運(yùn)用規(guī)那么表中按acct_id查找可以運(yùn)用的AcctBalanceID,此時(shí)按AcctBalanceID將余額的運(yùn)用規(guī)那么加載到構(gòu)造數(shù)組。再根據(jù)AcctBalanceID在余額賬本表中查找余額;根據(jù)acct_id在余額賬本表中查找可用的余額,運(yùn)用類型是帳戶。假設(shè)按用戶沖減運(yùn)用的情況:?jiǎn)螜C(jī)交費(fèi)時(shí)單個(gè)用戶沖減,需求包含所屬帳戶或產(chǎn)

53、品可以運(yùn)用的余額,以及所屬帳戶或產(chǎn)品下的費(fèi)用項(xiàng)可用的余額:在運(yùn)用規(guī)那么表中,根據(jù)用戶的acct_id查找可以運(yùn)用的AcctBalanceID,再根據(jù)AcctBalanceID在余額賬本表中查找余額。剔除其他用戶和產(chǎn)品公用的記錄,將需求的運(yùn)用規(guī)那么加載到構(gòu)造數(shù)組。根據(jù)acct_id在余額賬本表中查找可用的余額,運(yùn)用類型是帳戶。同時(shí)按AcctBalanceID將余額的運(yùn)用規(guī)那么加載到構(gòu)造數(shù)組/存款構(gòu)造類型typedef struct TAcctBalance;根據(jù)存款類型的運(yùn)用優(yōu)先級(jí)、失效時(shí)間,先運(yùn)用哪條余額的記錄沖減。曾經(jīng)按AcctBalanceID將余額的運(yùn)用規(guī)那么加載到構(gòu)造數(shù)組。typede

54、f struct double m_ dAcctBalanceID;doublem_dAcctID;/運(yùn)用者的AcctIDdoublem_dProductID;/被產(chǎn)品運(yùn)用時(shí)的ProductID TUseRule;加載欠費(fèi)到內(nèi)存:按費(fèi)用項(xiàng)排序,同費(fèi)用項(xiàng)時(shí)負(fù)費(fèi)用在前。排序順序:acct_id,serv_id,billing_cycle_id,acct_item_type_id,charge/欠費(fèi)構(gòu)造類型typedef structdoublem_dAcctItemIDMAX_ITEM_NUM;doublem_dServIDMAX_ITEM_NUM;char m_szServiceTypeMAX_

55、ITEM_NUM31;char m_szAccNbrMAX_ITEM_NUM17; TAcctItemList;加載余額運(yùn)用規(guī)那么和余額流程:循環(huán)設(shè)置array_acct_Balance.use_rule和array_acct_Balance.useRuleCnt,假設(shè)有運(yùn)用規(guī)那么,存放運(yùn)用規(guī)那么的地址和個(gè)數(shù),后面可以直接運(yùn)用。沖減流程:余額賬本數(shù)組長(zhǎng)度n,已排序。欠費(fèi)數(shù)組長(zhǎng)度m/存款數(shù)組循環(huán)for(i = 0; i 0; i+)if(array_acct_Balancei.useRuleCnt 0)for(j=0;j0; j+)/運(yùn)用規(guī)那么數(shù)組switch (array_acct_Balan

56、cei.UseRulej.use_type)/按不同運(yùn)用類型,沖減欠費(fèi)數(shù)組case 帳戶:for(j=0; j m; j+)/循環(huán)處置剩余沒有沖減的欠費(fèi)運(yùn)用不同擁有者的余額,循環(huán)沖減欠費(fèi);acct_get_t中按運(yùn)用者記錄費(fèi)用銷帳情況,按擁有者記錄余額變卦情況。case 用戶:循環(huán)欠費(fèi)數(shù)組,沖減servID一樣的費(fèi)用;case 費(fèi)用項(xiàng):循環(huán)欠費(fèi)數(shù)組,沖減Acct_item_type_id一樣的費(fèi)用;/運(yùn)用規(guī)那么循環(huán)終了elsefor(j = nItemBegin; j m_nAcctItemNum; j+)/循環(huán)欠費(fèi)沖減循環(huán)沖減欠費(fèi);達(dá)不到帳期扣減最低額的,在這里處置還是月底處置?批量沖減處置

57、流程闡明入?yún)ⅲ簠^(qū)域(營(yíng)業(yè)區(qū)) 工號(hào) 營(yíng)業(yè)廳 數(shù)據(jù)庫(kù)銜接串銜接數(shù)據(jù)庫(kù),根據(jù)銜接串獲得當(dāng)前數(shù)據(jù)庫(kù)用戶稱號(hào)獲得自動(dòng)沖減的操作類型、形狀,獲得當(dāng)前營(yíng)收周期獲得營(yíng)業(yè)員的記帳周期獲得操作流水調(diào)用余額類初始化自動(dòng)沖減方法initAutoParameter,初始化一些參數(shù)從根據(jù)區(qū)域從余額表(ACCT_BALANCE_%_T)中取出可用余額,循環(huán)處置根據(jù)需求從運(yùn)用規(guī)那么表中取數(shù)據(jù)(??畹刃枨?每一筆余額,帳戶一樣時(shí),取下一條余額,帳戶變化時(shí),走以下流程:調(diào)用余額類的init方法,初始化一些參數(shù)調(diào)用余額類的setSrcItem方法,從欠費(fèi)表加載欠費(fèi)到內(nèi)存調(diào)用余額類的deductOperation方法,在內(nèi)存中沖減

58、欠費(fèi)沖減終了,調(diào)用余額類的deductUpdateAcctBalance方法,更新余額賬本調(diào)用余額類的deductUpdateSrc方法,更新欠費(fèi)表,寫已收表調(diào)用余額類的deductUpdateReceipt方法,寫未打單數(shù)據(jù)調(diào)用insCreditChange方法,寫信譽(yù)控制表調(diào)用insCancelCtrl方法,寫操作控制表該帳戶沖減完成,提交重新取操作流水根據(jù)區(qū)域,從其他區(qū)域的運(yùn)用規(guī)那么表中取出本區(qū)域可用余額運(yùn)用規(guī)那么,循環(huán)處置當(dāng)balance_id或帳戶不同時(shí)走以下流程,否那么取下一條根據(jù)balance_id和acct_id從余額表中取余額調(diào)用余額類的init方法,初始化一些參數(shù)調(diào)用余額類

59、的setSrcItem方法,從欠費(fèi)表加載欠費(fèi)到內(nèi)存調(diào)用余額類的deductOperation方法,在內(nèi)存中沖減欠費(fèi)沖減終了,調(diào)用余額類的deductUpdateAcctBalance方法,更新余額賬本調(diào)用余額類的deductUpdateSrc方法,更新欠費(fèi)表,寫已收表調(diào)用余額類的deductUpdateReceipt方法,寫未打單數(shù)據(jù)寫余額變卦的單據(jù)數(shù)據(jù)調(diào)用insCreditChange方法,寫信譽(yù)控制表調(diào)用insCancelCtrl方法,按欠費(fèi)帳戶寫操作控制表調(diào)用insCancelCtrl方法,按余額帳戶寫操作控制表。設(shè)計(jì)思想闡明接口盡量堅(jiān)持與之前一樣。余額是與用戶/帳戶等并列的一個(gè)系統(tǒng)對(duì)象

60、。余額的擁有者和運(yùn)用者屬性,一個(gè)擁有者,多個(gè)運(yùn)用者。余額帳本可以運(yùn)用于一個(gè)或多個(gè)帳戶,可以運(yùn)用于一個(gè)或多個(gè)產(chǎn)品實(shí)例。可以運(yùn)用于一個(gè)或多個(gè)帳戶/產(chǎn)品實(shí)例的部分帳目類型。支持預(yù)付費(fèi)功能。運(yùn)用規(guī)那么表不能太大,每月清理沒用的記錄每月有一個(gè)義務(wù),處置費(fèi)用沒有到達(dá)周期消費(fèi)最低限額的余額記錄。單筆余額變卦按流水的平衡關(guān)系:acct_Balance_log_t中余額變卦值=acct_get_t中的余額變卦。按區(qū)域統(tǒng)計(jì)的余額的平衡關(guān)系:期末余額 = 期初余額 + 添加的余額(交納余額+轉(zhuǎn)入余額+沖減沖正余額+其他添加余額)沖減余額(本區(qū)域帳戶運(yùn)用的沖減余額Acct_get_t+被其他區(qū)域運(yùn)用的沖減余額Acct

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論