267 lines
12 KiB
XML
267 lines
12 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Tran>
|
|
<Transaction code="HRO_CHK" log_switch='1' desc="HRO对账">
|
|
<DynSentence name="QRY_CAPTXNJNL">
|
|
<Sentence>
|
|
select DSK_NO DISK_NO,ORD_DT APPLY_DATE,AC_TYP ACCT_TYPE,AC_NO ACCT_NO,CUS_NAM ACCT_NAME,CAP_ORD_NO
|
|
TRANS_ID,TACC_DT,
|
|
MERC_ORD_NO REF_ID,CORG_JRN_NO BANK_REF_ID, TXN_AMT AMOUNT,BNK_TYP BANK_TYPE,POSTSCRIPT,
|
|
TAC_NO PAYER_ACCT_NO,TAC_NAM PAYER_ACCT_NAME, CORG_NO ORG_NO,'' REMARK ,
|
|
TXN_STS TRANS_STS,RSP_MSG RESP_MESSAGE
|
|
from CAPTXNJNL t where TACC_DT = '%s' AND TXN_STS = 'S' order by to_number(MERC_ORD_NO)
|
|
</Sentence>
|
|
<Fields>CHK_DAT|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="QRY_CAPHROCHK">
|
|
<Sentence>
|
|
SELECT
|
|
CHK_BAT_NO,CHK_FIL_STS
|
|
FROM CAPHROCHK
|
|
WHERE
|
|
RUT_CORG='HRO' AND COP_BUS_TYP = '12' AND CHK_FIL_DT = ?
|
|
</Sentence>
|
|
<Fields>CHK_DAT|</Fields>
|
|
</DynSentence>
|
|
<DynSentence name="SUM_CAPTXNJNL">
|
|
<Sentence>
|
|
select nvl(sum(succ_num),0) SUCC_COUNT,nvl(sum(succ_amt),0) SUCC_AMOUNT,
|
|
nvl(sum(fail_num),0) FAIL_COUNT,nvl(sum(fail_amt),0) FAIL_AMOUNT,
|
|
nvl(sum(TXN_AMT),0) TOTAL_AMOUNT,nvl(sum(TXN_NUM),0) TOTAL_COUNT
|
|
from (
|
|
select (case when TXN_STS in ('S','R') then 1 else 0 end) succ_num,
|
|
(case when TXN_STS in ('S','R') then TXN_AMT else 0 end) succ_amt,
|
|
(case when TXN_STS = 'F' then 1 else 0 end) fail_num,
|
|
(case when TXN_STS = 'F' then TXN_AMT else 0 end) fail_amt,
|
|
TXN_AMT,1 TXN_NUM
|
|
from CAPTXNJNL where ORD_DT = ?)
|
|
</Sentence>
|
|
<Fields>CHK_DAT|</Fields>
|
|
</DynSentence>
|
|
|
|
<DynSentence name="QRY_CAPTXNJNL_DOUBT">
|
|
<Sentence>
|
|
select count(1) DOUBT_NUM
|
|
from CAPTXNJNL where ORD_DT = ? and TXN_STS not in ('S','F','R')
|
|
</Sentence>
|
|
<Fields>CHK_DAT|</Fields>
|
|
</DynSentence>
|
|
|
|
<DynSentence name="UPD_CAPHROCHK">
|
|
<Sentence>
|
|
update CAPHROCHK set FIL_TOT_AMT = ? ,FIL_TOT_CNT = ?,FIL_SUCC_AMT = ?,FIL_SUCC_CNT = ?,
|
|
FIL_FAIL_AMT = ?,FIL_FAIL_CNT = ?,CHK_FIL_STS = '4',CHK_FIL_NM = ?,MD5 = ?,CHK_END_TM = ?
|
|
where CHK_BAT_NO = ?
|
|
</Sentence>
|
|
<Fields>
|
|
TOTAL_AMOUNT|TOTAL_COUNT|SUCC_AMOUNT|SUCC_COUNT|FAIL_AMOUNT|FAIL_COUNT|FILE_ID|MD5|CHK_END_TM|CHK_BAT_NO|
|
|
</Fields>
|
|
</DynSentence>
|
|
|
|
<Function name="_after">
|
|
<Process>
|
|
<If condition="IS_NOEQUAL_STRING($Rsp_Cd,00)">
|
|
<Set>EVENT.CHK_DT=$CHK_DAT</Set>
|
|
<Set>EVENT.ERR_MSG=$Rsp_Msg</Set>
|
|
<Set>EVT_TYP=RECONCILIATION_FAILURE</Set>
|
|
<Exec func="PUB:InvokeService" error="IGNORE">
|
|
<Arg name="ServiceName" value="PUSH_EVENT"/>
|
|
<Arg name='Mode' value='NOTIFY'/>
|
|
</Exec>
|
|
</If>
|
|
</Process>
|
|
</Function>
|
|
<FlowCtrl>
|
|
<Quote name="Init_CAP01"/> <!--交易初始化-->
|
|
|
|
<If condition="ISNULL($CHK_DAT)=1">
|
|
<Set>CHK_DAT=CALCDATE($CRE_DT,-,d,1)</Set>
|
|
</If>
|
|
<!--检查上日对账是否完成-->
|
|
|
|
<!--查询总控表,无记录则生成-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPHROCHK"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<!-- 获取用于组成对账批次号的序号 -->
|
|
<Exec func="PUB:GetUniqueNo" desc="获取序号">
|
|
<Arg name="Name" value="PWMSEQ"/>
|
|
<Arg name="SeqNam" value="ck_sequence"/>
|
|
<Arg name="Len" value="8"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:RollBackWork"/>
|
|
<Set>Rsp_Msg=获取批次号的序号失败</Set>
|
|
<Return/>
|
|
</If>
|
|
<Set>CHK_BAT_NO=STRCAT($CHK_DAT,$PWMSEQ)</Set><!-- 对账批次号 -->
|
|
<!-- 登记对账总控表,对账状态为 0 :待获取文件 -->
|
|
<Set>CAPHROCHK.CHK_BAT_NO=$CHK_BAT_NO</Set> <!-- 对账批次号 -->
|
|
<Set>CAPHROCHK.RUT_CORG=HRO</Set> <!-- 路径合作机构号 -->
|
|
<Set>CAPHROCHK.COP_BUS_TYP=12</Set> <!-- 合作业务类型 11:代收 12:代付 -->
|
|
<Set>CAPHROCHK.CHK_FIL_DT=$CHK_DAT</Set> <!-- 路径合作机构对账文件日期 -->
|
|
<Set>CAPHROCHK.FIL_DT_SEQ=01</Set> <!-- 对账文件日期序号 -->
|
|
<Set>CAPHROCHK.FILE_RCV_DT=$GWA.AC_DT</Set> <!-- 对账文件日期 -->
|
|
<Set>CAPHROCHK.CHK_TYP=1</Set> <!-- 对账类型 -->
|
|
<Set>CAPHROCHK.CHK_BEG_TM=GETDATETIME(HHMISS)</Set> <!-- 对账开始时间 -->
|
|
<Set>CAPHROCHK.AC_DT=$GWA.AC_DT</Set> <!-- 会计日期 -->
|
|
<Set>CAPHROCHK.CHK_DT=$CHK_DAT</Set> <!-- 对账日期 -->
|
|
<Set>CAPHROCHK.CHK_FIL_STS=0</Set> <!-- 对账状态 0:待获取文件 -->
|
|
<Set>CAPHROCHK.CHK_SRV=OCAPCHK1</Set> <!-- 服务名 -->
|
|
<Set>CAPHROCHK.CHK_TX_CD=$GWA.TX_CD</Set> <!-- 交易码 -->
|
|
<Set>CAPHROCHK.TM_SMP=GETDATETIME()</Set> <!-- 时间戳 -->
|
|
|
|
<Exec func="PUB:InsertRecord" error="IGNORE" desc="登记总控">
|
|
<Arg name="TblNam" value="CAPHROCHK"/>
|
|
<Arg name="GrpNam" value="CAPHROCHK"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:RollBackWork"/>
|
|
<Set>Rsp_Msg=登记对账总控表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg"><!-- @msg 对账批次不存在 -->
|
|
<Arg name="MsgCd" value="PWM90001"/>
|
|
</Exec>
|
|
<Return/>
|
|
</ElseIf>
|
|
<!--CHK_FLG:强制对账标志 Y-强制重新对账并生成文件 -->
|
|
<If condition="AND(IS_EQUAL_STRING($CHK_FIL_STS,4),IS_NOEQUAL_STRING($CHK_FLG,Y))">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=对账已完成,无法重复对账</Set>
|
|
<Return/>
|
|
</If>
|
|
<!--判断是否所有交易都为终态-->
|
|
<!--<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_CAPTXNJNL_DOUBT" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Msg=数据库异常 </Set>
|
|
<Return />
|
|
</If>
|
|
<If condition="IS_NOEQUAL_STRING($DOUBT_NUM,0)">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=存在非终态交易,无法生成对账文件</Set>
|
|
<Return />
|
|
</If>-->
|
|
<!--统计汇总信息-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="SUM_CAPTXNJNL"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=数据库异常</Set>
|
|
<Return/>
|
|
</If>
|
|
<!--生成文件-->
|
|
<Set>SRC_FIL_PATH=STRCAT(GETENV(WORKDIR),/dat/cap/chk/)</Set>
|
|
<Set>SRC_FIL_NAM=STRCAT($SRC_FIL_PATH,$CHK_DAT,/,$CHK_BAT_NO)</Set>
|
|
<Set>FIL_CMD=STRCAT("cd ",$SRC_FIL_PATH," ",\46\46," mkdir ",$CHK_DAT)
|
|
</Set>
|
|
<Exec func="PUB:SystemAndWait" error="IGNORE">
|
|
<Arg name="cmd" value="$FIL_CMD"/>
|
|
<Arg name="FIL_NM" value=""/>
|
|
</Exec>
|
|
|
|
<!--导出文件-->
|
|
<Exec func="PUB:ExportFromDB">
|
|
<Arg name="FormatName" value="HroFmt03"/>
|
|
<Arg name="FileName" value="$SRC_FIL_NAM"/>
|
|
<Arg name="TableName" value="CAPTXNJNL"/>
|
|
<Arg name="SqlName" value="QRY_CAPTXNJNL"/>
|
|
</Exec>
|
|
<If condition="~RetCod<0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=生成文件失败</Set>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="CAP88888"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--文件压缩-->
|
|
<Set>ZIP_FIL_NAME=STRCAT($SRC_FIL_NAM,.zip)</Set>
|
|
<Exec func="PUB:PARAM_GRP_GET" error="IGNORE">
|
|
<Arg name="ParamNam" value="CAPPARAMTER"/>
|
|
<Arg name="KeyNam" value="FIL_ZIP_PWD"/>
|
|
<Arg name="GrpNam" value="PWD"/>
|
|
</Exec>
|
|
<Set>FIL_PWD=$PWD.P_VALUES</Set>
|
|
<Exec func="CTG:zip">
|
|
<Arg name="srcFileName" value="$SRC_FIL_NAM"/>
|
|
<Arg name="zipFileName" value="$ZIP_FIL_NAME"/>
|
|
<Arg name="password" value="$FIL_PWD"/>
|
|
</Exec>
|
|
<!--判断文件是否存在-->
|
|
<Exec func="PUB:IsValidFile" error="IGNORE">
|
|
<Arg name="FileName" value="$ZIP_FIL_NAME"/>
|
|
</Exec>
|
|
<If condition="OR( INTCMP($FIL_BYT,3,0), INTCMP(~RetCod,4,0) )">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=文件压缩失败</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--生成MD5值-->
|
|
<Exec func="ENC:EncryptFilByMD5" error="IGNORE">
|
|
<Arg name="fileName" value="$ZIP_FIL_NAME"/>
|
|
<Arg name="nodeName" value="BSIG_VAL"/>
|
|
</Exec>
|
|
<Set>MD5=$BSIG_VAL</Set><!--文件校验值-->
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="AGW00000"/>
|
|
</Exec>
|
|
|
|
|
|
<!--签到,获取TOKEN-->
|
|
<!--获取TOKEN-->
|
|
<Exec func="PUB:PARAM_GRP_GET" error="IGNORE">
|
|
<Arg name="ParamNam" value="CAPPARAMTER"/>
|
|
<Arg name="KeyNam" value="FIL_TOKEN"/>
|
|
<Arg name="GrpNam" value="CLOUD_SHIELD"/>
|
|
</Exec>
|
|
<Set>FIL_TOKEN=$CLOUD_SHIELD.P_VALUES</Set>
|
|
<Exec func="PUB:PARAM_GRP_GET" error="IGNORE">
|
|
<Arg name="ParamNam" value="CAPPARAMTER"/>
|
|
<Arg name="KeyNam" value="FIL_TOKEN_URL"/>
|
|
<Arg name="GrpNam" value="URL"/>
|
|
</Exec>
|
|
<Set>FIL_TOKEN_URL=$URL.P_VALUES</Set>
|
|
|
|
<!--调用文件上传接口-->
|
|
<Exec func="CTG:uploadFile">
|
|
<Arg name="token" value="$FIL_TOKEN"/>
|
|
<Arg name="url" value="$FIL_TOKEN_URL"/>
|
|
<Arg name="filePath" value="$ZIP_FIL_NAME"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg="系统异常"</Set>
|
|
<Break/>
|
|
</If>
|
|
|
|
<Set>FILE_ID=$OUT_DAT.FILE_ID</Set>
|
|
<If condition="ISNULL($FILE_ID)=1">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg=送盘文件上传失败</Set>
|
|
<Return/>
|
|
</If>
|
|
<Set>CHK_END_TM=GETDATETIME(HHMISS)</Set> <!-- 对账结束时间 -->
|
|
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UPD_CAPHROCHK"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=80</Set>
|
|
<Set>Rsp_Msg="更新数据库失败"</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Set>Rsp_Cd=00</Set>
|
|
<Set>Rsp_Msg=交易成功</Set>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
</Tran>
|