コード例 #1
0
ファイル: TRCC004_1151.py プロジェクト: bianhezhen/AFA1.0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo("回执个性化处理(本地操作)  进入")
    
    #=====校验变量的有效性====
    AfaLoggerFunc.tradeInfo("检验变量的有效性")
    if not TradeContext.existVariable("TRCDAT"):
        return AfaFlowControl.ExitThisFlow('A099','没有委托日期')
        
    if not TradeContext.existVariable("TRCNO"):
        return AfaFlowControl.ExitThisFlow('A099','没有交易流水号')
        
    if not TradeContext.existVariable("SNDBNKCO"):
        return AfaFlowControl.ExitThisFlow('A099','没有发起行行号')
        

    #=====检查是否有对应的请求报文====
    AfaLoggerFunc.tradeInfo("检查是否有对应的请求报文")
    balbka_where_dict = {'TRCDAT':TradeContext.ORMFN[10:18],'TRCNO':TradeContext.ORMFN[18:],'SNDMBRCO':TradeContext.ORMFN[:10]}    
    res = rccpsDBTrcc_balbka.selectu(balbka_where_dict)
    if( res == None ):
        return AfaFlowControl.ExitThisFlow('A099','检查对应的请求报文失败')
        
    if( len(res) == 0 ):
        return AfaFlowControl.ExitThisFlow('A099','没有对应的请求报文')
    
        
    #=====组织更新字典====
    AfaLoggerFunc.tradeInfo("开始组织更新字典")
    update_dict = {}
    update_dict['AVLBAL']  = TradeContext.AVLBAL
    update_dict['ACCBAL']  = TradeContext.ACCBAL
    update_dict['PRCCO']   = TradeContext.PRCCO
    #update_dict['PRCINFO'] = "AFE发送成功,已收到应答报文"
    update_dict['STRINFO'] = TradeContext.STRINFO
    where_dict = {}
    where_dict['TRCDAT']   = TradeContext.TRCDAT
    where_dict['TRCNO']    = TradeContext.TRCNO
    where_dict['SNDBNKCO'] = TradeContext.SNDBNKCO
    
    #=====更新余额查询登记簿====
    AfaLoggerFunc.tradeInfo("更新余额查询登记簿")
    res = rccpsDBTrcc_balbka.updateCmt(update_dict,where_dict)
    if( res == -1 ):
        return AfaFlowControl.ExitThisFlow('A009','更新余额查询登记簿失败')

    TradeContext.errorCode = '0000'
    TradeContext.errorMsg  = '交易成功'
    
    AfaLoggerFunc.tradeInfo("回执个性化处理(本地操作)  退出")
    
    return True
