185 lines
7.1 KiB
XML
185 lines
7.1 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Tran>
|
|
<Transaction code="204032" log_switch="1" desc="代收代付交易机构清算汇总">
|
|
<Attributes>
|
|
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
|
|
</Attributes>
|
|
<Quote name="CORG_DYN_SQLSENTENCE"/>
|
|
|
|
<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>
|
|
|
|
<!--判断该系统今天是否做过清算-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_ORGSTS_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,3)">
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=交易清算已经成功了,不允许做该交易</Set>
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<Arg name="MsgCd" value="STL00000" />
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
</Else>
|
|
|
|
<!--更新系统清算控制表商户的状态为处理中-->
|
|
<Set>ORG_CLR_STS=1</Set>
|
|
<Set>ORG_STR_TM=GETDATETIME(HHMISS)</Set>
|
|
<Quote name="UpdCorgCapDayCtl"/>
|
|
|
|
<!--查询机构信息-->
|
|
<Exec func="PUB:OpenCursor" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CMMTORGN"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=查询机构信息错误</Set>
|
|
<Set>ORG_CLR_STS=2</Set>
|
|
<Quote name="UpdCorgCapDayCtl"/>
|
|
<Return/>
|
|
</If>
|
|
<While>
|
|
<Exec func="PUB:FetchCursor" error="IGNORE"/>
|
|
<If condition="~RetCod=2">
|
|
<If condition="AND(IS_NOEQUAL_STRING($Rsp_Cd,222222),IS_NOEQUAL_STRING($Rsp_Cd,000000))">
|
|
<!--更新系统清算控制表-->
|
|
<Set>ORG_CLR_STS=2</Set>
|
|
<Quote name="UpdCorgCapDayCtl"/>
|
|
<Return/>
|
|
</If>
|
|
<Else>
|
|
<Break/>
|
|
</Else>
|
|
</If>
|
|
<ElseIf condition="~RetCod<0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg="查询数据库错误"</Set>
|
|
<Set>ORG_CLR_STS=2</Set>
|
|
<Quote name="UpdCorgCapDayCtl"/>
|
|
<Exec func="PUB:CloseCursor"/>
|
|
<Return/>
|
|
</ElseIf>
|
|
<If condition="IS_EQUAL_STRING($CORG_NO,SZFS)"> <!-- 判断机构是否是结算中心 -->
|
|
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
|
<Arg name="HTxnCd" value="204034"/>
|
|
<Arg name="ObjSvr" value="OFRTSTL1"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<!-- @msg 农业银行卡通交易请求失败 -->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="PWM23064" />
|
|
</Exec>
|
|
</If>
|
|
<Continue />
|
|
</If>
|
|
<!--判断该机构结算方式-->
|
|
<!--STL_MOD 0:净额结算 1收支两条线-->
|
|
<!--0:净额结算-->
|
|
<If condition="INTCMP($STL_MOD,3,0)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构是净额结算类型机构)</Set>
|
|
<!--判断该机构是否到结算日-->
|
|
<!--机构并没有到达结算日-->
|
|
<If condition="INTCMP($STL_DT,1,$NEXT_STL_DT)">
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构还没有到达清算日)</Set>
|
|
<!--删除关键域避免重复-->
|
|
<Quote name="DeleCorgFields"/>
|
|
<Continue/>
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构已经到达了清算日)</Set>
|
|
|
|
<!--计算机构交易金额及手续费-->
|
|
<Quote name="CalcCorgAmtFee"/>
|
|
|
|
<!--删除关键域避免重复-->
|
|
<Quote name="DeleCorgFields"/>
|
|
|
|
</Else>
|
|
|
|
</If>
|
|
<!--1 收支两条线结算-->
|
|
<ElseIf condition="INTCMP($STL_MOD,3,1)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构是收支两条线类型机构)</Set>
|
|
<!--判断该机构是否到结算日-->
|
|
<!--机构并没有到达结算日-->
|
|
<If condition="INTCMP($STL_DT,1,$NEXT_STL_DT)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构还没有到达清算日)</Set>
|
|
|
|
<!--代收代付手续费到期日判断-->
|
|
<Quote name="IsStlMod1CorgFeeStlDate"/>
|
|
|
|
<!--删除关键域避免重复-->
|
|
<Quote name="DeleCorgFields"/>
|
|
|
|
</If>
|
|
<!--机构到达结算日-->
|
|
<Else>
|
|
|
|
<!--合作机构计算手续费及金额-->
|
|
<Quote name="CalcCorgAmtFee_BEN"/>
|
|
|
|
<!--代收代付手续费到期日判断-->
|
|
<Quote name="IsStlMod1CorgFeeStlDate"/>
|
|
|
|
<!--删除关键域避免重复-->
|
|
<Quote name="DeleCorgFields"/>
|
|
|
|
</Else>
|
|
|
|
</ElseIf>
|
|
|
|
</While>
|
|
<Exec func="PUB:CloseCursor" error="IGNORE"/>
|
|
<Exec func="PUB:CommitWork"/> <!--提交事物-->
|
|
|
|
<!--更新系统清算控制表-->
|
|
<Set>ORG_CLR_STS=3</Set>
|
|
<Set>ORG_END_TM=GETDATETIME(HHMISS)</Set>
|
|
<!--更新系统清分控制表-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UPD_ORGSTS_CAPDAYCTL"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=更新系统清分控制表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=交易成功</Set>
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<Arg name="MsgCd" value="STL00000" />
|
|
</Exec>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
</Tran>
|