Exemplo n.º 1
0
def GetSndBnkCo(SNDBNKCO):
    #=====通过接收行号取接收行成员行号====
    if (TradeContext.existVariable("SNDBNKCO") and len(SNDBNKCO)!=0):
        rcvstl = {'BANKBIN':TradeContext.SNDBNKCO}
        rcvpyb = rccpsDBTrcc_paybnk.selectu(rcvstl)
        if (rcvpyb == None or len(rcvpyb) == 0):
            return AfaFlowControl.ExitThisFlow('M999','接收行号取接收成员行号无相应记录')
        else:
            TradeContext.SNDSTLBIN = rcvpyb['STLBANKBIN']
            TradeContext.SNDBNKNM  = rcvpyb['BANKNAM']
    else:
        return False

    return TradeContext.SNDSTLBIN
Exemplo n.º 2
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo( '***农信银系统: 往账.本地类操作交易.行名行号联动[RCC001_8556]进入***' )
    
    #=====判断接口是否存在====
    if not TradeContext.existVariable("BANKBIN"):
        return AfaFlowControl.ExitThisFlow('S999','行号[BANKBIN]不存在')

    #=====按行号查询====
    sqldic={'BANKBIN':TradeContext.BANKBIN,'NOTE1':'1'}
        
    #=====查询数据库,得到查询结果集====
    records=rccpsDBTrcc_paybnk.selectu(sqldic)
    
    if records == None:
        return AfaFlowControl.ExitThisFlow('S999','查询行名行号数据库失败')
    if len(records) <= 0 :
        return AfaFlowControl.ExitThisFlow('S999','无此行号信息')
        
    TradeContext.BANKNAM = records['BANKNAM']       #行名
    TradeContext.errorMsg="查询成功"
    TradeContext.errorCode="0000"
    
    AfaLoggerFunc.tradeInfo( '***农信银系统: 往账.本地类操作交易.行名行号联动[RCC001_8556]退出***' )
    return True
Exemplo n.º 3
0
 
 pfile = open(local_file_home + file_path,"rb")
 file_line = " "
 
 while file_line:
     file_line = AfaUtilTools.trim(pfile.readline())   
     file_line = rccpsUtilTools.replaceRet(file_line)
     
     if file_line == "":
         continue
         
     line_list = file_line.split('|')
     
     paybnk_where_dict = {}
     paybnk_where_dict['BANKBIN'] = line_list[0]
     tmp_paybnk_dict = rccpsDBTrcc_paybnk.selectu(paybnk_where_dict)
     if tmp_paybnk_dict == None:
         if not AfaDBFunc.RollbackSql( ):
             AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
             AfaLoggerFunc.tradeError(">>>Rollback异常")
         AfaLoggerFunc.tradeInfo(">>>Rollback成功")
         rccpsCronFunc.cronExit("S999","查询将登记行号是否存在异常")
     
     paybnk_dict = {}
     paybnk_dict['BANKBIN']      = line_list[0][:10]
     paybnk_dict['BANKSTATUS']   = line_list[1][:1]
     paybnk_dict['BANKATTR']     = line_list[2][:2]
     paybnk_dict['STLBANKBIN']   = line_list[3][:10]
     paybnk_dict['BANKNAM']      = line_list[4][:60]
     paybnk_dict['BANKADDR']     = line_list[5][:60]
     paybnk_dict['BANKPC']       = line_list[6][:6]
Exemplo n.º 4
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo("'***农信银系统:通存通兑往账交易.特殊差错账补记[8593] 进入")
    
    #=====判断必输变量是否存在====
    if not TradeContext.existVariable("BESBNO"):
        return AfaFlowControl.ExitThisFlow('A099','没有机构号')
        
    if not TradeContext.existVariable("TRCCO"):
        return AfaFlowControl.ExitThisFlow('A099','没有交易代码')
        
    if not TradeContext.existVariable("CUSCHRG"):
        return AfaFlowControl.ExitThisFlow('A099','没有手续费金额')
        
    if not TradeContext.existVariable("OCCAMT"):
        return AfaFlowControl.ExitThisFlow('A099','没有交易金额')
        
    #=====得到账户的开户机构====
    AfaLoggerFunc.tradeInfo("<<<<<<查询账户开户机构")
    
    TradeContext.HostCode = '8810'
    TradeContext.BETELR   = PL_BETELR_AUTO
    
    if(TradeContext.TRCCO in ('3000102','3000103','3000104','3000105')):
        TradeContext.ACCNO = TradeContext.PYRACC
        AfaLoggerFunc.tradeDebug("ACCNO<<<<<<" + TradeContext.ACCNO)
    else:
        TradeContext.ACCNO = TradeContext.PYEACC
        AfaLoggerFunc.tradeDebug("ACCNO<<<<<<" + TradeContext.ACCNO)
        
    rccpsHostFunc.CommHost( TradeContext.HostCode )
    
    AfaLoggerFunc.tradeDebug("errorCode<<<<<<" + TradeContext.errorCode)
    AfaLoggerFunc.tradeDebug("errorMsg<<<<<<" + TradeContext.errorMsg)
    
    AfaLoggerFunc.tradeInfo("<<<<<<判断主机8810交易是否成功")
    if(TradeContext.errorCode != '0000'):
        return AfaFlowControl.ExitThisFlow('S999',TradeContext.errorMsg)
    else:
        AfaLoggerFunc.tradeInfo("<<<<<<8810交易成功")
        TradeContext.BESBNO = TradeContext.ACCSO
        
    AfaLoggerFunc.tradeInfo("<<<<<<结束查询账户开户机构")
    
    #=====生成保单序号,成员行号,接收行号,接收行名,前置日期,前置流水号====
#    if not rccpsFunc.GetNCCDate( ) :                      #NCCWKDAT
#        raise AfaFlowControl.flowException( )
#    TradeContext.NCCWKDAT = TradeContext.NCCworkDate

    TradeContext.NCCworkDate = TradeContext.NCCWKDAT
   
    where_dict = {}                                       #发送成员行号
    where_dict['BANKBIN'] = TradeContext.SNDBNKCO
    record = rccpsDBTrcc_paybnk.selectu(where_dict)
    if(record == None):
        return AfaFlowControl.ExitThisFlow('A099','查询行名行号表失败')
    elif(len(record) == 0):
        return AfaFlowControl.ExitThisFlow('A099','查询行名行号表结果为空')
    else:
        TradeContext.STLBANKBIN = record['STLBANKBIN']    
    
