清算批次流程
2022-07-22 16:30:05
登录查看完整内容
清算批次流程
举报
猜你喜欢
大纲/内容
Y
N
返回结果是否进行本批次实时结算?
--是否能进行本批次结算--条件:上一批次完成,本批次处理的交易大于等于设定的最小值或本批次是当天最后一次实时结算
recordNum =0?
获取配置表中每批次最小处理数量-->minBatchNum
获取st_sys_settle_status表当前清算号的数据-->recordNum
从st_sys_que_msg表中获取上批次的finishFlag(结算完成标识)finishFlagApp(应用完成标识)
当前批次进行结算判定
(isFinishLast and (isReachMin or isFinalSettle))
当前清算号子流水是否存在st_sys_flow_sub
N(应用相关功能没有完成)
recordNum=0?
获取上批次完成情况(st_sys_que_msg)条件:当前传入子流水-1count(*)-->recordNum
poCanSettleBatch := 0;(0:不满足执行本次清算 1:满足执行本次清算)
插入表ST_SYS_QUE_MSG当前清算号和子流水
isFinishLast(是否完成上次结算) = false statusFinishLast(结算条件状态:上批次完成情况) ='0'
isFinalSettle(是否当天最后一次结算) :=true; statusFinalSettle(结算条件状态:最后一次) :='1';
从st_sys_flow_current_dtl获取当前清算号记录count(*) into recordNum
poCanSettleBatch := 1;(0:不满足执行本次清算 1:满足执行本次清算)
piFinalSettleFlag=1?(最后一次实时结算)
设置结算流程子流水号acc_st.st_sys_flow_current_dtlset balance_water_no_sub=当前子流水set finish_flag='0'
上批次结算已完成,本批次结算记录数已大于最小设定值(调用存储过程up_st_sys_pre_settle_batch)
isFinishLast(是否完成上次结算) = false statusFinishLast(结算条件状态) ='0'
从st_sys_flow_sub表中获取子流水st_sys_flow_current_dtl-->presettleSub
从st_sys_flow_current_dtl表中获取子流水st_sys_flow_current_dtl-->settleSubwhere step='13'
N(结算完成)
当前批次是否是最后一次?
生成新的下一个子流水,调用存储过程(UP_ST_SYS_GET_BAL_WATER_SUB)
finishFlag=0?
isFinishLast(是否完成上次结算) = true statusFinishLast(结算条件状态) ='1'
isReachMin(结算最小交易记录数量)= true; statusReachMin(结算条件状态:最低要求)='1';
插入st_sys_flow_sub表set 当前清算号,子流水=1返回结果
归档上批次处理st_sys_flow_current_dtl-->st_sys_flow_current_dtl_his
recordNum >= minBatchNum
获取st_sts_trade_total表当前子流水的max(total_number)值-->recordNum
isReachMin(结算最小交易记录数量)= false; statusReachMin(结算条件状态:最低要求)='0';
获取st_sts_trade_total表当前子流水的记录数count(*)-->recordNum
finishFlagApp=1?
poBalanceWaterNoSub :=presettleSub;返回结果
presettleSub= settleSub+1
0 条评论
回复 删除
下一页
职业:暂无
作者其他创作:
清分二期清算数据业务流向
128 2022-09-26
清算批次流程
184 2022-07-22