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
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
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]
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
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
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
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