コード例 #1
0
ファイル: rccpsFunc.py プロジェクト: bianhezhen/AFA1.0
def GetNCCDate():
    #=====查询农信银系统状态====
    AfaLoggerFunc.tradeInfo( '>>>查询NCC工作日期' )
    if((TradeContext.TRCCO[0:2] == PL_TRCCO_HD) or (TradeContext.TRCCO[0:2] == PL_TRCCO_HP)):
        dict = {'OPRTYPNO':PL_TRCCO_HD}
    #elif((TradeContext.TRCCO[0:2] == PL_TRCCO_TCTD) or (TradeContext.TRCCO == PL_TRCCO_QT)):
    else:
        dict = {'OPRTYPNO':PL_TRCCO_TCTD}

    records=rccpsDBTrcc_mbrifa.selectu( dict )
    
    if( records == None ):
        return AfaFlowControl.ExitThisFlow('A0025', "操作数据库失败" )
    elif(len(records) <= 0 ):
        return AfaFlowControl.ExitThisFlow('A0025', "取农信银中心日期失败" )
    else:
        TradeContext.NCCworkDate = records['NWWKDAT']
        AfaLoggerFunc.tradeInfo( '中心日期:' + TradeContext.NCCworkDate )

    return TradeContext.NCCworkDate
コード例 #2
0
ファイル: TRCC001_8545.py プロジェクト: bianhezhen/AFA1.0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.本地类操作(1.本地操作)交易[TRC001_8545]进入***' )
    
    #=====判断接口是否存在====
    if not TradeContext.existVariable("OPRTYPNO"):
        return AfaFlowControl.ExitThisFlow('M999','业务类型[OPRTYPNO]不存在')

    #=====判断OPRTYPNO是汇票时查询汇兑业务信息====
    #=====PL_TRCCO_HP 21 汇票====
    #=====PL_TRCCO_HD 20 汇兑====
    #=====PL_TRCCO_TCTD 30 通存通兑====
    
    #=====汇票使用的日期和工作状态同汇兑====
    if TradeContext.OPRTYPNO == PL_TRCCO_HP:
        OPRTYPNO = PL_TRCCO_HD
    elif TradeContext.OPRTYPNO == PL_TRCCO_HD:
        OPRTYPNO = PL_TRCCO_HD
    elif TradeContext.OPRTYPNO == PL_TRCCO_TCTD:
        OPRTYPNO = PL_TRCCO_TCTD
    else:
        return AfaFlowControl.ExitThisFlow('M999','业务类型[OPRTYPNO]错误')
       
    #=====按行号查询====
    sqldic={'OPRTYPNO':OPRTYPNO}
    
    #=====查询数据库,得到查询结果集====
    records=rccpsDBTrcc_mbrifa.selectu(sqldic)  
    if records==None:
        return AfaflowControl.ExitThisFlow('M999','数据库操作失败')
    if len(records) <= 0 :
        return AfaflowControl.ExitThisFlow('M999','无满足条件数据')
 

    TradeContext.NCCworkDate = records['NWWKDAT']       #中心工作日期
    TradeContext.NWSYSST     = records['NWSYSST']       #工作状态
    TradeContext.errorMsg="查询成功"
    TradeContext.errorCode="0000"
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.本地类操作(1.本地操作)交易[TRC001_8545]退出***' )
    return True