#    where_dict = {}                                       #接收行号,接收行名
#    where_dict['BESBNO'] = TradeContext.BESBNO
#    record_tmp = rccpsDBTrcc_subbra.selectu(where_dict)
#    if(record_tmp == None):
#        return AfaFlowControl.ExitThisFlow('A099','查询机构表失败')
#    elif(len(record_tmp) == 0):
#        return AfaFlowControl.ExitThisFlow('A099','查询机构表结果为空')
#    else:
#        TradeContext.BANKBIN = record_tmp['BANKBIN']
#        where_dict = {}
#        where_dict['BANKBIN'] = TradeContext.BANKBIN
#        record = None
#        record = rccpsDBTrcc_paybnk.selectu(where_dict)
#        if(record == None):
#            return AfaFlowControl.ExitThisFlow('A099','查询行名行号表失败')
#        elif(len(record) == 0):
#            AfaLoggerFunc.tradeInfo("此机构无行号")
#            TradeContext.RCVBNKNM = ""
#            TradeContext.RCVBNKCO = ""
#        else:
#            TradeContext.RCVBNKNM = record['BANKNAM']
#            TradeContext.RCVBNKCO = record['BANKBIN']
    
    TradeContext.BJEDTE = AfaUtilTools.GetHostDate( )  #BJEDTE
    
    TradeContext.FEDT = AfaUtilTools.GetHostDate( )      #FEDT
    
    if rccpsGetFunc.GetRBSQ(PL_BRSFLG_RCV) == -1 :     #RBSQ
        return AfaFlowControl.ExitThisFlow('S999','重新生成前置流水号失败,抛弃报文')
        
    TradeContext.BSPSQN = TradeContext.RBSQ
       
    #=====向通存通兑业务登记簿插入数据====
    AfaLoggerFunc.tradeInfo("<<<<<<登记通存通兑业务登记簿")
    insert_dict = {}
    insert_dict['BJEDTE']     = TradeContext.BJEDTE
    insert_dict['BSPSQN']     = TradeContext.BSPSQN
    insert_dict['BRSFLG']     = "1"
    insert_dict['BEACSB']     = ""
    insert_dict['BETELR']     = TradeContext.BETELR
    insert_dict['BEAUUS']     = TradeContext.BEAUUS
    insert_dict['BEAUPS']     = TradeContext.BEAUPS
    insert_dict['TERMID']     = TradeContext.TERMID
    insert_dict['BESBNO']     = TradeContext.BESBNO
    insert_dict['BBSSRC']     = ""
    insert_dict['DASQ']       = ""
    if(TradeContext.TRCCO in ('3000002','3000003','3000004','3000005')):
        insert_dict['DCFLG']  = PL_DCFLG_DEB
    else:
        insert_dict['DCFLG']  = PL_DCFLG_CRE
        
    if(TradeContext.TRCCO in ('3000002','3000004')):
        insert_dict['OPRNO']  = PL_TDOPRNO_TC
    elif(TradeContext.TRCCO in ('3000003','3000005')):
        insert_dict['OPRNO']  = PL_TDOPRNO_BZY
    elif(TradeContext.TRCCO in ('3000102','3000104')):
        insert_dict['OPRNO']  = PL_TDOPRNO_TD
    else:
        insert_dict['OPRNO']  = PL_TDOPRNO_YZB
    insert_dict['OPRATTNO']   = ""
    insert_dict['NCCWKDAT']   = TradeContext.NCCWKDAT
    insert_dict['TRCCO']      = TradeContext.TRCCO
    insert_dict['TRCDAT']     = TradeContext.TRCDAT
    insert_dict['TRCNO']      = TradeContext.TRCNO
    insert_dict['MSGFLGNO']   = ""
    insert_dict['COTRCDAT']   = ""
    insert_dict['COTRCNO']    = ""
    insert_dict['COMSGFLGNO'] = ""
    insert_dict['SNDMBRCO']   = TradeContext.STLBANKBIN
    insert_dict['RCVMBRCO']   = "1340000008"
    insert_dict['SNDBNKCO']   = TradeContext.SNDBNKCO
    insert_dict['SNDBNKNM']   = TradeContext.SNDBNKNM
    insert_dict['RCVBNKCO']   = TradeContext.RCVBNKCO
    insert_dict['RCVBNKNM']   = TradeContext.RCVBNKNM
    insert_dict['CUR']        = "01"
    insert_dict['OCCAMT']     = TradeContext.OCCAMT
    if(float(TradeContext.CUSCHRG) != 0.00 and TradeContext.CUSCHRG != ""):
        insert_dict['CHRGTYP']= PL_CHRG_TYPE 
        chrgtyp = 1
    else:
        insert_dict['CHRGTYP']= PL_CHRG_CASH
        chrgtyp = 0
    insert_dict['LOCCUSCHRG'] = ""
    insert_dict['CUSCHRG']    = TradeContext.CUSCHRG
    insert_dict['PYRTYP']     = ""
    insert_dict['PYRACC']     = TradeContext.PYRACC 
    insert_dict['PYRNAM']     = TradeContext.PYRNAM  
    insert_dict['PYRADDR']    = "" 
    insert_dict['PYETYP']     = ""
    insert_dict['PYEACC']     = TradeContext.PYEACC
    insert_dict['PYENAM']     = TradeContext.PYENAM 
    insert_dict['PYEADDR']    = "" 
    insert_dict['STRINFO']    = TradeContext.STRINFO
    insert_dict['CERTTYPE']   = ""
    insert_dict['CERTNO']     = ""
    insert_dict['BNKBKNO']    = "" 
    insert_dict['BNKBKBAL']   = ""
    insert_dict['NOTE1']      = "" 
    insert_dict['NOTE2']      = "" 
    insert_dict['NOTE3']      = "" 
    insert_dict['NOTE4']      = "" 
    
    if not rccpsDBTrcc_wtrbka.insertCmt(insert_dict):
        return AfaFlowControl.ExitThisFlow('A099','登记通存通兑登记簿失败')
    
    AfaLoggerFunc.tradeInfo("<<<<<<结束登记通存通兑业务登记簿")    
    
    #=====查询刚刚插入到业务登记簿中的数据====
    where_dict = {}
    where_dict = {'BJEDTE':TradeContext.BJEDTE,'BSPSQN':TradeContext.BSPSQN}
    wtrbka_record = rccpsDBTrcc_wtrbka.selectu(where_dict)
    if(wtrbka_record == None):
        return AfaFlowControl.ExitThisFlow('A099','查询通存通兑业务登记簿失败')
    elif(len(wtrbka_record) == 0):
        return AfaFlowControl.ExitThisFlow('A099','登记通存通兑业务登记簿结果为空')
    else:
        AfaLoggerFunc.tradeInfo("查询通存通兑业务登记簿成功")
    
    
    #=====向错账登记簿插入数据====
    AfaLoggerFunc.tradeInfo("<<<<<<登记错账登记簿")
    insert_dict = {}
    insert_dict['NCCWKDAT']   = TradeContext.NCCWKDAT 
    insert_dict['SNDBNKCO']   = TradeContext.SNDBNKCO
    insert_dict['TRCDAT']     = TradeContext.TRCDAT
    insert_dict['TRCNO']      = TradeContext.TRCNO
    insert_dict['RCVBNKCO']   = TradeContext.RCVBNKCO
    insert_dict['SNDMBRCO']   = TradeContext.STLBANKBIN
    insert_dict['RCVMBRCO']   = "1340000008"
    insert_dict['TRCCO']      = TradeContext.TRCCO
    if(TradeContext.TRCCO in ('3000002','3000003','3000004','3000005')):
        insert_dict['DCFLG']  = PL_DCFLG_DEB
    else:
        insert_dict['DCFLG']  = PL_DCFLG_CRE
    insert_dict['PYRACC']     = TradeContext.PYRACC
    insert_dict['PYEACC']     = TradeContext.PYEACC
    insert_dict['CUR']        = "01"
    insert_dict['OCCAMT']     = TradeContext.OCCAMT
    insert_dict['LOCOCCAMT']  = TradeContext.OCCAMT
    if(TradeContext.TRCCO in ('3000102','3000103','3000104','3000105') and wtrbka_record['CHRGTYP'] == PL_CHRG_TYPE ):
        insert_dict['CUSCHRG']    = TradeContext.CUSCHRG
        insert_dict['LOCCUSCHRG'] = TradeContext.CUSCHRG
    else:
        insert_dict['CUSCHRG']    = 0.00
        insert_dict['LOCCUSCHRG'] = 0.00
    insert_dict['ORTRCNO']    = ""
    insert_dict['BJEDTE']     = AfaUtilTools.GetHostDate( )
    insert_dict['BSPSQN']     = TradeContext.BSPSQN
    insert_dict['EACTYP']     = "11"
    insert_dict['EACINF']     = "中心无,行内无"
    insert_dict['LOCEACTYP']  = "11"
    insert_dict['LOCEACINF']  = "中心无,行内无"
    insert_dict['ISDEAL']     = PL_ISDEAL_UNDO
    insert_dict['NOTE1']      = ""
    insert_dict['NOTE2']      = ""
    insert_dict['NOTE3']      = ""
    insert_dict['NOTE4']      = ""
    
    if not rccpsDBTrcc_tddzcz.insertCmt(insert_dict):
        return AfaFlowControl.ExitThisFlow('A099','登记通存通兑登记簿失败')

    AfaLoggerFunc.tradeInfo("<<<<<<结束登记错账登记簿")
    
    #=====查询刚刚插入到业务登记簿中的数据====
    where_dict = {}
    where_dict = {'BJEDTE':TradeContext.BJEDTE,'BSPSQN':TradeContext.BSPSQN}
    tddzcz_record = rccpsDBTrcc_tddzcz.selectu(where_dict)
    if(tddzcz_record == None):
        return AfaFlowControl.ExitThisFlow('A099','查询错账登记簿失败')
    elif(len(tddzcz_record) == 0):
        return AfaFlowControl.ExitThisFlow('A099','登记错账登记簿结果为空')
    else:
        AfaLoggerFunc.tradeInfo("查询错账登记簿成功")
    
    #=====开始给会计分录赋值====
    AfaLoggerFunc.tradeInfo("<<<<<<开始给会计分录赋值")
    TradeContext.BRSFLG   = PL_BRSFLG_RCV
    TradeContext.BETELR   = PL_BETELR_AUTO
    AfaLoggerFunc.tradeInfo("<<<<<<BETELR==" + TradeContext.BETELR)
    input_dict = {}
    input_dict['FEDT']    = TradeContext.FEDT
    input_dict['RBSQ']    = TradeContext.RBSQ
    input_dict['PYRACC']  = wtrbka_record['PYRACC']
    input_dict['PYRNAM']  = wtrbka_record['PYRNAM']
    input_dict['PYEACC']  = wtrbka_record['PYEACC']
    input_dict['PYENAM']  = wtrbka_record['PYENAM']
    input_dict['CHRGTYP'] = wtrbka_record['CHRGTYP']
    input_dict['OCCAMT']  = wtrbka_record['OCCAMT']
    input_dict['CUSCHRG'] = wtrbka_record['CUSCHRG']
    
    if(wtrbka_record['TRCCO'] in ('3000002','3000004')):  
        AfaLoggerFunc.tradeDebug("<<<<<<卡折现金通存来账记账")
        input_dict['RCCSMCD'] = PL_RCCSMCD_XJTCLZ
        rccpsEntriesErr.KZTCLZJZ(input_dict)
        
    elif(wtrbka_record['TRCCO'] in ('3000003','3000005')):
        AfaLoggerFunc.tradeDebug("<<<<<<卡折本转异来账记账")
        input_dict['RCCSMCD'] = PL_RCCSMCD_BZYLZ
        rccpsEntriesErr.KZBZYLZJZ(input_dict)
        
    elif(wtrbka_record['TRCCO'] in ('3000102','3000104')):
        AfaLoggerFunc.tradeDebug("<<<<<<卡折现金通兑来账记账")
        input_dict['RCCSMCD'] = PL_RCCSMCD_XJTDLZ
        rccpsEntriesErr.KZTDLZJZ(input_dict)
        
    elif(wtrbka_record['TRCCO'] in ('3000103','3000105')):
        AfaLoggerFunc.tradeDebug("<<<<<<卡折异转本来账记账")
        input_dict['RCCSMCD'] = PL_RCCSMCD_YZBLZ
        rccpsEntriesErr.KZYZBLZJZ(input_dict)
    
    else:
        return AfaFlowControl.ExitThisFlow('A099','交易代码非法')
        
    AfaLoggerFunc.tradeInfo("<<<<<<给会计分录赋值结束") 
    
    #=====主机前设置原交易状态====  
    AfaLoggerFunc.tradeInfo("<<<<<<主机前设置原交易状态")  
    if not rccpsState.newTransState(wtrbka_record['BJEDTE'],wtrbka_record['BSPSQN'],PL_BCSTAT_ACC,PL_BDWFLG_WAIT):
        return AfaFlowControl.ExitThisFlow('S999','设置业务状态为记账处理中异常')
    else:
        AfaDBFunc.CommitSql()
        
    #=====调用主机交易====
    AfaLoggerFunc.tradeInfo("<<<<<<开始调用主机交易")
    rccpsHostFunc.CommHost( TradeContext.HostCode )
    AfaLoggerFunc.tradeInfo("<<<<<<结束调用主机交易") 
    
    AfaLoggerFunc.tradeDebug("errorCode<<<<<<" + TradeContext.errorCode)
    AfaLoggerFunc.tradeDebug("errorMsg<<<<<<" + TradeContext.errorMsg)
    
    #=====给状态字典赋值====
    state_dict = {}
    state_dict['BJEDTE'] = wtrbka_record['BJEDTE']
    state_dict['BSPSQN'] = wtrbka_record['BSPSQN']
    state_dict['MGID']   = TradeContext.errorCode
    if TradeContext.existVariable('TRDT'):
        state_dict['TRDT']   = TradeContext.TRDT
    if TradeContext.existVariable('TLSQ'):
        state_dict['TLSQ']   = TradeContext.TLSQ
    if TradeContext.existVariable('RBSQ'): 
        state_dict['RBSQ'] = TradeContext.RBSQ
    if TradeContext.existVariable('FEDT'):
        state_dict['FEDT'] = TradeContext.FEDT
    
    #=====判断主机交易是否成功====
    AfaLoggerFunc.tradeInfo("<<<<<<判断主机交易是否成功")
    AfaLoggerFunc.tradeDebug("<<<<<<errorCode=" + TradeContext.errorCode)
    if(TradeContext.errorCode != '0000'):
        AfaLoggerFunc.tradeInfo("调用主机交易失败")
        #=====主机后更改原交易状态为失败====
        state_dict['BDWFLG'] = PL_BDWFLG_FAIL
        state_dict['STRINFO'] = TradeContext.errorMsg
        state_dict['NOTE3'] = "特殊差错账补记失败"
        state_dict['BCSTAT'] = PL_BCSTAT_ACC
        if not rccpsState.setTransState(state_dict):
            return AfaFlowControl.ExitThisFlow('S999','设置业务状态为失败异常')
        else:
            AfaDBFunc.CommitSql()
       
        return AfaFlowControl.ExitThisFlow('S999',TradeContext.errorMsg)
        
    else:
        #=====主机后更改原交易状态为成功====
        state_dict['BDWFLG'] = PL_BDWFLG_SUCC
        state_dict['STRINFO'] = '主机成功'
        state_dict['NOTE3'] = "特殊差错账补记成功"
        if(TradeContext.TRCCO in('3000002','3000004','3000005','3000003')):    #通存
            state_dict['BCSTAT'] = PL_BCSTAT_AUTO 
        else:
            state_dict['BCSTAT'] = PL_BCSTAT_AUTOPAY
        if(TradeContext.existVariable("SBAC")):
            state_dict['SBAC'] = TradeContext.SBAC
        if(TradeContext.existVariable("RBAC")):
            state_dict['RBAC'] = TradeContext.RBAC
        if not rccpsState.setTransState(state_dict):
            return AfaFlowControl.ExitThisFlow('S999','设置业务状态失败')
        else:
            AfaDBFunc.CommitSql()
            
