更新代码

This commit is contained in:
Alawn
2021-03-12 18:43:58 +08:00
parent 0f191be4d9
commit d5ba09e84e
15 changed files with 1380 additions and 2224 deletions
+48 -98
View File
@@ -89,16 +89,17 @@
<DynSentence name="UpdSumlmtrlr">
<Sentence>
UPDATE SUMLMTRLR
SET DAY_AMT= DAY_AMT - %s/100,
MTH_AMT = MTH_AMT - %s/100,
YAR_AMT = YAR_AMT - %s/100,
SET DAY_AMT= DAY_AMT - %s,
MTH_AMT = MTH_AMT - %s,
YAR_AMT = YAR_AMT - %s,
DAY_CNT = DAY_CNT - %s,
MTH_CNT = MTH_CNT - %s,
YAR_CNT = YAR_CNT - %s
WHERE ID=?
</Sentence>
<Fields>ORN_AMT|ORN_AMT|ORN_AMT|ORN_AMT|ORN_AMT|ORN_AMT|MERC_ID|</Fields>
<Fields>ORN_AMT|ORN_AMT|ORN_AMT|ORN_CNT|ORN_CNT|ORN_CNT|MERC_ID|</Fields>
</DynSentence>
<Function name="_after">
<Process>
<If condition="IS_EQUAL_STRING($SUMLMTRLR_FALG,1)">
@@ -115,12 +116,14 @@
</If>
</If>
<If condition="IS_NOEQUAL_STRING($Rsp_Cd,00)">
<Set>EVENT.DSK_NO=$DSK_NAM</Set>
<If condition="ISNULL($Rsp_Msg)">
<Set>Rsp_Msg=接入批次异常</Set>
<If condition="ISNULL($EVT_TYP)=1">
<Set>EVENT.DSK_NO=$DSK_NAM</Set>
<If condition="ISNULL($Rsp_Msg)">
<Set>Rsp_Msg=接入批次异常</Set>
</If>
<Set>EVENT.ERR_MSG=STRCAT($Rsp_Msg,(,$Rsp_Cd,),$ERR_MSG)</Set>
<Set>EVT_TYP=EVT_DISK_PROC_FAILURE</Set>
</If>
<Set>EVENT.ERR_MSG=STRCAT($Rsp_Msg,$ERR_MSG)</Set>
<Set>EVT_TYP=EVT_DISK_PROC_FAILURE</Set>
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="PUSH_EVENT"/>
</Exec>
@@ -151,7 +154,7 @@
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Cd=05</Set>
<Set>Rsp_Msg=文件解析失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
@@ -163,7 +166,7 @@
<!--判断接口送的与文件上送的支付地抬头、客户编号是否相同-->
<If condition="OR(IS_NOEQUAL_STRING($SUM.CUSTOMER_ID,$CUSTOMER_ID),IS_NOEQUAL_STRING($SUM.TITLE_ID,$TITLE_ID))">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Cd=30</Set>
<Set>Rsp_Msg=文件头上送参数与接口上送参数不一致</Set>
<Return/>
</If>
@@ -181,9 +184,9 @@
<Set>MERC_ID=$MERC_ID</Set>
<Set>TXN_AMT1=AMTPOWER($ORN_AMT,2)</Set>
<!--客户批量限额判断-->
<Call package="CEL" function="MERC_AMT_BAT_QTM_VERIFY2">
<Call package="CEL" function="MERC_AMT_BAT_QTM_VERIFY">
<Input>CAP_TYP|TXN_AMT1|ORN_CNT|MERC_ID|LMT_NM|</Input>
<Output>MSG_CD|EVT_TYP|EVT_DSC|OUT|</Output>
<Output>MSG_CD|EVT_TYP|EVT_DSC|OUT|TIM_RAG|</Output>
</Call>
<If condition="SUBSTR(@O.MSG_CD,4,5)!=00000">
<Set>MSG_INF=@O.EVT_DSC</Set>
@@ -191,14 +194,20 @@
<Set>EVENT.DSK_NO=$DSK_NAM</Set>
<Set>EVENT.CUS_ID=$MERC_ID</Set>
<Set>EVENT.ERR_MSG=$MSG_INF</Set>
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="PUSH_EVENT"/>
</Exec>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Cd=44</Set>
<Set>Rsp_Msg=$MSG_INF</Set>
<Return/>
</If>
<Exec func="PUB:CommitWork"/>
<Set>TIM_RAG.LMT_MAX_PL_AMT=@O.TIM_RAG.LMT_MAX_PL_AMT</Set> <!-- 单笔最大限额(对私)-->
<Set>TIM_RAG.LMT_MIN_PL_AMT=@O.TIM_RAG.LMT_MIN_PL_AMT</Set> <!-- 单笔最小限额(对私) -->
<Set>TIM_RAG.LMT_MAX_DAY_AMT=@O.TIM_RAG.LMT_MAX_DAY_AMT</Set> <!-- 每日最大限额 -->
<Set>TIM_RAG.LMT_MAX_MTH_AMT=@O.TIM_RAG.LMT_MAX_MTH_AMT</Set> <!-- 每月最大限额 -->
<Set>TIM_RAG.LMT_MAX_YAR_AMT=@O.TIM_RAG.LMT_MAX_YAR_AMT</Set> <!-- 每年最大限额 -->
<Set>TIM_RAG.DAY_AMT=@O.TIM_RAG.DAY_AMT</Set><!--当月交易金额累加-->
<Set>TIM_RAG.MTH_AMT=@O.TIM_RAG.MTH_AMT</Set><!--当月交易金额累加-->
<Set>TIM_RAG.YAR_AMT=@O.TIM_RAG.YAR_AMT</Set><!--当月交易金额累加-->
<!--额度标志:0不需要释放 1:需要释放额度-->
<Set>SUMLMTRLR_FALG=1</Set>
<!--建立事务-->
@@ -263,6 +272,7 @@
<Set>CAPTXNJNL.TXN_STS=U</Set>
<Set>CAPTXNJNL.TTXN_ST=U</Set>
<Set>CAPTXNJNL.MERC_ID=$MERC_ID</Set>
<Set>CAPTXNJNL.MERC_NAM=$MERC_NAM</Set>
<Set>CAPTXNJNL.MERC_ORD_NO=$CAPTXNJNL.REF_ID</Set>
<Set>CAPTXNJNL.MERC_LOG_NO=$CAPTXNJNL.REF_ID</Set>
<Set>CAPTXNJNL.COP_BUS_TYP=$COP_BUS_TYP</Set>
@@ -339,6 +349,8 @@
<Set>Rsp_Cd=00</Set>
</Else>
<Set>TXN_AMT2=AMTPOWER($TXN_AMT,2)</Set>
<!--查询支付地账户-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPACCOUNTINF"/>
@@ -351,51 +363,6 @@
<Return/>
</If>
<Set>TXN_AMT2=AMTPOWER($TXN_AMT,2)</Set>
<!-- 单笔机构限额判断 -->
<Call package="CEL" function="CORG_AMT_NOW_QTM_VERIFY">
<Input>CAP_TYP|TXN_AMT2|CORG_NO|TXN_MAK|</Input>
<Output>MSG_CD|EVT_TYP|EVT_DSC|</Output>
</Call>
<If condition="SUBSTR(@O.MSG_CD,4,5)!=00000">
<Set>EVT_TYP=@O.EVT_TYP</Set>
<Set>MSG_INF=@O.EVT_DSC</Set>
<Set>CAPTXNJNL.Rsp_Msg=$Rsp_Msg</Set>
<Set>CAPTXNJNL.TXN_STS=$TXN_STS</Set>
<Set>CAPTXNJNL.TTXN_ST=$TTXN_ST</Set>
<Set>CAPTXNJNL.Rsp_Cd=$Rsp_Cd</Set>
<!-- 事物推送 -->
<Set>EVENT.DSK_NO=$DSK_NAM</Set>
<Set>EVENT.CUS_ID=$MERC_ID</Set>
<Set>EVENT.ERR_MSG=$MSG_INF</Set>
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="PUSH_EVENT"/>
</Exec>
</If>
<!--查询合作机构信息-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBnkInf"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构不存在</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</ElseIf>
<If condition="INTCMP($ENB_FLG,4,1)">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构未启用</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<Set>ACT_FLG=$ACT_FLG</Set>
<Set>ACT_FLG=PL</Set>
@@ -407,6 +374,25 @@
<Set>CAPTXNJNL.MERC_FEE_AMT=0</Set> <!-- 手续费 -->
<Set>CAPTXNJNL.AC_DT=$AC_DT</Set>
<Set>TXN_AMT2=AMTPOWER($CAPTXNJNL.TXN_AMT,2)</Set>
<!--客户批量限额判断-->
<Call package="CEL" function="MERC_AMT_QTM_VERIFY">
<Input>TXN_AMT2|TIM_RAG|</Input>
<Output>MSG_CD|TXN_STS|RSP_CD|RSP_MSG|</Output>
</Call>
<If condition="SUBSTR(@O.MSG_CD,4,5)!=00000">
<Set>CAPTXNJNL.TXN_STS=@O.TXN_STS</Set>
<Set>CAPTXNJNL.RSP_CD=@O.RSP_CD</Set>
<Set>CAPTXNJNL.RSP_MSG=@O.RSP_MSG</Set>
<Set>CAPTXNJNL.RSP_MSG=@O.RSP_MSG</Set>
<Set>CAPTXNJNL.DSK_NAM_STS=4</Set>
</If>
<Else>
<Set>TIM_RAG.DAY_AMT=ADD($TIM_RAG.DAY_AMT,$TXN_AMT2)</Set><!--当月交易金额累加-->
<Set>TIM_RAG.MTH_AMT=ADD($TIM_RAG.MTH_AMT,$TXN_AMT2)</Set><!--当月交易金额累加-->
<Set>TIM_RAG.YAR_AMT=ADD($TIM_RAG.YAR_AMT,$TXN_AMT2)</Set><!--当月交易金额累加-->
</Else>
<!--预记代收流水-->
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPTXNJNL"/>
@@ -437,43 +423,7 @@
<Delete>BNK_FLG</Delete>
<Delete>CAPTXNJNL</Delete>
</While>
<!-- 商户实时限额判断 -->
<Set>CAP_TYP=CAP_PAY_BAT</Set>
<Set>CAPTXNJNL.CAP_TYP=$CAP_TYP</Set>
<Set>IN.CAP_TYP=CAP_PAY_BAT</Set>
<Set>IN.DSK_NO=$DSK_NO</Set>
<Set>IN.MERC_ID=$MERC_ID</Set>
<Set>IN.LMT_NM=$LMT_NM</Set>
<Set>IN.EXT_LMT_DAY=@O.OUT.EXT_LMT_DAY</Set>
<Set>IN.EXT_LMT_MTH=@O.OUT.EXT_LMT_MTH</Set>
<Set>IN.EXT_LMT_YAR=@O.OUT.EXT_LMT_YAR</Set>
<Set>IN.DAY_AMT=@O.OUT.DAY_AMT</Set>
<Set>IN.MTH_AMT=@O.OUT.MTH_AMT</Set>
<Set>IN.YAR_AMT=@O.OUT.YAR_AMT</Set>
<Set>IN.ORD_DT=$ORD_DT</Set>
<Call package="CEL" function="MERC_AMT_QTM_VERIFY2">
<Input>IN|</Input>
<Output>MSG_CD|EVT_TYP|EVT_DSC|</Output>
</Call>
<If condition="SUBSTR(@O.MSG_CD,4,5)!=00000">
<Set>MSG_INF=@O.EVT_DSC</Set>
<Set>EVT_TYP=@O.EVT_TYP</Set>
<Set>CHK_MRE=2</Set>
<Set>CAPTXNJNL.RSP_MSG=$MSG_INF</Set>
<Set>CAPTXNJNL.TXN_STS=F</Set>
<Set>CAPTXNJNL.TTXN_ST=F</Set>
<!-- 事物推送 -->
<Set>EVENT.DSK_NO=$DSK_NAM</Set>
<Set>EVENT.CUS_ID=$MERC_ID</Set>
<Set>EVENT.ERR_MSG=$MSG_INF</Set>
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="PUSH_EVENT"/>
</Exec>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=$MSG_INF</Set>
<Return/>
</If>
<!--关闭游标-->
<Exec func="PUB:CloseCursor" error="IGNORE"/>
<!--提交游标-->
+77 -28
View File
@@ -6,44 +6,67 @@
</Attributes>
<DynSentence name="QryBatLst">
<Sentence>
select dsk_nam from (select A.dsk_nam,B.rank from CAPDSKINF A,CAPCUSINF B
where A.dsk_nam in (select dsk_nam from
select dsk_nam from (select A.dsk_nam,B.rank from CAPDSKINF A,CAPCUSINF B
where A.dsk_nam in (select dsk_nam from
(select dsk_nam,sum(unfinished_num) unfinished_num,sum(finish_num) finish_num
from (select dsk_nam,(case when BAT_STS!= '4' then 1 else 0 end)
unfinished_num ,(case when BAT_STS= '4' then 1 else 0 end) finish_num
from CAPBATINF b where b.dsk_nam in
(select DSK_NAM from CAPDSKINF a where a.dsk_sts = '1' and DSK_DAT &gt;= ? )) group by dsk_nam) c
(select DSK_NAM from CAPDSKINF a where a.dsk_sts = '1' and ORD_DT &gt;= ? )) group by dsk_nam) c
where c.unfinished_num = 0 and c.finish_num &gt; 0)
AND A.Customer_Id = B.Customer_Id
order by rank )
where ROWNUM = '1'
where ROWNUM &lt;= '5'
</Sentence>
<Fields>DSK_DAT|</Fields>
<Fields>DT_BEFER|</Fields>
</DynSentence>
<DynSentence name="UpdCapdskinf">
<Sentence>
UPDATE CAPDSKINF SET dsk_sts = '4',END_DT=?, END_TM=?, MD5_RESULT=?, FILE_ID_RESULT=? WHERE DSK_NAM = ?
UPDATE CAPDSKINF SET dsk_sts = '4',
END_DT=?,
END_TM=?,
MD5_RESULT=?,
FILE_ID_RESULT=?,
SUC_CNT = ?,
SUC_AMT = ?,
FAL_CNT = ?,
FAL_AMT = ?
WHERE DSK_NAM = ?
AND dsk_sts = '1'
</Sentence>
<Fields>END_DT|END_TM|MD5_RESULT|FILE_ID|DSK_NAM|</Fields>
<Fields>END_DT|END_TM|MD5_RESULT|FILE_ID|SUC_CNT|SUC_AMT|FAL_CNT|FAL_AMT|DSK_NAM|</Fields>
</DynSentence>
<DynSentence name="QRY_CAPDSKINF_DSK_NAM">
<Sentence>
SELECT DSK_NO,DSK_STS,DSK_DAT,END_DT,END_TM ,ORN_CNT ,ORN_AMT,SUC_CNT,SUC_AMT,FAL_CNT,FAL_AMT,
FILE_ID_RESULT,MD5_RESULT,CUSTOMER_ID,TM_SMP FROM CAPDSKINF
SELECT DSK_NO,DSK_STS,ORD_DT,END_DT,END_TM ,ORN_CNT ,ORN_AMT,SUC_CNT,SUC_AMT,FAL_CNT,FAL_AMT,
FILE_ID_RESULT,MD5_RESULT,CUSTOMER_ID,DISK_DESC DISK_MESSAGE,TM_SMP FROM CAPDSKINF
WHERE DSK_NAM = ?
</Sentence>
<Fields>DSK_NAM|</Fields>
</DynSentence>
<DynSentence name="SUM_CAPTXNJNL">
<Sentence>
select sum(SUCC_TXN_CNT) SUCC_TXN_CNT,
sum(SUCC_TXN_AMT)*100 SUCC_TXN_AMT,
sum(FAIL_TXN_CNT) FAIL_TXN_CNT,
sum(FAIL_TXN_AMT)*100 FAIL_TXN_AMT
from (select
(case when TXN_STS = 'S' then 1 else 0 end) SUCC_TXN_CNT,
(case when TXN_STS = 'S' then TXN_AMT else 0 end) SUCC_TXN_AMT,
(case when TXN_STS = 'F' then 1 else 0 end) FAIL_TXN_CNT,
(case when TXN_STS = 'F' then TXN_AMT else 0 end) FAIL_TXN_AMT
from CAPTXNJNL WHERE DSK_NAM = ? AND ORD_DT = ?)
</Sentence>
<Fields>DSK_NAM|ORD_DT|</Fields>
</DynSentence>
<Function name="_before">
<Process>
<!-- 应用加锁,防止并发 -->
<Set>LockKey=BAT_GET_DISK_RESULT</Set>
<Exec func="PUB:Lock">
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
<Arg name="TimOut" value="1800" />
<Arg name="AutoUnlock" value="no" />
<Arg name="TimOut" value="1800"/>
<Arg name="AutoUnlock" value="no"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
@@ -58,7 +81,7 @@
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
<!--解锁-->
<Exec func="PUB:UnLock">
<Arg name="RecKey" value="$LockKey" />
<Arg name="RecKey" value="$LockKey"/>
</Exec>
</If>
</Process>
@@ -66,7 +89,7 @@
<FlowCtrl>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<Set>DSK_DAT=CALCDATE(GETDATE(),-,d,7)</Set>
<Set>DT_BEFER=CALCDATE(GETDATE(),-,d,7)</Set>
<Exec func="PUB:OpenCursor" error="IGNORE">
<Arg name="SqlCmd" value="QryBatLst"/>
</Exec>
@@ -102,6 +125,41 @@
<Exec func="PUB:RollbackWork"/>
<Return/>
</ElseIf>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPDSKINF_DSK_NAM"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=批次不存在</Set>
<Break/>
</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>
<Break/>
</If>
<Set>ORN_AMT1=AMTPOWER($ORN_AMT,2)</Set>
<Set>ORN_AMT2=ADD($SUCC_TXN_AMT,$FAIL_TXN_AMT)</Set>
<Set>ORN_CNT2=ADD($SUCC_TXN_CNT,$FAIL_TXN_CNT)</Set>
<If condition="OR(INTCMP($ORN_AMT1,4,$ORN_AMT2),INTCMP($ORN_CNT,4,$ORN_CNT2))">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=批次未完成</Set>
<Break/>
</If>
<Else>
<Set>SUC_CNT=$SUCC_TXN_CNT</Set>
<Set>SUC_AMT=FDIV($SUCC_TXN_AMT,100,2)</Set>
<Set>FAL_CNT=$FAIL_TXN_CNT</Set>
<Set>FAL_AMT=FDIV($FAIL_TXN_AMT,100,2)</Set>
</Else>
<!--所有参数由节点RTR_IN传进路由-->
<Set>RTR_IN.DSK_NAM=$DSK_NAM</Set>
<!--生成文件-->
@@ -153,18 +211,9 @@
<Set>Rsp_Msg="数据库错误"</Set>
<Break/>
</If>
<Set>DSK_STS=4</Set>
<Exec func="PUB:CommitWork"/>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPDSKINF_DSK_NAM"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=批次不存在</Set>
<Break/>
</If>
<!--调用HRO送盘接口-->
@@ -187,12 +236,12 @@
<Set>SUCC_AMOUNT=FMUL($SUC_AMT,100,0)</Set>
<Set>FAIL_COUNT=$FAL_CNT</Set>
<Set>FAIL_AMOUNT=FMUL($FAL_AMT,100,0)</Set>
<Set>FILE_PATH=$FILE_ID_RESULT</Set>
<Set>FILE_PATH=$FILE_ID</Set>
<Set>MD5=$MD5_RESULT</Set>
<!--风控累计金额去除失败的部分-->
<Set>TXN_DT=$DSK_DAT</Set>
<Set>TXN_AMT=$FAIL_AMOUNT</Set>
<Set>TXN_DT=$ORD_DT</Set>
<Set>TXN_AMT=FDIV($FAIL_AMOUNT,100,2)</Set>
<Set>TXN_COUNT=$FAIL_COUNT</Set>
<Set>CUSTOMER_ID=$CUSTOMER_ID</Set>
<Call package="SUMLMTRLR" function="DEL_SUMLMTRLR">
@@ -229,4 +278,4 @@
<Set>Rsp_Msg=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
</Tran>
+12 -1
View File
@@ -44,7 +44,16 @@
<FlowCtrl>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<Set>NodNo=341</Set>
<Exec func="PUB:IsWorkDate" error="IGNORE">
<Arg name="Date" value="20210311" />
</Exec>
<If condition="~RetCod=1">
<Set>SKIP_HLD=Y</Set>
</If>
<Else>
<Set>SKIP_HLD=N</Set>
</Else>
<!-- 组合一些关键信息 -->
<Set>RCV_DT=$CRE_DT</Set>
<Set>RCV_TM=$CRE_TM</Set>
@@ -119,6 +128,8 @@
<Set>Rsp_Msg=交易异常</Set>
<Return/>
</If>
<Set>MERC_NAM=$CUSTOMER_NAME</Set>
<Set>RANK=$RANK</Set>
<!--支付地抬头验证-->
<Set>TITLE_ID=$TITLE_ID</Set>
+2 -1
View File
@@ -14,7 +14,7 @@
SELECT a.CORP_ORG,WEIGHT,RUL_LVL,RUL_NO FROM CMMTORGN a, CMMTRTRULE_BATCH b
WHERE a.CORP_ORG = b.CORG_NO
AND ENB_FLG = '1'
AND RUL_STS = '2'PUSH_EVENT
AND RUL_STS = '2'
AND GRP_NM = '%s'
AND (TRA_CD = '%s' OR TRA_CD IS NULL or TRA_CD = '')
AND (CRD_FLG = '%s' OR CRD_FLG IS NULL or CRD_FLG = '')
@@ -105,6 +105,7 @@
<Set>CRE_DT=SUBSTR($TXN_TM,1,8)</Set> <!--交易日期-->
<!-- 1 是工作日期 0 是假期 -1 失败 -2 输入的日期不在假期表范围内 -->
<Set>NodNo=341</Set>
<Exec func="PUB:IsWorkDate" error="IGNORE">
<Arg name="Date" value="$CRE_DT" />
</Exec>
File diff suppressed because it is too large Load Diff
@@ -15,6 +15,7 @@
<!--<Param name="method" value="GET" />-->
<Param name="key" value="7nEBaDBay2vNKXnWBQqSRZX8wEK3iVOP" />
<Param name="tmOut" value="3" />
<Param name="charSet" value="UTF-8" />
<Param name="contentType" value="application/x-www-form-urlencoded" />
</Declare>
+77 -56
View File
@@ -2,20 +2,39 @@
<Tran>
<Transaction code="initBatch_ICBC" log_switch='1' desc="生成工行批次">
<Quote name="SQL_RcvConfirm" />
<DynSentence name="QryBatCnt"><!-- 查询该批次有多少记录 -->
<Sentence>
SELECT COUNT(*) BAT_CNT FROM CAPTXNJNL
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? %s AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|CHECK_TMPE|MAX_CNT|</Fields>
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|MAX_CNT|</Fields>
</DynSentence>
<DynSentence name="QryBatCnt1"><!-- 查询该批次有多少记录 -->
<Sentence>
SELECT COUNT(*) BAT_CNT FROM CAPTXNJNL
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? AND ROUT_FLG=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|ROUT_FLG|MAX_CNT|</Fields>
</DynSentence>
<DynSentence name="UpdDskNo">
<Sentence>
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?,CORG_BUS_TYP =?,TXN_CD = '204020', TTXN_CD = ?,ACC_VER_STS= 'S'
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? %s AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>CORG_DSK_NO|CORG_BUS_TYP|TTXN_CD|DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|CHECK_TMPE|MAX_CNT|</Fields>
<Fields>CORG_DSK_NO|CORG_BUS_TYP|TTXN_CD|DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|MAX_CNT|</Fields>
</DynSentence>
<DynSentence name="UpdDskNo1">
<Sentence>
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?,CORG_BUS_TYP =?,TXN_CD = '204020', TTXN_CD = ?,ACC_VER_STS= 'S'
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND BNK_FLG=? AND ROUT_FLG=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>CORG_DSK_NO|CORG_BUS_TYP|TTXN_CD|DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|BNK_FLG|ROUT_FLG|MAX_CNT|</Fields>
</DynSentence>
<DynSentence name="QryBatAmt">
<Sentence>
SELECT COUNT(*) BAT_CNT,NVL(SUM(TXN_AMT),0) BAT_SUM FROM CAPTXNJNL
@@ -53,7 +72,7 @@
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
<!--查询合作机构检查-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<!--Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBnkInf"/>
</Exec>
<If condition="~RetCod=2">
@@ -70,7 +89,7 @@
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构未启用</Set>
<Return/>
</If>
</If-->
<!--获取第三方业务种类编号1到999 当日不重复 每一个大批次获取一个-->
<Exec func="PUB:ReadRecord" error="IGNORE">
@@ -112,19 +131,22 @@
<Return />
<Break/>
</ElseIf>
<If condition="IS_EQUAL_STRING($BATCH_TYPE,Y)"> <!--行内交易打包 不根据汇路-->
<Set>CHECK_TMPE= </Set>
<Set>BNK_FLG=Y</Set>
<Set>CHECK_TMPE=QryBatCnt</Set>
<Set>UPDATE_TMPE=UpdDskNo</Set>
<Set>BNK_FLG=Y</Set>
</If>
<Else><!--行外交易打包 根据汇路打包 拼接查询WHERE 条件-->
<Set>CHECK_TMPE=STRCAT(AND,SPACE(1),ROUT_FLG,=,"'",$BATCH_TYPE,"'",SPACE(1))</Set>
<Set>BNK_FLG=N</Set>
<Set>CHECK_TMPE=QryBatCnt1</Set>
<Set>UPDATE_TMPE=UpdDskNo1</Set>
<Set>BNK_FLG=N</Set>
<Set>ROUT_FLG=$BATCH_TYPE</Set>
</Else>
<While>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBatCnt" />
<Arg name="SqlCmd" value="$CHECK_TMPE" />
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
@@ -149,7 +171,7 @@
<Set>TTXN_CD=PAYPERCOL_BAT</Set>
<!--更新批次号-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdDskNo"/>
<Arg name="SqlCmd" value="$UPDATE_TMPE"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
@@ -219,6 +241,7 @@
FROM CAPBATINF
WHERE CORG_DSK_NO=?
AND ORD_DT=?
AND CORG_NO='ICBC'
AND PRO_JRL='1'
</Sentence>
<Fields>CORG_DSK_NO|ORD_DT|</Fields>
@@ -248,27 +271,27 @@
UPDATE CAPBATINF
SET BAT_STS=?,
RSP_CD = ?,
RSP_MSG = ?
RSP_MSG = ?,
CORG_JRN_NO=?
WHERE
ORD_DT=?
AND CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
AND BAT_STS='0'
</Sentence>
<Fields>BAT_STS|RSP_CD|RSP_MSG|ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT
<Fields>BAT_STS|RSP_CD|RSP_MSG|CORG_JRN_NO|ORD_DT|CORG_NO|CORG_DSK_NO
</Fields>
</DynSentence>
<DynSentence name="Qry_Export"> <!--代付查询需要打包的记录 系统内交易 城市名称和银行名称上送空-->
<Sentence>
SELECT TAC_NO AS payer_account,TAC_NAM AS payer_cnname,
'%s' AS payer_enname,'%s' AS payee_enname,'%s' AS manager_card_no,
'%s' AS manager_card_name,'%s' AS erp_serial_no,'%s' AS busi_code,'%s' AS erp_check_no,'%s' AS ori_voucher_type,
'%s' AS ori_voucher_name,'%s' AS ori_voucher_no,'%s' AS related_ref_no,CAP_ORD_NO AS i_seq_no,AC_NO AS payee_account,
'' AS payer_enname,'' AS payee_enname,'' AS manager_card_no,
'' AS manager_card_name,'' AS erp_serial_no,'' AS busi_code,'' AS erp_check_no,'' AS ori_voucher_type,
'' AS ori_voucher_name,'' AS ori_voucher_no,'' AS related_ref_no,CAP_ORD_NO AS i_seq_no,AC_NO AS payee_account,
CUS_NAM AS payee_cnname,LBNK_NO AS payee_bank_no,'CNY' AS currency,
TXN_AMT * 100 AS amount,'工资' AS purpose,POSTSCRIPT AS summary,POSTSCRIPT AS postscript,CAP_ORD_NO AS ref_no,case when BNK_FLG='Y' then '' ELSE CITY END payee_city,
case when BNK_FLG='Y' then '' ELSE BANK_NAM END payee_bank_name,'%s' AS purpose_code,'%s' AS summary_en,
case when BNK_FLG='Y' then '' when BNK_FLG='N' AND ROUT_FLG='SUPER' then '' ELSE BANK_NAM END payee_bank_name,'' AS purpose_code,'' AS summary_en,
case when BNK_FLG='Y' then '2' when BNK_FLG='N' then decode(ROUT_FLG,'SUPER','3','LARGE','1','SMALL','2') end pay_type,
decode(BNK_FLG,'Y','1','N','2') AS io_flag
FROM CAPTXNJNL
@@ -280,24 +303,15 @@
AND DSK_NAM_STS='0'
AND TXN_STS='U'
</Sentence>
<Fields>PayAccNameEN|RecAccNameEN|ReqReserved1|ReqReserved2|ERPSqn|BusCode|ERPcheckno|CrvouhType|CrvouhName|CrvouhNo|Ref|UseCode|EnSummary|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
<Fields>DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
</DynSentence>
<DynSentence name="UpdBatVerSts"><!--更新批次户名验证状态-->
<Sentence>
UPDATE CAPBATINF SET BAT_VER_STS = ?
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND BAT_STS='0'
</Sentence>
<Fields>BAT_VER_STS|ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT</Fields>
</DynSentence>
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
<Sentence>
UPDATE CAPBATINF SET PRO_JRL ='0'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND PRO_JRL='1'
</Sentence>
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT|</Fields>
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|</Fields>
</DynSentence>
<Function name="_before">
<Process>
@@ -345,6 +359,7 @@
</Function>
<FlowCtrl>
<!--清理数据 -->
<Delete>serial_no</Delete>
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
@@ -368,6 +383,26 @@
<Return/>
</If>
<!--查询合作机构检查-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBnkInf"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构不存在</Set>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Return/>
</ElseIf>
<If condition="INTCMP($ENB_FLG,4,1)">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构未启用</Set>
<Return/>
</If>
<Set>BatCnt=$BAT_ORN_CNT</Set>
<Set>BatAmt=$BAT_ORN_AMT</Set>
@@ -396,21 +431,7 @@
<Set>CIS=$GRP_CIS</Set> <!--集团CIS号 必输项 字符 60 客户注册时的归属编码(发卡机构代码) -->
<Set>Bank_Code=102</Set> <!--归属银行编号 必输项 长度为3 客户注册时的归属单位 -->
<Set>PayAccNameEN=STRCAT( , )</Set>
<Set>RecAccNameEN=STRCAT( , )</Set>
<Set>ReqReserved1=STRCAT( , )</Set> <!--请求备用字段1 选输项 字符 100 备用,目前无意义 -->
<Set>ReqReserved2=STRCAT( , )</Set> <!--请求备用字段2 选输项 字符 100 备用,目前无意义 -->
<Set>ERPSqn=STRCAT( , )</Set>
<Set>BusCode=STRCAT( , )</Set>
<Set>ERPcheckno=STRCAT( , )</Set>
<Set>CrvouhType=STRCAT( , )</Set>
<Set>CrvouhName=STRCAT( , )</Set>
<Set>CrvouhNo=STRCAT( , )</Set>
<Set>ReqReserved3=STRCAT( , )</Set>
<Set>ReqReserved4=STRCAT( , )</Set>
<Set>UseCode=STRCAT( , )</Set>
<Set>EnSummary=STRCAT( , )</Set>
<Set>Ref=STRCAT( , )</Set>
<!--新接口 第三方通讯报文头 代付提交-->
<Set>@MSG.className=com.icbc.api.request.MybankEnterpriseSalaryFinancialofficeMesfinstrsubmitRequestV1</Set>
@@ -448,7 +469,7 @@
<Switch expression="~RetCod">
<Case value="1">
<!--第三方失败-->
<Set>BAT_STS=3</Set>
<Set>BAT_STS=3</Set>
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=文件发送成功</Set>
<Break/>
@@ -498,6 +519,8 @@
<Set>RSP_MSG=交易发送成功</Set>
</Default>
</Switch>
<Set>CORG_JRN_NO=$SERIAL_NO</Set>
<!-- 更新批次状态 -->
<Quote name="UpdSendBatSts" />
@@ -510,7 +533,7 @@
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="rd"/>
</Exec>
<!--Delete>TRSP_CD</Delete-->
<Delete>serial_no</Delete>
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
@@ -536,10 +559,9 @@
WHERE ORD_DT=?
AND CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
AND BAT_STS=?
</Sentence>
<Fields>BAT_STS|END_TM|END_DT|BAT_SUC_AMT|BAT_SUC_CNT|BAT_FAL_AMT|BAT_FAL_CNT|RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|OBAT_STS|
<Fields>BAT_STS|END_TM|END_DT|BAT_SUC_AMT|BAT_SUC_CNT|BAT_FAL_AMT|BAT_FAL_CNT|RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OBAT_STS|
</Fields>
</DynSentence>
<DynSentence name="UpdBatErrMsg"> <!--更新批次错误信息 -->
@@ -551,9 +573,8 @@
AND
CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
</Sentence>
<Fields>RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT</Fields>
<Fields>RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|</Fields>
</DynSentence>
<DynSentence name="UpdICBCTxnJnl"> <!--更新批扣流水 -->
<Sentence>
@@ -658,9 +679,9 @@
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
<Sentence>
UPDATE CAPBATINF SET PRO_JRL ='0'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND PRO_JRL='1'
</Sentence>
<Fields>OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
<Fields>OORD_DT|OCORG_NO|OCORG_DSK_NO|</Fields>
</DynSentence>
<Function name="_before">
<Process>
+2 -2
View File
@@ -148,11 +148,11 @@
<Else>
<AddItem name="TTXN_ST" value="P" />
</Else>
<ReadElement name="instrRetCode" ETF_name="instr_ret_code" necessary="no" desc="交易返回码"/>
<ReadElement name="instrRetCode" ETF_name="instr_ret_code" necessary="no" value="" desc="交易返回码"/>
<ReadElement name="instrRetMsg" ETF_name="instr_ret_msg" necessary="no" desc="返回信息"/>
<ReadElement name="managerCardNo" ETF_name="manager_card_no" necessary="no" desc="管家卡卡号"/>
<ReadElement name="managerCardName" ETF_name="manager_card_name" necessary="no" desc="管家卡名称"/>
<If condition="IS_EQUAL_STRING($return_code,0)">
<If condition="IS_EQUAL_STRING($instr_ret_code,0)">
<AddItem name="TRSP_CD" value="000000" />
</If>
<Else>
+4 -3
View File
@@ -2,12 +2,13 @@
<FrontTab>
<Macro name="Init_CAP01" desc="交易的初始化">
<Exec func="PUB:InitGWA" /> <!--交易初始化-->
<Set>NodNo=341</Set>
<Exec func="PUB:InitGWA" /> <!--交易初始化-->
<Set>NodNo=341</Set>
<Set>TXN_TM=GETDATETIME()</Set>
<Set>CRE_TM=SUBSTR($TXN_TM,9,6)</Set> <!--交易时间-->
<Set>CRE_DT=SUBSTR($TXN_TM,1,8)</Set> <!--交易日期-->
<Set>AC_DT=$CRE_DT</Set>
<Set>AC_DT=$CRE_DT</Set>
<Exec func="PUB:IsExistNode" error="IGNORE">
<Arg name="FieldName" value="ORD_DT_TM" />
</Exec>
File diff suppressed because it is too large Load Diff
-31
View File
@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Server PUBLIC "-//HISUN//DTD//ATR" "ATR.dtd">
<Server name="SCAHRO1" type="SCA" trace="DEBUG">
<!--Declare name="connector" class="com.hisun.protocol.http.HiHttpConnectorFormImpl"-->
<!--Declare name="connector" class="com.hisun.protocol.http.HiHttpConnectorImpl"-->
<!--Declare name="connector" class="com.hisun.protocol.http.HiHttpConnectorFormXmlImpl"-->
<Declare name="connector" class="com.murong.ctg.protocol.http.client.hro.HroHttpConnector">
<!--Param name="method" value="GET" /-->
<!--Param name="url" value="http://127.0.0.1:7777/auth" /-->
<Param name="url" value="http://172.17.30.23:8085/rhro-service-1.0/verifyToken" />
<!--Param name="url" value="http://127.0.0.1:8085/rhro-service-1.0/verifyToken" /-->
<!--Param name="method" value="POST" /-->
<Param name="method" value="GET" />
<Param name="key" value="7nEBaDBay2vNKXnWBQqSRZX8wEK3iVOP" />
<Param name="tmOut" value="3" />
<Param name="contentType" value="application/x-www-form-urlencoded" />
</Declare>
<Declare name="itfengine" class="com.hisun.engine.HiEngine">
<Param name="ITF" value="etc/test/SCAHRO1_ITF.XML" />
</Declare>
<Process name="proc1" msgtype="DEFAULT">
<Handler name="itfengine" />
<Handler name="connector" />
<Handler name="itfengine" />
</Process>
</Server>
-36
View File
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding = "UTF-8"?>
<Application name="cmb">
<Transaction code="TokenVerify" desc="token">
<Request necessary="no">
<WriteElement name="root">
<WriteElement name="app" value="murongpay" necessary="no"/>
<WriteElement name="token" ETF_name="token" necessary="no"/>
<WriteElement name="funcId" ETF_name="funcId" necessary="no"/>
</WriteElement>
</Request>
<Response necessary="no">
<ReadElement name="root">
<ReadElement name="funcSet" ETF_name="funcSet" necessary="no"/>
</ReadElement>
</Response>
</Transaction>
<Transaction code="SendSms" desc="token">
<Request necessary="no">
<WriteElement name="root">
<WriteElement name="app" value="murongpay" necessary="no"/>
<WriteElement name="phoneSplits" ETF_name="phoneSplits" necessary="no"/>
<WriteElement name="text" ETF_name="text" necessary="no"/>
</WriteElement>
</Request>
<Response necessary="no">
<!--
<ReadElement name="root">
<ReadElement name="funcSet" ETF_name="funcSet" necessary="no"/>
</ReadElement>
-->
</Response>
</Transaction>
</Application>