コード例 #3
0
ファイル: rccpsFunc.py プロジェクト: bianhezhen/AFA1.0
def ChkSysInfo( flag ):
   
    AfaLoggerFunc.tradeInfo( '>>>系统平台状态有效性校验' )
    sql = "select status from afa_system where sysid='"
    sql = sql + TradeContext.sysId + "'"
    records=AfaDBFunc.SelectSql( sql )
    if( records == None ):
        return AfaFlowControl.ExitThisFlow('A0025', "中间业务平台数据库操作失败" )
    elif( len( records ) == 0 ):
        return AfaFlowControl.ExitThisFlow('A0025', "中间业务平台农信银系统无记录" )
    elif( records[0][0] != '1' ):
        return AfaFlowControl.ExitThisFlow('A0025', "中间业务平台_农信银系统已关闭" )
    else:
        if flag == 'RCCPS':
            AfaLoggerFunc.tradeInfo( '>>>农信银系统状态有效性校验' )
            if ((not TradeContext.existVariable("TRCCO")) or len(TradeContext.TRCCO) == 0):
                return AfaFlowControl.ExitThisFlow('M999', "字段[TRCCO]为空错误")

            #=====查询农信银系统状态====
            if((TradeContext.TRCCO[0:2] == PL_TRCCO_HD) or (TradeContext.TRCCO == PL_TRCCO_HP)):
                dict = {'OPRTYPNO':PL_TRCCO_HD}
            #elif((TradeContext.TRCCO[0:2] == PL_TRCCO_TCTD) or (TradeContext.TRCCO == PL_TRCCO_QT)):
            else:
                dict = {'OPRTYPNO':PL_TRCCO_TCTD}

            records=rccpsDBTrcc_mbrifa.selectu( dict )
            AfaLoggerFunc.tradeInfo( 'record=' + str(records) )
            if( records == None ):
                return AfaFlowControl.ExitThisFlow('A0025', "农信银系统操作数据库失败" )
            if( len(records) <= 0 ):
                return AfaFlowControl.ExitThisFlow('A0025', "农信银系统没有开始营业" )
            elif( records['NWSYSST'] != '10' ):
                return AfaFlowControl.ExitThisFlow('A0025', "农信银系统没有开始营业" )
            else:
                AfaLoggerFunc.tradeInfo( '>>>农信银系统状态正常' )

    AfaLoggerFunc.tradeInfo( '>>>系统状态校验正常' )
    return True
コード例 #4
0
ファイル: rccpsHDDZGetFile.py プロジェクト: bianhezhen/AFA1.0

if __name__ == "__main__":
    
    try:
        AfaLoggerFunc.tradeInfo("***农信银系统: 系统调度类.汇兑对账文件下载[rccpsHDDZGetFile]进入***")

        local_home = os.environ['AFAP_HOME'] + "/data/rccps/"
        
        #==========获取中心日期================================================
        AfaLoggerFunc.tradeInfo(">>>开始获取前中心工作日期")
        
        mbrifa_where_dict = {}
        mbrifa_where_dict['OPRTYPNO'] = "20"
        
        mbrifa_dict = rccpsDBTrcc_mbrifa.selectu(mbrifa_where_dict)
        
        if mbrifa_dict == None:
            AfaLoggerFunc.tradeInfo( AfaDBFunc.sqlErrMsg )
            rccpsCronFunc.cronExit("S999","查询当前中心日期异常")
            
        NCCWKDAT = mbrifa_dict['NOTE1'][:8]                           #对账日期
        
        AfaLoggerFunc.tradeInfo(">>>结束获取前中心工作日期")
        
        #================判断前置机汇兑对账文件是否传送完毕=========================
        AfaLoggerFunc.tradeInfo(">>>开始判断前置机汇兑对账文件是否传送完毕")
        
        file_path = "settlefile/hdsendend1340000008"
        
        if not rccpsFtpFunc.getRccps(file_path):
