修改批量sql,银行通道整批失败查询

This commit is contained in:
Alawn
2021-06-23 14:49:31 +08:00
parent 7f6f81c213
commit 148c949bb6
5 changed files with 142 additions and 50 deletions
+4
View File
@@ -168,6 +168,10 @@
</Process>
</Function>
<FlowCtrl>
<Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set>
<!--判断文件是否存在-->
<Exec func="PUB:IsValidFile" error="IGNORE">
+10 -6
View File
@@ -15,6 +15,8 @@
WHERE (A.BAT_STS='1' OR A.BAT_STS='3')
AND A.ORD_DT &gt; ?
AND A.CORG_NO =?
AND A.REG_ID = ?
AND A.NOD_ID = ?
AND A.PRO_JRL = '0'
AND (SND_TIME&lt;=?)
AND (A.GET_TIME &lt;=? OR A.GET_TIME IS NULL)
@@ -23,16 +25,18 @@
where ROWNUM = '1' )
FOR UPDATE skip locked
</Sentence>
<Fields>TOD_DT|CORG_NO|C_SND_TIME|C_GET_TIME|</Fields>
<Fields>TOD_DT|CORG_NO|REG_ID|NOD_ID|C_SND_TIME|C_GET_TIME|</Fields>
</DynSentence>
<DynSentence name="UpdPRO_JRL">
<Sentence>
UPDATE CAPBATINF SET PRO_JRL = '1' , GET_TIME = ? , REG_ID = ? , NOD_ID = ? WHERE CORG_NO = ? AND CORG_DSK_NO = ? AND AC_DT = ?
UPDATE CAPBATINF SET PRO_JRL = '1' , GET_TIME = ? WHERE CORG_NO = ? AND CORG_DSK_NO = ? AND AC_DT = ?
</Sentence>
<Fields>N_GET_TIME|REG_ID|NOD_ID|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
<Fields>N_GET_TIME|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
</DynSentence>
<FlowCtrl>
<Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set>
<!---test开始-->
<Set>@MSG.WSO=/do_success.jsp</Set>
<Set>IS_TEST=FALSE</Set>
@@ -63,8 +67,8 @@
<Return/>
</ElseIf>
<Set>N_GET_TIME=GETDATETIME(DDHHMISS)</Set>
<Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set>
<!--Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdPRO_JRL"/>
</Exec>
+9 -6
View File
@@ -12,6 +12,8 @@
WHERE A.BAT_STS = '0'
AND A.ORD_DT &gt; ?
AND A.PRO_JRL = '0'
AND A.REG_ID = ?
AND A.NOD_ID = ?
AND (A.SND_TIME&lt;=? OR A.SND_TIME IS NULL)
AND A.CORG_NO = ?
AND A.DSK_NAM = B.DSK_NAM AND B.Customer_Id = C.Customer_Id
@@ -19,13 +21,13 @@
where ROWNUM = '1' )
FOR UPDATE skip locked
</Sentence>
<Fields>TOD_DT|C_SND_TIME|CORG_NO|</Fields>
<Fields>TOD_DT|REG_ID|NOD_ID|C_SND_TIME|CORG_NO|</Fields>
</DynSentence>
<DynSentence name="UpdPRO_JRL">
<Sentence>
UPDATE CAPBATINF SET PRO_JRL = '1' , SND_TIME = ? , REG_ID = ? , NOD_ID = ?,CORG_SND_DT=? WHERE CORG_NO = ? AND CORG_DSK_NO = ? AND AC_DT = ?
UPDATE CAPBATINF SET PRO_JRL = '1' , SND_TIME = ?, CORG_SND_DT=? WHERE CORG_NO = ? AND CORG_DSK_NO = ? AND AC_DT = ?
</Sentence>
<Fields>N_SND_TIME|REG_ID|NOD_ID|CORG_SND_DT|CORG_NO|CORG_DSK_NO|AC_DT|</Fields>
<Fields>N_SND_TIME|CORG_SND_DT|CORG_NO|CORG_DSK_NO|AC_DT|</Fields>
</DynSentence>
<DynSentence name="UPD_CAPBATINF_Rsp_Msg">
<Sentence>
@@ -44,7 +46,8 @@
<Set>END_TM=$CRE_TM</Set>
<Set>TOD_DT=CALCDATE(GETDATE(),-,d,3)</Set>
<!--Set>TOD_DT=GETDATE()</Set-->
<Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set>
<While>
<Set>C_SND_TIME=SUBSTR(CALCTIME(GETDATETIME(MMDDHHMISS),-,m,10),3,8)</Set>
@@ -62,8 +65,8 @@
<Set>TMP_SND_TIME=GETDATETIME()</Set>
<Set>N_SND_TIME=SUBSTR($TMP_SND_TIME,7,8)</Set>
<Set>CORG_SND_DT=SUBSTR($TMP_SND_TIME,1,8)</Set>
<Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set>
<!--Set>REG_ID=@SYS.ics.sys.regionid</Set>
<Set>NOD_ID=@SYS.ics.sys.nodeid</Set-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdPRO_JRL"/>
</Exec>
+102 -24
View File
@@ -61,6 +61,22 @@
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="UPD_CAPTXNJNL_STSBYROUT"> <!--大小额渠道本代他交易银行名称或城市名称为空 则直接更新为失败 -->
<Sentence>
UPDATE CAPTXNJNL SET CORG_DSK_NO =' ',
TXN_CD = '204020',
ACC_VER_STS= 'S',
TXN_STS='F',
DSK_NAM_STS='4',
RSP_CD='80',
RSP_MSG='大小额渠道本代他交易银行名称或城市名称为空'
WHERE (TRIM(BANK_NAM) IS NULL OR TRIM(CITY) IS NULL) AND BNK_FLG='N' AND
DSK_NAM=? AND ROUT_FLG IN ('LARGE','SMALL') AND ORD_DT=? AND CORG_NO=? AND
TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0'
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
@@ -76,6 +92,15 @@
<Set>CORG_NO=CMB</Set>
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
<!--大小额渠道本带他交易异常数据更新为失败-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPTXNJNL_STSBYROUT"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新数据失败</Set>
<Return/>
</If>
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QryFourBat"/>
@@ -301,6 +326,8 @@
SET BAT_STS=?,
RSP_CD = ?,
RSP_MSG = ?,
S_RSP_CD = ?,
S_RSP_MSG = ?,
CORG_JRN_NO=?,
BAT_FAL_CNT =?,
BAT_FAL_AMT=?
@@ -310,7 +337,7 @@
AND CORG_DSK_NO=?
AND BAT_STS='0'
</Sentence>
<Fields>BAT_STS|RSP_CD|RSP_MSG|CORG_JRN_NO|BAT_FAL_CNT|BAT_FAL_AMT|ORD_DT|CORG_NO|CORG_DSK_NO|
<Fields>BAT_STS|RSP_CD|RSP_MSG|RSP_CD|RSP_MSG|CORG_JRN_NO|BAT_FAL_CNT|BAT_FAL_AMT|ORD_DT|CORG_NO|CORG_DSK_NO|
</Fields>
</DynSentence>
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
@@ -381,6 +408,9 @@
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
<Delete>RET_CODE</Delete>
<Delete>REQNBR</Delete>
<Exec func="PUB:DumpETF"/>
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="REC"/>
@@ -413,7 +443,7 @@
<Arg name="SqlCmd" value="QRYCAPTXNJNL"/>
</Exec>
<Set>reqid=STRCAT(GETDATETIME(),$CORG_DSK_NO)</Set>
<Quote name="Batch_Cfg_CMB"/>
<Quote name="Batch_Cfg_CMB"/>
<Set>userid=$PARA.USERID</Set>
<Set>TAC_NO=$TAC_NO</Set>
<!--超网代发工资-->
@@ -514,13 +544,13 @@
<!--接收标志 U:预计 0:已确认,待发送 1:发送处理完成 2:发送处理失败 3:接收处理中 4:接收处理完成 5:接收处理失败 6:送盘失败待回盘确认 9:有待处理记录-->
<Set>BAT_STS=3</Set> <!--成功-->
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=文件发送成功</Set>
<Set>RSP_MSG=文件发送超时</Set>
<Break/>
</Case>
<Case value="-1">
<Set>BAT_STS=3</Set>
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=文件发送成功</Set>
<Set>RSP_MSG=文件发送超时</Set>
<Break/>
</Case>
<Case value="0"> <!--查询成功-->
@@ -548,9 +578,9 @@
<Else>
<!--更新流水状态为发送处理成功-->
<Set>BAT_STS=1</Set>
<Set>Rsp_Cd=80</Set>
<Set>TRsp_Msg=交易成功</Set>
<Set>Rsp_Msg=SUBSTR($resultmsg,1,100)</Set>
<Set>Rsp_Cd=00</Set>
<Set>TRsp_Msg=批次提交成功</Set>
<Set>Rsp_Msg=$TRsp_Msg</Set>
<Set>TRSP_CD=$resultcode</Set>
</Else>
<Break/>
@@ -559,7 +589,7 @@
<!--第三方失败-->
<Set>BAT_STS=3</Set> <!--成功-->
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=交易发送成功</Set>
<Set>RSP_MSG=交易发送超时</Set>
</Default>
</Switch>
<If condition="~RetCod!=0">
@@ -589,7 +619,8 @@
<Delete>SUM</Delete>
<Delete>REC</Delete>
<Delete>rd</Delete>
<Delete>RET_CODE</Delete>
<Delete>REQNBR</Delete>
</FlowCtrl>
</Transaction>
@@ -656,12 +687,12 @@
?,
?,
ERR_COD,
ERR_TXT,
decode(TTXN_ST,'S','00',ERR_COD) rsp_cd,
decode(TTXN_ST,'S','交易成功',ERR_TXT) RSP_MSG,
ERR_DSP,
decode(TTXN_ST,'S','00',80) rsp_cd,
decode(TTXN_ST,'S','交易成功',ERR_DSP) RSP_MSG,
REQ_NBR CORG_JRN_NO
FROM CAPCMBPERD B
WHERE B.TRX_SEQ = A.TRX_SEQ
WHERE B.TRX_SEQ = A.TRX_SEQ AND B.YUR_REF=A.CORG_DSK_NO
)
WHERE
A.CORG_NO = 'CMB'
@@ -792,10 +823,10 @@
<Delete>TRSP_CD</Delete>
<Delete>TRSP_MSG</Delete>
<Delete>SUM</Delete>
<!--导入临时表数据之前删除临时表数据 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelCAPCMBPERD"/>
</Exec>
<Delete>REQNBR</Delete>
<Delete>RTNFLG</Delete>
<Delete>CORG_JRN_NO</Delete>
<Set>ORD_TYP=$OBAT_TYP</Set>
<Set>CORG_NO=CMB</Set>
<Quote name="Batch_Cfg_CMB"/>
@@ -924,17 +955,21 @@
<Return/>
</If>
<Exec func="PUB:CommitWork"/> <!--提交事务 -->
</If>
<If condition="IS_NOEQUAL_STRING($reqsta,FIN)">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=第三方业务未完成</Set>
</If>
<Else>
<Set>TACC_DT=GETDATE()</Set> <!--交易日期-->
<Set>TACC_TM=GETDATETIME(HHMISS)</Set> <!--交易时间-->
<If condition="IS_EQUAL_STRING($rtnflg,S)">
<Set>REQNBR=$REQNBR</Set> <!--交易时间-->
<Set>CORG_JRN_NO=TRIM($REQNBR,both)</Set> <!--批次查询返回流水号-->
<!--批次成功和批次失败且实例流水号不为空时都去查询明细信息-->
<If condition="OR(IS_EQUAL_STRING($rtnflg,S),AND(IS_EQUAL_STRING($rtnflg,F),NOT(ISNULL($CORG_JRN_NO))))">
<!--业务成功 开始明细查询-->
<Set>TX_COD=NTAGDINF</Set><!--查询交易明细-->
<Set>reqnbr=$CORG_JRN_NO</Set>
@@ -956,12 +991,16 @@
</Case>
<Case value="0">
<Exec func="PUB:DumpETF"/>
<!--导入临时表数据之前删除临时表数据 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelCAPCMBPERD"/>
</Exec>
<Set>req_nbr=$CORG_JRN_NO</Set>
<Set>yur_ref=$OCORG_DSK_NO</Set>
<Exec func="PUB:InsertRecord"><!--登记招行临时表-->
<Arg name="TblNam" value="CAPCMBPERD"/>
<Arg name="GrpNam" value="ntagcdtly1"/>
<Arg name="FldLst" value="req_nbr|"/>
<Arg name="FldLst" value="req_nbr|yur_ref|"/>
</Exec>
<If condition="~RetCod!=0">
<Return/>
@@ -1027,7 +1066,7 @@
</If>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=交易成功</Set>
<Set>Rsp_Msg=批次处理完成</Set>
<Set>BAT_STS=4</Set> <!-- 接收处理完成 -->
<!--更新批次信息 -->
@@ -1056,7 +1095,7 @@
</If>
<!--接收标志 U:预计 0:已确认,待发送 1:发送处理完成 2:发送处理失败 3:接收处理中 4:接收处理完成 5:接收处理失败 9:有待处理记录-->
<Set>BAT_STS=2</Set>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=交易整批处理失败</Set>
<Set>BAT_SUC_AMT=0</Set>
<Set>BAT_SUC_CNT=0</Set>
@@ -1112,7 +1151,7 @@
<Delete>rep_num</Delete>
<Delete>ntagdrfdz1_NUM</Delete>
<!--读取参数配置 -->
<Quote name="Batch_Cfg_CMB"/>
<Quote name="Batch_Cfg_CMB"/>
<!--获取序号 -->
<Quote name="GET_CUP_BAT_NO"/>
<Set>CORG_DSK_NO=STRCAT(GETDATETIME(),$CORG_DSK_NO)</Set>
@@ -1257,4 +1296,43 @@
</FlowCtrl>
</Transaction>
<Transaction code="TESTNTAGTLS_CMB" log_switch='1' desc="NTAGTLS2">
<FlowCtrl>
<Quote name="Batch_Cfg_CMB"/>
<Set>TX_COD=NTAGTLS2</Set><!--查询交易码-->
<Set>reqid=STRCAT(GETDATETIME(),000000)</Set>
<Set>userid=$PARA.USERID</Set>
<Set>buscod=N03020</Set>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="NTAGTLS2"/>
<Arg name="ObjSvr" value="SCMBPAY1"/>
</Exec>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
<Transaction code="TESTNTAGDINF_CMB" log_switch='1' desc="NTAGDINF">
<FlowCtrl>
<!--读取参数配置 -->
<Quote name="Batch_Cfg_CMB"/>
<Set>TX_COD=NTAGDINF</Set><!--查询交易码-->
<Set>reqid=STRCAT(GETDATETIME(),000000)</Set>
<Set>userid=$PARA.USERID</Set>
<Set>reqnbr=$reqnbr</Set>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="NTAGDINF"/>
<Arg name="ObjSvr" value="SCMBPAY1"/>
</Exec>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+17 -14
View File
@@ -279,6 +279,8 @@
SET BAT_STS=?,
RSP_CD = ?,
RSP_MSG = ?,
S_RSP_CD = ?,
S_RSP_MSG = ?,
CORG_JRN_NO=?,
BAT_FAL_CNT =?,
BAT_FAL_AMT=?
@@ -288,7 +290,7 @@
AND CORG_DSK_NO=?
AND BAT_STS='0'
</Sentence>
<Fields>BAT_STS|RSP_CD|RSP_MSG|CORG_JRN_NO|BAT_FAL_CNT|BAT_FAL_AMT|ORD_DT|CORG_NO|CORG_DSK_NO
<Fields>BAT_STS|RSP_CD|RSP_MSG|RSP_CD|RSP_MSG|CORG_JRN_NO|BAT_FAL_CNT|BAT_FAL_AMT|ORD_DT|CORG_NO|CORG_DSK_NO
</Fields>
</DynSentence>
@@ -492,14 +494,14 @@
<Set>TRSP_CD=$TRSP_CD</Set>
<If condition="INTCMP($TRSP_CD,1,0)"> <!--错误码小于0时 默认为疑账处理-->
<Set>BAT_STS=3</Set>
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=批次已发送</Set>
<Set>RSP_CD=$TRSP_CD</Set>
<Set>RSP_MSG=SUBSTR($TRSP_MSG,1,100)</Set>
<Break/>
</If>
<Else>
<Set>BAT_STS=2</Set>
<Set>RSP_CD=$TRSP_CD</Set>
<Set>RSP_MSG=$TRSP_MSG</Set>
<Set>RSP_MSG=SUBSTR($TRSP_MSG,1,100)</Set>
<Set>BAT_FAL_CNT=$BAT_ORN_CNT</Set>
<Set>BAT_FAL_AMT=$BAT_ORN_AMT</Set>
<!--更新流水状态为处理-->
@@ -515,8 +517,8 @@
</Case>
<Case value="0"> <!--查询成功-->
<Set>SMS_FLAG=0</Set><!-- 取消发送预警短信 -->
<Case value="0"> <!-- 成功 -->
<Set>SMS_FLAG=0</Set> <!-- 取消发送预警短信 -->
<!--更新流水状态为发送处理成功-->
<Set>BAT_STS=1</Set>
<Set>Rsp_Cd=$TRsp_Cd</Set>
@@ -773,10 +775,7 @@
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="rd"/>
</Exec>
<!--导入临时表数据之前删除临时表数据 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelCAPICBCPERD" />
</Exec>
<Exec func="PUB:DumpETF" />
<Set>ORD_TYP=$OBAT_TYP</Set>
<Quote name="Batch_Cfg_ICBC" />
@@ -920,7 +919,7 @@
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
<Break/>
</If>
</ElseIf>
</ElseIf>
<Else> <!--其他错误-->
<Set>BAT_STS=5</Set>
<!--更新批次信息-->
@@ -937,6 +936,10 @@
<Break/>
</Case>
<Case value="0">
<!--导入临时表数据之前删除临时表数据 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelCAPICBCPERD" />
</Exec>
<Set>SMS_FLAG=0</Set> <!--取消短信告警-->
<Exec func="PUB:InsertRecord"><!--登记工行临时表-->
<Arg name="TblNam" value="CAPICBCPERDTMP" />
@@ -1101,12 +1104,12 @@
<Switch expression="~RetCod">
<Case value="0">
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=成功</Set>
<Set>Rsp_Msg=心跳检查成功</Set>
<Break/>
</Case>
<Case value="3">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=失败</Set>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=心跳检查成功</Set>
<Break/>
</Case>
<Default> <!-- 告警 需要调用短信预警函数 -->