#        bcsata = ""    #状态标识
#        if(TradeContext.TRCCO in('3000002','3000004','3000005','3000003')):    #通存
#            bcstat = PL_BCSTAT_AUTO 
#        else:
#            bcstat = PL_BCSTAT_AUTOPAY       
#        if not rccpsState.newTransState(wtrbka_record['BJEDTE'],wtrbka_record['BSPSQN'],bcstat,PL_BDWFLG_SUCC):
#            return AfaFlowControl.ExitThisFlow('S999','设置业务状态异常')
#        else:
#            AfaDBFunc.CommitSql()
        
    #=====更改错账登记簿中的处理标示====
    AfaLoggerFunc.tradeInfo("<<<<<<更改错账登记簿中的处理标示")
    where_dict = {}
    where_dict = {'BJEDTE':tddzcz_record['BJEDTE'],'BSPSQN':tddzcz_record['BSPSQN']}
    update_dict = {}
    update_dict['ISDEAL'] = PL_ISDEAL_ISDO
    update_dict['NOTE3']  = '此笔错账已补记'
    res = rccpsDBTrcc_tddzcz.updateCmt(update_dict,where_dict)
    if(res == -1):
        return AfaFlowControl.ExitThisFlow('S999','主机记账已成功,但更新处理标示失败,请手动更改处理标示')
        
    else:
        AfaLoggerFunc.tradeInfo("<<<<<<更改错账登记簿中的处理标示成功")

    #=====向下发的通知表中插入数据====
    AfaLoggerFunc.tradeInfo("<<<<<<向通知表中插入数据")
    insert_dict = {}
    insert_dict['NOTDAT']  = AfaUtilTools.GetHostDate( )
    insert_dict['BESBNO']  = wtrbka_record['BESBNO']
    if(wtrbka_record['BRSFLG'] == PL_BRSFLG_RCV):
        insert_dict['STRINFO'] = "此笔错账["+wtrbka_record['BSPSQN']+"]["+wtrbka_record['BJEDTE']+"]已处理"
    else:
        insert_dict['STRINFO'] = "此笔错账["+wtrbka_record['BSPSQN']+"]["+wtrbka_record['BJEDTE']+"]已处理 请用8522补打往账凭证"
    if not rccpsDBTrcc_notbka.insertCmt(insert_dict):
        return AfaFlowControl.ExitThisFlow('S999','向下发的通知表中插入数据失败')
    AfaLoggerFunc.tradeInfo("<<<<<<向通知表中插入数据成功")
    
    
    #=====给输出接口赋值====
    AfaLoggerFunc.tradeInfo("<<<<<<开始给输出接口赋值")
    TradeContext.TRCCO      = wtrbka_record['TRCCO']
    TradeContext.BRSFLG     = wtrbka_record['BRSFLG']
    TradeContext.BEACSB     = wtrbka_record['BESBNO']
    TradeContext.OCCAMT     = str(wtrbka_record['OCCAMT'])
    TradeContext.BSPSQN     = state_dict['TLSQ']
    TradeContext.BJEDTE     = wtrbka_record['BJEDTE']
    
    AfaLoggerFunc.tradeInfo("<<<<<<结束给输出接口赋值")
    
    AfaLoggerFunc.tradeInfo("<<<<<<<个性化处理(本地操作) 退出")
    
    AfaLoggerFunc.tradeInfo("'***农信银系统:通存通兑往账交易.特殊差错账补记[8593] 退出")
    return True
    
    