コード例 #5
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(1.本地操作).系统状态变更报文接收[RCC00R6_1121]进入***' )
    
    #=================查询本地相关业务状态的系统状态============================
    mbrifa_where_dict = {}
    mbrifa_where_dict['OPRTYPNO'] = TradeContext.RELOPRTYPNO
    
    mbrifa_dict = rccpsDBTrcc_mbrifa.selectu(mbrifa_where_dict)
    if mbrifa_dict == None:
        return AfaFlowControl.ExitThisFlow("S999","查询本地系统状态信息异常")
        
    if  len(mbrifa_dict) <= 0:
        return AfaFlowControl.ExitThisFlow("S999","无相关业务类型本地系统状态信息")
    
    #=================校验报文新工作日期============================================
    if int(TradeContext.NWWKDAT) < int(mbrifa_dict['NWWKDAT']):
        AfaLoggerFunc.tradeInfo("报文新工作日期[" + TradeContext.NWWKDAT + "]在本地新工作日期[" + mbrifa_dict['NWWKDAT'] + "]之前,丢弃此报文,进入下一流程,发送表示成功的通讯回执")
        #======为通讯回执报文赋值===================================================
        out_context_dict = {}
        out_context_dict['sysType']  = 'rccpst'
        out_context_dict['TRCCO']    = '9900503'
        out_context_dict['MSGTYPCO'] = 'SET008'
        out_context_dict['RCVMBRCO'] = TradeContext.SNDMBRCO
        out_context_dict['SNDMBRCO'] = TradeContext.RCVMBRCO
        out_context_dict['SNDBRHCO'] = TradeContext.BESBNO
        out_context_dict['SNDCLKNO'] = TradeContext.BETELR
        #out_context_dict['SNDTRDAT'] = TradeContext.BJEDTE
        #out_context_dict['SNDTRTIM'] = TradeContext.BJETIM
        #out_context_dict['MSGFLGNO'] = out_context_dict['SNDMBRCO'] + TradeContext.BJEDTE + TradeContext.SerialNo
        out_context_dict['ORMFN']    = TradeContext.MSGFLGNO
        out_context_dict['NCCWKDAT'] = TradeContext.NCCworkDate
        out_context_dict['OPRTYPNO'] = '99'
        out_context_dict['ROPRTPNO'] = TradeContext.OPRTYPNO
        out_context_dict['TRANTYP']  = '0'
        out_context_dict['ORTRCCO']  = TradeContext.TRCCO
        out_context_dict['PRCCO']    = 'RCCI0000'
        out_context_dict['STRINFO']  = '过期报文'
        
        rccpsMap0000Dout_context2CTradeContext.map(out_context_dict)
        
        return True
        
    elif int(TradeContext.NWWKDAT) == int(mbrifa_dict['NWWKDAT']):
        #============报文新工作日期与本地新工作日期相同,校验报文新工作状态======
        if int(TradeContext.NWSYSST) <= int(mbrifa_dict['NWSYSST']):
            AfaLoggerFunc.tradeInfo("报文新工作状态[" + TradeContext.NWSYSST + "]不在本地新工作状态[" + mbrifa_dict['NWSYSST'] + "]之后,丢弃此报文,进入下一流程,发送表示成功的通讯回执")
            #======为通讯回执报文赋值===================================================
            out_context_dict = {}
            out_context_dict['sysType']  = 'rccpst'
            out_context_dict['TRCCO']    = '9900503'
            out_context_dict['MSGTYPCO'] = 'SET008'
            out_context_dict['RCVMBRCO'] = TradeContext.SNDMBRCO
            out_context_dict['SNDMBRCO'] = TradeContext.RCVMBRCO
            out_context_dict['SNDBRHCO'] = TradeContext.BESBNO
            out_context_dict['SNDCLKNO'] = TradeContext.BETELR
            out_context_dict['SNDTRDAT'] = TradeContext.BJEDTE
            out_context_dict['SNDTRTIM'] = TradeContext.BJETIM
            out_context_dict['MSGFLGNO'] = out_context_dict['SNDMBRCO'] + TradeContext.BJEDTE + TradeContext.SerialNo
            out_context_dict['ORMFN']    = TradeContext.MSGFLGNO
            out_context_dict['NCCWKDAT'] = TradeContext.NCCworkDate
            out_context_dict['OPRTYPNO'] = '99'
            out_context_dict['ROPRTPNO'] = TradeContext.OPRTYPNO
            out_context_dict['TRANTYP']  = '0'
            out_context_dict['ORTRCCO']  = TradeContext.TRCCO
            out_context_dict['PRCCO']    = 'RCCI0000'
            out_context_dict['STRINFO']  = '过期报文'
            
            rccpsMap0000Dout_context2CTradeContext.map(out_context_dict)
            
            return True
    
    #增加日切报文后发先至情况的处理
    #通存通兑顺序10-20-30-10
    if TradeContext.RELOPRTYPNO == "30":
        if mbrifa_dict['NWSYSST'] == '10' and TradeContext.NWSYSST != '20':
            return AfaFlowControl.ExitThisFlow("S999","[" + TradeContext.RELOPRTYPNO + "]业务当前业务状态为日间开始[10],但日切报文中变更状态非业务截止准备[20],停止处理")
            
        if mbrifa_dict['NWSYSST'] == '20' and TradeContext.NWSYSST != '30':
            return AfaFlowControl.ExitThisFlow("S999","[" + TradeContext.RELOPRTYPNO + "]业务当前业务状态为业务截止准备[20],但日切报文中变更状态非业务截止[30],停止处理")
            
        if mbrifa_dict['NWSYSST'] == '30' and TradeContext.NWSYSST != '10':
            return AfaFlowControl.ExitThisFlow("S999","[" + TradeContext.RELOPRTYPNO + "]业务当前业务状态为业务截止[30],但日切报文中变更状态非日间开始[10],停止处理")
    #汇兑汇票顺序10-30-10
    else:
        if mbrifa_dict['NWSYSST'] == '10' and TradeContext.NWSYSST != '30':
            return AfaFlowControl.ExitThisFlow("S999","[" + TradeContext.RELOPRTYPNO + "]业务当前业务状态为日间开始[10],但日切报文中变更状态非业务截止[30],停止处理")
            
        if mbrifa_dict['NWSYSST'] == '30' and TradeContext.NWSYSST != '10':
            return AfaFlowControl.ExitThisFlow("S999","[" + TradeContext.RELOPRTYPNO + "]业务当前业务状态为业务截止[30],但日切报文中变更状态非日间开始[10],停止处理")
    
    mbrifa_update_dict = {}
    mbrifa_update_dict['ORWKDAT'] = mbrifa_dict['NWWKDAT']
    mbrifa_update_dict['ORSYSST'] = mbrifa_dict['NWSYSST']
    mbrifa_update_dict['NWWKDAT'] = TradeContext.NWWKDAT
    mbrifa_update_dict['NWSYSST'] = TradeContext.NWSYSST
    mbrifa_update_dict['HOLFLG']  = TradeContext.HOLFLG
    mbrifa_update_dict['NOTE1']   = mbrifa_dict['NWWKDAT']
    
    ret = rccpsDBTrcc_mbrifa.update(mbrifa_update_dict,mbrifa_where_dict)
    if ret <= 0:
        if not AfaDBFunc.RollbackSql( ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            AfaLoggerFunc.tradeError(">>>Rollback异常")
        AfaLoggerFunc.tradeInfo(">>>Rollback成功")
        return AfaFlowControl.ExitThisFlow("S999","更新系统状态异常")
    
    #======若新系统状态为业务截止,则打开对账系统调度============================
    if TradeContext.NWSYSST == '30' and TradeContext.HOLFLG == '2':
        if TradeContext.RELOPRTYPNO == '20':
            #====打开汇兑对账系统调度=======================================
            AfaLoggerFunc.tradeInfo(">>>开始打开汇兑对账系统调度")
            
            if not rccpsCronFunc.openCron("00031"):
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","打开汇兑对账系统调度异常")
                
            AfaLoggerFunc.tradeInfo(">>>结束打开汇兑对账系统调度")
            
            #====打开汇票对账系统调度=======================================
            AfaLoggerFunc.tradeInfo(">>>开始打开汇票对账系统调度")
            
            if not rccpsCronFunc.openCron("00041"):
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","打开汇票对账系统调度异常")
            
            AfaLoggerFunc.tradeInfo(">>>结束打开汇票对账系统调度")
            
        elif TradeContext.RELOPRTYPNO == '30':
            #====打开通存通兑对账系统调度===================================
            AfaLoggerFunc.tradeInfo(">>>开始打开通存通兑对账系统调度")
            
            if not rccpsCronFunc.openCron("00061"):
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","打开通存通兑对账系统调度异常")
                
            AfaLoggerFunc.tradeInfo(">>>结束打开通存通兑对账系统调度")
            
            #====打开信息类业务量统计系统调度======================
            AfaLoggerFunc.tradeInfo(">>>开始打开信息类业务量统计系统调度")
            
#            if not rccpsCronFunc.openCron("00067"):
#                if not AfaDBFunc.RollbackSql( ):
#                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
#                    AfaLoggerFunc.tradeError(">>>Rollback异常")
#                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
#                return AfaFlowControl.ExitThisFlow("S999","打开信息类业务量统计系统调度异常")
            
#            AfaLoggerFunc.tradeInfo(">>>结束打开信息类业务量统计系统调度")
            
            
            
    #======若通存通兑新系统状态为日间开始,则打开行名行号生效系统调度===================
    if TradeContext.NWSYSST == '10' and TradeContext.RELOPRTYPNO == '30':
        #====开始打开行名行号生效系统调度=======================================
        AfaLoggerFunc.tradeInfo(">>>开始打开行名行号生效系统调度")
        
        if not rccpsCronFunc.openCron("00050"):
            if not AfaDBFunc.RollbackSql( ):
                AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                AfaLoggerFunc.tradeError(">>>Rollback异常")
            AfaLoggerFunc.tradeInfo(">>>Rollback成功")
            return AfaFlowControl.ExitThisFlow("S999","打开行名行号生效系统调度异常")
            
        AfaLoggerFunc.tradeInfo(">>>结束打开行名行号生效系统调度")
            
    if not AfaDBFunc.CommitSql( ):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow("S999","Commit异常")
    AfaLoggerFunc.tradeInfo(">>>Commit成功")
        
    #======为通讯回执报文赋值===================================================
    out_context_dict = {}
    out_context_dict['sysType']  = 'rccpst'
    out_context_dict['TRCCO']    = '9900503'
    out_context_dict['MSGTYPCO'] = 'SET008'
    out_context_dict['RCVMBRCO'] = TradeContext.SNDMBRCO
    out_context_dict['SNDMBRCO'] = TradeContext.RCVMBRCO
    out_context_dict['SNDBRHCO'] = TradeContext.BESBNO
    out_context_dict['SNDCLKNO'] = TradeContext.BETELR
    out_context_dict['SNDTRDAT'] = TradeContext.BJEDTE
    out_context_dict['SNDTRTIM'] = TradeContext.BJETIM
    out_context_dict['MSGFLGNO'] = out_context_dict['SNDMBRCO'] + TradeContext.BJEDTE + TradeContext.SerialNo
    out_context_dict['ORMFN']    = TradeContext.MSGFLGNO
    out_context_dict['NCCWKDAT'] = TradeContext.NCCworkDate
    out_context_dict['OPRTYPNO'] = '99'
    out_context_dict['ROPRTPNO'] = TradeContext.OPRTYPNO
    out_context_dict['TRANTYP']  = '0'
    out_context_dict['ORTRCCO']  = TradeContext.TRCCO
    out_context_dict['PRCCO']    = 'RCCI0000'
    out_context_dict['STRINFO']  = '成功'
    
    rccpsMap0000Dout_context2CTradeContext.map(out_context_dict)
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(1.本地操作).系统状态变更报文接收[RCC00R6_1121]退出***' )
    return True