Files
2021-01-12 23:30:48 +08:00

299 lines
13 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Tran>
<Transaction code="204033" log_switch="1" desc="代收代付每日交易机构清算汇总">
<!--查询代收代付总清算控制表-->
<DynSentence name="QRY_CAPDAYCTL">
<Sentence>
SELECT CLR_STS,
MERC_CLR_STS,
ORG_CLR_STS
FROM CAPDAYCTL
WHERE PSys_Id=?
AND Wrk_Dt=?
</Sentence>
<Fields>PSys_Id|STL_DT|</Fields>
</DynSentence>
<!--根据清算日期查询代收代付商户手续费表CAPSTLFEE-->
<DynSentence name="QRY_MERC_SUM_FEE">
<Sentence>
SELECT NVL(SUM(TO_MERC_FEE_AMT),0) TMP_MERC_FEE_AMT
FROM CAPSTLFEE
WHERE FEE_STL_DT=? AND ORD_TYP=?
</Sentence>
<Fields>STL_DT|ORD_TYP|</Fields>
</DynSentence>
<!--根据清算日期查询代收代付机构手续费表CAPAGTFEE-->
<DynSentence name="QRY_CORG_SUM_FEE">
<Sentence>
SELECT NVL(SUM(TO_CORG_FEE_AMT),0) TMP_CORG_FEE_AMT
FROM CAPAGTFEE
WHERE FEE_STL_DT=? AND ORD_TYP=?
</Sentence>
<Fields>STL_DT|ORD_TYP|</Fields>
</DynSentence>
<!--更新清分控制表-->
<DynSentence name="UpdDayCtl">
<Sentence>
UPDATE CAPDAYCTL
SET Clr_Sts=?,
End_Tm=?
WHERE PSys_Id=?
AND Wrk_Dt=?
</Sentence>
<Fields>Clr_Sts|End_Tm|PSys_Id|STL_DT</Fields>
</DynSentence>
<FlowCtrl>
<!--交易初始化-->
<!--Quote name="Init_Merc"/-->
<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>
<!--判断是否日切成功-->
<!--If condition="IS_NOEQUAL_STRING($STL_DT,$Ac_Dt)">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=系统未日切,不允许日切</Set>
<Return/>
</If-->
<!--判断该系统今天是否做过清算-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPDAYCTL"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=代收代付总清算控制表无记录</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=999999</Set>
<Set>Rsp_Msg=查询数据库系统错误</Set>
<Return/>
</ElseIf>
<Else>
<!--CLR_STS: 交易清算处理结果状态(0-预计 1-交易清算处理中,2-交易清算失败,3-交易清算成功)-->
<If condition="IS_EQUAL_STRING($CLR_STS,2)">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=交易清算不成功,不允许做该交易</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</If>
<!--CLR_STS: 交易清算处理结果状态(0-预计 1-交易清算处理中,2-交易清算失败,3-交易清算成功)-->
<ElseIf condition="IS_EQUAL_STRING($CLR_STS,3)">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=交易清算已经成功了,不允许做该交易</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</ElseIf>
<!--MERC_CLR_STS: 商户清算处理结果状态(0-预计 1-商户清算处理中,2-商户清算失败,3-商户清算成功)-->
<If condition="IS_NOEQUAL_STRING($MERC_CLR_STS,3)">
<Set>Rsp_Cd=333333</Set>
<Set>Rsp_Msg=商户清算未做或失败,不允许做该交易</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</If>
<!--ORG_CLR_STS: 机构清算处理结果状态(0-预计 1-机构清算处理中,2-机构清算失败,3-机构清算成功)-->
<If condition="IS_NOEQUAL_STRING($ORG_CLR_STS,3)">
<Set>Rsp_Cd=333333</Set>
<Set>Rsp_Msg=机构清算未做或失败,不允许做该交易</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
<Return/>
</If>
</Else>
<!-- 计算代收手续费开始 -->
<Set>ORD_TYP=11</Set>
<!--根据清算日期查询代收代付商户手续费表CAPSTLFEE-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_MERC_SUM_FEE"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=代收代付商户手续费表CAPSTLFEE无记录</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=查询代收代付商户手续费表CAPSTLFEE失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</ElseIf>
<Set>TO_REC_MERC_FEE_AMT=$TMP_MERC_FEE_AMT</Set> <!--所有代收商户代收手续费-->
<!--根据清算日期查询代收代付机构手续费表CAPAGTFEE-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CORG_SUM_FEE"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=代收代付机构手续费表CAPAGTFEE无记录</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=查询代收代付机构手续费表CAPAGTFEE失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</ElseIf>
<Set>TO_REC_CORG_FEE_AMT=$TMP_CORG_FEE_AMT</Set> <!--所有代收机构代收手续费-->
<!-- 计算代收手续费结束 -->
<!-- 计算代付手续费开始 -->
<Set>ORD_TYP=12</Set>
<!--根据清算日期查询代收代付商户手续费表CAPSTLFEE-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_MERC_SUM_FEE"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=代收代付商户手续费表CAPSTLFEE无记录</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=查询代收代付商户手续费表CAPSTLFEE失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</ElseIf>
<Set>TO_PAY_MERC_FEE_AMT=$TMP_MERC_FEE_AMT</Set> <!--所有代付商户代收手续费-->
<!--根据清算日期查询代收代付机构手续费表CAPAGTFEE-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CORG_SUM_FEE"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=代收代付机构手续费表CAPAGTFEE无记录</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=查询代收代付机构手续费表CAPAGTFEE失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</ElseIf>
<Set>TO_PAY_CORG_FEE_AMT=$TMP_CORG_FEE_AMT</Set> <!--所有代付机构代收手续费-->
<!-- 计算代付手续费结束 -->
<Set>TO_ALL_MERC_FEE_AMT=FADD($TO_REC_MERC_FEE_AMT,$TO_PAY_MERC_FEE_AMT,2)</Set> <!--商户手续费合计-->
<Set>TO_ALL_CORG_FEE_AMT=FADD($TO_REC_CORG_FEE_AMT,$TO_PAY_CORG_FEE_AMT,2)</Set> <!--机构手续费合计-->
<Set>TO_REC_DAY_PROFIT=FSUB($TO_REC_MERC_FEE_AMT,$TO_REC_CORG_FEE_AMT,2)</Set>
<Set>TO_PAY_DAY_PROFIT=FSUB($TO_PAY_MERC_FEE_AMT,$TO_PAY_CORG_FEE_AMT,2)</Set>
<Set>TO_DAY_PROFIT=FADD($TO_REC_DAY_PROFIT,$TO_PAY_DAY_PROFIT,2)</Set>
<!--代收代付日利润表-->
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPDAYPROFIT"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=999999</Set>
<Set>Rsp_Msg=插入代收代付日利润表CAPDAYPROFIT表失败</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=插入代收代付日利润表CAPDAYPROFIT表失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Return/>
</If>
<!--更新系统清分控制表-->
<!--0-预计 1-交易清算处理中,2-交易清算失败,3-交易清算成功-->
<Set>Clr_Sts=3</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=插入代收代付日利润表CAPDAYPROFIT表失败,且更新系统清分控制表失败</Set>
<Return/>
</If>
<Else>
<Set>Rsp_Cd=000000</Set>
<Set>Rsp_Msg=更新系统清分控制表</Set>
<Exec func="PUB:CommitWork"/> <!--提交事物-->
</Else>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
</FlowCtrl>
</Transaction>
</Tran>