Exemplo n.º 5
0
def ChkUnitInfo( BRSFLG ):
    if BRSFLG == PL_BRSFLG_SND:
        AfaLoggerFunc.tradeInfo( '>>>开始通过机构号取行号' )
        #=====通存通兑业务直接使用清算中心行号====
        if TradeContext.existVariable('TRCCO') and TradeContext.TRCCO[:2] == '30':
            subbra = {'BESBNO':PL_BESBNO_BCLRSB}
        else:            
            #=====开始向字典赋值==== 
            subbra = {'BESBNO':TradeContext.BESBNO}
            
        #=====查询发送行号====
        sub = rccpsDBTrcc_subbra.selectu(subbra)
        if sub == None:
            return AfaFlowControl.ExitThisFlow('M999','数据库错误')
        if len(sub) <= 0:
            #return AfaFlowControl.ExitThisFlow('M999','机构号取发送行号无对应记录')
            return AfaFlowControl.ExitThisFlow('M999','非法机构')
        else:
            AfaLoggerFunc.tradeDebug('>>>BTOPSB['+sub['BTOPSB']+']')
            #=====刘雨龙 2008-07-25 新增代理机构查询====
            if sub['SUBFLG'] == PL_SUBFLG_SUB :     #被代理,'0' 张恒20091201 替换0 
                sel_sub = {'BESBNO':sub['BTOPSB']}
                                
                sel = rccpsDBTrcc_subbra.selectu(sel_sub)
                if sel == None:
                    return AfaFlowControl.ExitThisFlow('M999','数据库错误')
                if len(sel) <= 0:
                    return AfaFlowControl.ExitThisFlow('M999','非法机构')
                else:
                    TradeContext.SNDBNKCO = sel['BANKBIN']
            else:
                TradeContext.SNDBNKCO = sub['BANKBIN']

            AfaLoggerFunc.tradeInfo( '发送行号[SNDBNKCO]:' + TradeContext.SNDBNKCO )
            #====通过发送行号取行名====
            paybnk = {'BANKBIN':TradeContext.SNDBNKCO}
            pyb = rccpsDBTrcc_paybnk.selectu(paybnk)
            if pyb == None:
                return AfaFlowControl.ExitThisFlow('M999','数据库操作错误')
            if len(pyb) <= 0:
                #return AfaFlowControl.ExitThisFlow('M999','行号取发送行名无相应记录')
                return AfaFlowControl.ExitThisFlow('M999','非法机构')
            else:
                #if( (TradeContext.BJEDTE < pyb['EFCTDAT'] or pyb['BANKSTATUS'] != '1') and len(TradeContext.SNDBNKCO) == 10 ):
                #关彬捷  20081222 修改行号生效失效判断
                if( pyb['NOTE1'] != '1' ):
                    return AfaFlowControl.ExitThisFlow('M999','发送行号未生效')
                else:
                    TradeContext.SNDBNKNM = pyb['BANKNAM'] 
                    TradeContext.SNDSTLBIN = pyb['STLBANKBIN']
                    AfaLoggerFunc.tradeDebug( '发送行名[SNDBNKNM]:' + TradeContext.SNDBNKNM )
                    AfaLoggerFunc.tradeDebug( '发送成员行号[SNDSTLBIN]:' + TradeContext.SNDSTLBIN )

            #=====通过接收行号取接收行成员行号====
            if (TradeContext.existVariable("RCVBNKCO") and len(TradeContext.RCVBNKCO) == 10):
            #if len(TradeContext.RCVBNKCO) == 10:
                AfaLoggerFunc.tradeDebug('>>>普通汇兑行号')
                rcvstl = {'BANKBIN':TradeContext.RCVBNKCO}
                rcvpyb = rccpsDBTrcc_paybnk.selectu(rcvstl)
                if rcvpyb == None:
                    return AfaFlowControl.ExitThisFlow('M999','数据库操作错误')
                if len(rcvpyb) <= 0:
                    return AfaFlowControl.ExitThisFlow('M999','接收行号取接收成员行号无相应记录')
                else:
                    TradeContext.RCVSTLBIN = rcvpyb['STLBANKBIN'] 
                    TradeContext.RCVBNKNM  = rcvpyb['BANKNAM'] 
                    AfaLoggerFunc.tradeDebug('>>>接收行名['+TradeContext.RCVBNKNM+']')
                    AfaLoggerFunc.tradeDebug('>>>接收成员行号['+TradeContext.RCVSTLBIN+']')

                #=====通过OPRTYPNO判断发起行权限和接收行权限====
                if TradeContext.TRCCO[0:2] == '20':
                    #=====判断接收行号====
                    if rcvpyb['PRIVILEGE'][0:1] != '1':
                        return AfaFlowControl.ExitThisFlow('M999','此接收行号尚未开汇兑业务')
                elif TradeContext.TRCCO[0:2] == '21':
                    #=====判断接收行号====
                    if rcvpyb['PRIVILEGE'][1:2] != '1':
                        return AfaFlowControl.ExitThisFlow('M999','此接收行号尚未开通汇票业务')
                elif TradeContext.TRCCO[0:2] == '30':
                    #=====判断接收行号====
                    if rcvpyb['PRIVILEGE'][2:3] != '1':
                        return AfaFlowControl.ExitThisFlow('M999','此接收行号尚未开通通存通兑业务')
                AfaLoggerFunc.tradeDebug('>>>接收成员行号权限判断完成')
            #elif len(TradeContext.RCVBNKCO) < 10:
            else:
                if not TradeContext.existVariable('RCVBNKCO'):
                    TradeContext.RCVBNKCO = '1000000000'  
                                                                         
                    #=====通过行号找行名====
                    paybnk_dict = {'BANKBIN':TradeContext.RCVBNKCO}
                    pyba = rccpsDBTrcc_paybnk.selectu(paybnk_dict)
                    if pyba == None:
                        return AfaFlowControl.ExitThisFlow('M999','数据库操作错误')
                    if len(pyba) <= 0:
                        return AfaFlowControl.ExitThisFlow('M999','行号取发送行名无相应记录')
                    else:
                        TradeContext.RCVBNKNM = pyba['BANKNAM']
                        AfaLoggerFunc.tradeInfo( '接收行名[RCVBNKNM]:' + TradeContext.RCVBNKNM )
                         
                        if len(str(pyba['STLBANKBIN'])) == 0:
                            TradeContext.RCVSTLBIN = '9999999997' 
                        else:
                            TradeContext.RCVSTLBIN = pyba['STLBANKBIN']
                        
                        AfaLoggerFunc.tradeInfo( '接收成员行号[RCVSTLBIN]:' + TradeContext.RCVSTLBIN )
                elif len(TradeContext.RCVBNKCO) == 0:
                    TradeContext.RCVBNKCO = ' '
                elif len(TradeContext.RCVBNKCO) == 7:
                    #=====通过行号找行名====
                    paybnk_dict = {'BANKBIN':TradeContext.RCVBNKCO}
                    pyba = rccpsDBTrcc_paybnk.selectu(paybnk_dict)
                    if pyba == None:
                        return AfaFlowControl.ExitThisFlow('M999','数据库操作错误')
                    if len(pyba) <= 0:
                        return AfaFlowControl.ExitThisFlow('M999','行号取发送行名无相应记录')
                    else:
                        TradeContext.RCVBNKNM = pyba['BANKNAM']
                        AfaLoggerFunc.tradeInfo( '接收行名[RCVBNKNM]:' + TradeContext.RCVBNKNM )
                         
                        if len(str(pyba['STLBANKBIN'])) == 0:
                            TradeContext.RCVSTLBIN = '9999999997' 
                        else:
                            TradeContext.RCVSTLBIN = pyba['STLBANKBIN']
                        
                        AfaLoggerFunc.tradeInfo( '接收成员行号[RCVSTLBIN]:' + TradeContext.RCVSTLBIN )
                

            #=====通过OPRTYPNO判断发起行权限和接收行权限====
            if TradeContext.TRCCO[0:2] == '20':
                #=====判断发起行号====
                if pyb['PRIVILEGE'][0:1] != '1':
                    return AfaFlowControl.ExitThisFlow('M999','此发送行号尚未开通汇兑业务')
            #=====刘雨龙 20081013 新增“汇票解付”同汇兑业务权限====
            elif (TradeContext.TRCCO[0:2] == '21'  and TradeContext.TRCCO != '2100100'):
                #=====判断发起行号====
                if pyb['PRIVILEGE'][1:2] != '1':
                    return AfaFlowControl.ExitThisFlow('M999','此发送行号尚未开通汇票业务')
            elif TradeContext.TRCCO[0:2] == '30':
                #=====判断发起行号====
                if pyb['PRIVILEGE'][2:3] != '1':
                    return AfaFlowControl.ExitThisFlow('M999','此发送行号尚未开通通存通兑业务')
            AfaLoggerFunc.tradeDebug('>>>发起成员行号权限判断完成')
           
    elif BRSFLG == PL_BRSFLG_RCV:
        AfaLoggerFunc.tradeInfo( '>>>开始通过行号取机构号' )
        #=====判断接收行号是否存在====
        if not TradeContext.existVariable( "RCVBNKCO" ):
            TradeContext.BESBNO = PL_BESBNO_BCLRSB
            TradeContext.BETELR = PL_BETELR_AUTO
            AfaLoggerFunc.tradeInfo( '机构号[BESBNO]:' + TradeContext.BESBNO )
            return True

        #====开始向字典赋值====
        suba = {'BANKBIN':TradeContext.RCVBNKCO}
        suba['SUBFLG'] = PL_SUBFLG_AGE     #代理
        subd = rccpsDBTrcc_subbra.selectu(suba)
        if subd == None:
            return AfaFlowControl.ExitThisFlow('M999','数据库操作错误')
        if len(subd) <= 0:
            TradeContext.BESBNO = PL_BESBNO_BCLRSB
            TradeContext.BETELR = PL_BETELR_AUTO
            AfaLoggerFunc.tradeInfo( '机构号[BESBNO]:' + TradeContext.BESBNO )
        else:
            TradeContext.BESBNO = subd['BESBNO']
            TradeContext.BETELR = PL_BETELR_AUTO
            AfaLoggerFunc.tradeInfo( '机构号[BESBNO]:' + TradeContext.BESBNO )
    else:
        return AfaFlowControl.ExitThisFlow('M999','机构参数错误')
    AfaLoggerFunc.tradeInfo('>>>函数结束')

    return True
