Merge branch 'dev' into sit

This commit is contained in:
KLYSaa
2022-03-07 16:02:24 +08:00
16 changed files with 929 additions and 35 deletions
+39
View File
@@ -72,6 +72,7 @@
<WriteElement name="bankBal" ETF_name="BANK_BAL" necessary="no"/> <!-- 余额 -->
<WriteElement name="refreshTime" ETF_name="REFRESH_TIME" necessary="no"/> <!-- 从银行刷新数据的时间 -->
<WriteElement name="bankValueDate" ETF_name="BANK_VALUE_DATE" necessary="no"/> <!-- 银行起息日 -->
<WriteElement name="bankTrsCode" ETF_name="BANK_TRSCODE" necessary="no"/> <!-- 银行交易类型 -->
</WriteGroupElement>
</WriteElement>
</WriteElement>
@@ -131,4 +132,42 @@
</WriteElement>
</Response>
</Transaction>
<Transaction code="acctWhitelistSync" service="ACCT_WHITELIST_SYNC" desc=" 账户白名单同步" log_switch="1" timeout="60">
<Request>
<Quote name="readHead"/>
<ReadElement name="body">
<ReadElement name="bankCode" ETF_name="BANK_CODE" necessary="yes"/> <!--银行代码-->
<ReadElement name="brNo" ETF_name="BR_NO" necessary="yes"/> <!-- 分行号-->
<ReadElement name="acctType" ETF_name="ACCT_TYPE" necessary="yes"/> <!--账号类型-->
<ReadElement name="acctNo" ETF_name="ACCT_NO" necessary="yes"/> <!--账号-->
<ReadElement name="acctName" ETF_name="ACCT_NAME" necessary="yes"/> <!--户名-->
<ReadElement name="receiptSyncFlag" ETF_name="RPT_SYC_FLG" necessary="no" /> <!--电子回单同步标志-->
<ReadElement name="billSyncFlag" ETF_name="BIL_SYC_FLG" necessary="no" /> <!--明细对账单同步标志-->
<ReadElement name="enabled" ETF_name="ENABLED" necessary="yes"/> <!--是否启用 Y:启用 N:停用-->
</ReadElement>
</Request>
<Response>
<WriteElement name="Response">
<Quote name="writeHead"/>
</WriteElement>
</Response>
</Transaction>
<Transaction code="specialRouteSync" service="SPECIAL_ROUTE_SYNC" desc="支付地客户定制化路由组同步" log_switch="1" timeout="60">
<Request>
<Quote name="readHead"/>
<ReadElement name="body">
<ReadElement name="titleId" ETF_name="TITLE_ID" necessary="yes"/> <!--付地抬头ID-->
<ReadElement name="customerId" ETF_name="CUSTOMER_ID" necessary="yes"/> <!--客户编号-->
<ReadElement name="enabled" ETF_name="ENABLED" necessary="yes"/> <!--是否启用 Y:启用 N:停用-->
</ReadElement>
</Request>
<Response>
<WriteElement name="Response">
<Quote name="writeHead"/>
</WriteElement>
</Response>
</Transaction>
</Application>
+76
View File
@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<Tran>
<!-- 账户白名单信息同步 -->
<Transaction code="ACCT_WHITELIST_SYNC" log_switch='1' desc="信息同步">
<DynSentence name="QRY_CAPRECEIPTACCT_INF"><!--查询账户信息是否存在 -->
<Sentence>
SELECT 'Y' YN FROM CAPRECEIPTACCT
WHERE ACCT_NO=?
</Sentence>
<Fields>ACCT_NO|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPRECEIPTACCT_INF"> <!--更新支付地账户信息 -->
<Sentence>
UPDATE CAPRECEIPTACCT
SET HNULL(RPT_SYC_FLG{1}=?),
HNULL(BIL_SYC_FLG{2}=?),
BR_NO=?,
BANK_CODE=?,
ACCT_NAME=?,
ENABLED=?,
UPD_DT=?,
UPD_TM=?,
TM_SMP=?
WHERE ACCT_NO=?
</Sentence>
<Fields>RPT_SYC_FLG|BIL_SYC_FLG|BR_NO|BANK_CODE|ACCT_NAME|ENABLED|UPD_DT|UPD_TM|TM_SMP|ACCT_NO|</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Set>UPD_DT=GETDATE()</Set>
<Set>UPD_TM=GETDATETIME(HHMISS)</Set>
<Set>TM_SMP=GETDATETIME()</Set>
<!--检查支付地信息是否存在-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPRECEIPTACCT_INF"/>
</Exec>
<If condition="~RetCod=2"><!-- 信息不存在则插入新增数据-->
<Set>CRE_DT=$UPD_DT</Set>
<Set>CRE_TM=$UPD_TM</Set>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPRECEIPTACCT" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库操作错误</Set>
<Return />
</If>
</If>
<ElseIf condition="~RetCod=0"><!--信息已存在则更新数据-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPRECEIPTACCT_INF"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库操作错误</Set>
<Return />
</If>
</ElseIf>
<Else><!--数据库查询错误-->
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Return/>
</Else>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+10 -5
View File
@@ -5,18 +5,23 @@
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
</Attributes>
<DynSentence name="QRY_CAPCMBJNLTOT_LST">
<DynSentence name="QRY_CAPCMBHIJNL_LST">
<Sentence>
SELECT * FROM (
SELECT ACC_NBR,TRS_DAT FROM CAPCMBJNLTOT WHERE BIL_STS='1')
SELECT * FROM (
SELECT ACC_NBR,TRS_DAT FROM CAPCMBHIJNL WHERE BIL_RPT_STS='1' AND TRS_DAT &gt;=? GROUP BY ACC_NBR,TRS_DAT)
ORDER BY TRS_DAT,ACC_NBR
</Sentence>
<Fields>CHECK_DATE|</Fields>
</DynSentence>
<FlowCtrl>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<If condition="ISNULL($CHECK_DATE)">
<Set>CHECK_DATE=CALCDATE(GETDATE(),-,d,3)</Set>
</If>
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPCMBJNLTOT_LST"/>
<Arg name="SqlCmd" value="QRY_CAPCMBHIJNL_LST"/>
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<If condition="~RetCod=-1">
+1 -1
View File
@@ -17,7 +17,7 @@
<Quote name="Init_CAP01"/> <!--交易初始化-->
<If condition="ISNULL($SND_TIME_INTERVAL)">
<Set>SND_TIME_INTERVAL=1</Set>
<Set>SND_TIME_INTERVAL=2</Set>
</If>
<Set>C_SND_TIME=CALCTIME(GETDATETIME(MMDDHHMISS),-,m,$SND_TIME_INTERVAL)</Set>
<Exec func="PUB:OpenCursor" error="IGNORE">
@@ -0,0 +1,63 @@
<?xml version='1.0' encoding='UTF-8'?>
<Tran>
<Transaction code="BAT_ICBCRECEIPT_TIMER" log_switch='1' timeout="3600" desc="工行电子回单上传">
<Attributes>
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
</Attributes>
<DynSentence name="QRY_CAPICBCJNLTOT_LST">
<Sentence>
SELECT * FROM (
SELECT ACCOUNT_NO,TRS_DATE FROM CAPICBCJNLTOT WHERE ACC_RPT_STS='1' AND TOT_CNT!='0' )
</Sentence>
</DynSentence>
<FlowCtrl>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPICBCJNLTOT_LST"/>
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库错误</Set>
<Return/>
</If>
<While>
<Exec func="PUB:FetchCursor" error="IGNORE">
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CloseCursor" error="IGNORE"> <!-- 关闭游标 -->
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<Break/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=循环游标失败</Set>
<Return/>
</ElseIf>
<Set>TTXN_CD=GET_ICBCRECEIPT</Set>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="$TTXN_CD" />
<Arg name="ObjSvr" value="OFRTCAP3" />
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询失败</Set>
<Return/>
</If>
</While>
<Exec func="PUB:CloseCursor" error="IGNORE"> <!-- 关闭游标 -->
<Arg name="CursorName" value="CURSOR_1"/>
</Exec>
<Exec func="PUB:CommitWork"/>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+9 -3
View File
@@ -7,14 +7,20 @@
<DynSentence name="QRY_CAPCMBJNLTOT_LST">
<Sentence>
SELECT * FROM (
SELECT ACC_NBR,TRS_DAT,TAC_TYP FROM CAPCMBJNLTOT WHERE BIL_STS='0' AND TOT_CNT!='0' )
SELECT * FROM (
SELECT ACC_NBR,TRS_DAT,TAC_TYP FROM CAPCMBJNLTOT WHERE BIL_STS='0' AND TOT_CNT!='0' AND TRS_DAT &gt;=?
AND ACC_NBR IN (SELECT ACCT_NO ACC_NBR FROM CAPRECEIPTACCT WHERE BIL_SYC_FLG='Y'))
ORDER BY TRS_DAT,ACC_NBR
</Sentence>
<Fields>CHECK_DATE|</Fields>
</DynSentence>
<FlowCtrl>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<If condition="ISNULL($CHECK_DATE)">
<Set>CHECK_DATE=CALCDATE(GETDATE(),-,d,3)</Set>
</If>
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPCMBJNLTOT_LST"/>
<Arg name="CursorName" value="CURSOR_1"/>
+2 -1
View File
@@ -8,7 +8,8 @@
<DynSentence name="QRY_CAPCMBJNLTOT_LST">
<Sentence>
SELECT * FROM (
SELECT ACC_NBR EAC_NBR,TRS_DAT FROM CAPCMBJNLTOT WHERE ACC_RPT_STS='0' AND TOT_CNT!='0' )
SELECT ACC_NBR EAC_NBR,TRS_DAT FROM CAPCMBJNLTOT WHERE ACC_RPT_STS='0' AND TOT_CNT!='0'
AND ACC_NBR IN (SELECT ACCT_NO ACC_NBR FROM CAPRECEIPTACCT WHERE RPT_SYC_FLG='Y'))
</Sentence>
</DynSentence>
+1 -1
View File
@@ -44,7 +44,7 @@
<Exec func="PUB:CallThirdService" error="IGNORE">
<Arg name="HTxnCd" value="$TTXN_CD" />
<Arg name="ObjSvr" value="OFRTCAP3" />
<Arg name="In" value="BBK_NBR|ACC_NBR|ACCT_TYPE|ACC_NAM|" />
<Arg name="In" value="BBK_NBR|ACC_NBR|ACCT_TYPE|ACC_NAM|TRS_DAT|" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
+3
View File
@@ -51,5 +51,8 @@
<Include file="etc/batch/TRANS_QUERY.XML"/> <!--流水查询 -->
<Include file="etc/batch/ACCT_RECEIPT_QUERY.XML"/> <!--账户回单查询 -->
<Include file="etc/batch/CUST_RECEIPT_QUERY.XML"/> <!--明细对账单查询 -->
<Include file="etc/batch/BAT_ICBCRECEIPT_TIMER_CTL.XML"/> <!--工行电子回单上传定时发起 -->
<Include file="etc/batch/ACCT_WHITELIST_SYNC.XML"/> <!--账户白名单同步 -->
<Include file="etc/batch/SPECIAL_ROUTE_SYNC.XML"/> <!--特殊路由信息同步 -->
</Application>
+71
View File
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<Tran>
<!-- 特殊路由信息同步 -->
<Transaction code="SPECIAL_ROUTE_SYNC" log_switch='1' desc="信息同步">
<DynSentence name="QRY_CAPSPECIALROUTE_INF"><!--查询信息是否存在 -->
<Sentence>
SELECT 'Y' YN FROM CAPSPECIALROUTE
WHERE TITLE_ID=? AND CUSTOMER_ID=?
</Sentence>
<Fields>TITLE_ID|CUSTOMER_ID|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPSPECIALROUTE_INF"> <!--更新信息 -->
<Sentence>
UPDATE CAPRECEIPTACCT
SET ENABLED=?,
UPD_DT=?,
UPD_TM=?,
TM_SMP=?
WHERE TITLE_ID=? AND CUSTOMER_ID=?
</Sentence>
<Fields>ENABLED|UPD_DT|UPD_TM|TM_SMP|TITLE_ID|CUSTOMER_ID|</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Set>UPD_DT=GETDATE()</Set>
<Set>UPD_TM=GETDATETIME(HHMISS)</Set>
<Set>TM_SMP=GETDATETIME()</Set>
<!--检查支付地信息是否存在-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPSPECIALROUTE_INF"/>
</Exec>
<If condition="~RetCod=2"><!-- 信息不存在则插入新增数据-->
<Set>CRE_DT=$UPD_DT</Set>
<Set>CRE_TM=$UPD_TM</Set>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPSPECIALROUTE" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库操作错误</Set>
<Return/>
</If>
</If>
<ElseIf condition="~RetCod=0"><!--信息已存在则更新数据-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPSPECIALROUTE_INF"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库操作错误</Set>
<Return/>
</If>
</ElseIf>
<Else><!--数据库查询错误-->
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Return/>
</Else>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+12 -8
View File
@@ -13,13 +13,13 @@
rpy_bnk AS BANK_NAME,
yur_ref AS BATCH_ID,
ref_nbr AS BANK_REF_ID,
trs_amt AS AMOUNT,
(trs_amt * 100) AS AMOUNT,
L_POSTSCRIPT AS POSTSCRIPT,
acc_nbr AS TITLE_ACCT_NO,
ACC_NAM AS TITLE_ACCT_NAME,
L_RMK AS REMARK,
'' AS BANK_REMARK,
'' AS BANK_SUMMARY,
bus_nar AS BANK_SUMMARY,
'' AS BANK_RESPCODE,
'' AS BANKRESP_MESSAGE,
nar_yur AS BANK_PS,
@@ -27,7 +27,8 @@
'' AS BANK_FEE,
trs_blv AS BANK_BAL,
TM_SMP AS REFRESH_TIME,
vlt_dat AS BANK_VALUE_DATE
vlt_dat AS BANK_VALUE_DATE,
trscod AS BANK_TRSCODE
FROM CAPCMBHIJNL
WHERE ACC_NBR=? AND TRS_DAT BETWEEN ? AND ?
AND (ety_dat||ety_tim) BETWEEN ? AND ?
@@ -49,13 +50,13 @@
rpy_bnk AS BANK_NAME,
yur_ref AS BATCH_ID,
ref_nbr AS BANK_REF_ID,
trs_amt AS AMOUNT,
(trs_amt * 100) AS AMOUNT,
L_POSTSCRIPT AS POSTSCRIPT,
acc_nbr AS TITLE_ACCT_NO,
ACC_NAM AS TITLE_ACCT_NAME,
L_RMK AS REMARK,
'' AS BANK_REMARK,
'' AS BANK_SUMMARY,
bus_nar AS BANK_SUMMARY,
'' AS BANK_RESPCODE,
'' AS BANKRESP_MESSAGE,
nar_yur AS BANK_PS,
@@ -63,7 +64,8 @@
'' AS BANK_FEE,
trs_blv AS BANK_BAL,
TM_SMP AS REFRESH_TIME,
vlt_dat AS BANK_VALUE_DATE
vlt_dat AS BANK_VALUE_DATE,
trscod AS BANK_TRSCODE
FROM CAPCMBCURJNL
WHERE ACC_NBR=?
AND (ety_dat||ety_tim) BETWEEN ? AND ?
@@ -99,7 +101,8 @@
trade_fee AS BANK_FEE,
balance AS BANK_BAL,
TM_SMP AS REFRESH_TIME,
value_date AS BANK_VALUE_DATE
value_date AS BANK_VALUE_DATE,
TRX_CODE AS BANK_TRSCODE
FROM CAPICBCHIJNL
WHERE ACCOUNT_NO=? AND TRS_DATE BETWEEN ? AND ?
AND (T_DATE||T_TIME) BETWEEN ? AND ?
@@ -135,7 +138,8 @@
trade_fee AS BANK_FEE,
balance AS BANK_BAL,
TM_SMP AS REFRESH_TIME,
value_date AS BANK_VALUE_DATE
value_date AS BANK_VALUE_DATE,
TRX_CODE AS BANK_TRSCODE
FROM CAPICBCCURJNL
WHERE ACCOUNT_NO=?
AND (T_DATE||T_TIME) BETWEEN ? AND ?
+123 -11
View File
@@ -394,9 +394,9 @@
<While condition="IS_EQUAL_STRING($cotflg,Y)">
<Set>cotflg=N</Set>
<Set>NUM=ADD($NUM,1)</Set>
<Set>RTN_NUM=ADDCHAR($NUM,6,0,1)</Set>
<Set>RTN_NUM=STRCAT($RRCFLG,ADDCHAR($NUM,6,0,1))</Set>
<Set>TM_SMP=GETDATETIME()</Set>
<Set>reqid=STRCAT($TM_SMP,$RRCFLG,$RTN_NUM)</Set>
<Set>reqid=STRCAT($TM_SMP,$RTN_NUM)</Set>
<Set>TX_COD=ASYCALHD</Set>
@@ -439,6 +439,26 @@
<Set>ctn_keyz2=$ctnkeyz2</Set>
<If condition="NOT(ISNULL(DELBOTHSPACE($ctn_keyz2)))"> <!-- 判断是否有续传包 -->
<Set>cotflg=Y</Set>
<Set>key_begamt=$key_beg_amt</Set>
<Set>key_begdat=$key_beg_dat</Set>
<Set>key_daltag=$key_dal_tag</Set>
<Set>key_eacnbr=$key_eac_nbr</Set>
<Set>key_endamt=$key_end_amt</Set>
<Set>key_enddat=$key_end_dat</Set>
<Set>key_nxtdat=$key_nxt_dat</Set>
<Set>key_nxtnbr=$key_nxt_nbr</Set>
<Set>key_nxttim=$key_nxt_tim</Set>
<Set>key_oprtyp=$key_opr_typ</Set>
<Set>key_pagcnt=$key_pag_cnt</Set>
<Set>key_pattyp=$key_pat_typ</Set>
<Set>key_plafor=$key_pla_for</Set>
<Set>key_predat=$key_pre_dat</Set>
<Set>key_prenbr=$key_pre_nbr</Set>
<Set>key_pretim=$key_pre_tim</Set>
<Set>key_primod=$key_pri_mod</Set>
<Set>key_rrccod=$key_rrc_cod</Set>
<Set>key_rrcflg=$key_rrc_flg</Set>
<Set>key_spc100=$key_spc_100</Set>
</If>
<Set>SND_TM=$TM_SMP</Set>
<Set>rtn_dat=$rtndat</Set>
@@ -460,7 +480,26 @@
<Delete>ctnkeyz2</Delete>
<Delete>rtndat</Delete>
<Delete>rtn_dat</Delete>
<Delete>key_beg_amt</Delete>
<Delete>key_beg_dat</Delete>
<Delete>key_dal_tag</Delete>
<Delete>key_eac_nbr</Delete>
<Delete>key_end_amt</Delete>
<Delete>key_end_dat</Delete>
<Delete>key_nxt_dat</Delete>
<Delete>key_nxt_nbr</Delete>
<Delete>key_nxt_tim</Delete>
<Delete>key_opr_typ</Delete>
<Delete>key_pag_cnt</Delete>
<Delete>key_pat_typ</Delete>
<Delete>key_pla_for</Delete>
<Delete>key_pre_dat</Delete>
<Delete>key_pre_nbr</Delete>
<Delete>key_pre_tim</Delete>
<Delete>key_pri_mod</Delete>
<Delete>key_rrc_cod</Delete>
<Delete>key_rrc_flg</Delete>
<Delete>key_spc_100</Delete>
</While>
<Set>ACC_RPT_CNT=ADD($ACC_RPT_CNT,$FLAG_CNT)</Set>
@@ -513,9 +552,9 @@
<Sentence>
UPDATE CAPCMBRECEIPT
SET RPT_STS='2',FIL_URL=?,FIN_TIM=?,GET_TM=?
WHERE ACC_NBR=? AND TRS_DAT=? AND RPT_STS='1'
WHERE ACC_NBR=? AND TRS_DAT=? AND RPT_STS='1' AND RTN_NUM =?
</Sentence>
<Fields>FIL_URL|FIN_TIM|GET_TM|ACC_NBR|TRS_DAT|</Fields>
<Fields>FIL_URL|FIN_TIM|GET_TM|ACC_NBR|TRS_DAT|RTN_NUM|</Fields>
</DynSentence>
@@ -834,11 +873,21 @@
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</If>
<ElseIf condition="ISNULL($ACT_FIL_ID)">
<Set>UPD_FLG=0</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</ElseIf>
<Exec func="PUB:DeleteFile" error="IGNORE">
<Arg name="FilNam" value="$FILE_NAME"/>
</Exec>
<Exec func="PUB:DeleteFile" error="IGNORE">
<Arg name="FilNam" value="STRCAT($FIL_DIR,$R_FILE_NAME)"/>
</Exec>
<!--更新账户回单信息-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPCMBHIJNL"/>
@@ -900,7 +949,7 @@
<Sentence>
SELECT ACC_NBR,TRS_DAT,YUR_REF,REF_NBR
FROM CAPCMBHIJNL
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_RPT_STS='0' AND YUR_REF!=' ' AND TRS_COD IN ('AGPY','AGOT')
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_RPT_STS='0' AND YUR_REF!=' ' AND TRS_COD IN ('AGPY','AGOT','AGSH') AND ROWNUM &lt;= 10
</Sentence>
<Fields>ACC_NBR|TRS_DAT|</Fields>
</DynSentence>
@@ -909,7 +958,7 @@
<Sentence>
SELECT COUNT(*) UNCONT
FROM CAPCMBHIJNL
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_RPT_STS='0' AND YUR_REF!=' ' AND TRS_COD IN ('AGPY','AGOT')
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_RPT_STS='0' AND YUR_REF!=' ' AND TRS_COD IN ('AGPY','AGOT','AGSH')
</Sentence>
<Fields>ACC_NBR|TRS_DAT|</Fields>
</DynSentence>
@@ -931,7 +980,36 @@
</Sentence>
<Fields>ACC_NBR|TRS_DAT|</Fields>
</DynSentence>
<Function name="_before">
<Process>
<Exec func="PUB:DumpETF"/>
<Set>LockKey=STRCAT($TXN_CD,$ACC_NBR)</Set>
<!-- 应用加锁,防止并发 -->
<Exec func="PUB:Lock" error="IGNORE">
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
<Arg name="TimOut" value="600" />
<Arg name="AutoUnlock" value="no" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=加锁失败</Set>
<Exit/>
</If>
<Set>IS_LOCKED=TRUE</Set>
</Process>
</Function>
<Function name="_after">
<Process>
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
<Exec func="PUB:UnLock" error="IGNORE">
<Arg name="RecKey" value="$LockKey" />
</Exec>
<Exec func="PUB:DumpETF"/>
</If>
</Process>
</Function>
<FlowCtrl>
<Delete>TRSP_CD</Delete>
<Delete>TRSP_MSG</Delete>
@@ -1150,10 +1228,10 @@
<DynSentence name="UPD_CAPCMBHIJNL">
<Sentence>
UPDATE CAPCMBHIJNL
SET BIL_RPT_STS='4',BIL_GET_TM=?,BIL_FIL_NAM=?,BIL_FIL_URL=?,BIL_FIL_ID=?
SET BIL_RPT_STS='4',BIL_GET_TM=?,BIL_FIL_NAM=?,BIL_FIL_URL=?,BIL_FIL_ID=?,BIL_PRT_URL=?
WHERE ACC_NBR=? AND TRS_DAT=? AND REF_NBR=? AND BIL_RPT_STS='1'
</Sentence>
<Fields>BIL_GET_TM|BIL_FIL_NAM|BIL_FIL_URL|BIL_FIL_ID|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
<Fields>BIL_GET_TM|BIL_FIL_NAM|BIL_FIL_URL|BIL_FIL_ID|BIL_PRT_URL|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPCMBJNLTOT">
@@ -1164,7 +1242,35 @@
</Sentence>
<Fields>ACC_NBR|TRS_DAT|</Fields>
</DynSentence>
<Function name="_before">
<Process>
<Exec func="PUB:DumpETF"/>
<Set>LockKey=STRCAT($TXN_CD,$ACC_NBR)</Set>
<!-- 应用加锁,防止并发 -->
<Exec func="PUB:Lock" error="IGNORE">
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
<Arg name="TimOut" value="600" />
<Arg name="AutoUnlock" value="no" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=加锁失败</Set>
<Exit/>
</If>
<Set>IS_LOCKED=TRUE</Set>
</Process>
</Function>
<Function name="_after">
<Process>
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
<Exec func="PUB:UnLock" error="IGNORE">
<Arg name="RecKey" value="$LockKey" />
</Exec>
<Exec func="PUB:DumpETF"/>
</If>
</Process>
</Function>
<FlowCtrl>
<Delete>TRSP_CD</Delete>
<Delete>TRSP_MSG</Delete>
@@ -1179,7 +1285,7 @@
</If>
<If condition="ISNULL($SND_TIME_INTERVAL)">
<Set>SND_TIME_INTERVAL=1</Set>
<Set>SND_TIME_INTERVAL=2</Set>
</If>
<Set>C_SND_TIME=CALCTIME(GETDATETIME(MMDDHHMISS),-,m,$SND_TIME_INTERVAL)</Set>
@@ -1246,6 +1352,7 @@
<Set>FIL_URL=$fileurl</Set>
<Set>FIN_TIM=$fintim</Set>
<Set>BIL_PRT_URL=$FIL_URL</Set>
<If condition="ISNULL($FIL_URL)">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询结果异常继续下一笔</Set>
@@ -1282,7 +1389,12 @@
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</If>
<ElseIf condition="ISNULL($BIL_FIL_ID)">
<Set>UPD_FLG=0</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</ElseIf>
<!--更新明细对账单信息-->
<Exec func="PUB:ExecSql" error="IGNORE">
+69 -3
View File
@@ -71,7 +71,29 @@
<ReadElement name="rtnmsg" ETF_name="rtnmsg" necessary="no" desc="返回信息 "/>
<ReadElement name="rtndat" ETF_name="rtndat" necessary="no" desc="打印任务编号"/>
</ReadElement>
<ReadElement name="ctnkeyz2" ETF_name="ctnkeyz2" necessary="no" desc="续传信息"/>
<ReadElement name="ctnkeyz2" necessary="no" desc="单记录 请求结果">
<ReadElement name="begamt" ETF_name="key_beg_amt" necessary="no" desc=" "/>
<ReadElement name="begdat" ETF_name="key_beg_dat" necessary="no" desc=" "/>
<ReadElement name="daltag" ETF_name="key_dal_tag" necessary="no" desc=" "/>
<ReadElement name="eacnbr" ETF_name="key_eac_nbr" necessary="no" desc=" "/>
<ReadElement name="endamt" ETF_name="key_end_amt" necessary="no" desc=" "/>
<ReadElement name="enddat" ETF_name="key_end_dat" necessary="no" desc=" "/>
<ReadElement name="nxtdat" ETF_name="key_nxt_dat" necessary="no" desc=" "/>
<ReadElement name="nxtnbr" ETF_name="key_nxt_nbr" necessary="no" desc=" "/>
<ReadElement name="nxttim" ETF_name="key_nxt_tim" necessary="no" desc=" "/>
<ReadElement name="oprtyp" ETF_name="key_opr_typ" necessary="no" desc=" "/>
<ReadElement name="pagcnt" ETF_name="key_pag_cnt" necessary="no" desc=" "/>
<ReadElement name="pattyp" ETF_name="key_pat_typ" necessary="no" desc=" "/>
<ReadElement name="plafor" ETF_name="key_pla_for" necessary="no" desc=" "/>
<ReadElement name="predat" ETF_name="key_pre_dat" necessary="no" desc=" "/>
<ReadElement name="prenbr" ETF_name="key_pre_nbr" necessary="no" desc=" "/>
<ReadElement name="pretim" ETF_name="key_pre_tim" necessary="no" desc=" "/>
<ReadElement name="primod" ETF_name="key_pri_mod" necessary="no" desc=" "/>
<ReadElement name="rrccod" ETF_name="key_rrc_cod" necessary="no" desc=" "/>
<ReadElement name="rrcflg" ETF_name="key_rrc_flg" necessary="no" desc=" "/>
<ReadElement name="spc100" ETF_name="key_spc_100" necessary="no" desc=" "/>
<AddItem name="ctnkeyz2" value="$key_eac_nbr" />
</ReadElement>
</ReadElement>
</ReadElement>
</Response>
@@ -83,7 +105,29 @@
<WriteElement name="CMS">
<Quote name="WriteHead"/>
<!-- 报文体 -->
<WriteElement name="body" ETF_name="ctn_keyz2" necessary="yes" desc="文件格式"/>
<Quote name="WriteHead"/>
<WriteElement name="body">
<WriteElement name="begamt" ETF_name="key_begamt" necessary="no" />
<WriteElement name="begdat" ETF_name="key_begdat" necessary="no" />
<WriteElement name="daltag" ETF_name="key_daltag" necessary="no" />
<WriteElement name="eacnbr" ETF_name="key_eacnbr" necessary="no" />
<WriteElement name="endamt" ETF_name="key_endamt" necessary="no" />
<WriteElement name="enddat" ETF_name="key_enddat" necessary="no" />
<WriteElement name="nxtdat" ETF_name="key_nxtdat" necessary="no" />
<WriteElement name="nxtnbr" ETF_name="key_nxtnbr" necessary="no" />
<WriteElement name="nxttim" ETF_name="key_nxttim" necessary="no" />
<WriteElement name="oprtyp" ETF_name="key_oprtyp" necessary="no" />
<WriteElement name="pagcnt" ETF_name="key_pagcnt" necessary="no" />
<WriteElement name="pattyp" ETF_name="key_pattyp" necessary="no" />
<WriteElement name="plafor" ETF_name="key_plafor" necessary="no" />
<WriteElement name="predat" ETF_name="key_predat" necessary="no" />
<WriteElement name="prenbr" ETF_name="key_prenbr" necessary="no" />
<WriteElement name="pretim" ETF_name="key_pretim" necessary="no" />
<WriteElement name="primod" ETF_name="key_primod" necessary="no" />
<WriteElement name="rrccod" ETF_name="key_rrccod" necessary="no" />
<WriteElement name="rrcflg" ETF_name="key_rrcflg" necessary="no" />
<WriteElement name="spc100" ETF_name="key_spc100" necessary="no" />
</WriteElement>
</WriteElement>
</Request>
@@ -98,7 +142,29 @@
<ReadElement name="rtnmsg" ETF_name="rtnmsg" necessary="no" desc="返回信息 "/>
<ReadElement name="rtndat" ETF_name="rtndat" necessary="no" desc="打印任务编号"/>
</ReadElement>
<ReadElement name="ctnkeyz2" ETF_name="ctnkeyz2" necessary="no" desc="续传信息"/>
<ReadElement name="ctnkeyz2" necessary="no" desc="单记录 请求结果">
<ReadElement name="begamt" ETF_name="key_beg_amt" necessary="no" desc=" "/>
<ReadElement name="begdat" ETF_name="key_beg_dat" necessary="no" desc=" "/>
<ReadElement name="daltag" ETF_name="key_dal_tag" necessary="no" desc=" "/>
<ReadElement name="eacnbr" ETF_name="key_eac_nbr" necessary="no" desc=" "/>
<ReadElement name="endamt" ETF_name="key_end_amt" necessary="no" desc=" "/>
<ReadElement name="enddat" ETF_name="key_end_dat" necessary="no" desc=" "/>
<ReadElement name="nxtdat" ETF_name="key_nxt_dat" necessary="no" desc=" "/>
<ReadElement name="nxtnbr" ETF_name="key_nxt_nbr" necessary="no" desc=" "/>
<ReadElement name="nxttim" ETF_name="key_nxt_tim" necessary="no" desc=" "/>
<ReadElement name="oprtyp" ETF_name="key_opr_typ" necessary="no" desc=" "/>
<ReadElement name="pagcnt" ETF_name="key_pag_cnt" necessary="no" desc=" "/>
<ReadElement name="pattyp" ETF_name="key_pat_typ" necessary="no" desc=" "/>
<ReadElement name="plafor" ETF_name="key_pla_for" necessary="no" desc=" "/>
<ReadElement name="predat" ETF_name="key_pre_dat" necessary="no" desc=" "/>
<ReadElement name="prenbr" ETF_name="key_pre_nbr" necessary="no" desc=" "/>
<ReadElement name="pretim" ETF_name="key_pre_tim" necessary="no" desc=" "/>
<ReadElement name="primod" ETF_name="key_pri_mod" necessary="no" desc=" "/>
<ReadElement name="rrccod" ETF_name="key_rrc_cod" necessary="no" desc=" "/>
<ReadElement name="rrcflg" ETF_name="key_rrc_flg" necessary="no" desc=" "/>
<ReadElement name="spc100" ETF_name="key_spc_100" necessary="no" desc=" "/>
<AddItem name="ctnkeyz2" value="$key_eac_nbr" />
</ReadElement>
</ReadElement>
</ReadElement>
</Response>
+361 -1
View File
@@ -425,7 +425,7 @@
</If>
<Exec func="PUB:InsertRecord" error="IGNORE"><!--登记招行临时表-->
<Arg name="TblNam" value="CAPICBCCURJNLTMP"/>
<Arg name="TblNam" value="CAPICBCCURJNL"/>
<Arg name="GrpNam" value="RD"/>
<Arg name="FldLst" value="account_no|trs_date|ACC_NAM|TM_SMP|"/>
</Exec>
@@ -458,4 +458,364 @@
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
<!-- 工行电子回单获取 -->
<Transaction code="FTP_ICBCRECEIPT" log_switch='1' timeout="3600" desc="工行电子回单SFTP获取">
<DynSentence name="QRY_CAPICBCRECEIPT_INF">
<Sentence>
SELECT FTP_STS FROM CAPICBCRECEIPT
WHERE TRS_DATE=? AND CORG_NO=?
</Sentence>
<Fields>TRS_DATE|CORG_NO|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPICBCRECEIPT_INF">
<Sentence>
UPDATE CAPICBCRECEIPT SET FTP_STS=?,TM_SMP =?
WHERE TRS_DATE=? AND CORG_NO=?
</Sentence>
<Fields>FTP_STS|TM_SMP|TRS_DATE|CORG_NO|</Fields>
</DynSentence>
<DynSentence name="QRY_CAPSFTPINF_INF">
<Sentence>
SELECT * FROM CAPSFTPINF
WHERE FTP_NAM='ICBCSFTP'
</Sentence>
</DynSentence>
<DynSentence name="UPD_CAPICBCJNLTOT">
<Sentence>
UPDATE CAPICBCJNLTOT
SET ACC_RPT_STS='1'
WHERE TRS_DATE=? AND ACC_RPT_STS='0' AND TOT_CNT!=0
</Sentence>
<Fields>TRS_DATE|</Fields>
</DynSentence>
<FlowCtrl>
<Delete>TRSP_CD</Delete>
<Delete>TRSP_MSG</Delete>
<Set>CORG_NO=ICBC</Set>
<Set>TRS_DATE=$TRS_DATE</Set>
<Set>CHK_DAT_TMP=GETDATE()</Set>
<Set>CHK_DAT=CALCDATE($CHK_DAT_TMP,-,d,1)</Set>
<If condition="ISNULL($TRS_DATE)">
<Set>TRS_DATE=$CHK_DAT</Set>
</If>
<Set>TM_SMP=GETDATETIME()</Set>
<!--查询当天SFTP获取文件结果-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPICBCRECEIPT_INF"/>
</Exec>
<If condition='~RetCod=2'>
<Set>CRE_TM=$TM_SMP</Set>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPICBCRECEIPT" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=登记汇总信息表失败</Set>
<Return/>
</If>
<Exec func="PUB:CommitWork"/>
</If>
<ElseIf condition='~RetCod=0'>
<If condition="IS_EQUAL_STRING($FTP_STS,S)">
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=当日文件已经成功获取</Set>
<Return/>
</If>
</ElseIf>
<Else>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库查询错误</Set>
<Return/>
</Else>
<!--查询FTP信息-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPSFTPINF_INF"/>
</Exec>
<If condition='~RetCod!=0'>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=数据库错误</Set>
<Return/>
</If>
<!-- 待提供 调用文件模糊匹配模块 获取文件名 并确定文件是否存在 -->
<Set>SHELL_NAME=STRCAT(/home/capadm/app/cap/etc/common/shell/,downloadICBC.sh)</Set>
<Exec func="PUB:SystemAndWait" error="IGNORE">
<Arg name="cmd" value="$SHELL_NAME"/>
<Arg name="FTP_IP" value="$FTP_IP"/>
<Arg name="FTP_PRT" value="$FTP_PRT"/>
<Arg name="FTP_USR" value="$FTP_USR"/>
<Arg name="FTP_DIR" value="$FTP_DIR"/>
<Arg name="LCL_DIR" value="$LCL_DIR"/>
<Arg name="FTP_PWD" value="$FTP_PWD"/>
<Arg name="TRS_DATE" value="$TRS_DATE"/>
</Exec>
<If condition="~RetCod=0">
<Set>FTP_STS=S</Set>
</If>
<Else>
<Set>FTP_STS=F</Set>
</Else>
<Set>TM_SMP=GETDATETIME()</Set>
<!--更新工行SFTP获取结果表-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPICBCRECEIPT_INF"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=登记明细信息表失败</Set>
<Exec func="PUB:RollbackWork" />
<Return/>
</If>
<!--更新当日所有已获取到流水信息的账户回单获取状态为成功待处理-->
<If condition="IS_EQUAL_STRING($FTP_STS,S)">
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPICBCJNLTOT"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=登记明细信息表失败</Set>
<Exec func="PUB:RollbackWork" />
<Return/>
</If>
</If>
<Exec func="PUB:CommitWork"/>
<Delete>TRS_DATE</Delete>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
<!-- 工行电子回单获取上传 -->
<Transaction code="GET_ICBCRECEIPT" log_switch='1' timeout="3600" desc="工行电子回单获取上传">
<Attributes>
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
</Attributes>
<DynSentence name="QRY_CAPICBCHIJNL_INF">
<Sentence>
SELECT ACCOUNT_NO,TRS_DATE,ONLY_SEQUENCE,T_JNL_NO
FROM CAPICBCHIJNL
WHERE ACCOUNT_NO=? AND TRS_DATE=? AND ACT_RPT_STS='0'
</Sentence>
<Fields>ACCOUNT_NO|TRS_DATE|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPICBCHIJNL">
<Sentence>
UPDATE CAPICBCHIJNL
SET ACT_RPT_STS='4',ACT_FIL_NAM=?,ACT_FIL_URL=?,ACT_FIL_ID=?,ACT_ULD_TM=?
WHERE ACCOUNT_NO=? AND TRS_DATE=? AND T_JNL_NO=?
</Sentence>
<Fields>ACT_FIL_NAM|ACT_FIL_URL|ACT_FIL_ID|ACT_ULD_TM|ACCOUNT_NO|TRS_DATE|T_JNL_NO|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPICBCJNLTOT">
<Sentence>
UPDATE CAPICBCJNLTOT
SET ACC_RPT_STS='4'
WHERE ACCOUNT_NO=? AND TRS_DATE=?
</Sentence>
<Fields>ACCOUNT_NO|TRS_DATE|</Fields>
</DynSentence>
<FlowCtrl>
<Delete>TRSP_CD</Delete>
<Delete>TRSP_MSG</Delete>
<Set>ACCOUNT_NO=$ACCOUNT_NO</Set>
<Set>TRS_DATE=$TRS_DATE</Set>
<Set>CHK_DAT_TMP=GETDATE()</Set>
<Set>CHK_DAT=CALCDATE($CHK_DAT_TMP,-,d,1)</Set>
<If condition="ISNULL($TRS_DATE)">
<Set>TRS_DATE=$CHK_DAT</Set>
</If>
<Set>UPD_FLG=1</Set>
<!--读取需要获取文件地址 -->
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPICBCHIJNL_INF"/>
<Arg name="CursorName" value="CURSOR_2"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=游标查询失败</Set>
<Return/>
</If>
<While>
<Exec func="PUB:FetchCursor" error="IGNORE">
<Arg name="CursorName" value="CURSOR_2"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CloseCursor" error="IGNORE">
<Arg name="CursorName" value="CURSOR_2"/>
</Exec>
<Break/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=循环游标失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</ElseIf>
<Delete>FIL_NAM</Delete>
<Delete>ACT_FIL_URL</Delete>
<Delete>ACT_FIL_ID</Delete>
<Delete>OUT_DAT</Delete>
<Exec func="PUB:DumpETF" />
<Set>TM_SMP=GETDATETIME()</Set>
<Set>ACT_ULD_TM=$TM_SMP</Set>
<Set>FIL_DATE=FMTDATE($TRS_DATE,0,4)</Set>
<Set>LIKE_TMP=*</Set>
<Set>FIL_DIR=STRCAT(/home/capadm/dat/receipt/icbc,/,$TRS_DATE,/)</Set>
<Set>ACT_FIL_NAM=STRCAT(16320,_,$ACCOUNT_NO,_,001,_,$ONLY_SEQUENCE,_,$FIL_DATE,_,$LIKE_TMP,.,pdf)</Set>
<Set>FIL_NAM=STRCAT($FIL_DIR,16320,_,$ACCOUNT_NO,_,001,_,$ONLY_SEQUENCE,_,$FIL_DATE,_,$LIKE_TMP,.,pdf)</Set>
<!-- 待提供 调用文件模糊匹配模块 获取文件名 并确定文件是否存在 -->
<Set>SHELL_NAME=STRCAT(/home/capadm/app/cap/etc/common/shell/,findname.sh)</Set>
<Exec func="PUB:SystemAndWait" error="IGNORE">
<Arg name="cmd" value="$SHELL_NAME"/>
<Arg name="FILE_PATH" value="$FIL_DIR"/>
<Arg name="KEYWORD" value="$ACT_FIL_NAM"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=模糊匹配文件</Set>
<Exec func="PUB:RollbackWork" />
<Return/>
</If>
<Set>FILE_NAME=$FILE_NAME</Set>
<Set>CHK_FIL_NAM=STRCAT($FIL_DIR,16320,_,$ACCOUNT_NO,_,001,_,$ONLY_SEQUENCE,_,$FIL_DATE,_,$LIKE_TMP)</Set>
<Exec func="PUB:OpenFile" error="IGNORE">
<Arg name="FileName" value="$CHK_FIL_NAM"/>
<Arg name="Mode" value="R"/>
</Exec>
<Exec func="PUB:ReadFile" error="IGNORE">
<Arg name="FieldName" value="R_FILE_NAME"/>
<Arg name="ReadLen" value="100"/>
</Exec>
<Exec func="PUB:CloseFile" error="IGNORE"/>
<Exec func="PUB:DeleteFile" error="IGNORE">
<Arg name="FilNam" value="$CHK_FIL_NAM"/>
</Exec>
<!--待提供 文件上传模块 并获取文件ID 单笔失败 循环继续-->
<Set>R_FILE_NAME=TRIM($R_FILE_NAME,both)</Set>
<Set>ACT_FIL_NAM=STRCAT($ACCOUNT_NO,_,$TRS_DATE,_,$ONLY_SEQUENCE,.,pdf)</Set>
<Exec error="IGNORE" func="PUB:CopyFile">
<Arg name="SrcFil" value="STRCAT($FIL_DIR,$R_FILE_NAME)"/>
<Arg name="ObjFil" value="STRCAT($FIL_DIR,$ACT_FIL_NAM)"/>
</Exec>
<If condition="~RetCod!=0">
<Set>UPD_FLG=0</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=文件匹配失败</Set>
<Continue/>
</If>
<Set>FILE_NAME=STRCAT($FIL_DIR,$ACT_FIL_NAM)</Set>
<Call package="UPLOAD_FILE" function="UPLOAD_FILE">
</Call>
<Exec func="PUB:DumpETF" />
<Set>ACT_FIL_URL=$OUT_DAT.FILE_URL</Set>
<Set>ACT_FIL_ID=$OUT_DAT.FILE_ID</Set>
<If condition="ISNULL($ACT_FIL_URL)">
<Set>UPD_FLG=0</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</If>
<ElseIf condition="ISNULL($ACT_FIL_ID)">
<Set>UPD_FLG=0</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
<Continue/>
</ElseIf>
<Exec func="PUB:DeleteFile" error="IGNORE">
<Arg name="FilNam" value="$FILE_NAME"/>
</Exec>
<Exec func="PUB:DeleteFile" error="IGNORE">
<Arg name="FilNam" value="STRCAT($FIL_DIR,$R_FILE_NAME)"/>
</Exec>
<!--更新账户回单信息-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPICBCHIJNL"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新数据失败</Set>
<Return/>
</If>
<Exec func="PUB:CommitWork"/>
</While>
<Exec func="PUB:CloseCursor" error="IGNORE"> <!-- 关闭游标 -->
<Arg name="CursorName" value="CURSOR_2"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=关闭游标失败</Set>
<Exec func="PUB:RollbackWork" />
<Return/>
</If>
<!--判断账户当日 回单是否已经全部上传成功,如果成功则更新状态为全部完结,否则不进行更新-->
<If condition="IS_EQUAL_STRING($UPD_FLG,1)">
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPICBCJNLTOT"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=登记明细信息表失败</Set>
<Exec func="PUB:RollbackWork" />
<Return/>
</If>
</If>
<Exec func="PUB:CommitWork"/>
<Delete>TRS_DATE</Delete>
<Delete>ACCOUNT_NO</Delete>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+1 -1
View File
@@ -146,7 +146,7 @@
<ReadElement name="telNo" ETF_name="tel_no" necessary="no" desc="交易柜员"/>
<ReadElement name="mdcardno" ETF_name="mdcardno" necessary="no" desc="管家卡号"/>
<AddItem name="ROOT.RDNUM" expression="ADD($ROOT.RDNUM,1)"/>
<AddItem name="T_JNL_NO" expression="STRCAT($ROOT.TF_SEQ_NO,$ROOT.RDNUM)" />
<AddItem name="T_JNL_NO" expression="STRCAT($ROOT.TF_SEQ_NO,ADDCHAR($ROOT.RDNUM,4,0,1))" />
</ReadGroupElement>
<If condition="IS_EQUAL_STRING($return_code,0)">
+88
View File
@@ -0,0 +1,88 @@
#!/bin/sh
#*****************************************************************
# 工行文件下载解压
# 日期 修改人 修改原因
# 2022.10.19 wanglei 创建
#文件下载,并解压到指定文件夹(如果日期文件夹不存在 则创建文件夹);
#
#*****************************************************************
if [ $# -lt 3 ]; then
echo "USAGE: downloadICBC.sh SERVER_IP,SERVER_PORT, SERVER_USER,REMOTE_DIR,LOCAL_DIR,OIDENTITY_FILE,DATE"
echo downloadCMB.sh 1:${1} 2:${2} 3:${3} 4:${4} 5:{5} 6:{6} 7:{7}
exit -1
fi
#Sftp地址
SERVER_IP=${1}
#Sftp端口
SERVER_PORT=${2}
#Sftp用户
SERVER_USER=${3}
#远程服务器下载文件目录
REMOTE_DIR=${4}
#本地服务器保存文件主目录
LOCAL_DIR=${5}${7}
#电子回单日期
DATE=${7}
#密钥
OIDENTITY_FILE=${6}
echo "SERVER_IP:[$SERVER_IP], SERVER_PORT:[$SERVER_PORT], SERVER_USER:[$SERVER_USER],REMOTE_DIR:[$REMOTE_DIR],LOCAL_DIR:[$LOCAL_DIR],OIDENTITY_FILE:[$OIDENTITY_FILE]"
#检查目录是否存在
if [ ! -d ${LOCAL_DIR} ]
then
echo "创建目录 ${LOCAL_DIR}"
mkdir -p ${LOCAL_DIR}
if [ $? -ne 0 ]
then
echo "创建目录错 ${LOCAL_DIR}"
exit -2
fi
fi
#进入目录
cd $LOCAL_DIR
echo "Starting to sftp..."
#下载文件到当前文件夹
sftp -oIdentityFile=${OIDENTITY_FILE} -oPort=${SERVER_PORT} ${SERVER_USER}@${SERVER_IP} <<EOF
lcd ${LOCAL_DIR}
cd ${REMOTE_DIR}
get ${DATE}*.zip
bye
EOF
#删除临时文件夹
rm -rf ../tmp/*
echo "删除文件"
#检查是否文件是否下载成功
file_num=$(find . -name "${DATE}*.zip" | wc -l)
if [ ${file_num} -le 0 ]
then
echo "工行电子回单文件下载失败 ${DATE}"
exit -2
fi
#解压文件
find . -name "${DATE}*.zip" -exec unzip -d ../tmp -o {} \;
echo "解压文件"
#移动pdf文件到当前目录
find ../tmp -name "*.pdf" -exec mv {} . \;
exit 0