コード例 #2
0
ファイル: TRCC004_1147.py プロジェクト: bianhezhen/AFA1.0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.回执类操作(1.回执操作).通存通兑业务回执报文接收[TRC004_1147]进入***' )
    #=================初始化返回信息============================================
    if AfaUtilTools.trim(TradeContext.STRINFO) == "":
        TradeContext.STRINFO = rccpsDBFunc.getErrInfo(TradeContext.PRCCO)
        
    AfaLoggerFunc.tradeDebug("TradeContext.STRINFO=" + TradeContext.STRINFO)
    
    #=================匹配原交易信息===========================================
    wtrbka_where_dict = {}
    wtrbka_where_dict['MSGFLGNO'] = TradeContext.ORMFN
    
    wtrbka_dict = {}
    wtrbka_dict = rccpsDBTrcc_wtrbka.selectu(wtrbka_where_dict)
    if wtrbka_dict == None:
        return AfaFlowControl.ExitThisFlow('S999', "查询通存通兑业务信息登记簿异常")
    
    if len(wtrbka_dict) > 0:
        TradeContext.BJEDTE  = wtrbka_dict['BJEDTE']
        TradeContext.BSPSQN  = wtrbka_dict['BSPSQN']
        TradeContext.TRCCO   = wtrbka_dict['TRCCO']
        TradeContext.BESBNO  = wtrbka_dict['BESBNO']
        TradeContext.BETELR  = wtrbka_dict['BETELR']
        TradeContext.OCCAMT  = str(wtrbka_dict['OCCAMT'])
        TradeContext.CHRGTYP = wtrbka_dict['CHRGTYP']
        TradeContext.LOCCUSCHRG = str(wtrbka_dict['CUSCHRG'])
        TradeContext.PYETYP  = wtrbka_dict['PYETYP']
        TradeContext.PYEACC  = wtrbka_dict['PYEACC']
        TradeContext.PYENAM  = wtrbka_dict['PYENAM']
        TradeContext.PYRTYP  = wtrbka_dict['PYRTYP']
        TradeContext.PYRACC  = wtrbka_dict['PYRACC']
        TradeContext.PYRNAM  = wtrbka_dict['PYRNAM']
        TradeContext.CERTTYPE = wtrbka_dict['CERTTYPE']
        TradeContext.CERTNO  = wtrbka_dict['CERTNO']
        TradeContext.TERMID  = wtrbka_dict['TERMID']
        TradeContext.WARNTNO = wtrbka_dict['BNKBKNO']
        
        #============设置原交易状态为拒绝======================================
        AfaLoggerFunc.tradeInfo(">>>开始设置原交易业务状态为拒绝处理中")
        
        if not rccpsState.newTransState(TradeContext.BJEDTE,TradeContext.BSPSQN,PL_BCSTAT_MFERFE,PL_BDWFLG_WAIT):
            return AfaFlowControl.ExitThisFlow('S999',"设置业务状态为拒绝处理中异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束设置原交易业务状态为拒绝处理中")
        
        if not AfaDBFunc.CommitSql( ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return AfaFlowControl.ExitThisFlow("S999","Commit异常")
        AfaLoggerFunc.tradeInfo(">>>Commit成功")
        
        AfaLoggerFunc.tradeInfo(">>>开始设置原交易业务状态为拒绝成功")
        
        stat_dict = {}
        stat_dict['BJEDTE']  = TradeContext.BJEDTE
        stat_dict['BSPSQN']  = TradeContext.BSPSQN
        stat_dict['BCSTAT']  = PL_BCSTAT_MFERFE
        stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
        stat_dict['PRCCO']   = TradeContext.PRCCO
        stat_dict['STRINFO'] = TradeContext.STRINFO
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为拒绝成功异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束设置原交易业务状态为拒绝成功")
        
    else:
        AfaLoggerFunc.tradeInfo(">>>通存通兑业务登记簿中未找到原请求交易信息,开始查询原存款确认信息")
        wtrbka_where_dict = {}
        wtrbka_where_dict['COMSGFLGNO'] = TradeContext.ORMFN
        
        wtrbka_dict = {}
        wtrbka_dict = rccpsDBTrcc_wtrbka.selectu(wtrbka_where_dict)
        
        if wtrbka_dict == None:
            return AfaFlowControl.ExitThisFlow('S999', "查询通存通兑业务信息登记簿异常")
        
        if len(wtrbka_dict) > 0:
            TradeContext.BJEDTE  = wtrbka_dict['BJEDTE']
            TradeContext.BSPSQN  = wtrbka_dict['BSPSQN']
            TradeContext.TRCCO   = wtrbka_dict['TRCCO']
            TradeContext.BESBNO  = wtrbka_dict['BESBNO']
            TradeContext.BETELR  = wtrbka_dict['BETELR']
            TradeContext.OCCAMT  = str(wtrbka_dict['OCCAMT'])
            TradeContext.CHRGTYP = wtrbka_dict['CHRGTYP']
            TradeContext.LOCCUSCHRG = str(wtrbka_dict['CUSCHRG'])
            TradeContext.PYETYP  = wtrbka_dict['PYETYP']
            TradeContext.PYEACC  = wtrbka_dict['PYEACC']
            TradeContext.PYENAM  = wtrbka_dict['PYENAM']
            TradeContext.PYRTYP  = wtrbka_dict['PYRTYP']
            TradeContext.PYRACC  = wtrbka_dict['PYRACC']
            TradeContext.PYRNAM  = wtrbka_dict['PYRNAM']
            TradeContext.CERTTYPE = wtrbka_dict['CERTTYPE']
            TradeContext.CERTNO  = wtrbka_dict['CERTNO']
            TradeContext.TERMID  = wtrbka_dict['TERMID']
            TradeContext.WARNTNO = wtrbka_dict['BNKBKNO']
            
            #============设置原交易状态为拒绝======================================
            AfaLoggerFunc.tradeInfo(">>>开始设置原交易业务状态为拒绝处理中")
            
            if not rccpsState.newTransState(TradeContext.BJEDTE,TradeContext.BSPSQN,PL_BCSTAT_MFERFE,PL_BDWFLG_WAIT):
                return AfaFlowControl.ExitThisFlow('S999',"设置业务状态为拒绝处理中异常")
            
            AfaLoggerFunc.tradeInfo(">>>结束设置原交易业务状态为拒绝处理中")
            
            if not AfaDBFunc.CommitSql( ):
                AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                return AfaFlowControl.ExitThisFlow("S999","Commit异常")
            AfaLoggerFunc.tradeInfo(">>>Commit成功")
            
            AfaLoggerFunc.tradeInfo(">>>开始设置原交易业务状态为拒绝成功")
            
            stat_dict = {}
            stat_dict['BJEDTE']  = TradeContext.BJEDTE
            stat_dict['BSPSQN']  = TradeContext.BSPSQN
            stat_dict['BESBNO']  = TradeContext.BESBNO
            stat_dict['BETELR']  = TradeContext.BETELR
            stat_dict['BCSTAT']  = PL_BCSTAT_MFERFE
            stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
            stat_dict['PRCCO']   = TradeContext.PRCCO
            stat_dict['STRINFO'] = TradeContext.STRINFO
            
            if not rccpsState.setTransState(stat_dict):
                return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为拒绝成功异常")
            
            AfaLoggerFunc.tradeInfo(">>>结束设置原交易业务状态为拒绝成功")
            
        else:
            AfaLoggerFunc.tradeInfo(">>>通存通兑业务登记簿中未找到原存款确认信息,开始查询余额查询登记簿")
            balbka_where_dict = {}
            balbka_where_dict['MSGFLGNO'] = TradeContext.ORMFN
            
            balbka_dict = {}
            balbka_dict = rccpsDBTrcc_balbka.selectu(balbka_where_dict)
            
            if balbka_dict == None:
                return AfaFlowControl.ExitThisFlow('S999', "查询余额查询登记簿异常")
                
            if len(balbka_dict) > 0:
                TradeContext.TRCCO = balbka_dict['TRCCO']
                
                #=====更新原余额查询交易返回码=================================
                AfaLoggerFunc.tradeInfo(">>>开始更新原余额查询交易返回码")
                
                balbka_update_dict = {}
                balbka_update_dict['PRCCO']   = TradeContext.PRCCO
                balbka_update_dict['STRINFO'] = TradeContext.STRINFO
                
                ret = rccpsDBTrcc_balbka.update(balbka_update_dict,balbka_where_dict)
                
                if ret <= 0:
                    return AfaFlowControl.ExitThisFlow('S999', "更新原余额查询交易返回码异常")
                
                AfaLoggerFunc.tradeInfo(">>>结束更新原余额查询交易返回码")
            else:
                AfaLoggerFunc.tradeInfo(">>>余额查询登记簿中未找到原交易信息,开始查询自动冲正登记簿")
                atcbka_where_dict = {}
                atcbka_where_dict['MSGFLGNO'] = TradeContext.ORMFN
                
                atcbka_dict = {}
                atcbka_dict = rccpsDBTrcc_atcbka.selectu(atcbka_where_dict)
                
                if atcbka_dict == None:
                    return AfaFlowControl.ExitThisFlow('S999', "查询自动冲正登记簿异常")
                    
                if len(atcbka_dict) > 0:
                    TradeContext.BOJEDT = atcbka_dict['BOJEDT']
                    TradeContext.BOSPSQ = atcbka_dict['BOSPSQ']
                    TradeContext.TRCCO  = atcbka_dict['TRCCO']
                    
                    #====更新自动冲正交易返回码================================
                    AfaLoggerFunc.tradeInfo(">>>开始更新原自动冲正交易返回码")
                    
                    atcbka_update_dict = {}
                    atcbka_update_dict['PRCCO']   = TradeContext.PRCCO
                    atcbka_update_dict['STRINFO'] = TradeContext.STRINFO
                    
                    ret = rccpsDBTrcc_atcbka.update(atcbka_update_dict,atcbka_where_dict)
                    
                    if ret<= 0:
                        return AfaFlowControl.ExitThisFlow('S999', "更新原冲正交易返回码异常")
                    
                    AfaLoggerFunc.tradeInfo(">>>结束更新原自动冲正交易返回码")
                    
                    #====设置原被冲正交易业务状态为冲正失败================
                    #AfaLoggerFunc.tradeInfo(">>>开始设置原被冲正交易业务状态为冲正失败")
                    #
                    #stat_dict = {}
                    #stat_dict['BJEDTE']  = TradeContext.BOJEDT
                    #stat_dict['BSPSQN']  = TradeContext.BOSPSQ
                    #stat_dict['BCSTAT']  = PL_BCSTAT_CANC
                    #stat_dict['BDWFLG']  = PL_BDWFLG_FAIL
                    #stat_dict['PRCCO']   = TradeContext.PRCCO
                    #stat_dict['STRINFO'] = TradeContext.STRINFO
                    #
                    #if not rccpsState.setTransState(stat_dict):
                    #    return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为冲正失败异常")
                    #
                    #AfaLoggerFunc.tradeInfo(">>>结束设置原被冲正交易业务状态为冲正失败")
                else:
                    AfaLoggerFunc.tradeInfo(">>>自动冲正登记簿中未找到原交易信息,开始查询柜面冲销登记簿")
                    mpcbka_where_dict = {}
                    mpcbka_where_dict['MSGFLGNO'] = TradeContext.ORMFN
                    
                    mpcbka_dict = {}
                    mpcbka_dict = rccpsDBTrcc_mpcbka.selectu(mpcbka_where_dict)
                    
                    if mpcbka_dict == None:
                        return AfaFlowControl.ExitThisFlow('S999', "查询柜面冲销登记簿异常")
                        
                    if len(mpcbka_dict) > 0:
                        TradeContext.BOJEDT  = mpcbka_dict['BOJEDT']
                        TradeContext.BOSPSQ  = mpcbka_dict['BOSPSQ']
                        TradeContext.TRCCO   = mpcbka_dict['TRCCO']
                        TradeContext.ORTRCCO = mpcbka_dict['ORTRCCO']
                        TradeContext.BESBNO  = mpcbka_dict['BESBNO']
                        TradeContext.BETELR  = mpcbka_dict['BETELR']
                        TradeContext.TERMID  = mpcbka_dict['TERMID']
                        
                        #====更新柜台冲销交易返回码================================
                        AfaLoggerFunc.tradeInfo(">>>开始更新原柜台冲销交易返回码")
                        
                        mpcbka_update_dict = {}
                        mpcbka_update_dict['PRCCO']   = TradeContext.PRCCO
                        mpcbka_update_dict['STRINFO'] = TradeContext.STRINFO
                        
                        ret = rccpsDBTrcc_mpcbka.update(mpcbka_update_dict,mpcbka_where_dict)
                        
                        if ret <=0:
                            return AfaFlowControl.ExitThisFlow('S999', "更新原柜面冲销交易返回码异常")
                            
                        AfaLoggerFunc.tradeInfo(">>>结束更新原柜面冲销交易返回码")
                        
                        #====设置原被冲销交易业务状态为冲销失败================
                        #AfaLoggerFunc.tradeInfo(">>>开始设置原被冲销交易业务状态为冲销处理中")
                        #
                        #if not rccpsState.newTransState(TradeContext.BOJEDT,TradeContext.BOSPSQ,PL_BCSTAT_CANC,PL_BDWFLG_WAIT):
                        #    return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为冲销失败异常")
                        #
                        #AfaLoggerFunc.tradeInfo(">>>结束设置原被冲销交易业务状态为冲销处理中")
                        #
                        #if not AfaDBFunc.CommitSql( ):
                        #    AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
                        #    return AfaFlowControl.ExitThisFlow("S999","Commit异常")
                        #AfaLoggerFunc.tradeInfo(">>>Commit成功")
                        #
                        #AfaLoggerFunc.tradeInfo(">>>开始设置原被冲销交易业务状态为冲销失败")
                        #
                        #stat_dict = {}
                        #
                        #stat_dict['BJEDTE']  = TradeContext.BJEDTE
                        #stat_dict['BSPSQN']  = TradeContext.BSPSQN
                        #stat_dict['PRCCO']   = TradeContext.PRCCO
                        #stat_dict['STRINFO'] = TradeContext.STRINFO
                        #stat_dict['BCSTAT']  = PL_BCSTAT_CANC
                        #stat_dict['BDWFLG']  = PL_BDWFLG_FAIL
                        #
                        #AfaLoggerFunc.tradeInfo(">>>结束设置原被冲销交易业务状态为冲销失败")
                    
                    else:
                        return AfaFlowControl.ExitThisFlow('S999', "未找到原交易信息,丢弃报文")
        
    if not AfaDBFunc.CommitSql( ):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow("S999","Commit异常")
    AfaLoggerFunc.tradeInfo(">>>Commit成功")
    
    #=================若原交易为通存交易,开始自动抹账==========================
    if TradeContext.TRCCO == '3000002' or TradeContext.TRCCO == '3000003' or TradeContext.TRCCO == '3000004' or TradeContext.TRCCO == '3000005':
        
        #=====特殊处理  关彬捷 20081127 调8813抹账,需产生新的前置流水号进行记账====
        if rccpsGetFunc.GetRBSQ(PL_BRSFLG_SND) == -1 :
            return AfaFlowControl.ExisThisFlow('S999',"产生新的前置流水号异常")
        else:
            AfaLoggerFunc.tradeInfo(">>>成功产生新的前置流水号")
        
        #为抹账赋值会计分录
        entries_dict = {}
        entries_dict['FEDT']     = TradeContext.BJEDTE
        entries_dict['RBSQ']     = TradeContext.BSPSQN
        entries_dict['PYRACC']   = TradeContext.PYRACC
        entries_dict['PYRNAM']   = TradeContext.PYRNAM
        entries_dict['PYEACC']   = TradeContext.PYEACC
        entries_dict['PYENAM']   = TradeContext.PYENAM
        entries_dict['OCCAMT']   = TradeContext.OCCAMT
        entries_dict['CHRGTYP']  = TradeContext.CHRGTYP
        entries_dict['CUSCHRG']  = TradeContext.LOCCUSCHRG
        entries_dict['RCCSMCD']  = PL_RCCSMCD_CX
        TradeContext.BRSFLG      = PL_BRSFLG_SND
        
        if TradeContext.TRCCO == '3000002' or TradeContext.TRCCO == '3000004':
            rccpsEntries.KZTCWZMZ(entries_dict)
        
        if TradeContext.TRCCO == '3000003' or TradeContext.TRCCO == '3000005':
            rccpsEntries.KZBZYWZMZ(entries_dict)
        
        #=============设置原交易业务状态为抹账处理中===========================
        AfaLoggerFunc.tradeInfo(">>>开始设置原交易业务状态为抹账处理中")
        
        #====设置业务状态为抹账处理中====
        if not rccpsState.newTransState(TradeContext.BJEDTE,TradeContext.BSPSQN,PL_BCSTAT_HCAC,PL_BDWFLG_WAIT):
            return AfaFlowControl.ExitThisFlow('S999','设置业务状态为抹账处理中异常')
        
        AfaLoggerFunc.tradeInfo(">>>结束设置原交易业务状态为抹账处理中")
        
        if not AfaDBFunc.CommitSql( ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return AfaFlowControl.ExitThisFlow("S999","Commit异常")
        
        #=============开始发起主机抹账=========================================
        AfaLoggerFunc.tradeInfo(">>>开始主机抹账")
        
        #=====调起抹账主机接口====
        rccpsHostFunc.CommHost( TradeContext.HostCode )
        
        AfaLoggerFunc.tradeInfo(">>>结束主机抹账")
        
        AfaLoggerFunc.tradeInfo("TradeContext.errorCode = [" + TradeContext.errorCode + "]")
        
        stat_dict = {}
        
        stat_dict['BJEDTE']  = TradeContext.BJEDTE
        stat_dict['BSPSQN']  = TradeContext.BSPSQN
        stat_dict['MGID']    = TradeContext.errorCode
        stat_dict['STRINFO'] = TradeContext.errorMsg
        
        if TradeContext.errorCode == '0000':
            #=========设置原交易业务状态为抹账成功=============================
            AfaLoggerFunc.tradeInfo(">>>开始设置业务状态为抹账成功")
            
            stat_dict['BCSTAT'] = PL_BCSTAT_HCAC
            stat_dict['BDWFLG'] = PL_BDWFLG_SUCC
            stat_dict['TRDT']   = TradeContext.TRDT
            stat_dict['TLSQ']   = TradeContext.TLSQ
            stat_dict['PRTCNT'] = 1
            
            if not rccpsState.setTransState(stat_dict):
                return AfaFlowControl.ExitThisFlow('S999','设置业务状态抹账成功异常')
            
            AfaLoggerFunc.tradeInfo(">>>结束设置业务状态为抹账成功")
        
        else:
            #=========设置原交易业务状态为抹账失败=============================
            AfaLoggerFunc.tradeInfo(">>>开始设置业务状态为抹账失败")
            
            stat_dict['BCSTAT'] = PL_BCSTAT_HCAC
            stat_dict['BDWFLG'] = PL_BDWFLG_FAIL
            
            if not rccpsState.setTransState(stat_dict):
                return AfaFlowControl.ExitThisFlow('S999','设置业务状态抹账成功异常')
            
            AfaLoggerFunc.tradeInfo(">>>结束设置业务状态为抹账失败")
    
    if not AfaDBFunc.CommitSql( ):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow("S999","Commit异常")
        
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.回执类操作(1.回执操作).通存通兑业务回执报文接收[TRC004_1147]退出***' )
    
    return True
コード例 #3
0
def SubModuleDoFst():
    AfaLoggerFunc.tradeInfo("'***农信银系统:通存通兑来账接收交易.卡 余额查询[1133] 进入")
    
    #=================初始化返回信息============================================
    if AfaUtilTools.trim(TradeContext.STRINFO) == "":
        TradeContext.STRINFO = rccpsDBFunc.getErrInfo(TradeContext.PRCCO)
        
    AfaLoggerFunc.tradeDebug("TradeContext.STRINFO=" + TradeContext.STRINFO)
    
    AfaLoggerFunc.tradeInfo("交易前处理(登记流水,主机前处理)")
    
    #=====判断是否存在重复交易====
    AfaLoggerFunc.tradeInfo("判断是否存在重复交易")
    balbka_dict = {'TRCDAT':TradeContext.TRCDAT,'TRCNO':TradeContext.TRCNO,'SNDBNKCO':TradeContext.SNDBNKCO}
    record_balbka = rccpsDBTrcc_balbka.selectu(balbka_dict)
    if( record_balbka == None ):
        return AfaFlowControl.ExitThisFlow('A009','判断重复交易时查询余额登记簿失败')
        
    if( len(record_balbka) > 0 ):    #存在重复交易
        AfaLoggerFunc.tradeInfo("存在重复交易")
        
        #====组织应答报文====
        Rcvmbrco = TradeContext.SNDMBRCO
        Sndmbrco = TradeContext.RCVMBRCO
        Ormfn    = TradeContext.MSGFLGNO
                
        #=====报文头====
        TradeContext.MSGTYPCO = 'SET010' #报文类代码
        TradeContext.RCVMBRCO = Rcvmbrco #接受方成员行号
        TradeContext.SNDMBRCO = Sndmbrco #发送方成员行号
        TradeContext.SNDBRHCO = TradeContext.BESBNO         #发起行网点号
        TradeContext.SNDCLKNO = TradeContext.BETELR         #发起行柜员号
        TradeContext.SNDTRDAT = TradeContext.BJEDTE         #发起行交易日期
        TradeContext.SNDTRTIM = TradeContext.BJETIM         #发起行交易时间
        TradeContext.MSGFLGNO = Rcvmbrco+TradeContext.BJEDTE + TradeContext.SerialNo  #报文标示号
        TradeContext.ORMFN    = Ormfn          #参考报文标示号
        TradeContext.NCCWKDAT = TradeContext.NCCworkDate   #中心工作日期
        TradeContext.OPRTYPNO = '30'     #业务类型
        TradeContext.ROPRTPNO = '30'     #参考业务类型
        TradeContext.TRANTYP  = '0'      #传输类型
        #=====业务要素集====
        TradeContext.CURPIN   = "" #异地客户密码   
        TradeContext.PRCCO    = "RCCS1105"  #返回码
        TradeContext.STRINFO  = "重复报文"  #附言
        TradeContext.AVLBAL   = record_balbka['AVLBAL'] #可用余额
        TradeContext.ACCBAL   = record_balbka['ACCBAL'] #账面余额
        
        #=====直接向AFE发送通讯回执====
        AfaLoggerFunc.tradeInfo("直接向AFE发送通讯回执")
        AfaAfeFunc.CommAfe()
        
        AfaLoggerFunc.tradeInfo("重复报文,做丢弃处理")
        
        return AfaFlowControl.ExitThisFlow('A009','重复报文做丢弃处理')
    
##############非重复交易#################################################################
    AfaLoggerFunc.tradeInfo("非重复交易") 
        
    #=====组织登记余额查询查询登记簿的插入字典====
    AfaLoggerFunc.tradeInfo("组织登记余额查询查询登记簿的插入字典")
    insert_dict = {}
    insert_dict['BJEDTE']      = TradeContext.BJEDTE
    insert_dict['BSPSQN']      = TradeContext.BSPSQN
    insert_dict['BRSFLG']      = PL_BRSFLG_RCV
    insert_dict['BESBNO']      = TradeContext.BESBNO  
    insert_dict['BEACSB']      = ""                    #账务机构号
    insert_dict['BETELR']      = TradeContext.BETELR  
    insert_dict['BEAUUS']      = ""                    #授权柜员号
    insert_dict['BEAUPS']      = ""                    #授权柜员密码
    insert_dict['TERMID']      = ""                    #终端号
    insert_dict['OPRNO']       = TradeContext.OPRTYPNO #业务类型
    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']    = TradeContext.MSGFLGNO #报文标示号
    insert_dict['SNDMBRCO']    = TradeContext.SNDMBRCO #发送方成员行号
    insert_dict['RCVMBRCO']    = TradeContext.RCVMBRCO #接受方成员行号
    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['CHRGTYP']     = ""                    #手续费收取方式
    insert_dict['LOCCUSCHRG']  = ""                    #本地客户手续费
    insert_dict['CUSCHRG']     = TradeContext.CUSCHRG  #异地客户手续费
    insert_dict['PYRACC']      = TradeContext.PYRACC   #付款人账号
    insert_dict['PYEACC']      = TradeContext.PYEACC   #收款人账号
    insert_dict['STRINFO']     = TradeContext.STRINFO  #附言
    insert_dict['CERTTYPE']    = ""                    #证件类型
    insert_dict['CERTNO']      = ""                    #证件号码
    insert_dict['BNKBKNO']     = ""                    #存折号码
    insert_dict['AVLBAL']      = ""                    #可用余额
    insert_dict['ACCBAL']      = ""                    #账面余额
    insert_dict['PRCCO']       = ""                    #返回码
    #insert_dict['PRCINFO']     = ""                    #返回信息
    
    #=====登记查询登记簿====
    AfaLoggerFunc.tradeInfo("开始登记余额查询登记簿")
    res = rccpsDBTrcc_balbka.insertCmt(insert_dict)
    if( res == -1 ):
        return AfaFlowControl.ExitThisFlow('A009','登记余额查询登记簿失败')
        
    #解密客户密码
    MIMA = '      '
    PIN  = TradeContext.CURPIN
    ACC  = TradeContext.PYEACC
    AfaLoggerFunc.tradeDebug('密码[' + PIN + ']')
    AfaLoggerFunc.tradeDebug('账号[' + ACC + ']')
    ret = jiami.secDecryptPin(PIN,ACC,MIMA)
    if ret != 0:
        AfaLoggerFunc.tradeDebug("ret=[" + str(ret) + "]")
        AfaLoggerFunc.tradeDebug('调用加密服务器失败')
    else:
        TradeContext.CURPIN = MIMA
        AfaLoggerFunc.tradeDebug('密码new[' + TradeContext.CURPIN + ']')
    
    #=====调用主机交易,组织调用主机交易所需要的参数====
    AfaLoggerFunc.tradeInfo("为主机交易赋参数")
    TradeContext.HostCode = '8810'
    TradeContext.ACCNO = TradeContext.PYEACC
    TradeContext.PASSWD = TradeContext.CURPIN
    TradeContext.CFFG = '1'
    TradeContext.WARNTNO = TradeContext.PYEACC[6:18]
    
    AfaLoggerFunc.tradeInfo("交易前处理(登记流水,主机前处理)  结束")
    
    return True    
コード例 #4
0
ファイル: TRCC001_8575.py プロジェクト: bianhezhen/AFA1.0
def SubModuleDoFst():    
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.本地类操作(1.本地操作).余额查询登记簿查询[TRCC001_8575]进入***' )
    
    #=====判断输入接口是否存在====
    if( not TradeContext.existVariable( "BJEDTE" ) ):
        return AfaFlowControl.ExitThisFlow('A099', '报单日期[BJEDTE]不存在')
        
    if( not TradeContext.existVariable( "BSPSQN" ) ):
        return AfaFlowControl.ExitThisFlow('A099', '报单序号[BSPSQN]不存在')
        
    #=====组织查询字典====
    AfaLoggerFunc.tradeInfo(">>>开始组织查询字典")
    
    wheresql_dic={}
    wheresql_dic['BJEDTE']=TradeContext.BJEDTE
    wheresql_dic['BESBNO']=TradeContext.BESBNO
    
    if(len(TradeContext.BSPSQN) != 0):
        wheresql_dic['BSPSQN']=TradeContext.BSPSQN
    
    #=====开始查询数据库====
    records=rccpsDBTrcc_balbka.selectu(wheresql_dic)
    AfaLoggerFunc.tradeDebug('>>>记录['+str(records)+']')
    if(records==None):
        return AfaFlowControl.ExitThisFlow('A099','查询失败' )
    elif(len(records)==0):
        return AfaFlowControl.ExitThisFlow('A099','没有查找到数据')
    else: 
        pass
    
#    =====判断返回码====
#    if records['PRCCO']!='RCCI0000':
#        #=====输出接口赋值====
#        AfaLoggerFunc.tradeInfo(">>>输出接口赋值")        
#        TradeContext.errorMsg  = records['PRCCO'] +' '+ records['PRCINFO']
#        if len(TradeContext.errorMsg) != 1:
#            TradeContext.errorCode = 'A099'
#        else:
#            #=====前台判断为此交易码继续轮询====
#            TradeContext.errorCode = '9999'
#            TradeContext.errorMsg  = '回车后再次查询结果,请稍候...'
#        AfaLoggerFunc.tradeDebug(">>>errorMsg["+str(TradeContext.errorMsg)+']')
#        AfaLoggerFunc.tradeDebug(">>>errorCode["+str(TradeContext.errorCode)+']')
#    else:
#        AfaLoggerFunc.tradeInfo(">>>输出接口赋值")
#        TradeContext.errorCode = '0000'
#        TradeContext.errorMsg  = '成功'
#        TradeContext.BJEDTE = records['BJEDTE']
#        TradeContext.BSPSQN = records['BSPSQN']
#        TradeContext.AVLBAL = str(records['AVLBAL'])
#        TradeContext.ACCBAL = str(records['ACCBAL'])
#    
    AfaLoggerFunc.tradeInfo(">>>输出接口赋值")       
    TradeContext.errorCode = '0000'       
    TradeContext.errorMsg  = '成功'    
    TradeContext.PRCCO  = records['PRCCO']
    TradeContext.STRINFO= records['STRINFO']              
    TradeContext.BJEDTE = records['BJEDTE']          
    TradeContext.BSPSQN = records['BSPSQN']          
    TradeContext.AVLBAL = str(records['AVLBAL'])     
    TradeContext.ACCBAL = str(records['ACCBAL'])     

    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.本地类操作(1.本地操作)余额查询登记簿查询[TRCC001_8575]退出***')
    return True