Files
ctg-app-ui/cap/etc/chkpkg/PPD_CUP_IMPORT_PKG.XML
2021-01-12 22:04:24 +08:00

183 lines
8.2 KiB
XML

<?xml version="1.0" encoding='UTF-8'?>
<Package>
<!--交通对账:对账文件入库-->
<Function name="CUP_IMPORT">
<Output>MSG_CD|</Output>
<!-- 更新对账总控表(文件入库) -->
<DynSentence name="UPD_PWMTCKCT_IMPORT">
<Sentence>
UPDATE PWMTCKCT
SET CHK_FIL_STS = ?
WHERE
CHK_BAT_NO=?
</Sentence>
<Fields>CHK_FIL_STS|CHK_BAT_NO|</Fields>
</DynSentence>
<!--查询商户基本信息表 -->
<DynSentence name="QRY_URMTMINF_1">
<Sentence>
SELECT MERC_ID
FROM URMTMINF
WHERE MERC_STS ='0' AND MERC_TYP = '12'
</Sentence>
<Fields></Fields>
</DynSentence>
<!--查询对账明细表-->
<DynSentence name="QRY_PWMTCKEBPP_1">
<Sentence>
SELECT COUNT(*) TotCnt
FROM PWMTCKEBPP
WHERE CHK_BAT_NO = ?
</Sentence>
<Fields>CHK_BAT_NO|</Fields>
</DynSentence>
<Process>
<!--文件轮询入库-->
<Exec func="PUB:OpenCursor"> <!-- 开启游标 -->
<Arg name="SqlCmd" value="QRY_URMTMINF_1" />
<Arg name="CursorName" value="CURSOR_3" />
</Exec>
<If condition="~RetCod!=0"><!-- @msg 商户基本信息表,开启游标失败 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22150" />
</Exec>
<Return />
</If>
<While>
<Exec func="PUB:FetchCursor"> <!-- 读取下一条记录 -->
<Arg name="CursorName" value="CURSOR_3" />
<Arg name="ObjectName" value="URM3_REC" />
</Exec>
<If condition="~RetCod=2"> <!-- 查无数据 -->
<Break />
</If>
<ElseIf condition="~RetCod!=0"><!-- @msg 获取游标失败 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM25806" />
</Exec>
<Return />
</ElseIf>
<Set>FIL_NM1=STRCAT(CUPS_,$URM3_REC.MERC_ID,_,$CHK_FIL_DT)</Set>
<Set>FIL_NM2=STRCAT(MC,$URM3_REC.MERC_ID,SUBSTR($CHK_FIL_DT,3,6),_,GNETE)</Set>
<Set>~FILE_PATH1=STRCAT(GETENV(HWORKDIR),/dat/cap/recv/EBPP/,$FIL_NM1)</Set> <!-- 对账文件所存放的目录 -->
<!-- 对账文件入库 -->
<Exec func="PUB:ImportToDB" error="IGNORE">
<Arg name="FormatName" value="CUPCHKFMT1" /> <!-- 文件格式 -->
<Arg name="TableName" value="PWMTCKEBPP" /> <!-- 目标数据库 -->
<Arg name="FileName" value="~FILE_PATH1" /> <!-- 对账文件所在目录 -->
</Exec>
<Set>~FILE_PATH2=STRCAT(GETENV(HWORKDIR),/dat/cap/recv/EBPP/,$FIL_NM2)</Set> <!-- 对账文件所存放的目录 -->
<!-- 对账文件入库 -->
<Exec func="PUB:ImportToDB" error="IGNORE">
<Arg name="FormatName" value="CUPCHKFMT2" /> <!-- 文件格式 -->
<Arg name="TableName" value="PWMTCKEBPP" /> <!-- 目标数据库 -->
<Arg name="FileName" value="~FILE_PATH2" /> <!-- 对账文件所在目录 -->
</Exec>
</While>
<Exec func="PUB:CloseCursor"> <!-- 关闭游标 -->
<Arg name="CursorName" value="CURSOR_3" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 关闭游标失败 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM25804" />
</Exec>
<Return />
</If>
<!--查询代付交易记录-->
<Set>CHK_BAT_NO=$PWMTCKCT.CHK_BAT_NO</Set>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_PWMTCKEBPP_1" />
<Arg name="GrpNam" value="EBP_REC11" />
</Exec>
<!-- 对账文件没有交易记录,即当天无任何交易,此时直接修改CHK_FIL_STS为对账s+-成功状态 -->
<If condition="IS_EQUAL_STRING($EBP_REC11.TotCnt,0)">
<Set>CHK_FIL_STS=4</Set>
<!-- 更新对账总控表(获取文件) -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_PWMTCKCT_IMPORT" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新对账状态失败(银联)-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22482" />
</Exec>
<Return />
</If>
</If>
<Else>
<!-- 对账控制表所对应的字段 -->
<Set>CHK_FIL_STS=2</Set> <!-- 更新对账状态为2:文件已入库 -->
<!-- 更新对账总控表(获取文件) -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_PWMTCKCT_IMPORT" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新对账状态失败(银联)-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22482" />
</Exec>
<Return />
</If>
<Exec func="PUB:CommitWork" />
</Else>
<!--查询代付撤销交易记录-->
<Set>CHK_BAT_NO=$PWMTCKCT1.CHK_BAT_NO</Set>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_PWMTCKEBPP_1" />
<Arg name="GrpNam" value="EBP_REC13" />
</Exec>
<!-- 对账文件没有交易记录,即当天无任何交易,此时直接修改CHK_FIL_STS为对账s+-成功状态 -->
<If condition="IS_EQUAL_STRING($EBP_REC13.TotCnt,0)">
<Set>CHK_FIL_STS=4</Set>
<!-- 更新对账总控表(获取文件) -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_PWMTCKCT_IMPORT" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新对账状态失败(银联)-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22482" />
</Exec>
<Return />
</If>
</If>
<Else>
<!-- 对账控制表所对应的字段 -->
<Set>CHK_FIL_STS=2</Set> <!-- 更新对账状态为2:文件已入库 -->
<!-- 更新对账总控表(获取文件) -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_PWMTCKCT_IMPORT" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新对账状态失败(银联)-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22482" />
</Exec>
<Return />
</If>
<Exec func="PUB:CommitWork" />
</Else>
<!-- 交易成功 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM00000" />
</Exec>
</Process>
</Function>
</Package>