Example #1
0
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+']退出***')
Example #2
0
     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(">>>结束初始化上下文")
 
Example #3
0
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+']退出***')
Example #4
0
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