def main( ): AfaLoggerFunc.tradeInfo('***农信银系统: 往账.回执类操作模板['+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']进入***') try: #=====================初始化返回报文变量================================ TradeContext.tradeResponse=[] #=====================获取系统日期时间================================== TradeContext.BJEDTE=AfaUtilTools.GetHostDate( ) #TradeContext.TRCDAT=AfaUtilTools.GetHostDate( ) #TradeContext.BJEDTE = PL_BJEDTE TradeContext.BJETIM=AfaUtilTools.GetSysTime( ) #TradeContext.TRCDAT = PL_BJEDTE #=====================系统公共校验====================================== if not rccpsFunc.ChkPubInfo(PL_BRSFLG_RCV) : raise AfaFlowControl.flowException( ) #=====================系统状态校验====================================== if not rccpsFunc.ChkSysInfo( 'AFA' ) : raise AfaFlowControl.flowException( ) #=====================机构合法性校验==================================== if not rccpsFunc.ChkUnitInfo(PL_BRSFLG_RCV) : raise AfaFlowControl.flowException( ) #=====================获取中心日期==================================== if not rccpsFunc.GetNCCDate( ) : raise AfaFlowControl.flowException( ) #=====================动态加载交易脚本================================== trxModuleName = 'T'+TradeContext.TemplateCode+'_'+TradeContext.TransCode try: trxModuleHandle=__import__( trxModuleName ) except Exception, e: AfaLoggerFunc.tradeInfo(e) raise AfaFlowControl.flowException( 'A0001', '加载交易脚本失败或交易脚本不存在,执行交易失败' ) #=====================回执个性化处理(本地操作)========================== if not trxModuleHandle.SubModuleDoFst( ) : raise AfaFlowControl.flowException( ) #=====================自动打包========================================== AfaFunc.autoPackData() #=====================退出模板========================================== AfaLoggerFunc.tradeInfo('***农信银系统: 往账.回执类操作模板['+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']退出***')
TradeContext.TransCode = '1105' TradeContext.OPRNO = '04' #=====================获取系统日期时间========================= TradeContext.BJEDTE = AfaUtilTools.GetHostDate( ) #TradeContext.TRCDAT = AfaUtilTools.GetHostDate( ) TradeContext.BJETIM = AfaUtilTools.GetSysTime( ) #TradeContext.BJEDTE = PL_BJEDTE #测试,暂时使用 #TradeContext.TRCDAT = PL_BJEDTE #测试,暂时使用 #=====================系统公共校验============================= if not rccpsFunc.ChkPubInfo(PL_BRSFLG_RCV) : raise Exception #=====================机构合法性校验=========================== if not rccpsFunc.ChkUnitInfo( PL_BRSFLG_RCV ) : raise Exception #=====================获取中心日期============================= TradeContext.NCCworkDate = TradeContext.NCCWKDAT #=====================获取平台流水号=========================== if rccpsGetFunc.GetSerialno(PL_BRSFLG_RCV) == -1 : raise Exception #=====================获取中心流水号=========================== if rccpsGetFunc.GetRccSerialno( ) == -1 : raise Exception AfaLoggerFunc.tradeInfo(">>>结束初始化上下文")
def main( ): AfaLoggerFunc.tradeInfo('***农信银系统: 往账.主机类操作模板['+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']进入***') try: #=====================初始化返回报文变量================================ TradeContext.tradeResponse=[] #=====================获取系统日期时间================================== TradeContext.BJEDTE=AfaUtilTools.GetHostDate( ) #TradeContext.BJEDTE = PL_BJEDTE TradeContext.BJETIM=AfaUtilTools.GetSysTime( ) #TradeContext.TRCDAT = PL_BJEDTE #关彬捷 20081111 修改委托日期为中心日期 #TradeContext.TRCDAT=AfaUtilTools.GetHostDate( ) #修改结束 #=====================系统公共校验====================================== if not rccpsFunc.ChkPubInfo(PL_BRSFLG_SND) : raise AfaFlowControl.flowException( ) #=====================系统状态校验====================================== if not rccpsFunc.ChkSysInfo( 'RCCPS' ) : raise AfaFlowControl.flowException( ) #=====================机构合法性校验==================================== if not rccpsFunc.ChkUnitInfo( PL_BRSFLG_SND ) : raise AfaFlowControl.flowException( ) #=====================获取中心日期==================================== if not rccpsFunc.GetNCCDate( ) : raise AfaFlowControl.flowException( ) #关彬捷 20081111 修改委托日期为中心日期 TradeContext.TRCDAT=TradeContext.NCCworkDate #修改结束 #=====================获取平台流水号==================================== if rccpsGetFunc.GetSerialno(PL_BRSFLG_SND) == -1 : raise AfaFlowControl.flowException( ) #=====================获取中心流水号==================================== if rccpsGetFunc.GetRccSerialno( ) == -1 : raise AfaFlowControl.flowException( ) #=====================动态加载交易脚本================================== trxModuleName = 'T'+TradeContext.TemplateCode+'_'+TradeContext.TransCode try: trxModuleHandle=__import__( trxModuleName ) except Exception, e: AfaLoggerFunc.tradeInfo(e) raise AfaFlowControl.flowException( 'A0001', '加载交易脚本失败或交易脚本不存在,执行交易失败' ) #=====================交易前处理(登记流水,主机前处理)=================== if not trxModuleHandle.SubModuleDoFst( ) : raise AfaFlowControl.flowException( ) #=====================与主机通讯======================================== rccpsHostFunc.CommHost( TradeContext.HostCode ) #=====================交易中处理(修改流水,主机后处理,中心前处理)======== if not trxModuleHandle.SubModuleDoSnd( ) : raise AfaFlowControl.flowException( ) #=====================与中心通讯(回执)================================== AfaAfeFunc.CommAfe() #=====================交易后处理======================================== if not trxModuleHandle.SubModuleDoTrd(): raise AfaFlowControl.flowException( ) #=====================自动打包========================================== AfaFunc.autoPackData() #=====================退出模板========================================== AfaLoggerFunc.tradeInfo('***农信银系统: 往账.主机类操作模板['+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']退出***')
def SubModuleDoSnd(): AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(2.中心回执).业务状态查询报文接收[RCC006_1107]进入***' ) if TradeContext.errorCode != '0000': return AfaFlowControl.ExitThisFlow("S999","发送通讯回执报文异常") if TradeContext.existVariable('ISDEAL'): AfaLoggerFunc.tradeInfo(">>>状态查询业务正常,成功接收,开始自动业务状态查复处理") AfaLoggerFunc.tradeInfo(">>>开始往账初始化") #=====================往账初始化============================================ TradeContext.sysType = "rccpst" TradeContext.BRSFLG = PL_BRSFLG_SND TradeContext.TRCCO = '9900507' TradeContext.BJEDTE=AfaUtilTools.GetSysDate( ) TradeContext.BJETIM=AfaUtilTools.GetSysTime( ) TradeContext.TRCDAT=AfaUtilTools.GetSysDate( ) #=====================机构合法性校验======================================== if not rccpsFunc.ChkUnitInfo( PL_BRSFLG_SND ) : return AfaFlowControl.ExitThisFlow("S999","机构合法性校验异常") #=====================获取平台流水号======================================== if rccpsGetFunc.GetSerialno(PL_BRSFLG_SND) == -1 : return AfaFlowControl.ExitThisFlow("S999","获取平台流水号异常") #=====================获取中心流水号======================================== if rccpsGetFunc.GetRccSerialno( ) == -1 : return AfaFlowControl.ExitThisFlow("S999","获取中心流水号异常") AfaLoggerFunc.tradeInfo(">>>结束往账初始化") #=====================为状态查复业务字典赋值================================ AfaLoggerFunc.tradeInfo(">>>开始为状态查复业务字典赋值") TradeContext.TRCNO = TradeContext.SerialNo TradeContext.NCCTRCST = "" if not TradeContext.existVariable('ORBCSTAT'): TradeContext.MBRTRCST = PL_MBRTRCST_UNRCV else: if TradeContext.ORBCSTAT == PL_BCSTAT_BNKRCV: TradeContext.MBRTRCST = PL_MBRTRCST_RCV elif (TradeContext.ORBCSTAT == PL_BCSTAT_AUTO or TradeContext.ORBCSTAT == PL_BCSTAT_HANG) and TradeContext.ORBDWFLG ==PL_BDWFLG_SUCC: TradeContext.MBRTRCST = PL_MBRTRCST_ACSUC elif (TradeContext.ORBCSTAT == PL_BCSTAT_AUTO or TradeContext.ORBCSTAT == PL_BCSTAT_HANG) and TradeContext.ORBDWFLG ==PL_BDWFLG_FAIL: TradeContext.MBRTRCST = PL_MBRTRCST_ACFAL elif(TradeContext.ORBCSTAT == PL_BCSTAT_CONFACC and TradeContext.ORBDWFLG == PL_BDWFLG_SUCC): TradeContext.MBRTRCST = PL_MBRTRCST_CNF elif (TradeContext.ORBCSTAT == PL_BCSTAT_AUTOPAY and TradeContext.ORBDWFLG == PL_BDWFLG_SUCC): TradeContext.MBRTRCST = PL_MBRTRCST_ACSUC elif (TradeContext.ORBCSTAT == PL_BCSTAT_AUTOPAY and TradeContext.ORBDWFLG == PL_BDWFLG_FAIL): TradeContext.MBRTRCST = PL_MBRTRCST_ACFAL elif (TradeContext.ORBCSTAT == PL_BCSTAT_AUTOPAY and TradeContext.ORBDWFLG == PL_BDWFLG_WAIT): TradeContext.MBRTRCTS = PL_MBRTRCST_RCV elif (TradeContext.ORBCSTAT == PL_BCSTAT_CANC and TradeContext.ORBDWFLG == PL_BDWFLG_SUCC): TradeContext.MBRTRCTS = PL_MBRTRCST_RUSH else: TradeContext.MBRTRCTS = PL_MBRTRCST_RCV TradeContext.CONT = "系统自动查复业务状态查询" TradeContext.SNDMBRCO = TradeContext.SNDSTLBIN TradeContext.RCVMBRCO = TradeContext.RCVSTLBIN ztcbka_insert_dict = {} if not rccpsMap1107CTradeContext2Dztcbka.map(ztcbka_insert_dict): return AfaFlowControl.ExitThisFlow("S999","为查复业务字典赋值异常") AfaLoggerFunc.tradeInfo(">>>结束为状态查复业务字典赋值") #=====================登记状态查复业务====================================== AfaLoggerFunc.tradeInfo(">>>开始登记状态查询查复登记簿") ret = rccpsDBTrcc_ztcbka.insert(ztcbka_insert_dict) if ret <= 0: return AfaFlowControl.ExitThisFlow("S999","登记状态查询查复登记簿异常") AfaLoggerFunc.tradeInfo(">>>结束登记状态查询查复登记簿") #=====================修改原查询业务查询查复标识============================ AfaLoggerFunc.tradeInfo(">>>开始修改原查询业务查询查复标识") orztcbka_update_dict = {'ISDEAL':PL_ISDEAL_ISDO,'NCCTRCST':TradeContext.NCCTRCST,'MBRTRCST':TradeContext.MBRTRCST} orztcbka_where_dict = {'BJEDTE':TradeContext.BOJEDT,'BSPSQN':TradeContext.BOSPSQ} ret = rccpsDBTrcc_ztcbka.update(orztcbka_update_dict,orztcbka_where_dict) if ret <= 0: return AfaFlowControl.ExitThisFlow("S999","修改原查询业务查询查复标识异常") AfaLoggerFunc.tradeInfo(">>>结束修改原查询业务查询查复标识") if not AfaDBFunc.CommitSql( ): AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg ) return AfaFlowControl.ExitThisFlow("S999","Commit异常") AfaLoggerFunc.tradeInfo(">>>Commit成功") #=====================为业务状态查复报文赋值================================ AfaLoggerFunc.tradeInfo(">>>开始为业务状态查复报文赋值") TradeContext.sysType = 'rccpst' TradeContext.TRCCO = '9900507' TradeContext.MSGTYPCO = 'SET008' TradeContext.SNDBRHCO = TradeContext.BESBNO TradeContext.SNDCLKNO = TradeContext.BETELR TradeContext.SNDTRDAT = TradeContext.BJEDTE TradeContext.SNDTRTIM = TradeContext.BJETIM TradeContext.TRCNO = TradeContext.SerialNo TradeContext.MSGFLGNO = TradeContext.SNDSTLBIN + TradeContext.TRCDAT + TradeContext.SerialNo TradeContext.OPRTYPNO = '99' TradeContext.TRANTYP = '0' AfaLoggerFunc.tradeInfo(">>>结束为业务状态查复报文赋值") #=====================发送业务状态查复报文================================== AfaLoggerFunc.tradeInfo(">>>开始发送业务状态查复报文") AfaAfeFunc.CommAfe() if TradeContext.errorCode != '0000': return AfaFlowControl.ExitThisFlow("S999","发送业务状态查复报文异常") AfaLoggerFunc.tradeInfo(">>>结束发送业务状态查复报文") AfaLoggerFunc.tradeInfo(">>>结束自动业务状态查复处理") else: AfaLoggerFunc.tradeInfo(">>>状态查询业务非正常,不进行自动业务状态查复处理") AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(2.中心回执).业务状态查询报文接收[RCC006_1107]退出***' ) return True