明细对账单补偿机制
This commit is contained in:
@@ -65,7 +65,7 @@
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|TRS_DAT|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
|
||||
<DynSentence name="UPD_CAPCMBHIJNL_RFDSKNO"> <!--更新7日内隔日退款流水批次信息 -->
|
||||
<Sentence>
|
||||
UPDATE CAPCMBHIJNL A
|
||||
@@ -75,11 +75,11 @@
|
||||
NVL((SELECT DSK_NAM
|
||||
FROM CAPBATINF B
|
||||
WHERE B.CORG_DSK_NO=A.YUR_REF
|
||||
),' ')
|
||||
),' ')
|
||||
WHERE ACC_NBR=? AND TRS_DAT BETWEEN ? AND ? AND A.YUR_REF!=' ' AND TRS_COD='AGRD' AND DSK_NAM=' '
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|RF_TRS_DAT|TRS_DAT|</Fields>
|
||||
</DynSentence>
|
||||
</DynSentence>
|
||||
<FlowCtrl>
|
||||
<Delete>TRSP_CD</Delete>
|
||||
<Delete>TRSP_MSG</Delete>
|
||||
@@ -248,7 +248,7 @@
|
||||
<Return/>
|
||||
</If>
|
||||
|
||||
<Set>RF_TRS_DAT=CALCDATE($TRS_DAT,-,d,7)</Set>
|
||||
<Set>RF_TRS_DAT=CALCDATE($TRS_DAT,-,d,7)</Set>
|
||||
<!--根据小批号关联流水更新隔日退款交易大批号-->
|
||||
<Exec func="PUB:ExecSql" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="UPD_CAPCMBHIJNL_RFDSKNO"/>
|
||||
@@ -993,19 +993,19 @@
|
||||
<DynSentence name="UPD_CAPCMBHIJNL">
|
||||
<Sentence>
|
||||
UPDATE CAPCMBHIJNL
|
||||
SET BIL_RPT_STS='1',BIL_SND_TM=?,BIL_PRT_ID=?,BIL_TOT_CNT=?
|
||||
SET BIL_RPT_STS='1',BIL_SND_TM=?,BIL_SND_DT=?,BIL_PRT_ID=?,BIL_TOT_CNT=?
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND REF_NBR=? AND BIL_RPT_STS='0'
|
||||
</Sentence>
|
||||
<Fields>BIL_SND_TM|BIL_PRT_ID|BIL_TOT_CNT|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
<Fields>BIL_SND_TM|CHK_DAT_TMP|BIL_PRT_ID|BIL_TOT_CNT|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="UPD_CAPCMBHIJNL_FAIL">
|
||||
<Sentence>
|
||||
UPDATE CAPCMBHIJNL
|
||||
SET BIL_RPT_STS='5',BIL_SND_TM=?
|
||||
SET BIL_RPT_STS='5',BIL_SND_TM=?,BIL_SND_DT=?
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND REF_NBR=? AND BIL_RPT_STS='0'
|
||||
</Sentence>
|
||||
<Fields>BIL_SND_TM|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
<Fields>BIL_SND_TM|CHK_DAT_TMP|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="UPD_CAPCMBJNLTOT">
|
||||
@@ -2324,4 +2324,273 @@
|
||||
</FlowCtrl>
|
||||
</Transaction>
|
||||
|
||||
<!-- 补偿交易 招行代发明细对账单获取 并上传-->
|
||||
<Transaction code="REGET_CMBBILL" log_switch='1' timeout="3600" desc="招行明细对账单申请">
|
||||
<Attributes>
|
||||
<Attribute name="nodatabase" value="2"/> <!--数据库长连接-->
|
||||
</Attributes>
|
||||
|
||||
<!-- 待补充 申请后两分钟再进行文件查询下载-->
|
||||
<DynSentence name="QRY_CAPCMBHIJNL_INF">
|
||||
<Sentence>
|
||||
SELECT ACC_NBR,TRS_DAT,YUR_REF,REF_NBR,BIL_PRT_ID
|
||||
FROM CAPCMBHIJNL
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND (BIL_SND_TM <=?) AND BIL_RPT_STS='1'
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|TRS_DAT|C_SND_TIME|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="QRY_CAPCMBHIJNL_CNT">
|
||||
<Sentence>
|
||||
SELECT COUNT(*) UNCONT
|
||||
FROM CAPCMBHIJNL
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_RPT_STS='1'
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|TRS_DAT|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="UPD_CAPCMBHIJNL">
|
||||
<Sentence>
|
||||
UPDATE CAPCMBHIJNL
|
||||
SET BIL_RPT_STS='4',BIL_GET_TM=?,BIL_FIL_NAM=?,BIL_FIL_URL=?,BIL_FIL_ID=?,BIL_PRT_URL=?
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND REF_NBR=? AND BIL_RPT_STS='1'
|
||||
</Sentence>
|
||||
<Fields>BIL_GET_TM|BIL_FIL_NAM|BIL_FIL_URL|BIL_FIL_ID|BIL_PRT_URL|ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="UPD_CAPCMBJNLTOT">
|
||||
<Sentence>
|
||||
UPDATE CAPCMBJNLTOT
|
||||
SET BIL_STS='4'
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND BIL_STS='1'
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|TRS_DAT|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<DynSentence name="UPD_CAPCMBHIJNL_REBILSTS">
|
||||
<Sentence>
|
||||
UPDATE CAPCMBHIJNL
|
||||
SET BIL_RPT_STS='0'
|
||||
WHERE ACC_NBR=? AND TRS_DAT=? AND REF_NBR=? AND BIL_RPT_STS='1'
|
||||
</Sentence>
|
||||
<Fields>ACC_NBR|TRS_DAT|REF_NBR|</Fields>
|
||||
</DynSentence>
|
||||
|
||||
<Function name="_before">
|
||||
<Process>
|
||||
<Exec func="PUB:DumpETF"/>
|
||||
<Set>LockKey=STRCAT($TXN_CD,$ACC_NBR)</Set>
|
||||
<!-- 应用加锁,防止并发 -->
|
||||
<Exec func="PUB:Lock" error="IGNORE">
|
||||
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
|
||||
<Arg name="TimOut" value="600" />
|
||||
<Arg name="AutoUnlock" value="no" />
|
||||
</Exec>
|
||||
<If condition="~RetCod!=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=加锁失败</Set>
|
||||
<Exit/>
|
||||
</If>
|
||||
<Set>IS_LOCKED=TRUE</Set>
|
||||
</Process>
|
||||
</Function>
|
||||
<Function name="_after">
|
||||
<Process>
|
||||
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
|
||||
|
||||
<Exec func="PUB:UnLock" error="IGNORE">
|
||||
<Arg name="RecKey" value="$LockKey" />
|
||||
</Exec>
|
||||
<Exec func="PUB:DumpETF"/>
|
||||
</If>
|
||||
</Process>
|
||||
</Function>
|
||||
<FlowCtrl>
|
||||
<Delete>TRSP_CD</Delete>
|
||||
<Delete>TRSP_MSG</Delete>
|
||||
|
||||
<Quote name="Batch_Cfg_CMB"/>
|
||||
<Set>ACC_NBR=$ACC_NBR</Set>
|
||||
<Set>trs_dat=$trs_dat</Set>
|
||||
<Set>CHK_DAT_TMP=GETDATE()</Set>
|
||||
<Set>CHK_DAT=CALCDATE($CHK_DAT_TMP,-,d,1)</Set>
|
||||
<If condition="ISNULL($trs_dat)">
|
||||
<Set>trs_dat=$CHK_DAT</Set>
|
||||
</If>
|
||||
|
||||
<If condition="ISNULL($SND_TIME_INTERVAL)">
|
||||
<Set>SND_TIME_INTERVAL=2</Set>
|
||||
</If>
|
||||
|
||||
<Set>C_SND_TIME=CALCTIME(GETDATETIME(MMDDHHMISS),-,m,$SND_TIME_INTERVAL)</Set>
|
||||
|
||||
|
||||
<!--读取需要获取文件地址 -->
|
||||
<Exec func="PUB:OpenCursor" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="QRY_CAPCMBHIJNL_INF"/>
|
||||
<Arg name="CursorName" value="CURSOR_2"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod=-1">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=游标查询失败</Set>
|
||||
<Return/>
|
||||
</If>
|
||||
<While>
|
||||
<Exec func="PUB:FetchCursor" error="IGNORE">
|
||||
<Arg name="CursorName" value="CURSOR_2"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod=2">
|
||||
<Exec func="PUB:CloseCursor" error="IGNORE">
|
||||
<Arg name="CursorName" value="CURSOR_2"/>
|
||||
</Exec>
|
||||
<Break/>
|
||||
</If>
|
||||
<ElseIf condition="~RetCod!=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=循环游标失败</Set>
|
||||
<Exec func="PUB:RollbackWork"/>
|
||||
<Return/>
|
||||
</ElseIf>
|
||||
|
||||
<Delete>RESULTCODE</Delete>
|
||||
<Delete>RESULTMSG</Delete>
|
||||
<Delete>fileurl</Delete>
|
||||
<Delete>fintim</Delete>
|
||||
<Set>TM_SMP=GETDATETIME()</Set>
|
||||
<Set>BIL_GET_TM=$TM_SMP</Set>
|
||||
<Set>TX_COD=DCTASKID</Set><!--查询交易码-->
|
||||
<Set>reqid=STRCAT($TM_SMP,002,$YUR_REF)</Set>
|
||||
<Set>taskid=$BIL_PRT_ID</Set>
|
||||
<Set>userid=$PARA.USERID</Set>
|
||||
<Exec func="PUB:CallThirdComm" error="IGNORE">
|
||||
<Arg name="HTxnCd" value="$TX_COD"/>
|
||||
<Arg name="ObjSvr" value="SCMBPAY2"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod !=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=获取文件失败</Set>
|
||||
<Return/>
|
||||
</If>
|
||||
|
||||
<Set>RESULTCODE=$RESULTCODE</Set>
|
||||
<If condition="ISNULL($RESULTCODE)">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=$RESULTMSG</Set>
|
||||
<Return/>
|
||||
</If>
|
||||
<ElseIf condition="IS_NOEQUAL_STRING($RESULTCODE,SUC0000)">
|
||||
<If condition="IS_NOEQUAL_STRING($RESULTCODE,PRTASYNC)">
|
||||
<Exec func="PUB:ExecSql" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="UPD_CAPCMBHIJNL_REBILSTS"/>
|
||||
</Exec>
|
||||
<Exec func="PUB:CommitWork"/>
|
||||
</If>
|
||||
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=$RESULTMSG</Set>
|
||||
<Return/>
|
||||
</ElseIf>
|
||||
|
||||
<Set>FIL_URL=$fileurl</Set>
|
||||
<Set>FIN_TIM=$fintim</Set>
|
||||
<Set>BIL_PRT_URL=$FIL_URL</Set>
|
||||
<If condition="ISNULL($FIL_URL)">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=查询结果异常继续下一笔</Set>
|
||||
<Continue/>
|
||||
</If>
|
||||
|
||||
|
||||
<Set>FIL_DIR=STRCAT(/home/capadm/dat/receipt/cmb,/,$TRS_DAT,/,$ACC_NBR,/)</Set>
|
||||
<Set>BIL_FIL_NAM=STRCAT($ACC_NBR,_,$TRS_DAT,_,$YUR_REF,.,zip)</Set>
|
||||
<Set>SHELL_NAME=STRCAT(/home/capadm/app/cap/etc/common/shell/,downloadCMBBILL.sh)</Set>
|
||||
<Exec func="PUB:SystemAndWait" error="IGNORE">
|
||||
<Arg name="cmd" value="$SHELL_NAME"/>
|
||||
<Arg name="FILE_URL" value="$FIL_URL"/>
|
||||
<Arg name="FILE_PATH" value="$FIL_DIR"/>
|
||||
<Arg name="FILE_NAME" value="$BIL_FIL_NAM"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod!=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=下载文件失败</Set>
|
||||
<Exec func="PUB:RollbackWork" />
|
||||
<Return/>
|
||||
</If>
|
||||
|
||||
<Set>FILE_NAME=STRCAT($FIL_DIR,$BIL_FIL_NAM)</Set>
|
||||
|
||||
<Call package="UPLOAD_FILE" function="UPLOAD_FILE">
|
||||
</Call>
|
||||
|
||||
<Set>BIL_FIL_URL=$OUT_DAT.FILE_URL</Set>
|
||||
<Set>BIL_FIL_ID=$OUT_DAT.FILE_ID</Set>
|
||||
<If condition="ISNULL($BIL_FIL_URL)">
|
||||
<Set>UPD_FLG=0</Set>
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
|
||||
<Continue/>
|
||||
</If>
|
||||
<ElseIf condition="ISNULL($BIL_FIL_ID)">
|
||||
<Set>UPD_FLG=0</Set>
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=文件上传失败进行下一笔</Set>
|
||||
<Continue/>
|
||||
</ElseIf>
|
||||
|
||||
<!--更新明细对账单信息-->
|
||||
<Exec func="PUB:ExecSql" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="UPD_CAPCMBHIJNL"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod!=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=更新数据失败</Set>
|
||||
<Return/>
|
||||
</If>
|
||||
<Exec func="PUB:CommitWork"/>
|
||||
|
||||
|
||||
</While>
|
||||
<Exec func="PUB:CloseCursor" error="IGNORE"> <!-- 关闭游标 -->
|
||||
<Arg name="CursorName" value="CURSOR_2"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod!=0">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=关闭游标失败</Set>
|
||||
<Exec func="PUB:RollbackWork" />
|
||||
<Return/>
|
||||
</If>
|
||||
|
||||
<!--获取该账户未处理交易笔数-->
|
||||
<Exec func="PUB:ReadRecord" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="QRY_CAPCMBHIJNL_CNT"/>
|
||||
</Exec>
|
||||
<If condition='~RetCod!=0'>
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=数据库错误</Set>
|
||||
<Return/>
|
||||
</If>
|
||||
|
||||
<!--判断账户当日 回单是否已经发送成功,如果成功则更新状态为全部发送,否则不进行更新-->
|
||||
<If condition="IS_EQUAL_STRING($UNCONT,0)">
|
||||
<Exec func="PUB:ExecSql" error="IGNORE">
|
||||
<Arg name="SqlCmd" value="UPD_CAPCMBJNLTOT"/>
|
||||
</Exec>
|
||||
<If condition="~RetCod=-1">
|
||||
<Set>Rsp_Cd=80</Set>
|
||||
<Set>Rsp_Msg=登记明细信息表失败</Set>
|
||||
<Exec func="PUB:RollbackWork" />
|
||||
<Return/>
|
||||
</If>
|
||||
</If>
|
||||
|
||||
<Exec func="PUB:CommitWork"/>
|
||||
|
||||
<Delete>TRS_DAT</Delete>
|
||||
<Delete>ACC_NBR</Delete>
|
||||
|
||||
<!-- 交易成功 -->
|
||||
<Set>RSP_CD=00</Set>
|
||||
<Set>RSP_MSG=交易成功</Set>
|
||||
</FlowCtrl>
|
||||
</Transaction>
|
||||
</Tran>
|
||||
|
||||
Reference in New Issue
Block a user