Files
2021-02-02 13:54:05 +08:00

161 lines
6.9 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Tran>
<Transaction code="204030" log_switch="1" desc="代收代付交易清分总控">
<!--把流水中的记录导入到明细表中-->
<DynSentence name="TxnJnlInsStlDtl">
<Sentence>
INSERT INTO CAPSTLDTL(JRN_NO,TXN_CD,TXN_TYP,AC_DT,TXN_MOD,CORG_TXN_MOD,TXN_TM,BUS_TYP,MERC_ID,MERC_TYP,MERC_NAM,PAY_TYP
,ORD_TYP,ORD_DT,ORD_TM,ORD_DT_TM,CYC_CD,AC_TYP,AC_NO,CRD_NO,BNK_TYP,CRD_FLG,ISS_ORG_NO,TXN_AMT,REF_AMT,LBNK_NO,TAC_TYP
,TAC_NO,CORG_MERC_ID,CORG_NO,COP_BUS_TYP,CORG_NO_NM,ORG_NO,TTXN_CD,TACC_DT,TACC_TM,OTACC_DT,TSTL_DT,TSTL_CYC_CD,TSTL_AMT,TXN_STS,ORN_JRN_NO
,MERC_FEE_CLR_FLG,MERC_FEE_CLR_DT,MERC_CLR_FLG,MERC_CLR_DT,MERC_FEE_MOD,MERC_FEE_CAL_MTH,MERC_FEE_DT,MERC_FEE_AMT,MERC_STL_AMT
,CORG_FEE_CLR_FLG,CORG_FEE_CLR_DT,CORG_CLR_FLG,CORG_CLR_DT,CORG_FEE_MOD,CORG_FEE_CAL_MTH,CORG_FEE_DT,CORG_FEE_AMT,CORG_STL_AMT
,PRO_FEE,STL_STS,STL_DT,TM_SMP,RSV_FLD1,RSV_FLD2,RSV_FLD3)
SELECT JRN_NO,TXN_CD,TXN_TYP,AC_DT,TXN_MOD,CORG_TXN_MOD,TXN_TM,BUS_TYP,MERC_ID,MERC_TYP,MERC_NAM,PAY_TYP
,ORD_TYP,ORD_DT,ORD_TM,ORD_DT_TM,CYC_CD,AC_TYP,AC_NO,CRD_NO,BNK_TYP,CRD_FLG,ISS_ORG_NO,TXN_AMT,REF_AMT,LBNK_NO,TAC_TYP
,TAC_NO,CORG_MERC_ID,CORG_NO,COP_BUS_TYP,CORG_NO_NM,ORG_NO,TTXN_CD,TACC_DT,TACC_TM,OTACC_DT,TSTL_DT,TSTL_CYC_CD,TSTL_AMT,TXN_STS,ORN_JRN_NO
,MERC_FEE_CLR_FLG,MERC_FEE_CLR_DT,MERC_CLR_FLG,MERC_CLR_DT,MERC_FEE_MOD,MERC_FEE_CAL_MTH,MERC_FEE_DT,MERC_FEE_AMT,MERC_STL_AMT
,CORG_FEE_CLR_FLG,CORG_FEE_CLR_DT,CORG_CLR_FLG,CORG_CLR_DT,CORG_FEE_MOD,CORG_FEE_CAL_MTH,CORG_FEE_DT,CORG_FEE_AMT,CORG_STL_AMT
,PRO_FEE,STL_STS,STL_DT,TM_SMP,RSV_FLD1,RSV_FLD2,RSV_FLD3
FROM CAPTXNJNL
WHERE TXN_TYP='N'
AND (PAY_TYP='11' OR PAY_TYP='12')
AND (ORD_TYP='11' OR ORD_TYP='12')
AND BUS_TYP='CAP01'
AND (TXN_CD='204010' OR TXN_CD='204015' OR TXN_CD='204020')
AND TXN_STS='S'
AND ORD_DT=?
</Sentence>
<Fields>Txn_Dt|</Fields>
</DynSentence>
<!--查询代收代付总清算控制表-->
<DynSentence name="QryDayCtl">
<Sentence>
SELECT Clr_Sts
FROM CAPDAYCTL
WHERE PSys_Id=?
AND Wrk_Dt=?
</Sentence>
<Fields>PSys_Id|STL_DT|</Fields>
</DynSentence>
<!--更新清分控制表-->
<DynSentence name="UpdDayCtl">
<Sentence>
UPDATE CAPDAYCTL
SET Clr_Sts=?,
End_Tm=?,
MERC_CLR_STS=?,
ORG_CLR_STS=?
WHERE PSys_Id=?
AND Wrk_Dt=?
</Sentence>
<Fields>Clr_Sts|End_Tm|MERC_CLR_STS|ORG_CLR_STS|PSys_Id|STL_DT</Fields>
</DynSentence>
<FlowCtrl>
<Set>AC_DT=$GWA.AC_DT</Set>
<Exec func="PUB:IsExistNode" error="IGNORE">
<Arg name="FieldName" value="STL_DT"/>
</Exec>
<!--存在-->
<If condition="~RetCod=1">
<Set>STL_DT=$STL_DT</Set>
</If>
<Else>
<Set>STL_DT=$AC_DT</Set>
</Else>
<Set>TXN_DT=$STL_DT</Set>
<!--判断该系统今天是否做过清分-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryDayCtl"/>
</Exec>
<If condition="~RetCod=0">
<If condition="IS_EQUAL_STRING($Clr_Sts,3)">
<Set>Rsp_Cd=333333</Set>
<Set>Rsp_Msg=该系统清分已做</Set>
<Exec func="PUB:GWAAddMsg">
<!-- @msg 该系统清分已做-->
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</If>
<ElseIf condition="IS_EQUAL_STRING($Clr_Sts,1)">
<Set>Rsp_Cd=111111</Set>
<Set>Rsp_Msg=该系统清分正在处理</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</ElseIf>
</If>
<ElseIf condition="~RetCod!=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=查询数据库系统错误</Set>
<Return/>
</ElseIf>
<Else>
<!--插入清分控制表-->
<!--交易清算处理结果状态 -->
<!--0-预计 1-交易清算处理中,2-交易清算失败,3-交易清算成功-->
<Set>Clr_Sts=1</Set>
<Set>Wrk_Dt=$STL_DT</Set>
<Set>Str_Tm=GETDATETIME(HHMISS)</Set>
<Set>MERC_CLR_STS=0</Set>
<Set>ORG_CLR_STS=0</Set>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPDAYCTL"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=999999</Set>
<Set>Rsp_Msg=插入表CAPDAYCTL失败</Set>
<Return/>
</If>
<Else>
<Set>Rsp_Cd=000000</Set>
<Set>Rsp_Msg=插入表CAPDAYCTL成功</Set>
</Else>
</Else>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="TxnJnlInsStlDtl"/>
</Exec>
<If condition="IS_EQUAL_STRING(~RetCod,2)">
<Set>Rsp_Cd=000000</Set>
<Set>Rsp_Msg=清分明细表无数据</Set>
</If>
<ElseIf condition="~RetCod != 0">
<Set>Rsp_Cd=999999</Set>
<Set>Rsp_Msg=增量插入清分明细表失败</Set>
<!--更新系统清分控制表-->
<!--0-预计 1-交易清算处理中,2-交易清算失败,3-交易清算成功-->
<Set>Clr_Sts=2</Set>
<Set>End_Tm=GETDATETIME(HHMISS)</Set>
<!--更新系统清分控制表-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdDayCtl"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=999999</Set>
<Set>Rsp_Msg=增量插入清分明细表失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</ElseIf>
<Else>
<Set>Rsp_Cd=000000</Set>
<Set>Rsp_Msg=增量插入清分明细表成功</Set>
</Else>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
</FlowCtrl>
</Transaction>
</Tran>