版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE銀行卡統(tǒng)計(jì)分析系統(tǒng)Excel解析詳細(xì)設(shè)計(jì)文檔信息編寫者編寫日期審核者審核日期批準(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舉例說明: 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頁第1頁概述目的預(yù)期的讀者和閱讀建議文檔約定參考文獻(xiàn)
基礎(chǔ)數(shù)據(jù)區(qū)到應(yīng)用區(qū)excel解析IQ版excel解析設(shè)計(jì)思路為適應(yīng)總行數(shù)據(jù)庫的變更和生成腳本的統(tǒng)一,規(guī)范管理,特產(chǎn)生該excel解析工具。該解析工具采用java開發(fā),對銀行卡系統(tǒng)的多平臺工作起了決定性的幫助。每個(gè)excel基本上對應(yīng)應(yīng)用區(qū)的一個(gè)表,但有可以串在一起跑的可以合在一起。每個(gè)excel文件都有一個(gè)叫“INDEX”的sheet頁――引導(dǎo)頁,生成的腳本由引導(dǎo)頁的<ACTION>來決定一切。生成文件名=生成腳本名.sql,該腳本由該行sheet頁定義的個(gè)數(shù)和具體的sheet頁決定。<Action>組合名稱串ID父串ID處理方式生成腳本名sheet頁數(shù)sheet頁名1……..sheet頁名n</Action>INDEX舉例說明:<Action>組合名稱串ID父串ID處理方式生成腳本名sheet頁數(shù)sheet頁名1sheet頁名2sheet頁名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文件最終會生成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對于每個(gè)sql腳本,其內(nèi)容由所提供的sheet頁支持,但是記住,對于每個(gè)串行,處理n個(gè)目標(biāo)表,就必須有n個(gè)清除語句來先清除垃圾數(shù)據(jù)。單個(gè)sheet模板定義每個(gè)sheet頁又有自己的一套設(shè)計(jì)模板,其中,IQ版的模板和ASE的模板總體不變,為適應(yīng)IQ版的處理模式,特增加新標(biāo)簽<Clean>清除條件備注deletefrom表名where條件</Clean>Sheet頁面如果存在該標(biāo)簽的就先處理該清除語句,然后再執(zhí)行由MAPPING組裝成的insert語句,否則直接執(zhí)行insert語句。具體的Mapping格式定義詳見附件《銀行卡統(tǒng)計(jì)分析系統(tǒng)DATAMAPPING編寫規(guī)范.doc》程序接口輸入:DATAMAPPING的excel文件輸出:生成腳本名.sql程序處理流程讀取excel文件的配置文件讀取excel文件的配置文件Excel文件讀取excel文件的源表讀取excel文件的目標(biāo)表讀取excel文件的目標(biāo)表字段讀取excel文件的源表字段讀取excel文件的關(guān)聯(lián)語句讀取excel文件的where語句組成一個(gè)sheet頁的sql語句讀取指定sheet頁組成excel文件的sql語句根據(jù)策略組裝成完整的一個(gè)可執(zhí)行腳步程序(目標(biāo)表名.sh)讀取INDEXt頁程序運(yùn)行環(huán)境基于jre1.4以上的運(yùn)行環(huán)境返回碼返回碼說明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ù)庫服務(wù)器><用戶名><密碼><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"腳本開始啟動(dòng),[`date+%Y.%m.%d-%T`]"begintime=`date+%Y.%m.%d-%T`echo"==**************************************************************************==">$lognameecho"==****************sql開始**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)號Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷金額)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)號Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷金額)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)號Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷金額Back_Amt, --本期轉(zhuǎn)回金額Chk_Cancel_Amt --本期核銷金額)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)號Ccy_Code, --幣種代碼Loss_Prepare_Bal, --損失準(zhǔn)備余額Upd_Cancel_Amt, --本期沖銷金額Upd_Cancel_Amt_Tot, --本年累計(jì)沖銷金額Back_Amt, --本期轉(zhuǎn)回金額Back_Amt_Tot, --本年累計(jì)轉(zhuǎn)回金額Chk_Cancel_Amt, --本期核銷金額Chk_Cancel_Amt_Tot --本年累計(jì)核銷金額)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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年05月江蘇中國建設(shè)銀行蘇州分行“建習(xí)生”暑期實(shí)習(xí)生暨萬名學(xué)子暑期下鄉(xiāng)實(shí)踐隊(duì)員招考筆試歷年參考題庫附帶答案詳解
- 《目視管理與應(yīng)用》課件
- 2024年滬科版五年級語文下冊月考試卷含答案
- 2025年粵教版高二生物下冊階段測試試卷
- 2024年04月順德農(nóng)商銀行國家級博士后科研工作站2024年招考5名博士后研究人員筆試歷年參考題庫附帶答案詳解
- 2025年外研銜接版八年級數(shù)學(xué)下冊階段測試試卷
- 2025年浙教新版三年級語文下冊月考試卷
- 2025年牛津上海版二年級語文上冊階段測試試卷
- 2024年浙教版選修6地理下冊階段測試試卷
- 2024年統(tǒng)編版2024九年級歷史上冊月考試卷含答案
- 2024年小學(xué)五年級科學(xué)教學(xué)工作總結(jié)(2篇)
- GB/T 31900-2024機(jī)織兒童服裝
- 2024-2025學(xué)年冀教版數(shù)學(xué)五年級上冊期末測試卷(含答案)
- 2025年上半年浙江金華市永康市選調(diào)市紀(jì)檢監(jiān)察信息中心工作人員2人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 美國制造業(yè)經(jīng)濟(jì)2024年度報(bào)告-2024-12-宏觀大勢
- 小區(qū)充電樁安全協(xié)議書范本(2篇)
- 2024年安徽省公務(wù)員錄用考試《行測》真題及答案解析
- 第二講 七十五載迎盛世 砥礪前行續(xù)華章2024年形勢與政策(課件)
- 檢驗(yàn)科15項(xiàng)質(zhì)量控制指標(biāo)(檢驗(yàn)科質(zhì)控小組活動(dòng)記錄)
- 5S評分基準(zhǔn)模板
- 外研社小學(xué)英語三起點(diǎn)五年級上冊(中英文對照)
評論
0/150
提交評論