銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)_第1頁(yè)
銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)_第2頁(yè)
銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)_第3頁(yè)
銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)_第4頁(yè)
銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)文檔信息編寫(xiě)者編寫(xiě)日期審核者審核日期批準(zhǔn)人批準(zhǔn)日期變更歷史日期變更描述批準(zhǔn)文檔資料分發(fā)姓名職位機(jī)構(gòu)目錄1 概述 11.1 目的 11.2 預(yù)期的讀者和閱讀建議 11.3 文檔約定 11.4 參考文獻(xiàn) 12 基礎(chǔ)數(shù)據(jù)區(qū)到應(yīng)用區(qū)excel解析 22.1 IQ版excel解析設(shè)計(jì)思路 22.2 INDEX舉例說(shuō)明: 22.3 單個(gè)sheet模板定義 32.4 程序接口 32.5 程序處理流程 42.6 程序運(yùn)行環(huán)境 52.7 返回碼 52.8 生成腳本舉例 53 報(bào)表區(qū)excel解析 133.1 程序接口 143.2 程序處理流程 143.3 程序運(yùn)行環(huán)境 143.4 返回碼 14第14頁(yè)第1頁(yè)概述目的預(yù)期的讀者和閱讀建議文檔約定參考文獻(xiàn)

基礎(chǔ)數(shù)據(jù)區(qū)到應(yīng)用區(qū)excel解析IQ版excel解析設(shè)計(jì)思路為適應(yīng)總行數(shù)據(jù)庫(kù)的變更和生成腳本的統(tǒng)一,規(guī)范管理,特產(chǎn)生該excel解析工具。該解析工具采用java開(kāi)發(fā),對(duì)銀行卡系統(tǒng)的多平臺(tái)工作起了決定性的幫助。每個(gè)excel基本上對(duì)應(yīng)應(yīng)用區(qū)的一個(gè)表,但有可以串在一起跑的可以合在一起。每個(gè)excel文件都有一個(gè)叫“INDEX”的sheet頁(yè)――引導(dǎo)頁(yè),生成的腳本由引導(dǎo)頁(yè)的<ACTION>來(lái)決定一切。生成文件名=生成腳本名.sql,該腳本由該行sheet頁(yè)定義的個(gè)數(shù)和具體的sheet頁(yè)決定。<Action>組合名稱(chēng)串ID父串ID處理方式生成腳本名sheet頁(yè)數(shù)sheet頁(yè)名1……..sheet頁(yè)名n</Action>INDEX舉例說(shuō)明:<Action>組合名稱(chēng)串ID父串ID處理方式生成腳本名sheet頁(yè)數(shù)sheet頁(yè)名1sheet頁(yè)名2sheet頁(yè)名3串1s1串行CA_CR_YEAR_OVER_INFO1CA_CR_YEAR_OVER_INFO串2s2s1串行CA_CR_DAY_OVER_INFO1CA_CR_DAY_OVER_INFO串3s3s2串行CA_CR_YEAR_NEW_OVER1CA_CR_YEAR_NEW_OVER串4s4串行CA_CR_DAY_OVER_BAL1CA_CR_DAY_OVER_BAL串5s5串行CA_CR_YEAR_BAD_OVER1CA_CR_YEAR_BAD_OVER串6s6串行CA_CR_YEAR_END_BAL_OVER1CA_CR_YEAR_END_BAL_OVER串7s7s3/s4/s5/s6串行CA_CR_YEAR_OVER3CA_CR_YEAR_OVERCA_CR_YEAR_OVER_ccyA0CA_CR_YEAR_OVER_ccyB0</Action>由該例子可以看到,該excel文件最終會(huì)生成7個(gè)sql腳本,分別是:CA_CR_YEAR_OVER_INFO.sqlCA_CR_DAY_OVER_INFO.sqlCA_CR_YEAR_NEW_OVER.sqlCA_CR_DAY_OVER_BAL.sqlCA_CR_YEAR_BAD_OVER.sqlCA_CR_YEAR_END_BAL_OVER.sqlCA_CR_YEAR_OVER.sql對(duì)于每個(gè)sql腳本,其內(nèi)容由所提供的sheet頁(yè)支持,但是記住,對(duì)于每個(gè)串行,處理n個(gè)目標(biāo)表,就必須有n個(gè)清除語(yǔ)句來(lái)先清除垃圾數(shù)據(jù)。單個(gè)sheet模板定義每個(gè)sheet頁(yè)又有自己的一套設(shè)計(jì)模板,其中,IQ版的模板和ASE的模板總體不變,為適應(yīng)IQ版的處理模式,特增加新標(biāo)簽<Clean>清除條件備注deletefrom表名where條件</Clean>Sheet頁(yè)面如果存在該標(biāo)簽的就先處理該清除語(yǔ)句,然后再執(zhí)行由MAPPING組裝成的insert語(yǔ)句,否則直接執(zhí)行insert語(yǔ)句。具體的Mapping格式定義詳見(jiàn)附件《銀行卡統(tǒng)計(jì)分析系統(tǒng)DATAMAPPING編寫(xiě)規(guī)范.doc》程序接口輸入:DATAMAPPING的excel文件輸出:生成腳本名.sql程序處理流程讀取excel文件的配置文件讀取excel文件的配置文件Excel文件讀取excel文件的源表讀取excel文件的目標(biāo)表讀取excel文件的目標(biāo)表字段讀取excel文件的源表字段讀取excel文件的關(guān)聯(lián)語(yǔ)句讀取excel文件的where語(yǔ)句組成一個(gè)sheet頁(yè)的sql語(yǔ)句讀取指定sheet頁(yè)組成excel文件的sql語(yǔ)句根據(jù)策略組裝成完整的一個(gè)可執(zhí)行腳步程序(目標(biāo)表名.sh)讀取INDEXt頁(yè)程序運(yùn)行環(huán)境基于jre1.4以上的運(yùn)行環(huán)境返回碼返回碼說(shuō)明0成功1出錯(cuò)生成腳本舉例#/****************************************************************************#*功能:該腳本處理數(shù)據(jù)從基礎(chǔ)數(shù)據(jù)進(jìn)入應(yīng)用數(shù)據(jù)區(qū)的流程*#****************************************************************************/if[$#-lt8]||["$1"=""]||["$2"=""]||["$3"=""]||["$4"=""]||["$5"=""]||["$6"=""]||["$7"=""]||["$8"=""]thenecho"此執(zhí)行腳本傳入的參數(shù)不符合要求<目標(biāo)表名><數(shù)據(jù)生效日期><接口文件><數(shù)據(jù)庫(kù)服務(wù)器><用戶(hù)名><密碼><bin路徑>"return4fiTbName=$1ST=$2newValidDate=$2sybfaces=$3DBSERVER=$4DBUSER=$5DBPWD=$6ENV_WORK_MAIN_PATH=$7TRANP=$8logname=$7/../log/${newValidDate}/$TRANP/${TbName}.subnullfile=$7/../log/null>$lognameif[$?-ne0]thenecho"不能創(chuàng)建$logname"exit-4fiWeek_Day=$ENV_WORK_MAIN_PATH/WeekDayDate_Add=$ENV_WORK_MAIN_PATH/DateAdd.$ENV_WORK_MAIN_PATH/CheckDateEOFFLAG=`Check_DateME$newValidDate`if["$EOFFLAG"!="Y"]thenecho"$newValidDate不是月末,暫不往下處理,直接退出"echo"=*=此腳本運(yùn)行成功完畢=*=,`date'+%Y%m%d.%T'`"exit0fiecho"腳本開(kāi)始啟動(dòng),[`date+%Y.%m.%d-%T`]"begintime=`date+%Y.%m.%d-%T`echo"==**************************************************************************==">$lognameecho"==****************sql開(kāi)始**BeginTime=[$begintime]***********==">>$lognameecho"==**************************************************************************==">>$lognameecho"0.準(zhǔn)備執(zhí)行表清除,`date+%Y.%m.%d-%T`"while[1]doisql-I$sybfaces-U$DBUSER-P$DBPWD-S$DBSERVER-Jiso_1<<EOF>>$lognameCREATEVARIABLEret1intgosetret1=0goPrint'0.準(zhǔn)備執(zhí)行表清除'deletefromCA_CR_PREPAREwhereDte_Id='$newValidDate'setret1=@@Errorifret1=0Print'0.成功執(zhí)行表清除'elsePrint'0.失敗執(zhí)行表清除'goPrint'==**************************************************************************=='Print'==************************第0步結(jié)束****************************************=='Print'==**************************************************************************=='goquitEOFgrep"0.成功執(zhí)行表清除"$logname1>$nullfile2>$nullfileif[$?-ne0]thenecho"0.失敗執(zhí)行表清除,`date+%Y.%m.%d-%T`"echo"現(xiàn)在退出" endtime=`date+%Y.%m.%d-%T`echo"==******Begintime=[$begintime],EndTime=[$endtime]****==">>$lognameexit-4elseecho"0.成功執(zhí)行表清除,`date+%Y.%m.%d-%T`"breakfidoneecho"==******************************************************************=="echo"1.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"while[1]doisql-I$sybfaces-U$DBUSER-P$DBPWD-S$DBSERVER-Jiso_1<<EOF>>$lognameCREATEVARIABLEret1intgosetret1=0goPrint'1.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE'insertCA_CR_PREPARE(Dte_Id, --日期Bank_Code, --機(jī)構(gòu)號(hào)Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷(xiāo)金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷(xiāo)金額)selectDte_Id,Bank_Code,Ccy_Code,Prepare_Amt,Upd_Cancel_Amt,Back_Amt,Chk_Cancel_AmtfromCH_CR_CARD_PREPAREcawhereConf_Markin('1','A')anddatepart(yy,Dte_Id)=datepart(yy,'$newValidDate')anddatepart(mm,Dte_Id)=datepart(mm,'$newValidDate')setret1=@@Errorifret1=0Print'1.成功插入數(shù)據(jù)至CA_CR_PREPARE'elsePrint'1.失敗插入數(shù)據(jù)至CA_CR_PREPARE'goPrint'==**************************************************************************=='Print'==************************第1步結(jié)束****************************************=='Print'==**************************************************************************=='goquitEOFgrep"1.成功插入數(shù)據(jù)至CA_CR_PREPARE"$logname1>$nullfile2>$nullfileif[$?-ne0]thenecho"1.失敗插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"echo"現(xiàn)在退出" endtime=`date+%Y.%m.%d-%T`echo"==******Begintime=[$begintime],EndTime=[$endtime]****==">>$lognameexit-4elseecho"1.成功插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"breakfidoneecho"==******************************************************************=="echo"2.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"while[1]doisql-I$sybfaces-U$DBUSER-P$DBPWD-S$DBSERVER-Jiso_1<<EOF>>$lognameCREATEVARIABLEret1intgosetret1=0goPrint'2.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE'insertCA_CR_PREPARE(Dte_Id, --日期Bank_Code, --機(jī)構(gòu)號(hào)Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷(xiāo)金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷(xiāo)金額)selectDte_Id,Bank_Code,'A0',convert(decimal(18,2),sum(Loss_Prepare_Bal*erc.ERCCNYMIDPRC)),convert(decimal(18,2),sum(Upd_Cancel_Amt*erc.ERCCNYMIDPRC)),convert(decimal(18,2),sum(Back_Amt*erc.ERCCNYMIDPRC)),convert(decimal(18,2),sum(Chk_Cancel_Amt*erc.ERCCNYMIDPRC))fromCA_CR_PREPAREcaleftouterjoinp_abis_ercerconca.Ccy_Code=erc.ERCCCYCODand'$newValidDate'betweenerc.startdateanderc.enddatewhereca.Dte_Id='$newValidDate'andca.Ccy_Codenotin('B0','A0')groupbyDte_Id,Bank_Codesetret1=@@Errorifret1=0Print'2.成功插入數(shù)據(jù)至CA_CR_PREPARE'elsePrint'2.失敗插入數(shù)據(jù)至CA_CR_PREPARE'goPrint'==**************************************************************************=='Print'==************************第2步結(jié)束****************************************=='Print'==**************************************************************************=='goquitEOFgrep"2.成功插入數(shù)據(jù)至CA_CR_PREPARE"$logname1>$nullfile2>$nullfileif[$?-ne0]thenecho"2.失敗插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"echo"現(xiàn)在退出" endtime=`date+%Y.%m.%d-%T`echo"==******Begintime=[$begintime],EndTime=[$endtime]****==">>$lognameexit-4elseecho"2.成功插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"breakfidoneecho"==******************************************************************=="echo"3.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"while[1]doisql-I$sybfaces-U$DBUSER-P$DBPWD-S$DBSERVER-Jiso_1<<EOF>>$lognameCREATEVARIABLEret1intgosetret1=0goPrint'3.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE'insertCA_CR_PREPARE(Dte_Id, --日期Bank_Code, --機(jī)構(gòu)號(hào)Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷(xiāo)金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷(xiāo)金額)selectDte_Id,Bank_Code,'B0',convert(decimal(18,2),sum(Loss_Prepare_Bal*erc.ERCUSDRAT)),convert(decimal(18,2),sum(Upd_Cancel_Amt*erc.ERCUSDRAT)),convert(decimal(18,2),sum(Back_Amt*erc.ERCUSDRAT)),convert(decimal(18,2),sum(Chk_Cancel_Amt*erc.ERCUSDRAT))fromCA_CR_PREPAREcaleftouterjoinp_abis_ercerconca.Ccy_Code=erc.ERCCCYCODand'$newValidDate'betweenerc.startdateanderc.enddatewhereca.Dte_Id='$newValidDate'andca.Ccy_Codenotin('01','A0','B0')groupbyDte_Id,Bank_Codesetret1=@@Errorifret1=0Print'3.成功插入數(shù)據(jù)至CA_CR_PREPARE'elsePrint'3.失敗插入數(shù)據(jù)至CA_CR_PREPARE'goPrint'==**************************************************************************=='Print'==************************第3步結(jié)束****************************************=='Print'==**************************************************************************=='goquitEOFgrep"3.成功插入數(shù)據(jù)至CA_CR_PREPARE"$logname1>$nullfile2>$nullfileif[$?-ne0]thenecho"3.失敗插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"echo"現(xiàn)在退出" endtime=`date+%Y.%m.%d-%T`echo"==******Begintime=[$begintime],EndTime=[$endtime]****==">>$lognameexit-4elseecho"3.成功插入數(shù)據(jù)至CA_CR_PREPARE,`date+%Y.%m.%d-%T`"breakfidoneecho"==******************************************************************=="echo"4.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE_SUM,`date+%Y.%m.%d-%T`"while[1]doisql-I$sybfaces-U$DBUSER-P$DBPWD-S$DBSERVER-Jiso_1<<EOF>>$lognameCREATEVARIABLEret1intgosetret1=0goPrint'4.準(zhǔn)備插入數(shù)據(jù)至CA_CR_PREPARE_SUM'insertCA_CR_PREPARE_SUM(Dte_Id, --日期Bank_Code, --機(jī)構(gòu)號(hào)Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷(xiāo)金額Upd_Cancel_Amt_Tot, --本年累計(jì)沖銷(xiāo)金額Back_Amt, --本期轉(zhuǎn)回金額Back_Amt_Tot, --本年累計(jì)轉(zhuǎn)回金額Chk_Cancel_Amt, --本期核銷(xiāo)金額Chk_Cancel_Amt_Tot --本年累計(jì)核銷(xiāo)金額)selectca.Dte_Id,ca.Bank_Code,ca.Ccy_Code,isnull(sum(ca.Loss_Prepare_Bal),0.00),isnull(sum(ca.Upd_Cancel_Amt),0.00),isnull(sum(catmp.tol1),0.00),isnull(sum(ca.Back_Amt),0.00),isnull(sum(catmp.tol2),0.00),isnull(sum(ca.Chk_Cancel_Amt),0.00),isnull(sum(catmp.tol3),0.00)fromCA_CR_PREPAREcainnerjoin(select'$newValidDate'asDate_Id,Bank_Code,Ccy_Code,sum(Upd_Cancel_Amt)astol1,sum(Back_Amt)astol2,sum(Chk_Cancel_Amt)astol3fromCA_CR_PREPAREwheredatepart(yy,Dte_Id)=datepart(yy,'$newValidDate')groupbyBank_Code,Ccy_Code)catmponca.Dte_Id=catmp.Date_Idandca.Bank_Code=catmp.Bank_Codeandca.Ccy_Code=catmp.Ccy_Codewhereca.Dte_Id=convert(date,'$newValidDate')andca.Ccy_Codein('01','A0','B0')groupbyca.Dte_Id,ca.Bank_Code,ca.Ccy_Codesetret1=@@Errorifret1=0Print'4.成功插入數(shù)據(jù)至CA_CR_PREPARE_SUM'elsePrint'4.失敗插入數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論