Exemplo n.º 6
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo('***农信银系统:往账.本地类操作(1.本地操作)卡BIN行号查询[TRCC001_8551]进入***')
    
    start_no = 1                            #起始笔数
    sel_size = 10                           #查询笔数
    
    #=====校验变量的有效性====
    AfaLoggerFunc.tradeInfo("校验变量的有效性")
    
    if not (TradeContext.existVariable( "CARDBIN" ) and TradeContext.CARDBIN != "" ):
        return AfaFlowControl.ExitThisFlow('A099','卡BIN[CARDBIN]不存在' )
    
    #===== 检查卡BIN位数====     
    AfaLoggerFunc.tradeInfo(">>>开始组织查询语句")
    i = 12
    bankcode = ""
    while( i >=6 ):
        cardbin = TradeContext.CARDBIN[:i]
        wheresql = "CARDBIN like '" + cardbin + "%'"
        ordersql = " order by CARDBIN DESC"
        
        AfaLoggerFunc.tradeInfo("wheresql=" + wheresql)
        record = rccpsDBTrcc_cadbnk.selectm(start_no,sel_size,wheresql,ordersql)
        if( record == None ):
            return AfaFlowControl.ExitThisFlow('A099','查询失败' )  
            
        elif( len(record) == 0 ):
            i = i-1 
            
        else:
            bankcode = record[0]['BANKBIN']
            break
    
    if( i < 6 ):
        return AfaFlowControl.ExitThisFlow('A099','无此卡BIN' )
   
    TradeContext.BANKBIN = bankcode
        
    #=====生成查询条件====
    wheresql_dic={}
    wheresql_dic['BANKBIN']=TradeContext.BANKBIN
    AfaLoggerFunc.tradeInfo( "wheresql_dic="+TradeContext.BANKBIN)
                
    #=====开始查询数据库====
    records=rccpsDBTrcc_paybnk.selectu(wheresql_dic)
    if(records==None):
        return AfaFlowControl.ExitThisFlow('A099','查询失败' )
    elif(len(records)==0):
        return AfaFlowControl.ExitThisFlow('A099','没有查找到数据')
    else:    
        #=====输出接口====
        TradeContext.BANKNAM=records['BANKNAM']
    
    #=====输出接口赋值====
    AfaLoggerFunc.tradeInfo(">>>输出接口赋值")
    TradeContext.errorCode = '0000'
    TradeContext.errorMsg  = '成功'
    TradeContext.BANKBIN = bankcode
    
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.本地类操作(1.本地操作)卡BIN行号查询[TRCC001_8551]退出***')
    return True
    
Exemplo n.º 7
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo( '***来账.中心类操作(1.本地操作).公共数据通知报文接收[TRCC006_1122]进入***' )
    
    #=================判断是否重复报文==========================================
    AfaLoggerFunc.tradeInfo(">>>开始判断是否重复报文")
    
    pbdata_where_dict = {}
    pbdata_where_dict['SNDBNKCO'] = TradeContext.SNDBNKCO
    pbdata_where_dict['TRCDAT']   = TradeContext.TRCDAT
    pbdata_where_dict['TRCNO']    = TradeContext.TRCNO
    
    pbdata_dict = rccpsDBTrcc_pbdata.selectu(pbdata_where_dict)
    
    if pbdata_dict == None:
        return AfaFlowControl.ExitThisFlow("S999","判断是否重复报文,查询公共数据登记簿相同报文异常")
        
    if len(pbdata_dict) > 0:
        AfaLoggerFunc.tradeInfo("公共数据登记簿中存在相同数据,重复报文,进入下一流程")
        #======为通讯回执报文赋值===================================================
        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
    
    AfaLoggerFunc.tradeInfo(">>>结束判断是否重复报文")
    
    #=================下载公共数据文件==========================================
    AfaLoggerFunc.tradeInfo(">>>开始下载公共数据文件")
    
    rccps_path_list = TradeContext.PBDAFILE.split('/')
    
    file_path = AfaUtilTools.trim(rccps_path_list[len(rccps_path_list)-2] + "/" + rccps_path_list[len(rccps_path_list)-1])
    
    if not rccpsFtpFunc.getRccps(file_path):
        return AfaFlowControl.ExitThisFlow("S999","下载公共数据文件" + file_path + "异常")
    
    AfaLoggerFunc.tradeInfo(">>>结束下载公共数据文件")
    
    #=================登记公共数据通知登记簿====================================
    AfaLoggerFunc.tradeInfo(">>>开始登记公共数据通知登记簿")
    
    pbdata_insert_dict = {}
    if not rccpsMap1122CTradeContext2Dpbdata.map(pbdata_insert_dict):
        return AfaFlowControl.ExitThisFlow("S999","为公共数据通知登记簿赋值异常")
    
    ret = rccpsDBTrcc_pbdata.insert(pbdata_insert_dict)
    
    if ret <= 0:
        if not AfaDBFunc.RollbackSql( ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            AfaLoggerFunc.tradeError(">>>Rollback异常")
        AfaLoggerFunc.tradeInfo(">>>Rollback成功")
        return AfaFlowControl.ExitThisFlow("S999","登记公共数据通知登记簿异常")
    
    AfaLoggerFunc.tradeInfo(">>>结束登记公共数据通知登记簿")
    
    #=================处理接收到的数据==========================================
    AfaLoggerFunc.tradeInfo(">>>开始处理接收到的数据")
    
    local_file_home = os.environ['AFAP_HOME'] + "/data/rccps/"
    #AfaLoggerFunc.tradeInfo(local_file_home + file_path)
    
    #=================农信银资金清算系统行名行号================================
    if TradeContext.PBDATYP == '001':
        AfaLoggerFunc.tradeInfo(">>>开始更新行名行号表农信银资金清算系统行名行号")
        
        pfile = open(local_file_home + file_path,"rb")
        file_line = " "
        
        while file_line:
            file_line = AfaUtilTools.trim(pfile.readline())   
            file_line = rccpsUtilTools.replaceRet(file_line)
            
            if file_line == "":
                continue
                
            line_list = file_line.split('|')
            
            paybnk_where_dict = {}
            paybnk_where_dict['BANKBIN'] = line_list[0]
            tmp_paybnk_dict = rccpsDBTrcc_paybnk.selectu(paybnk_where_dict)
            if tmp_paybnk_dict == None:
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","查询将登记行号是否存在异常")
            
            paybnk_dict = {}
            paybnk_dict['BANKBIN']      = line_list[0][:10]
            paybnk_dict['BANKSTATUS']   = line_list[1][:1]
            paybnk_dict['BANKATTR']     = line_list[2][:2]
            paybnk_dict['STLBANKBIN']   = line_list[3][:10]
            paybnk_dict['BANKNAM']      = line_list[4][:60]
            paybnk_dict['BANKADDR']     = line_list[5][:60]
            paybnk_dict['BANKPC']       = line_list[6][:6]
            paybnk_dict['BANKTEL']      = line_list[7][:30]
            paybnk_dict['EFCTDAT']      = line_list[8][:8]
            paybnk_dict['INVDAT']       = line_list[9][:8]
            paybnk_dict['ALTTYPE']      = line_list[10][:1]
            paybnk_dict['PRIVILEGE']    = line_list[11][:20]
            paybnk_dict['STRINFO']      = line_list[12][:60]
            
            if len(tmp_paybnk_dict) <= 0:
                #=====行名行号表中不存在此行号,插入新行号=======================
                ret = rccpsDBTrcc_paybnk.insert(paybnk_dict)
                AfaLoggerFunc.tradeInfo("插入新行号")
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","插入新行号异常")
                    
            else:
                #=====行名行号表中存在此行号,更新行号信息=======================
                ret = rccpsDBTrcc_paybnk.update(paybnk_dict,paybnk_where_dict)
                AfaLoggerFunc.tradeInfo("更新旧行号")
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","更新旧行号异常")
            
        
        AfaLoggerFunc.tradeInfo(">>>结束更新行名行号表农信银资金清算系统行名行号")
        
    #=================特约汇兑系统行名行号======================================
    elif TradeContext.PBDATYP == '011':
        AfaLoggerFunc.tradeInfo(">>>开始更新行名行号表特约汇兑系统行名行号")
        
        pfile = open(local_file_home + file_path,"rb")
        file_line = " "
        
        while file_line:
            file_line = AfaUtilTools.trim(pfile.readline())
            file_line = rccpsUtilTools.replaceRet(file_line)
            
            if file_line == "":
                continue
            
            line_list = file_line.split('|')
            
            paybnk_where_dict = {}
            paybnk_where_dict['BANKBIN'] = line_list[0]
            
            tmp_paybnk_dict = rccpsDBTrcc_paybnk.selectu(paybnk_where_dict)
            
            if tmp_paybnk_dict == None:
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","查询将登记行号是否存在异常")
            
            paybnk_dict = {}
            paybnk_dict['BANKBIN']      = line_list[0][:10]
            paybnk_dict['BANKNAM']      = line_list[1][:60]
            paybnk_dict['BANKADDR']     = line_list[2][:60]
            paybnk_dict['BANKPC']       = line_list[3][:6]
            paybnk_dict['BANKTEL']      = line_list[4][:30]
            paybnk_dict['EFCTDAT']      = line_list[5][:8]
            paybnk_dict['INVDAT']       = line_list[6][:8]
            paybnk_dict['ALTTYPE']      = line_list[7][:1]
            paybnk_dict['NEWOFLG']      = line_list[8][:1]
            paybnk_dict['STRINFO']      = line_list[9][:60]
            
            if len(tmp_paybnk_dict) <= 0:
                #=====行名行号表中不存在此行号,插入新行号=========
                ret = rccpsDBTrcc_paybnk.insert(paybnk_dict)
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","插入新行号异常")
                    
            else:
                #=====行名行号表中存在此行号,更新行号信息=========
                ret = rccpsDBTrcc_paybnk.update(paybnk_dict,paybnk_where_dict)
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","插入新行号异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束更新行名行号表特约汇兑系统行名行号")
        
    #=================中心下发通知==============================================
    elif TradeContext.PBDATYP == '002':
        AfaLoggerFunc.tradeInfo(">>>开始处理中心下发通知")
        
        AfaLoggerFunc.tradeInfo(">>>中心下发通知文件,不做处理")
        
        AfaLoggerFunc.tradeInfo(">>>结束处理中心下发通知")
        
    #=================存款利息清单==============================================
    elif TradeContext.PBDATYP == '003':
        AfaLoggerFunc.tradeInfo(">>>开始处理存款利息清单")
        
        #=============为存款利息清单文件加抬头==================================
        file = ""
        file = file + "\n"
        file = file + "                    上存农信银资金清算中心存款利息单                    " + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "    成员行号:1340000008  成员行名:安徽省联社清算中心    " + "\n"
        file = file + "\n"
        file = file + "".ljust(145,"-")
        file = file + "\n"
        file = file + "账号".ljust(18," ")     + "|"
        file = file + "户名".ljust(60," ")     + "|"
        file = file + "积数".ljust(20," ")     + "|"
        file = file + "利率".ljust(10," ")     + "|"
        file = file + "起息日".ljust(8," ")    + "|"
        file = file + "结息日".ljust(8," ")    + "|"
        file = file + "利息金额".ljust(14," ") + "\n"
        file = file + "".ljust(145,"-")
        file = file + "\n"
        
        pfile = open(local_file_home + file_path,"rb")
        file = file + pfile.read()
        
        pfile.close
        
        file = file + "".ljust(145,"-")
        file = file + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "打印日期:                记账:                 复核:                " + "\n"
        
        pfile = open(local_file_home + file_path,"wb")
        pfile.write(file)
        
        pfile.close()
        
        AfaLoggerFunc.tradeInfo(">>>结束处理存款利息清单")
        
    #=================透支利息清单==============================================
    elif TradeContext.PBDATYP == '004':
        AfaLoggerFunc.tradeInfo(">>>开始处理存款利息清单")
        
        #=============为透支利息清单文件加抬头==================================
        file = ""
        file = file + "\n"
        file = file + "                    上存农信银资金清算中心存款透支利息单                    " + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "    成员行号:1340000008  成员行名:安徽省联社清算中心    " + "\n"
        file = file + "\n"
        file = file + "".ljust(145,"-")
        file = file + "\n"
        file = file + "账号".ljust(18," ")     + "|"
        file = file + "户名".ljust(60," ")     + "|"
        file = file + "透支积数".ljust(20," ") + "|"
        file = file + "透支利率".ljust(10," ") + "|"
        file = file + "起息日".ljust(8," ")    + "|"
        file = file + "结息日".ljust(8," ")    + "|"
        file = file + "利息金额".ljust(14," ") + "\n"
        file = file + "".ljust(145,"-")
        file = file + "\n"
        
        pfile = open(local_file_home + file_path,"rb")
        file = file + pfile.read()
        
        pfile.close
        
        file = file + "".ljust(145,"-")
        file = file + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "打印日期:                记账:                 复核:                " + "\n"
        
        pfile = open(local_file_home + file_path,"wb")
        pfile.write(file)
        
        pfile.close()
        
        AfaLoggerFunc.tradeInfo(">>>结束处理存款利息清单")
        
    #=================手续费扣收清单============================================
    elif TradeContext.PBDATYP == '005':
        AfaLoggerFunc.tradeInfo(">>>开始登记手续费扣收清单")
        
        #=============为手续费扣收清单文件加抬头==================================
        file = ""
        file = file + "\n"
        file = file + "                    农信银资金清算中心业务手续费扣划单                    " + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "    成员行号:1340000008  成员行名:安徽省联社清算中心    " + "\n"
        file = file + "\n"
        file = file + "".ljust(268,"-")
        file = file + "\n"
        file = file + "账号".ljust(18," ")              + "|"
        file = file + "户名".ljust(60," ")              + "|"
        file = file + "起始日期".ljust(8," ")           + "|"
        file = file + "终止日期".ljust(8," ")           + "|"
        file = file + "计费总金额".ljust(15," ")        + "|"
        file = file + "折扣率".ljust(11," ")             + "|"
        file = file + "扣费总金额".ljust(15," ")        + "|"
        file = file + "汇兑累计笔数".ljust(10," ")      + "|"
        file = file + "汇兑手续费/笔".ljust(13," ")     + "|"
        file = file + "汇兑计费金额".ljust(16," ")      + "|"
        file = file + "汇票累计笔数".ljust(10," ")      + "|"
        file = file + "汇票手续费/笔".ljust(13," ")     + "|"
        file = file + "汇票计费金额".ljust(16, " ")     + "|"
        file = file + "通存通兑累计笔数".ljust(10," ")  + "|"
        file = file + "通存通兑手续费/笔".ljust(13," ") + "|"
        file = file + "通存通兑计费金额".ljust(16," ")  + "\n"
        file = file + "".ljust(268,"-")
        file = file + "\n"
        
        pfile = open(local_file_home + file_path,"rb")
        file = file + pfile.read()
        
        pfile.close
        
        file = file + "".ljust(268,"-")
        file = file + "\n"
        file = file + "\n"
        file = file + "\n"
        file = file + "打印日期:                记账:                 复核:                " + "\n"
        
        pfile = open(local_file_home + file_path,"wb")
        pfile.write(file)
        
        pfile.close()
        
        AfaLoggerFunc.tradeInfo(">>>结束登记手续费扣收清单")
        
    #=================卡BIN与行号对照===========================================
    elif TradeContext.PBDATYP == '006':
        AfaLoggerFunc.tradeInfo(">>>开始更新卡BIN与行号对照表")
        
        pfile = open(local_file_home + file_path,"r")
        file_line = " "
        
        while file_line:
            file_line = AfaUtilTools.trim(pfile.readline())
            file_line = rccpsUtilTools.replaceRet(file_line)
            #AfaLoggerFunc.tradeInfo("file_line = [" + file_line + "]")
            
            if file_line == "":
                continue
                
            line_list = file_line.split('|')
            
            cadbnk_where_dict = {}
            cadbnk_where_dict['CARDBIN'] = line_list[0][:12]
            
            tmp_cadbnk_dict = rccpsDBTrcc_cadbnk.selectu(cadbnk_where_dict)
            
            if tmp_cadbnk_dict == None:
                if not AfaDBFunc.RollbackSql( ):
                    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                    AfaLoggerFunc.tradeError(">>>Rollback异常")
                AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                return AfaFlowControl.ExitThisFlow("S999","查询将登记卡BIN是否存在异常")
            
            cadbnk_dict = {}
            cadbnk_dict['CARDBIN']      = line_list[0][:12]
            cadbnk_dict['BANKBIN']      = line_list[1][:10]
            
            if len(tmp_cadbnk_dict) <= 0:
                #=====行名行号表中不存在此卡BIN,插入新卡BIN===================
                ret = rccpsDBTrcc_cadbnk.insert(cadbnk_dict)
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","插入新卡BIN异常")
                    
            else:
                #=====行名行号表中存在此卡BIN,更新卡BIN========================
                ret = rccpsDBTrcc_cadbnk.update(cadbnk_dict,cadbnk_where_dict)
                if ret <= 0:
                    if not AfaDBFunc.RollbackSql( ):
                        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        AfaLoggerFunc.tradeError(">>>Rollback异常")
                    AfaLoggerFunc.tradeInfo(">>>Rollback成功")
                    return AfaFlowControl.ExitThisFlow("S999","插入新卡BIN异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束更新卡BIN与行号对照表")
        
        
    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.本地操作).公共数据通知报文接收[TRCC006_1122]退出***' )
    
    return True