Пример #1
0
def UpdatePreDtl( action ):

    AfaLoggerFunc.tradeInfo( '更新原交易流水' )
    sql="UPDATE FS_MAINTRANSDTL SET "
    if( action == 'BANK' ):
        sql=sql+" BANKSTATUS='3' "
    elif( action == 'CORP' ):
        sql=sql+" CORPSTATUS='3' "
    elif( action == 'TRADE' ):
        sql=sql+" BANKSTATUS='3' ,CORPSTATUS='3'"
    else:
        TradeContext.errorCode, TradeContext.errorMsg='A0041', '入口参数条件不符,没有这种类型的操作'
        return False

    sql=sql+" WHERE SERIALNO='"+TradeContext.preAgentSerno+ \
    "' AND WORKDATE='"+TradeContext.workDate+"' AND REVTRANF='0'"

    ret=AfaDBFunc.UpdateSql( sql )
    if( ret >0 ):
        return True

    AfaLoggerFunc.tradeFatal( sql )
    if( ret == 0 ):
        TradeContext.errorCode, TradeContext.errorMsg='A0100', '未发现原始交易'
    else :
        TradeContext.errorCode, TradeContext.errorMsg='A0100', '更新流水主表原交易记录失败'+AfaDBFunc.sqlErrMsg

    return False
Пример #2
0
def ChkLiquidStatus():
    AfaLoggerFunc.tradeInfo( '>>>获取清算信息' )
    
    sql ="SELECT PAYBKCODE,PAYEEBANKNO,TRECODE,TRENAME,PAYEEACCT,PAYBKNAME,STATUS FROM TIPS_LIQUIDATE_ADM WHERE "
    sql =sql + "BRNO = '" + TradeContext.brno + "'"
    
    AfaLoggerFunc.tradeInfo(sql)
    
    records = AfaDBFunc.SelectSql(sql)
    
    if( records == None ):
        AfaLoggerFunc.tradeFatal(sql)
        return TipsFunc.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
    elif( len( records )==0 ):
        return  TipsFunc.ExitThisFlow( 'A0027', '本机构不是清算行,不可以进行对账差错查询' )
    else:
        if records[0][6]=='0':
            return TipsFunc.ExitThisFlow( 'A0027', '业务已停止,不可进行查询' )
        if records[0][6]=='2':
            return TipsFunc.ExitThisFlow( 'A0027', '业务已暂停,不可进行查询' )
        AfaLoggerFunc.tradeInfo('本机构的清算行号为'+ records[0][0])
        AfaLoggerFunc.tradeInfo('柜面送的清算行号为'+ TradeContext.payBkCode)
        if(records[0][0]!=TradeContext.payBkCode):
            return TipsFunc.ExitThisFlow( 'A0002', '清算行行号不正确,不允许做此交易')
            
    AfaLoggerFunc.tradeInfo( '>>>获取清算信息完成' )
    return True    
Пример #3
0
def Delete():
    try:
        if( TradeContext.existVariable( "busiNo" ) and len(TradeContext.busiNo)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[单位编码]:不能为空')
        
        sql="DELETE "
        sqlstr1=sql+" FROM fs_businoconf WHERE 1=1 "
        sqlstr1=sqlstr1+"AND busiNo='"+ TradeContext.busiNo+"'"
        
        AfaLoggerFunc.tradeInfo(sqlstr1)
        records = AfaDBFunc.DeleteSqlCmt(sqlstr1)
        if( records == None or records <=0 ):
            AfaLoggerFunc.tradeFatal(sqlstr1)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
            
        
        sql="DELETE "
        sqlstr2=sql+" FROM fs_remain WHERE 1=1 "
        sqlstr2=sqlstr2+"AND busiNo='"+ TradeContext.busiNo+"'"
        
        AfaLoggerFunc.tradeInfo(sqlstr2)
        records = AfaDBFunc.DeleteSqlCmt(sqlstr2)
        if( records == None or records <=0 ):
            AfaLoggerFunc.tradeFatal(sqlstr2)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        return True
        
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #4
0
def SubModuleMainFst( ):

    AfaLoggerFunc.tradeInfo( '进入自由格式报文接收交易[T'+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']' )
    try:
        #=============初始化返回报文变量====================
        TradeContext.tradeResponse=[]
        
        sql="insert into TIPS_NOTE(WORKDATE,WORKTIME,SRCNODECODE,DESNODECODE,SENDORGCODE,RCVORGCODE,CONTENT)"
        sql=sql+" values"
        sql=sql+"('"+TradeContext.workDate      +"'"
        sql=sql+",'"+TradeContext.workTime      +"'"
        sql=sql+",'"+TradeContext.SrcNodeCode   +"'"
        sql=sql+",'"+TradeContext.DesNodeCode   +"'"
        sql=sql+",'"+TradeContext.SendOrgCode   +"'"
        sql=sql+",'"+TradeContext.RcvOrgCode    +"'"
        sql=sql+",'"+TradeContext.Content       +"'"
        sql=sql+")"
        AfaLoggerFunc.tradeInfo(sql)
        if( AfaDBFunc.InsertSqlCmt(sql) == -1 ):
            AfaLoggerFunc.tradeFatal(sql)
            TipsFunc.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
            return False 

        #=============自动打包==================== 
        TradeContext.errorCode='0000'
        TradeContext.errorMsg='交易成功'
        TipsFunc.autoPackData()
        #=============程序退出====================
        AfaLoggerFunc.tradeInfo( '退出自由格式报文接收交易[T'+TradeContext.TemplateCode+'_'+TradeContext.TransCode+']\n' )
        return True
    except TipsFunc.flowException, e:
        return TipsFunc.exitMainFlow( )
Пример #5
0
def Query():
    try:
        if( TradeContext.existVariable( "BRNO" ) and len(TradeContext.BRNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[分行行号]:不能为空')
        sql="SELECT BRNO,PAYBKCODE,BANKNO,BANKACCT,BANKNAME,PAYEEBANKNO,STATUS,ACCNO,NOTE1,NOTE2,NOTE3,NOTE4,NOTE5 "
        sql=sql+" FROM TIPS_BRANCH_ADM WHERE 1=1 "
        sql=sql+"AND BRNO='"+ TradeContext.BRNO+"'"
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.SelectSql(sql)
        if( records == None ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        elif( len( records )==0 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', '未定义信息' )
        elif( len( records )>1 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', 'TIPS_BRANCH_ADM表配置错误' )
        else:
            #if records[0][5]=='0':
               # return AfaFlowControl.ExitThisFlow( 'A0027', '业务已停止' )
          #  if records[0][5]=='2':
           #     return AfaFlowControl.ExitThisFlow( 'A0027', '业务已暂停' )
            TradeContext.BRNO        = records[0][0]
            TradeContext.PAYBKCODE   = records[0][1]
            TradeContext.BANKNO      = records[0][2]
            TradeContext.BANKACCT    = records[0][3]
            TradeContext.BANKNAME    = records[0][4]
            TradeContext.PAYEEBANKNO = records[0][5]
            TradeContext.STATUS      = records[0][6]
            TradeContext.ACCNO       = records[0][7]
            TradeContext.ACCNAME     = records[0][10]
            
        return True
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #6
0
def Delete():
    try:
        if( TradeContext.existVariable( "BRNO" ) and len(TradeContext.BRNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[分行行号]:不能为空')

        sql="SELECT BRNO,PAYBKCODE,BANKNO,BANKACCT,BANKNAME,PAYEEBANKNO,STATUS,ACCNO,NOTE1,NOTE2,NOTE3,NOTE4,NOTE5 "
        sql=sql+" FROM TIPS_BRANCH_ADM WHERE 1=1 "
        sql=sql+"AND BRNO='"+ TradeContext.BRNO+"'"
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.SelectSql(sql)
        if( records == None ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        elif( len( records ) == 0 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', '不存在此上线行信息' )

            
        sql="DELETE "
        sql=sql+" FROM TIPS_BRANCH_ADM WHERE 1=1 "
        if( TradeContext.existVariable( "BRNO" ) and len(TradeContext.BRNO)>0):
            sql=sql+"AND BRNO='"+ TradeContext.BRNO+"'"
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.DeleteSqlCmt(sql)
        if( records == None or records <=0 ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        return True
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #7
0
def InsertOnOffDTL():
    sql="insert into afa_UnitOnOffDTL(SYSID,UNITNO,SUBUNITNO,STATUS,OPERFLAG,STOPTIME,STARTTIME,NOTE1,NOTE2)"
    sql=sql+" values"
    sql=sql+"('"+TradeContext.sysId       +"'"
    sql=sql+",'"+TradeContext.unitno      +"'"
    sql=sql+",'"+TradeContext.TaxOrgName     +"'"
    sql=sql+",'"+'1'                         +"'"
    sql=sql+",'"+TradeContext.operFlag      +"'"
    sql=sql+",'"+TradeContext.stopTime      +"'"
    sql=sql+",'"+TradeContext.startTime      +"'"
    sql=sql+",'"+TradeContext.NOTE1           +"'"
    sql=sql+",'"+TradeContext.NOTE2           +"'"
    sql=sql+")"
    if( AfaDBFunc.InsertSqlCmt(sql) == -1 ):
        AfaLoggerFunc.tradeFatal(sql)
        return AfaFlowControl.ExitThisFlow( 'A0025', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
    return True


#获取商户参数
#def GetUnitStatus():
#    AfaLoggerFunc.tradeInfo('获取商户参数' )
#    #============系统标识============
#    sqlStr = "SELECT * FROM AFA_UNITADM WHERE SYSID = '" + TradeContext.sysId + "' AND "
#    #============商户代码============
#    sqlStr = sqlStr+"UNITNO = '" + TradeContext.unitno + "' "
#    AfaLoggerFunc.tradeInfo( sqlStr )
#    records = AfaDBFunc.SelectSql( sqlStr )
#    if( records == None ):
#        AfaLoggerFunc.tradeFatal( sqlStr )
#        return AfaFlowControl.ExitThisFlow( 'A0025', '数据库错误,商户信息表操作异常:'+AfaDBFunc.sqlErrMsg )
#    elif( len( records )!=0 ):
#        AfaUtilTools.ListFilterNone( records )
#        TradeContext.__busiMode__ = records[0][6]   #=============业务模式=============
Пример #8
0
def TrxMain():
    

    AfaLoggerFunc.tradeInfo('**********用户登陆(8800)开始**********')


    sqlStr = "SELECT ZONENO,BRNO,USERNAME,TEL,ADDRESS,PASSWORD FROM ABDT_USERINFO WHERE STATUS='1'"
    sqlStr = sqlStr + " AND USERNO = '" + TradeContext.USERNO + "'"

    AfaLoggerFunc.tradeInfo(sqlStr)

    records =  AfaDBFunc.SelectSql( sqlStr )
        
    if (records == None):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return ExitSubTrade( '9999', '查询用户信息异常' )

    if (len(records)==0) :
        return ExitSubTrade( '9000', '该用户号不存在' )

    else:
        if ( records[0][5] == TradeContext.PASSWD ):
            TradeContext.tradeResponse.append(['ZONENO',    records[0][0]])
            TradeContext.tradeResponse.append(['BRNO',      records[0][1]])
            TradeContext.tradeResponse.append(['USERNAME',  records[0][2]])
        else:
            return ExitSubTrade( '9999', '密码错误,请重试!')

    AfaLoggerFunc.tradeInfo('**********用户登陆(8800)结束**********')

    #返回
    TradeContext.tradeResponse.append(['errorCode', '0000'])
    TradeContext.tradeResponse.append(['errorMsg',  '交易成功'])
    return True
Пример #9
0
def ChkCustInfo( ):
    AfaLoggerFunc.tradeInfo('>>>判断企业协议是否存在')

    try:
        sql = ""
        sql = "SELECT PROTOCOLNO FROM ABDT_CUSTINFO WHERE "
        sql = sql + "APPNO="      + "'" + TradeContext.Appno        + "'" + " AND "       #业务编号
        sql = sql + "BUSINO="     + "'" + TradeContext.PayeeUnitno  + "'" + " AND ("      #单位编号
        sql = sql + "BUSIUSERNO=" + "'" + TradeContext.PayerUnitno  + "'" + " OR "        #商户客户编号
        sql = sql + "BANKUSERNO=" + "'" + TradeContext.PayerAccno[0:12] + "'" + " OR "        #银行客户编号
        sql = sql + "ACCNO="      + "'" + TradeContext.PayerAccno   + "'" + ") AND "      #银行账号
        sql = sql + "STATUS="     + "'" + "1"                       + "'"                 #状态

        AfaLoggerFunc.tradeInfo( sql )

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询企业协议信息异常' )
    
        if ( len(records) > 0 ):
            return ExitSubTrade( '9000', '该企业协议已经被注册,不能再次进行注册')

        return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断企业协议信息是否存在异常')
Пример #10
0
def insTransTrc(trc_dict):
    
    AfaLoggerFunc.tradeInfo( ">>>开始登记汇兑业务登记簿[" + trc_dict["BJEDTE"] + "][" + trc_dict["BSPSQN"] + "]交易信息及相关状态" )
    
    if not trc_dict.has_key("BJEDTE"):
        return AfaFlowControl.ExitThisFlow( 'S999',"登记汇兑业务登记簿,BJEDTE不能为空")
        
    if not trc_dict.has_key("BSPSQN"):
        return AfaFlowControl.ExitThisFlow( 'S999',"登记汇兑业务登记簿,BSPSQN不能为空")
        
    
    #==========将输入字典赋值到汇兑业务登记簿字典==============================
    trcbka_dict = {}
    
    if not rccpsMap0000Dtrc_dict2Dtrcbka.map(trc_dict,trcbka_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将输入字典赋值到汇兑业务登记簿字典异常' )
        
    #==========登记信息到汇兑登记簿============================================
    ret = rccpsDBTrcc_trcbka.insert(trcbka_dict)
    
    if ret <= 0:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow( 'S999', '登记汇兑业务详细信息到汇兑业务登记簿异常' )
        
    AfaLoggerFunc.tradeInfo("插入成功")
    #==========登记初始状态====================================================
    if not rccpsState.newTransState(trc_dict["BJEDTE"],trc_dict["BSPSQN"],PL_BCSTAT_INIT,PL_BDWFLG_SUCC):
        return False
    
    AfaLoggerFunc.tradeInfo( ">>>结束登记汇兑业务登记簿[" + trc_dict["BJEDTE"] + "][" + trc_dict["BSPSQN"] + "]交易信息及相关状态" )
    return True
Пример #11
0
def CommHost( result = '8844' ):

    AfaLoggerFunc.tradeInfo('>>>主机通讯函数[CommHost]')

    #根据正反交易标志TradeContext.revTranF判断具体选择哪个map文件和主机接口方式

    if (result == '8844'):
        AfaLoggerFunc.tradeInfo('>>>核心记帐')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8844.map'
        TradeContext.HostCode = '8844'

    else:
        TradeContext.errorCode = 'A9999'
        TradeContext.errorMsg  = '主机代码错误'
        return False

    AfaLoggerFunc.tradeInfo( '=======================7' )
    #此处交易代码要求10位,右补空格
    HostComm.callHostTrade( mapfile, UtilTools.Rfill(TradeContext.HostCode,10,' ') ,'0002' )
    AfaLoggerFunc.tradeInfo( '=======================8' )
    if HostContext.host_Error:
        AfaLoggerFunc.tradeFatal( 'host_Error:'+str( HostContext.host_ErrorType )+':'+HostContext.host_ErrorMsg )

        if HostContext.host_ErrorType != 5 :
            TradeContext.__status__='1'
            TradeContext.errorCode='A0101'
            TradeContext.errorMsg=HostContext.host_ErrorMsg
        else :
            TradeContext.__status__='2'
            TradeContext.errorCode='A0102'
            TradeContext.errorMsg=HostContext.host_ErrorMsg
        return False
    AfaLoggerFunc.tradeInfo( '=======================9' )
    #================分析主机返回包====================
    return HostParseRet(result )
Пример #12
0
def SubModuleDealFst( ):
    AfaLoggerFunc.tradeInfo('进入缴费反交易[TPS003_845002]数据预查询' )
    #====判断应用状态=======
    if not TipsFunc.ChkAppStatus():
        return False
    sqlstr="SELECT TAXPAYCODE,AMOUNT,SERIALNO,ZONENO,BRNO,TELLERNO,BANKSTATUS,CORPSTATUS FROM TIPS_MAINTRANSDTL WHERE "
    sqlstr=sqlstr + " WORKDATE='"+TradeContext.workDate+ "' AND  REVTRANF='0'"
    sqlstr=sqlstr + "AND CORPSERNO='"+TradeContext.preCorpSerno+"'"
    AfaLoggerFunc.tradeInfo( sqlstr )
    tmp = AfaDBFunc.SelectSql( sqlstr )
    if tmp == None :
        return TipsFunc.ExitThisFlow( 'A0025', AfaDBFunc.sqlErrMsg )
    elif len( tmp ) == 0 :
        AfaLoggerFunc.tradeFatal( sqlstr )
        return TipsFunc.ExitThisFlow( 'A0045', '未发现原交易' )
    else: 
        if tmp[0][6]=='1':
            return TipsFunc.ExitThisFlow( 'A0045', '原交易未成功' )
        if tmp[0][6]=='3':
            return TipsFunc.ExitThisFlow( 'A0045', '原交易已冲正' )
        else:
            tmp=UtilTools.ListFilterNone( tmp )
            TradeContext.taxPayCode     =tmp[0][0]   #用户号
            TradeContext.amount         =tmp[0][1]   #金额
            TradeContext.preAgentSerno  =tmp[0][2]   #原交易流水号
            TradeContext.zoneno         =tmp[0][3]    
            TradeContext.brno           =tmp[0][4]    
            TradeContext.teller         =tmp[0][5]    
            #TradeContext.appNo          =tmp[0][9]    
    AfaLoggerFunc.tradeInfo('退出缴费反交易[T004203_031021]数据预查询' )
    return True
Пример #13
0
def TrxMain( ):


    AfaLoggerFunc.tradeInfo('**********批量处理多笔查询(8490)开始**********')

    TradeContext.O1AFAPDATE                =           TradeContext.TranDate    #工作日期
    TradeContext.O1AFAPTIME                =           TradeContext.TranTime    #工作日期

    #查询单位信息,获得单位编号
    try:
        sql = ""
        sql = "SELECT BUSINO FROM ABDT_UNITINFO WHERE "
        sql = sql + "APPNO="  + "'" + TradeContext.I1APPNO  + "'" + " AND "        #业务编号
        sql = sql + "ACCNO="  + "'" + TradeContext.I1ACCNO  + "'"                  #对公账户
        
        AfaLoggerFunc.tradeInfo( sql )
        
        results = AfaDBFunc.SelectSql( sql )
        
        if ( results == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询单位信息异常' )
        
        if ( len(results) <= 0 ):
            return ExitSubTrade( '9000', '没有单位信息,不能进行此类操作')
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '查询单位信息失败')
Пример #14
0
def ChkCustInfo( ):

    #AfaLoggerFunc.tradeInfo('>>>判断个人协议是否存在')

    try:
        sql = ""
        sql = "SELECT PROTOCOLNO,BUSIUSERNO,ACCNO FROM ABDT_CUSTINFO WHERE "
        sql = sql + "APPNO='AG1014' AND "                                                  #业务编号
        sql = sql + "BUSINO="     + "'" + TradeContext.I1BUSINO    + "'" + " AND ("       #单位编号
        sql = sql + "BUSIUSERNO=" + "'" + TradeContext.SBNO         + "'" + " OR "         #商户客户编号
        sql = sql + "ACCNO="      + "'" + TradeContext.ACCNO        + "'" + " )AND "       #银行账号
        sql = sql + "STATUS="     + "'" + "1"                       + "'"                  #状态

        #AfaLoggerFunc.tradeInfo( sql )

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            #AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询个人协议信息异常' )
        
        if ( len(records) > 0 ):
            #201208 中间业务优化 llj 判断是社保编号重复,还是账号重复
            if records[0][1]== TradeContext.SBNO:
                return ExitSubTrade( '9000', '该个人协议的社保编号已经被注册,不能再次进行注册')
            if records[0][2]== TradeContext.ACCNO: 
                return ExitSubTrade( '9000', '该个人协议的账号已经被注册,不能再次进行注册')  
            else:
                return ExitSubTrade( '9000', '该个人协议已经被注册,不能再次进行注册')    

        return True


    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断个人协议信息是否存在异常')
Пример #15
0
def start():
    try:
        AfaLoggerFunc.tradeInfo('RunSign='+TradeContext.RunSign+' 启用调度')
        if( TradeContext.existVariable( "BackRunTime" ) and len(TradeContext.BackRunTime)<=0 ):
            return TipsFunc.ExitThisFlow( 'A0001', '[BackRunTime]值不存在!' )
        
        year=(TradeContext.BackRunTime)[0:4]
        month=(TradeContext.BackRunTime)[4:6]
        day=(TradeContext.BackRunTime)[6:8]
        hour=(TradeContext.BackRunTime)[8:10]
        minute=(TradeContext.BackRunTime)[10:12]
            
        sql="UPDATE AFA_CRONADM              "
        sql=sql+" SET YEAR = '"+year+"',     "
        sql=sql+"     MONTH = '"+month+"',   "
        sql=sql+"     DAY = '"+day+"',       "
        sql=sql+"     HOUR = '"+hour+"',     "
        sql=sql+"     MINUTE = '"+minute+"', "
        sql=sql+"     STATUS = '1'           "
        sql=sql+" WHERE TASKID = '00050'     "
            
        AfaLoggerFunc.tradeInfo(sql)
        
        records = AfaDBFunc.UpdateSqlCmt(sql)
        if( records <=0  ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0027', '未发现调度信息:'+AfaDBFunc.sqlErrMsg )
        if( records == None ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
      
        return True
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))         
Пример #16
0
def Insert():
    AfaLoggerFunc.tradeInfo( '********************插入数据表开始*******************' )
    try:
        if( TradeContext.existVariable( "busiNo" ) and len(TradeContext.busiNo)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[单位编码]:不能为空')
        if( TradeContext.existVariable( "hostIp" ) and len(TradeContext.hostIp)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[财政地址]:不能为空')
        if( TradeContext.existVariable( "upUser" ) and len(TradeContext.upUser)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[上传用户]:不能为空')
        if( TradeContext.existVariable( "upPwd" ) and len(TradeContext.upPwd)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[上传密码]:不能为空')
        if( TradeContext.existVariable( "downUser" ) and len(TradeContext.downUser)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[下载用户]:不能为空')
        if( TradeContext.existVariable( "downPwd" ) and len(TradeContext.downPwd)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[下载密码]:不能为空')
        if( TradeContext.existVariable( "accDate" ) and len(TradeContext.accDate)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[开户余额]:不能为空')
        if( TradeContext.existVariable( "remain" ) and len(TradeContext.remain)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[开户日期]:不能为空')
        
        sqlstr      =   "insert into fs_businoconf(BUSINO,HOSTIP,UPUSER,UPPASSWD,UPLDIR,DOWNUSER,DOWNPASSWD,DOWNLDIR,UPRDIR,DOWNRDIR) values("
        sqlstr1     =   sqlstr
        sqlstr1     =   sqlstr1 + "'" + TradeContext.busiNo             + "',"
        sqlstr1     =   sqlstr1 + "'" + TradeContext.hostIp             + "',"
        sqlstr1     =   sqlstr1 + "'" + TradeContext.upUser             + "',"
        sqlstr1     =   sqlstr1 + "'" + TradeContext.upPwd              + "',"
        sqlstr1     =   sqlstr1 + "'/home/maps/afa/data/ahfs',"
        sqlstr1     =   sqlstr1 + "'" + TradeContext.downUser           + "',"
        sqlstr1     =   sqlstr1 + "'" + TradeContext.downPwd            + "',"
        sqlstr1     =   sqlstr1 + "'/home/maps/afa/data/ahfs',' ',' ')"
        
        
        AfaLoggerFunc.tradeInfo(sqlstr1)
        records = AfaDBFunc.InsertSqlCmt(sqlstr1)
        if( records == None or records <=0  ):
            AfaLoggerFunc.tradeFatal(sqlstr1)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )            
        
        
        
        sqlstr      =   "insert into fs_remain(busino,date,this) values("
        sqlstr2     =   sqlstr
        sqlstr2     =   sqlstr2 + "'" + TradeContext.busiNo               + "',"
        sqlstr2     =   sqlstr2 + "'" + TradeContext.accDate              + "',"
        sqlstr2     =   sqlstr2 + "'" + TradeContext.remain               + "')"
        
        AfaLoggerFunc.tradeInfo(sqlstr2)
        records = AfaDBFunc.InsertSqlCmt(sqlstr2)
        if( records == None or records <=0  ):
            AfaLoggerFunc.tradeFatal(sqlstr2)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        AfaLoggerFunc.tradeInfo( '********************插入数据表结束*******************' )
        return True
    
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #17
0
def QueryUserInfo():

    sql = "SELECT ZONENO,BRNO,USERNO,USERNAME,DUTYNO,TEL,ADDRESS FROM ABDT_USERINFO WHERE STATUS='1'"

    if( TradeContext.existVariable( "USERNO" ) and len(TradeContext.USERNO)>0 ):
        sql = sql + " AND USERNO = '" + TradeContext.USERNO + "' ORDER BY USERNO"

    AfaLoggerFunc.tradeInfo(sql)

    records =  AfaDBFunc.SelectSql( sql )
    if (records == None):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return ExitSubTrade( '9999', '查询用户信息异常' )

    if (len(records)==0) :
        return ExitSubTrade( '9000', '不存在用户信息' )

    else:
        TradeContext.RETDATA = ""

        if(len(records)>5):
            TradeContext.RETFINDNUM = 5

        else:
            TradeContext.RETFINDNUM = len(records)

        for i in range(0,TradeContext.RETFINDNUM):

            TradeContext.RETDATA = TradeContext.RETDATA + records[i][0]    #ZONENO
            TradeContext.RETDATA = TradeContext.RETDATA +"|"

            TradeContext.RETDATA = TradeContext.RETDATA + records[i][1]    #BRNO
            TradeContext.RETDATA = TradeContext.RETDATA +"|"
            
            TradeContext.RETDATA = TradeContext.RETDATA + records[i][2]    #USERNO
            TradeContext.RETDATA = TradeContext.RETDATA +"|"

            TradeContext.RETDATA = TradeContext.RETDATA + records[i][3]    #USERNAME
            TradeContext.RETDATA = TradeContext.RETDATA +"|"

            TradeContext.RETDATA = TradeContext.RETDATA + records[i][4]    #DUTYNO
            TradeContext.RETDATA = TradeContext.RETDATA +"|"
            
            TradeContext.RETDATA = TradeContext.RETDATA + records[i][5]    #TEL
            TradeContext.RETDATA = TradeContext.RETDATA +"|"

            TradeContext.RETDATA = TradeContext.RETDATA + records[i][6]    #ADDRESS
            TradeContext.RETDATA = TradeContext.RETDATA +"|"

            AfaLoggerFunc.tradeInfo( records[i][0] + '|' + records[i][1] + "|" + records[i][2] + "|" + records[i][3] + "|")

        TradeContext.tradeResponse.append(['RETDATA',TradeContext.RETDATA])

        TradeContext.tradeResponse.append(['RETFINDNUM',str(TradeContext.RETFINDNUM)])

        return True
Пример #18
0
def CommHost( result = '8830' ):

    AfaLoggerFunc.tradeInfo('>>>主机通讯函数[CommHost]')
    
    if(not InitHostReq()):
        return False

    #根据正反交易标志TradeContext.revTranF判断具体选择哪个map文件和主机接口方式

    if (result == '8830'):
        AfaLoggerFunc.tradeInfo('>>>批量上传')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8830.map'
        TradeContext.HostCode = '8830'

    elif(result == '8831'):
        AfaLoggerFunc.tradeInfo('>>>批量记账申请')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8831.map'
        TradeContext.HostCode = '8831'
    elif(result == '8833'):
        AfaLoggerFunc.tradeInfo('>>>批量回盘文件生成申请')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8833.map'
        TradeContext.HostCode = '8833'
    elif(result == '8834'):
        AfaLoggerFunc.tradeInfo('>>>查询批量记账结果')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8834.map'
        TradeContext.HostCode = '8834'
    elif(result == '8810'):
        AfaLoggerFunc.tradeInfo('>>>查询单个账户信息')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8810.map'
        TradeContext.HostCode = '8810'    
    elif(result == '8835'):
        AfaLoggerFunc.tradeInfo('>>>凭证消号')
        mapfile=os.environ['AFAP_HOME'] + '/conf/hostconf/AH8835.map'
        TradeContext.HostCode = '8835'    
    else:
        TradeContext.errorCode = 'A9999'
        TradeContext.errorMsg  = '主机代码错误'
        return False

    #此处交易代码要求10位,右补空格
    HostComm.callHostTrade( mapfile, UtilTools.Rfill(TradeContext.HostCode,10,' ') ,'0002' )
    if HostContext.host_Error:
        AfaLoggerFunc.tradeFatal( 'host_Error:'+str( HostContext.host_ErrorType )+':'+HostContext.host_ErrorMsg )

        if HostContext.host_ErrorType != 5 :
            TradeContext.__status__='1'
            TradeContext.errorCode='A0101'
            TradeContext.errorMsg=HostContext.host_ErrorMsg
        else :
            TradeContext.__status__='2'
            TradeContext.errorCode='A0102'
            TradeContext.errorMsg=HostContext.host_ErrorMsg
        return False
    #================分析主机返回包====================
    return HostParseRet(result )
Пример #19
0
def ChkBatchInfo( ):

    sql = ""

    AfaLoggerFunc.tradeInfo('>>>判断批量申请是否已存在')

    try:
    
        #begin 20100105 蔡永贵  修改   查询的时候把NOTE2也查出来
        #sql = "SELECT BATCHNO,STATUS,NOTE5,USERNO FROM ABDT_BATCHINFO WHERE "
        sql = "SELECT BATCHNO,STATUS,NOTE5,USERNO,NOTE2 FROM ABDT_BATCHINFO WHERE "
        #end
        
        sql = sql + "APPNO="    + "'" + TradeContext.I1APPNO    + "'" + " AND "        #业务编号
        sql = sql + "BUSINO="   + "'" + TradeContext.I1BUSINO   + "'" + " AND "        #单位编号
        sql = sql + "ZONENO="   + "'" + TradeContext.I1ZONENO   + "'" + " AND "        #地区代码
        sql = sql + "BRNO="     + "'" + TradeContext.I1SBNO     + "'" + " AND "        #机构代码
        sql = sql + "INDATE="   + "'" + TradeContext.I1WORKDATE + "'" + " AND "        #委托日期
        sql = sql + "BATCHNO="  + "'" + TradeContext.I1BATCHNO  + "'"                  #委托号

        AfaLoggerFunc.tradeInfo(sql)

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询批量信息表异常' )

        if ( len(records) == 0 ):
                return ExitSubTrade( '9000', '没有该单位批量申请信息,不能撤销' )
                
        #begin 蔡永贵 增加
        TradeContext.NOTE2 = records[0][4]                #NOTE2(批次序号)
        #end

        if ( str(records[0][1]) == "40" ):
            return ExitSubTrade('9000', '该单位的批量数据已经被撤消:['+ str(records[0][2]) +']')

        elif ( str(records[0][1]) == "88" ):
            return ExitSubTrade('9000', '该单位的批量数据文件已经处理完成,不能撤销')

        elif ( str(records[0][1]) == "10" ):
            if ( str(records[0][3]) != TradeContext.I1USID ):
                return ExitSubTrade('9000', '只有申请柜员才能撤消')

            AfaLoggerFunc.tradeInfo('>>>该单位的批量数据文件为申请状态,可以撤销')
            return True

        else:
            return ExitSubTrade( '9000', '该单位批量数据文件已经被提交,不能撤销' )
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断批量申请是否已存在,数据库异常' )
Пример #20
0
def ChkUnitInfo( ):


    AfaLoggerFunc.tradeInfo('>>>判断单位协议是否有效')


    try:
        sql = ""
        sql = "SELECT SIGNUPMODE,GETUSERNOMODE,STARTDATE,ENDDATE,STARTTIME,ENDTIME,ACCNO,AGENTTYPE,VOUHNO FROM ABDT_UNITINFO WHERE "
        sql = sql + "APPNO="  + "'" + TradeContext.I1APPNO  + "'" + " AND "        #业务编号
        sql = sql + "BUSINO=" + "'" + TradeContext.I1BUSINO + "'" + " AND "        #单位编号
        sql = sql + "STATUS=" + "'" + "1"                   + "'"                  #状态

        AfaLoggerFunc.tradeInfo( sql )

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询单位协议信息异常' )
    
        if ( len(records) <= 0 ):
            return ExitSubTrade( '9000', '没有单位协议信息,不能进行此类操作')

        #过滤None
        AfaUtilTools.ListFilterNone( records )

        TradeContext.SIGNUPMODE    = str(records[0][0])                             #签约方式
        TradeContext.GETUSERNOMODE = str(records[0][1])                             #商户客户编号获取方式
        TradeContext.STARTDATE     = str(records[0][2])                             #生效日期
        TradeContext.ENDDATE       = str(records[0][3])                             #失效日期
        TradeContext.STARTTIME     = str(records[0][4])                             #服务开始时间
        TradeContext.ENDTIME       = str(records[0][5])                             #服务终止时间
        TradeContext.ACCNO         = str(records[0][6])                             #对公账户
        TradeContext.AGENTTYPE     = str(records[0][7])                             #委托方式
        TradeContext.VOUHNO        = str(records[0][8])                             #凭证号(内部帐户)

        AfaLoggerFunc.tradeInfo( "TranDate=[" + TradeContext.TranDate + "]" )

        if ( (TradeContext.STARTDATE > TradeContext.TranDate) or (TradeContext.TranDate > TradeContext.ENDDATE) ):
            return ExitSubTrade( '9000', '该单位委托协议还没有生效或已过有效期')

        if ( (TradeContext.STARTTIME > TradeContext.TranTime) or (TradeContext.TranTime > TradeContext.ENDTIME) ):
            return ExitSubTrade( '9000', '已经超过该系统的服务时间,该业务必须在[' + s_StartDate + ']-[' + s_EndDate + ']时间段运行')

        if ((TradeContext.SIGNUPMODE=="1") and (TradeContext.GETUSERNOMODE=="1")):
            #发送到通讯前置并从第三方获取协议
            return True

        return True
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断单位协议信息是否存在失败')
Пример #21
0
def SubModuleDoSnd():
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.主机类操作(2.中心操作).汇票解付[TRCC003_8502]进入***' )
    
    #=================判断afe是否发送成功=======================================
    if TradeContext.errorCode != '0000':
        #=============AFE发送失败,设置状态为发送失败============================
        AfaLoggerFunc.tradeInfo('>>>AFE发送失败,开始设置状态为发送失败')
        
        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_SND
        stat_dict['BDWFLG']  = PL_BDWFLG_FAIL
        stat_dict['PRCCO']   = TradeContext.errorCode
        stat_dict['STRINFO'] = TradeContext.errorMsg
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999','设置状态为发送失败异常')
            
        AfaLoggerFunc.tradeInfo('>>>结束设置状态为发送失败')
    else:
        #=============AFE发送成功,设置状态为发送成功============================
        AfaLoggerFunc.tradeInfo('>>>AFE发送成功,开始设置状态为发送成功')
        
        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_SND
        stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
        stat_dict['PRCCO']   = TradeContext.errorCode
        stat_dict['STRINFO'] = TradeContext.errorMsg
        
        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(">>>Commit成功")
    
    TradeContext.errorCode = '0000'
    TradeContext.errorMsg  = '发送农信银中心成功'
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.主机类操作(2.中心操作).汇票解付[TRCC003_8502]结束***' )
    
    return True
Пример #22
0
def GetMainDict(ItemName):
    AfaLoggerFunc.tradeInfo('获取字典主表数据' )
    AfaLoggerFunc.tradeInfo('|'+ItemName+'|')
    sql_m="SELECT * FROM AFA_MAINDICT "
    sql_m=sql_m+"WHERE ITEMENAME='"+ItemName+"'"
    sql_m=sql_m+" ORDER BY ITEM"
    records_m = AfaDBFunc.SelectSql(sql_m)
    AfaLoggerFunc.tradeInfo(sql_m)
    if( records_m == None or len(records_m) == 0):
        AfaLoggerFunc.tradeFatal(sql_m)
        return '0'
    AfaUtilTools.ListFilterNone( records_m )
    AfaLoggerFunc.tradeInfo('|'+records_m[0][0]+'|'+records_m[0][1]+'|'+records_m[0][2]+'|')
    return records_m[0][0]
Пример #23
0
def insInfoBil(bil_dict):
    
    AfaLoggerFunc.tradeInfo( ">>>开始登记汇票信息登记簿[" + bil_dict["BILVER"] + "][" + bil_dict["BILNO"] + "][" + bil_dict["BILRS"] + "]交易信息及相关状态" )
    if not bil_dict.has_key("BILVER"):
        return AfaFlowControl.ExitThisFlow("S999","登记汇票信息登记簿,BILVER不能为空")
        
    if not bil_dict.has_key("BILNO"):
        return AfaFlowControl.ExitThisFlow("S999","登记汇票信息登记簿,BILNO不能为空")
    
    if not bil_dict.has_key("BILRS"):
        return AfaFlowControl.ExitThisFlow("S999","登记汇票信息登记簿,BILRS不能为空")
        
    
    
    #===========将输入字典赋值到汇票信息登记簿字典==============================
    bilinf_dict = {}
    
    if not rccpsMap0000Dbil_dict2Dbilinf.map(bil_dict,bilinf_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将输入字典赋值到汇票信息登记簿字典异常' )
    
    
    bilinf_where_dict = {}
    bilinf_where_dict['BILRS']  = bil_dict['BILRS']
    bilinf_where_dict['BILVER'] = bil_dict['BILVER']
    bilinf_where_dict['BILNO']  = bil_dict['BILNO']
    
    tmp_bilinf_dict = rccpsDBTrcc_bilinf.selectu(bilinf_where_dict)
    if tmp_bilinf_dict == None:
        return AfaFlowControl.ExitThisFlow( 'S999', '校验汇票信息登记簿是否存在相同汇票异常' )
    
    if len(tmp_bilinf_dict) <= 0:
        AfaLoggerFunc.tradeError("汇票信息登记簿不存在此汇票,插入汇票信息")
    
        #===========登记信息到汇票信息登记簿========================================
        ret = rccpsDBTrcc_bilinf.insert(bilinf_dict)
        if ret <= 0:
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return AfaFlowControl.ExitThisFlow( 'S999', '登记汇票详细信息异常' )
        
        return True
    else:
        AfaLoggerFunc.tradeError("汇票信息登记簿存在此汇票,更新汇票信息")
    
        #===========登记信息到汇票信息登记簿========================================
        ret = rccpsDBTrcc_bilinf.update(bilinf_dict,bilinf_where_dict)
        if ret <= 0:
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return AfaFlowControl.ExitThisFlow( 'S999', '登记汇票详细信息异常' )
        
        return True
Пример #24
0
def getTransStateAll(BJEDTE,BSPSQN,stat_list):
    AfaLoggerFunc.tradeInfo(">>>进入getTransStateAll")
    #===========获取sstlog所有状态及相关信息====================================
    sstlog_where_sql = "BJEDTE = '" + BJEDTE + "' and BSPSQN = '" + BSPSQN + "'"
    sstlog_order_sql = " order by BCURSQ desc "
    
    sstlog_list = rccpsDBTrcc_sstlog.selectm(1,0,sstlog_where_sql,sstlog_order_sql)
    
    if sstlog_list == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        AfaLoggerFunc.tradeFatal("获取交易[" + BJEDTE + "][" + BSPSQN + "]所有状态详细信息异常")
        return AfaFlowControl.ExitThisFlow( 'S999', '获取交易所有状态详细信息异常' )
        
    if len(sstlog_list) <= 0:
        AfaLoggerFunc.tradeFatal("流水状态登记簿中无此交易[" + BJEDTE + "][" + BSPSQN + "]状态详细信息")
        return AfaFlowControl.ExitThisFlow( 'S999', '流水状态登记簿中无此交易状态详细信息' )
    
    
    for i in xrange(0,len(sstlog_list)):
        stat_dict = {}
        if not rccpsMap0000Dsstlog2Dstat_dict.map(sstlog_list[i],stat_dict):
            AfaLoggerFunc.tradeFatal("将查询出的业务状态详细信息赋值到输出字典异常")
            return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的业务状态详细信息赋值到输出字典异常' )
        stat_list.append(stat_dict)
    
    AfaLoggerFunc.tradeInfo(">>>结束getTransStateAll")
    return True
Пример #25
0
def getTransStateSetm(BJEDTE,BSPSQN,BCSTAT,BDWFLG,stat_list):
    AfaLoggerFunc.tradeInfo(">>>进入getTransStateSetm")
    
    #==========获取sstlog对应状态及信息=========================================
    sstlog_where_sql = "BJEDTE LIKE '" + BJEDTE + "' and BSPSQN LIKE '" + BSPSQN + "' and BCSTAT LIKE '" + BCSTAT + "' and BDWFLG LIKE '" + BDWFLG + "'"
    
    sstlog_order_sql = 'order by BCURSQ desc'
    
    sstlog_list = rccpsDBTrcc_sstlog.selectm(1,0,sstlog_where_sql,sstlog_order_sql)
    
    if sstlog_list == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        AfaLoggerFunc.tradeFatal("获取交易[" + BJEDTE + "][" + BSPSQN + "]指定状态详细信息异常")
        return AfaFlowControl.ExitThisFlow( 'S999', '获取交易指定状态详细信息异常' )
        
    if len(sstlog_list) <= 0:
        AfaLoggerFunc.tradeFatal("流水状态登记簿中无此交易" + BJEDTE + "][" + BSPSQN + "]指定状态[" + BCSTAT + "][" + BDWFLG + "]详细信息")
        return AfaFlowControl.ExitThisFlow( 'S999', '流水状态登记簿中无此交易指定状态详细信息' )
        
    for i in xrange(0,len(sstlog_list)):
        stat_dict = {}
        if not rccpsMap0000Dsstlog2Dstat_dict.map(sstlog_list[i],stat_dict):
            AfaLoggerFunc.tradeFatal("将查询出的业务状态详细信息赋值到输出字典异常")
            return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的业务状态详细信息赋值到输出字典异常' )
        stat_list.append(stat_dict)
    
    AfaLoggerFunc.tradeInfo(">>>结束getTransStateSetm")
    return True
Пример #26
0
def getBatchConfig( cfgFileName = None ): 

    try:
        config = ConfigParser.ConfigParser( )
        if ( cfgFileName == None ):
            cfgFileName = os.environ['AFAP_HOME'] + '/conf/lapp.conf'
        config.readfp( open( cfgFileName ) )
        TradeContext.BATCH_APPTRFG    = config.get( 'BATCH', 'APPTRFG' )
        TradeContext.BATCH_MAXCOUNT   = config.get( 'BATCH', 'MAXCOUNT' )
        return True
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '读取配置文件异常' )
Пример #27
0
def ChkUnitInfo( ):
    AfaLoggerFunc.tradeInfo('>>>判断单位协议是否有效')

    try:
        sql = ""
        sql = "SELECT SIGNUPMODE,GETUSERNOMODE,STARTDATE,ENDDATE,STARTTIME,ENDTIME,ACCNO,AGENTTYPE,VOUHNO FROM ABDT_UNITINFO WHERE "
        sql = sql + "APPNO="  + "'" + TradeContext.Appno       + "'" + " AND "        #业务编号
        sql = sql + "BUSINO=" + "'" + TradeContext.PayeeUnitno + "'" + " AND "        #单位编号
        sql = sql + "STATUS=" + "'" + "1"                      + "'"                  #状态

        AfaLoggerFunc.tradeInfo( sql )

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询单位协议信息异常' )
    
        if ( len(records) <= 0 ):
            return ExitSubTrade( '9000', '没有单位协议信息,不能进行此类操作')

        #过滤None
        AfaUtilTools.ListFilterNone( records )

        TradeContext.SIGNUPMODE    = str(records[0][0])                             #签约方式
        TradeContext.GETUSERNOMODE = str(records[0][1])                             #商户客户编号获取方式
        TradeContext.STARTDATE     = str(records[0][2])                             #生效日期
        TradeContext.ENDDATE       = str(records[0][3])                             #失效日期
        TradeContext.STARTTIME     = str(records[0][4])                             #服务开始时间
        TradeContext.ENDTIME       = str(records[0][5])                             #服务终止时间
        TradeContext.ACCNO         = str(records[0][6])                             #对公账户
        TradeContext.AGENTTYPE     = str(records[0][7])                             #委托方式
        TradeContext.VOUHNO        = str(records[0][8])                             #凭证号(内部帐户)

        AfaLoggerFunc.tradeInfo( "TranDate=[" + TradeContext.TranDate + "]" )

        if ( (TradeContext.STARTDATE > TradeContext.TranDate) or (TradeContext.TranDate > TradeContext.ENDDATE) ):
            return ExitSubTrade( '9000', '该单位委托协议还没有生效或已过有效期')

        if ( (TradeContext.STARTTIME > TradeContext.TranTime) or (TradeContext.TranTime > TradeContext.ENDTIME) ):
            return ExitSubTrade( '9000', '已经超过该系统的服务时间,该业务必须在[' + s_StartDate + ']-[' + s_EndDate + ']时间段运行')

        if ((TradeContext.SIGNUPMODE=="1") and (TradeContext.GETUSERNOMODE=="1")):
            #发送到通讯前置并从第三方获取协议
            return True

        return True
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断单位协议信息是否存在失败')
Пример #28
0
def getTransStateSet(BJEDTE,BSPSQN,BCSTAT,BDWFLG,stat_dict):
    AfaLoggerFunc.tradeInfo(">>>进入getTransStateSet")
    
    #==========获取sstlog对应状态及信息=========================================
    sstlog_where_dict = {}
    sstlog_where_dict["BJEDTE"] = BJEDTE
    sstlog_where_dict["BSPSQN"] = BSPSQN
    sstlog_where_dict["BCSTAT"] = BCSTAT
    sstlog_where_dict["BDWFLG"] = BDWFLG
    
    sstlog_dict = rccpsDBTrcc_sstlog.selectu(sstlog_where_dict)
    
    if sstlog_dict == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        AfaLoggerFunc.tradeFatal("获取交易[" + BJEDTE + "][" + BSPSQN + "]指定状态详细信息异常")
        return AfaFlowControl.ExitThisFlow( 'S999', '获取交易指定状态详细信息异常' )
        
    if len(sstlog_dict) <= 0:
        AfaLoggerFunc.tradeFatal("流水状态登记簿中无此交易" + BJEDTE + "][" + BSPSQN + "]指定状态[" + BCSTAT + "][" + BDWFLG + "]详细信息")
        return AfaFlowControl.ExitThisFlow( 'S999', '流水状态登记簿中无此交易指定状态详细信息' )
        
    if not rccpsMap0000Dsstlog2Dstat_dict.map(sstlog_dict,stat_dict):
        AfaLoggerFunc.tradeFatal("将查询出的业务状态详细信息赋值到输出字典异常")
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的业务状态详细信息赋值到输出字典异常' )
    
    AfaLoggerFunc.tradeInfo(">>>结束getTransStateSet")
    return True
Пример #29
0
def TrxMain( ):


    AfaLoggerFunc.tradeInfo('**********查询(8804)开始**********')

    try:
        sql = ""
        sql = "SELECT * FROM ABDT_BATCHINFO WHERE "
        sql = sql + "INDATE="    + "'" + TradeContext.indate  + "'" + " AND "      #申请日期
        sql = sql + "BATCHNO="   + "'" + TradeContext.batchno + "'"                #委托号




        AfaLoggerFunc.tradeInfo( sql )

        records = AfaDBFunc.SelectSql( sql )
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询批量信息表异常' )

        if ( len(records) == 0 ):
            return ExitSubTrade( '9000', '没有该委托号的批次信息' )

        #过滤None
        AfaUtilTools.ListFilterNone( records )

        TradeContext.tradeResponse.append(['appno',           str(records[0][1])])         #业务编号
        TradeContext.tradeResponse.append(['busino',          str(records[0][2])])         #单位编号
        TradeContext.tradeResponse.append(['brno',            str(records[0][4])])         #网点号
        TradeContext.tradeResponse.append(['status',          str(records[0][19])])        #状态
        TradeContext.tradeResponse.append(['procmsg',         str(records[0][22])])        #错误描述



        #处理结果信息
        BatchResultMsg = str(records[0][22])

        AfaLoggerFunc.tradeInfo('**********查询(8804)结束**********')


        #返回
        TradeContext.tradeResponse.append(['errorCode', '0000'])
        TradeContext.tradeResponse.append(['errorMsg',  BatchResultMsg])
        return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '查询,数据库异常' )
Пример #30
0
def SubModuleDoSnd():
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.中心类操作(2.中心操作).汇票撤销[TRCC003_8503]进入***' )
    
    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_SND
    stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
    stat_dict['PRCCO']   = TradeContext.errorCode
    stat_dict['STRINFO'] = TradeContext.errorMsg
    
    AfaLoggerFunc.tradeInfo("TradeContext.errorCode = [" + TradeContext.errorCode + "]")
    if TradeContext.errorCode == '0000':
        #发送农信银成功,设置业务状态为发送成功
        AfaLoggerFunc.tradeInfo(">>>发送农信银总中心成功")
        AfaLoggerFunc.tradeInfo(">>>开始设置业务状态为发送成功")
        
        stat_dict['BCSTAT']  = PL_BCSTAT_SND
        stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为发送成功异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束设置业务状态为发送成功")
        
    else:
        #发送农信银失败,设置业务状态为发送失败
        AfaLoggerFunc.tradeInfo(">>>发送农信银总中心失败")
        AfaLoggerFunc.tradeInfo(">>>开始设置业务状态为发送失败")
        
        stat_dict['BCSTAT']  = PL_BCSTAT_SND
        stat_dict['BDWFLG']  = PL_BDWFLG_FAIL
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为发送失败异常")
        
        AfaLoggerFunc.tradeInfo(">>>结束设置业务状态为发送失败")
    
    #COMMIT
    if not AfaDBFunc.CommitSql( ):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow("S999","Commit异常")
    AfaLoggerFunc.tradeInfo(">>>Commit成功")
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:往账.中心类操作(2.中心操作).汇票撤销[TRCC003_8503]退出***' )
    
    return True
Пример #31
0
def TrxMain():


    AfaLoggerFunc.tradeInfo('**********撤销批量作业(8410)开始**********')



    TradeContext.tradeResponse.append(['O1AFAPDATE', TradeContext.TranDate])    #工作日期
    TradeContext.tradeResponse.append(['O1AFAPTIME', TradeContext.TranTime])    #工作时间



    #判断单位协议是否有效
    if ( not AbdtFunc.ChkUnitInfo( ) ):
        return False


    #判断批量申请是否已存在
    if (  not ChkBatchInfo( ) ):
        return False


    #修改批次记录为撤销状态
    if ( UpdateBatchInfo() < 0 ):
        return False


    #移动数据文件到撤消目录中
    try:
    
        #begin 20100105 蔡永贵 修改 文件名后加上批次序号(TradeContext.NOTE2)
        sFileName = os.environ['AFAP_HOME'] + '/data/batch/in/'   + TradeContext.I1APPNO + TradeContext.I1BUSINO + TradeContext.NOTE2 + "_" + TradeContext.TranDate
        dFileName = os.environ['AFAP_HOME'] + '/data/batch/dust/' + TradeContext.I1APPNO + TradeContext.I1BUSINO + TradeContext.NOTE2 + "_" + TradeContext.TranDate + TradeContext.TranTime
        #end
        
        if ( os.path.exists(sFileName) and os.path.isfile(sFileName) ):
            AfaLoggerFunc.tradeInfo('>>>批量处理数据文件存在')

            cp_cmd_str="mv " + sFileName + " " + dFileName
            os.system(cp_cmd_str)

        else:
            AfaLoggerFunc.tradeInfo('>>>批量处理数据文件不存在,请查询原因')
            return ExitSubTrade( '9999', '批量处理数据文件不存在(转移),请查询原因' )


    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '批量处理数据文件操作异常(转移)' )
Пример #32
0
def Insert():
    try:
        if( TradeContext.existVariable( "BRNO" ) and len(TradeContext.BRNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[分行行号]:不能为空')
        if( TradeContext.existVariable( "PAYBKCODE" ) and len(TradeContext.PAYBKCODE)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[清算行行号]:不能为空')
        if( TradeContext.existVariable( "STATUS" ) and len(TradeContext.STATUS)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[是否为清算行]:不能为空')
        if( TradeContext.existVariable( "ACCNO" ) and len(TradeContext.ACCNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[财税库款帐号]:不能为空')
        if( TradeContext.existVariable( "PAYEEBANKNO" ) and len(TradeContext.PAYEEBANKNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[清算国库支付系统行号]:不能为空')

        sql="SELECT BRNO,PAYBKCODE,BANKNO,BANKACCT,BANKNAME,PAYEEBANKNO,STATUS,ACCNO,NOTE1,NOTE2,NOTE3,NOTE4,NOTE5 "
        sql=sql+" FROM TIPS_BRANCH_ADM WHERE 1=1 "
        #sql=sql+"AND BRNO='"+ TradeContext.BRNO+"'"
        #guanbinjie 20090901 设置清算行号为唯一值
        sql=sql+"AND PAYBKCODE='"+ TradeContext.PAYBKCODE +"'"
        #修改完成
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.SelectSql(sql)
        if( records == None ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        elif( len( records ) > 0 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', '已存在此上线行信息' )

        sql="INSERT INTO  TIPS_BRANCH_ADM(BRNO,PAYBKCODE,BANKNO,BANKACCT,BANKNAME,PAYEEBANKNO,STATUS,ACCNO,NOTE3) "
        sql=sql+" VALUES "
        sql=sql+"('"+ TradeContext.BRNO          +"'"
        sql=sql+",'"+ TradeContext.PAYBKCODE     +"'"
        sql=sql+",'"+ TradeContext.BANKNO        +"'"
        sql=sql+",'"+ TradeContext.BANKACCT      +"'"
        sql=sql+",'"+ TradeContext.BANKNAME      +"'"
        sql=sql+",'"+ TradeContext.PAYEEBANKNO   +"'"
        sql=sql+",'"+ TradeContext.STATUS        +"'"
        sql=sql+",'"+ TradeContext.ACCNO         +"'"
        sql=sql+",'"+ TradeContext.ACCNAME         +"'"
        sql=sql+" ) "              
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.InsertSqlCmt(sql)
        if( records == None or records <=0  ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        return True
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #33
0
def UpdUnitDayendStatus(flag):
    AfaLoggerFunc.tradeInfo('修改商户日终状态' )
    GetUnitStatus()
    if(TradeContext.__busiMode__!='2'):
        sql="UPDATE AFA_UNITADM SET DAYENDSTATUS='"+flag+"',dayendtime='"+TradeContext.workTime+\
            "' WHERE SYSID='"+TradeContext.sysId+"'and UNITNO='"+TradeContext.unitno+"'"
    else:
        sql="UPDATE AFA_SUBUNITADM SET DAYENDSTATUS='"+flag+"' , dayendtime='"+TradeContext.workTime+\
            "' WHERE SYSID='"+TradeContext.sysId+"' AND UNITNO='"+TradeContext.unitno+"' AND "\
            "SUBUNITNO='"+TradeContext.subUnitno+"'"
    AfaLoggerFunc.tradeInfo(sql )
    records=AfaDBFunc.UpdateSqlCmt( sql )
    if( records <0 ):
        AfaLoggerFunc.tradeFatal( sql )
        return AfaFlowControl.ExitThisFlow( 'A0025', '数据库错误,商户信息表操作异常:'+AfaDBFunc.sqlErrMsg )
    return True
Пример #34
0
def GetSubDict(MainItem,SubCode):
    AfaLoggerFunc.tradeInfo('获取字典子表数据' )
    AfaLoggerFunc.tradeInfo('|'+MainItem+'|'+SubCode+'|')
    sql_m="SELECT * FROM AFA_SUBDICT "
    sql_m=sql_m+"WHERE ITEM='"+MainItem+"'"
    sql_m=sql_m+"AND CODE='"+SubCode+"'"
    sql_m=sql_m+" ORDER BY ITEM,CODE"
    records_m = AfaDBFunc.SelectSql(sql_m)
    AfaLoggerFunc.tradeInfo(sql_m)
    if( records_m == None or len(records_m) == 0):
        AfaLoggerFunc.tradeFatal(sql_m)
        return '未知'
    AfaUtilTools.ListFilterNone( records_m )
    AfaLoggerFunc.tradeInfo('|'+records_m[0][0]+'|'+records_m[0][1]+'|'+records_m[0][2]+'|')
    return records_m[0][2]
    
Пример #35
0
def ChkUnitInfo( ):

    AfaLoggerFunc.tradeInfo( '=====判断应用状态开始=====' )

    sqlStr = ''
    sqlStr = sqlStr + "SELECT STATUS,STARTDATE,ENDDATE,STARTTIME,ENDTIME,ACCNO FROM ABDT_UNITINFO "
    sqlStr = sqlStr + " AND WHERE APPNO = '" + TradeContext.sysId + "'"

    #============单位编码============
    sqlStr = sqlStr + " AND BUSINO = '" + TradeContext.busino + "'"

    #============委托方式============
    sqlStr = sqlStr + " AND AGENTTYPE IN ('1','2')"
    
    AfaLoggerFunc.tradeFatal( '查询结果 :'+sqlStr )
    
    records = AfaDBFunc.SelectSql( sqlStr )
    
    if( records == None ):
        return AfaFlowControl.ExitThisFlow( 'A0002', '查询单位协议信息异常')

    elif( len( records )!=0 ):
        AfaUtilTools.ListFilterNone( records )
        
        TradeContext.STATUS        = str(records[0][0])                             #签约状态
        TradeContext.STARTDATE     = str(records[0][1])                             #生效日期
        TradeContext.ENDDATE       = str(records[0][2])                             #失效日期
        TradeContext.STARTTIME     = str(records[0][3])                             #服务开始时间
        TradeContext.ENDTIME       = str(records[0][4])                             #服务终止时间
        TradeContext.ACCNO         = str(records[0][5])                             #对公账户
        
        
        if ( (TradeContext.STARTDATE > TradeContext.workDate) or (TradeContext.workDate > TradeContext.ENDDATE) ):
            return AfaFlowControl.ExitThisFlow( '9000', '该单位委托协议还没有生效或已过有效期')

        if ( (TradeContext.STARTTIME > TradeContext.workTime) or (TradeContext.workTime > TradeContext.ENDTIME) ):
            return AfaFlowControl.ExitThisFlow( '9000', '已经超过该系统的服务时间,该业务必须在[' + s_StartDate + ']-[' + s_EndDate + ']时间段运行')

        #=============代理业务帐号=============
        #TradeContext.__agentAccno__ = records[0][5] 
        #AfaLoggerFunc.tradeInfo('收款人帐户__agentAccno__ BB::'+ TradeContext.__agentAccno__)           

        AfaLoggerFunc.tradeInfo( '=====判断应用状态结束=======' )
        return True
    else:
        AfaLoggerFunc.tradeError( sqlStr )
        return AfaFlowControl.ExitThisFlow( 'A0003', '该地区没有开放此业务' )
Пример #36
0
def VMENU_QueryAccInfo():


    AfaLoggerFunc.tradeInfo('>>>查询账户信息')


    try:
        #通讯区打包
        HostContext.I1TRCD = '8810'                        #主机交易码
        HostContext.I1SBNO = TradeContext.I1SBNO           #该交易的发起机构
        HostContext.I1USID = TradeContext.I1USID           #交易柜员号
        HostContext.I1AUUS = TradeContext.I1AUUS           #授权柜员
        HostContext.I1AUPS = TradeContext.I1AUPS           #授权柜员密码
        HostContext.I1WSNO = TradeContext.I1WSNO           #终端号
        HostContext.I1ACNO = TradeContext.I1ACCNO          #帐号
        HostContext.I1CYNO = '01'                          #币种
        HostContext.I1CFFG = '1'                           #密码校验标志(0-需要,1-不需要)
        HostContext.I1PSWD = ''                            #密码
        HostContext.I1CETY = TradeContext.I1VOUHTYPE       #凭证种类
        HostContext.I1CCSQ = TradeContext.I1VOUHNO         #凭证号码
        HostContext.I1CTFG = TradeContext.I1CHFLAG         #钞汇标志


        #与主机通讯
        if not AfaHostFunc.CommHost('8810'):
            return ExitSubTrade( TradeContext.errorCode, TradeContext.errorMsg )


        if ( HostContext.O1REKD == '900' ):
            return ExitSubTrade( '9000', '非个人结算户,不能操作' )


        TradeContext.tradeResponse.append(['O1USERNAME', HostContext.O1CUNM])   #客户姓名
        TradeContext.tradeResponse.append(['O1IDTYPE',   HostContext.O1IDTY])   #证件种类
        TradeContext.tradeResponse.append(['O1IDCODE',   HostContext.O1IDNO])   #证件号码
        TradeContext.tradeResponse.append(['O1MAFG',     HostContext.O1MAFG])   #公司卡/个人卡标志(0:单位 1:个人)
        TradeContext.tradeResponse.append(['O1REKD',     HostContext.O1REKD])   #账户类型(特殊处理:900-非个人结算户)
        TradeContext.tradeResponse.append(['O1ACBL',     HostContext.O1ACBL])   #账户余额
        TradeContext.tradeResponse.append(['O1CUBL',     HostContext.O1CUBL])   #可用余额
        TradeContext.tradeResponse.append(['O1DATA',     HostContext.O1ITEM])   #附加信息(科目代码)

        return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '查询账户信息异常(主机)' )
Пример #37
0
def CrtSequence( ):
    
    try:
        sqlStr = "SELECT NEXTVAL FOR AHXNB_ONLINE_SEQ FROM SYSIBM.SYSDUMMY1"

        records = AfaDBFunc.SelectSql( sqlStr )
        if records == None :
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '生成序列号异常' )
        AfaLoggerFunc.tradeInfo( "序列号:" + str(records[0][0]) )
        
        #序列号
        TradeContext.sequenceNo = str(records[0][0]).rjust(3,'0')
        
        return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '生成委托号异常' )
Пример #38
0
def UpdUnitWorkDate():
    AfaLoggerFunc.tradeInfo('修改商户当前工作日期' )
    curworkdate=TradeContext.workDate
    if(  TradeContext.existVariable( "nextWorkDate" ) ):
        curworkdate=TradeContext.nextWorkDate
    GetUnitStatus()
    if(TradeContext.__busiMode__!='2'):
        sql="UPDATE AFA_UNITADM SET  PREWORKDATE=WORKDATE,WORKDATE='"+curworkdate+"'"+\
            " WHERE SYSID='"+TradeContext.sysId+"' AND UNITNO='"+TradeContext.unitno+"'"
    else:
        sql="UPDATE AFA_SUBUNITADM SET PREWORKDATE=WORKDATE,WORKDATE='"+curworkdate+"' "+\
            " WHERE SYSID='"+TradeContext.sysId+"' AND UNITNO='"+TradeContext.unitno+"' AND "\
            "SUBUNITNO='"+TradeContext.subUnitno+"'"
    AfaLoggerFunc.tradeInfo(sql )
    records=AfaDBFunc.UpdateSqlCmt( sql )
    if( records <0 ):
        AfaLoggerFunc.tradeFatal( sql )
        return AfaFlowControl.ExitThisFlow( 'A0025', '数据库错误,商户信息表操作异常:'+AfaDBFunc.sqlErrMsg )
    return True
Пример #39
0
def QueryAccInfo( ):

    AfaLoggerFunc.tradeInfo(">>>查询账户信息(主机)")

    try:
        #通讯区打包
        HostContext.I1TRCD = '8810'                        #主机交易码
        HostContext.I1SBNO = TradeContext.I1SBNO           #该交易的发起机构
        HostContext.I1USID = TradeContext.I1USID           #交易柜员号
        HostContext.I1AUUS = TradeContext.I1AUUS           #授权柜员
        HostContext.I1AUPS = TradeContext.I1AUPS           #授权柜员密码
        HostContext.I1WSNO = TradeContext.I1WSNO           #终端号
        HostContext.I1ACNO = TradeContext.I1ACCNO          #帐号
        HostContext.I1CYNO = TradeContext.I1CURRTYPE       #币种

        if ( TradeContext.I1PASSCHKFLAG == "1" ):
            HostContext.I1CFFG = "0"                       #密码校验标志(需要)
        else:
            HostContext.I1CFFG = "1"                       #密码校验标志(不需要)

        HostContext.I1PSWD = TradeContext.I1PASSWD         #密码
        HostContext.I1CETY = TradeContext.I1VOUHTYPE       #凭证种类
        HostContext.I1CCSQ = TradeContext.I1VOUHNO         #凭证号码
        HostContext.I1CTFG = '0'                           #钞汇标志


        #与主机通讯
        if not AfaHostFunc.CommHost('8810'):
            return ExitSubTrade( TradeContext.errorCode, TradeContext.errorMsg )


        #缓冲主机返回信息
        TradeContext.USERNAME   = HostContext.O1CUNM        #用户名称
        TradeContext.IDTYPE     = HostContext.O1IDTY        #证件类型
        TradeContext.IDCODE     = HostContext.O1IDNO        #证件号码
        TradeContext.ACCSTATUS  = HostContext.O1ACST        #账户状态

        return True
        
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '查询账户信息(主机)异常')
Пример #40
0
def ChkCustInfo( ):

    sql = ""

    AfaLoggerFunc.tradeInfo('>>>判断个人协议是否有效')

    try:
        sql = "SELECT USERNAME,IDTYPE,IDCODE,PROTOCOLNO FROM ABDT_CUSTINFO WHERE "
        sql = sql + "APPNO="      + "'" + TradeContext.I1APPNO      + "'" + " AND "       #业务编号
        sql = sql + "BUSINO="     + "'" + TradeContext.I1BUSINO     + "'" + " AND ("      #单位编号
        sql = sql + "BUSIUSERNO=" + "'" + TradeContext.I1BUSIUSERNO + "'" + " OR "        #商户客户编号
        sql = sql + "BANKUSERNO=" + "'" + TradeContext.I1BANKUSERNO + "'" + " OR "        #银行客户编号
        sql = sql + "ACCNO="      + "'" + TradeContext.I1ACCNO      + "'" + ") AND "      #银行账号
        sql = sql + "STATUS="     + "'" + "1"                       + "'"                 #状态


        AfaLoggerFunc.tradeInfo( sql )


        records = AfaDBFunc.SelectSql( sql )
        if ( len(records) == 0 ):
            return ExitSubTrade('9000','没有该客户信息,不能进行相关的操作')


        #过滤None
        AfaUtilTools.ListFilterNone( records )

        TradeContext.USERNAME  = str(records[0][0])
        TradeContext.IDTYPE    = str(records[0][1])
        TradeContext.IDCODE    = str(records[0][2])
        rPROTOCOLNO            = str(records[0][3])
        TradeContext.ACCSTATUS = "0"

        if ( rPROTOCOLNO != TradeContext.I1PROTOCOLNO ):
            return ExitSubTrade( '9000', '不能修改个人协议编码')

        return True


    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断个人协议信息是否存在异常')
Пример #41
0
def file_Pro( ):
    try:
        #-----1,查询未处理的批量文件
        sql = ""
        sql = sql + "select batchno,swapfilename,workdate,busino,WorkTime,tellerno,filename"
        sql = sql + " from ahnx_file"
        sql = sql + " where status='4'"      #开户上传文件转换成功
        sql = sql + " and filetype='2'"      #批量开户前
        
        AfaLoggerFunc.tradeInfo('>>>>>>>开始查询AHNX_FILE原交易:'+ str(sql))
        records = AfaDBFunc.SelectSql( sql )
                  
        if records==None:
            return ExitSubTrade("D0001" ,"查询AHNX_FILE失败")
        elif(len(records) == 0):
            return ExitSubTrade("D0001" ,"无此信息")
            
        else:
            AfaLoggerFunc.tradeInfo("AHNX_FILE表中的记录数:" +str(len(records)))
            for i in range(len(records)):
                #委托号
                TradeContext.batchno      = records[i][0]
                #取得批量开户后需转换的文件名
                TradeContext.swapFileName = records[i][1]
                AfaLoggerFunc.tradeInfo( '需转换的文件:'+ TradeContext.swapFileName )
                #开户日期
                TradeContext.WorkDate     = records[i][2]
                #单位编号
                TradeContext.I1BUSINO     = records[i][3]
                #时间
                TradeContext.WorkTime     = records[i][4]
                #柜员号
                TradeContext.I1USID       = records[i][5]
                #原始文件名
                TradeContext.preFilename  = records[i][6]
                #把批量开户成功的数据转换成社保需要的文件格式
                if ( not CrtXnbFile_To_Sb( ) ):
                    continue
                
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return False
Пример #42
0
def CrtBatchNo( ):

    AfaLoggerFunc.tradeInfo('>>>生成批次委托号')

    try:
        sqlStr = "SELECT NEXTVAL FOR ABDT_ONLINE_SEQ FROM SYSIBM.SYSDUMMY1"

        records = AfaDBFunc.SelectSql( sqlStr )
        if records == None :
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '生成委托号异常' )

        #批次号
        TradeContext.BATCHNO = TradeContext.TranDate + str(records[0][0]).rjust(8, '0')

        return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '生成委托号异常' )
Пример #43
0
def SubModuleDoSnd():
    AfaLoggerFunc.tradeInfo(" 农信银系统:来账.中心类操作(2.中心回执).卡本转异应答报文接收[TRCC006_1155]进入 ")

    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_CONFPAY
    stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
    stat_dict['PRCCO']   = TradeContext.errorCode
    stat_dict['STRINFO'] = TradeContext.errorMsg
    
    AfaLoggerFunc.tradeInfo("TradeContext.errorCode = [" + TradeContext.errorCode + "]")
    if TradeContext.errorCode == '0000':
        #=====发送农信银成功,设置状态为确认付款成功====
        stat_dict['BCSTAT']  = PL_BCSTAT_CONFPAY
        stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为确认付款成功异常")
        
        AfaLoggerFunc.tradeInfo(">>>设置业务状态为确认付款成功")
    else:
        #=====发送农信银失败,设置状态为确认付款失败====       
        stat_dict['BCSTAT']  = PL_BCSTAT_CONFPAY
        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(" 农信银系统:来账.中心类操作(2.中心回执).卡本转异应答报文接收[TRCC006_1155]退出 ")
    
    return True
        
Пример #44
0
def Query():
    try:
        if( TradeContext.existVariable( "PAYEEBANKNO" ) and len(TradeContext.PAYEEBANKNO)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[清算国库支付系统行号]:不能为空')
        if( TradeContext.existVariable( "PAYBKCODE" ) and len(TradeContext.PAYBKCODE)<=0):
            return AfaFlowControl.ExitThisFlow( 'A0027', '[国库关联行行号]:不能为空')
        
        sql="SELECT PAYEEBANKNO,TRECODE,TRENAME,PAYEEACCT,PAYEEACCTNAME,PAYBKCODE,PAYBKNAME,LIQUIDATEMODE,STATUS,BRNO,TELLERNO,NOTE1,NOTE2,NOTE3,NOTE4,NOTE5 "
        sql=sql+" FROM TIPS_LIQUIDATE_ADM WHERE 1=1 "
        sql=sql+"AND PAYEEBANKNO='"+ TradeContext.PAYEEBANKNO+"'"
        sql=sql+"AND PAYBKCODE='"+ TradeContext.PAYBKCODE+"'"
        AfaLoggerFunc.tradeInfo(sql)
        records = AfaDBFunc.SelectSql(sql)
        if( records == None ):
            AfaLoggerFunc.tradeFatal(sql)
            return AfaFlowControl.ExitThisFlow( 'A0002', '数据库操作异常:'+AfaDBFunc.sqlErrMsg )
        elif( len(records) ==0 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', '未此清算信息' )
        elif( len(records) > 1 ):
            return AfaFlowControl.ExitThisFlow( 'A0027', 'TIPS_LIQUIDATE_ADM表配置错误' )
        else:
            if records[0][7]=='0':
                return AfaFlowControl.ExitThisFlow( 'A0027', '业务已停止' )
            if records[0][7]=='2':
                return AfaFlowControl.ExitThisFlow( 'A0027', '业务已暂停' )
            TradeContext.PAYEEBANKNO    = records[0][0]
            TradeContext.TRECODE        = records[0][1]
            TradeContext.TRENAME        = records[0][2]
            TradeContext.PAYEEACCT      = records[0][3]
            TradeContext.PAYEEACCTNAME  = records[0][4]
            TradeContext.PAYBKCODE      = records[0][5]
            TradeContext.PAYBKNAME      = records[0][6]
            TradeContext.LIQUIDATEMODE  = records[0][7]
            TradeContext.BRNO           = records[0][8]
            TradeContext.TELLERNO       = records[0][10]
            
            
        return True
    except Exception, e:
        AfaLoggerFunc.tradeInfo(e)
        return AfaFlowControl.ExitThisFlow('9999', '程序处理异常'+str(e))
Пример #45
0
def ChkBatchInfo( ):

    sql = ""

    AfaLoggerFunc.tradeInfo('>>>判断批量申请是否已存在')

    try:
        sql = "SELECT BATCHNO,STATUS FROM ABDT_BATCHINFO WHERE "
        sql = sql + "APPNO="    + "'" + TradeContext.I1APPNO    + "'" + " AND "        #业务编号
        sql = sql + "BUSINO="   + "'" + TradeContext.I1BUSINO   + "'" + " AND "        #单位编号
        sql = sql + "ZONENO="   + "'" + TradeContext.I1ZONENO   + "'" + " AND "        #地区代码
        sql = sql + "BRNO="     + "'" + TradeContext.I1SBNO     + "'" + " AND "        #机构代码
        sql = sql + "INDATE="   + "'" + TradeContext.TranDate   + "'" + " AND "        #委托日期
        sql = sql + "FILENAME=" + "'" + TradeContext.I1FILENAME + "'" + " AND "        #文件名称
        sql = sql + "STATUS<>"  + "'" + "40"                    + "'"                  #状态(撤销)

        AfaLoggerFunc.tradeInfo(sql)

        records = AfaDBFunc.SelectSql(sql)
        if ( records == None ):
            AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
            return ExitSubTrade( '9000', '查询批量信息表异常' )

        if ( len(records) > 0 ):
            #判断状态
            if ( str(records[0][1]) == "10" ):
                return ExitSubTrade( '9000', '该机构该单位的批量数据今天已经申请,不能再次申请' )

            elif ( str(records[0][1]) == "88" ):
                return ExitSubTrade( '9000', '该机构该单位的批量数据文件已经处理完成,不能再次申请' )

            else:
                return ExitSubTrade( '9000', '该机构该单位的批量数据文件正在处理,不能进行申请操作' )

        else:
            AfaLoggerFunc.tradeInfo('>>>没有发现该机构今天申请批量数据文件,可以申请')
            return True

    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        return ExitSubTrade( '9999', '判断批量申请是否已存在,数据库异常' )
Пример #46
0
def UpdateUserInfo():

    sql = "UPDATE ABDT_USERINFO SET "
    sql = sql + "ZONENO='"   + TradeContext.ZONENO      + "',"                    #地区号
    sql = sql + "BRNO='"     + TradeContext.BRNO        + "',"                    #网点
    sql = sql + "USERNAME='******',"                    #用户名
    sql = sql + "DUTYNO='"   + TradeContext.DUTYNO      + "',"                    #岗位编码
    sql = sql + "ADDRESS='"  + TradeContext.ADDRESS     + "',"                    #地址
    sql = sql + "TEL='"      + TradeContext.TEL         + "'"                     #电话
    sql = sql + " WHERE "

    sql = sql + "USERNO="  + "'" + TradeContext.USERNO  + "'"                     #用户号

    AfaLoggerFunc.tradeInfo(sql)

    ret = AfaDBFunc.UpdateSqlCmt( sql )
    if (ret <= 0):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return ExitSubTrade( '9000', '修改用户信息失败' )

    return True
Пример #47
0
def exitMainFlow( msgStr='' ):

    if( not TradeContext.existVariable( "errorCode" ) or msgStr ):
        TradeContext.errorCode = 'A9999'
        TradeContext.errorMsg = '系统错误['+msgStr+']'

    if TradeContext.errorCode != '0000' :
        AfaLoggerFunc.tradeFatal( 'errorCode=['+TradeContext.errorCode+']' )
        AfaLoggerFunc.tradeFatal( 'errorMsg=['+TradeContext.errorMsg+']' )
        AfaLoggerFunc.tradeFatal(TradeContext.TransCode+'交易中断')

    if( not AfaFunc.autoPackData() ):
        lenContext=len( TradeContext.tradeResponse )
        chkFlag=0
        for i in range( lenContext ):
            if( type(TradeContext.tradeResponse[i][0]) is str and (TradeContext.tradeResponse[i][0]=='errorCode' or TradeContext.tradeResponse[i][0]=='errorMsg')):
                if(TradeContext.tradeResponse[i][0]=='errorCode'):
                    TradeContext.tradeResponse[i][1]=TradeContext.errorCode
                    chkFlag=chkFlag+1
                if(TradeContext.tradeResponse[i][0]=='errorMsg'):
                    TradeContext.tradeResponse[i][1]=TradeContext.errorMsg
                    chkFlag=chkFlag+1
                if(chkFlag>=2):
                    break
            elif i==lenContext-1 :
                TradeContext.tradeResponse.append( [ 'errorCode', TradeContext.errorCode ] )
                TradeContext.tradeResponse.append( [ 'errorMsg', TradeContext.errorMsg ] )
Пример #48
0
def batch_DK_Fail_FilePro(sFileName,dFileName_fail):
    try:
        if ( os.path.exists(sFileName) and os.path.isfile(sFileName) ):  
            AfaLoggerFunc.tradeInfo("批量处理数据文件存在")
           
            wfp = open(dFileName_fail,"w")
            bfp = open(sFileName, "r")
            
            linebuf = bfp.readline()
            
            while ( len(linebuf) > 0 ):                                        
                linebuf1=linebuf.split('|')

                wbuffer = ''
                wbuffer = wbuffer + linebuf1[0]   + '|'       #社保编号
                wbuffer = wbuffer + linebuf1[1]   + '|'       #姓名    
                wbuffer = wbuffer + linebuf1[2]   + '|'       #身份证号
                wbuffer = wbuffer + linebuf1[3]   + '|'       #代发金额
                wbuffer = wbuffer + linebuf1[4]   + '|'       #社保单据号
                wbuffer = wbuffer + "批量系统处理失败(40状态)"   + ''        #返回说明
                
                wbuffer = wbuffer + '\n'
                wfp.write(wbuffer)
                
                linebuf = bfp.readline() 
                    
            #关闭文件
            wfp.close()
            bfp.close()
            return True 
        
        else:
            AfaLoggerFunc.tradeInfo("批量处理数据文件不存在或不是文件")
            return False 
                      
    except Exception, e:
        AfaLoggerFunc.tradeFatal( str(e) )
        wfp.close()
        bfp.close()
        return False
Пример #49
0
def getTransWtrCK(SNDBNKCO,COTRCDAT,COTRCNO,wtr_dict):
    AfaLoggerFunc.tradeInfo( ">>>开始查询通存通兑业务登记簿[" + SNDBNKCO + "][" + COTRCDAT + "][" + COTRCNO + "]交易信息" )
    
    #===========组织查询条件===================================================
    wtrbka_where_dict = {'SNDBNKCO':SNDBNKCO,'COTRCDAT':COTRCDAT,'COTRCNO':COTRCNO}

    #===========查询通存通兑登记簿相关业务信息=================================
    wtrbka_dict = rccpsDBTrcc_wtrbka.selectu(wtrbka_where_dict)
    
    if wtrbka_dict == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow( 'S999', '获取通存通兑业务详细信息异常' )
    
    if len(wtrbka_dict) <= 0:
        return AfaFlowControl.ExitThisFlow( 'S999', '通存通兑业务登记簿中无此通存通兑业务详细信息' )
        
    AfaLoggerFunc.tradeInfo( ">>>结束查询通存通兑业务登记簿[" + SNDBNKCO + "][" + COTRCDAT + "][" + COTRCNO + "]交易信息" )

    #==========将查询出的通存通兑登记簿相关业务信息赋值到输出字典==============
    if not rccpsMap0000Dwtrbka2Dwtr_dict.map(wtrbka_dict,wtr_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的通存通兑登记簿相关业务信息赋值到输出字典异常' )

    BJEDTE = wtrbka_dict["BJEDTE"]
    BSPSQN = wtrbka_dict["BSPSQN"]
    
    #==========查询当前业务状态=================================================
    AfaLoggerFunc.tradeInfo( ">>>开始查询交易[" + BJEDTE + "][" + BSPSQN + "]当前状态" )
    
    stat_dict = {}
    if not rccpsState.getTransStateCur(BJEDTE,BSPSQN,stat_dict):
        return False
    
    AfaLoggerFunc.tradeInfo( ">>>结束查询交易[" + BJEDTE + "][" + BSPSQN + "]当前状态" )

    #==========将查询出的业务状态详细信息赋值到输出字典=========================
    if not rccpsMap0000Dstat_dict2Dwtr_dict.map(stat_dict,wtr_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的业务状态详细信息赋值到输出字典异常' )
    
    AfaLoggerFunc.tradeInfo( ">>>结束查询通存通兑业务登记簿[" + BJEDTE + "][" + BSPSQN + "]交易信息" )
    return True
Пример #50
0
def getTransBilAK(SNDBNKCO,TRCDAT,TRCNO,bil_dict):
    AfaLoggerFunc.tradeInfo( ">>>开始查询汇票业务登记簿[" + SNDBNKCO + "][" + TRCDAT + "][" + TRCNO + "]交易信息" )
    
    #==========组织查询条件=====================================================
    bilbka_where_dict = {'SNDBNKCO':SNDBNKCO,'TRCDAT':TRCDAT,'TRCNO':TRCNO}

    #==========查询汇票业务登记簿相关业务信息===================================
    bilbka_dict = rccpsDBTrcc_bilbka.selectu(bilbka_where_dict)
    
    if bilbka_dict == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow( 'S999', '获取汇票业务详细信息异常' )
        
    if len(bilbka_dict) <= 0:
        return AfaFlowControl.ExitThisFlow( 'S999', '汇票业务登记簿中无此汇票业务详细信息' )
        
    AfaLoggerFunc.tradeInfo( ">>>结束查询汇票业务登记簿[" + SNDBNKCO + "][" + TRCDAT + "][" + TRCNO + "]交易信息" )

    #==========将查询出的汇票业务登记簿相关业务信息赋值到输出字典===============
    if not rccpsMap0000Dbilbka2Dbil_dict.map(bilbka_dict,bil_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的汇票业务登记簿相关业务信息赋值到输出字典异常' )

    BJEDTE = bilbka_dict["BJEDTE"]
    BSPSQN = bilbka_dict["BSPSQN"]
    
    #==========查询当前业务状态=================================================
    AfaLoggerFunc.tradeInfo( ">>>开始查询交易[" + BJEDTE + "][" + BSPSQN + "]当前业务状态" )
    
    stat_dict = {}
    if not rccpsState.getTransStateCur(BJEDTE,BSPSQN,stat_dict):
        return False
    
    AfaLoggerFunc.tradeInfo( ">>>结束查询交易[" + BJEDTE + "][" + BSPSQN + "]当前业务状态" )

    #==========将查询出的业务状态详细信息赋值到输出字典=========================
    if not rccpsMap0000Dstat_dict2Dbil_dict.map(stat_dict,bil_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的业务状态详细信息赋值到输出字典异常' )
    
    AfaLoggerFunc.tradeInfo( ">>>结束查询汇票业务登记簿[" + BJEDTE + "][" + BSPSQN + "]交易信息" )
    return True
Пример #51
0
def getTransMpc(BJEDTE,BSPSQN,mpc_dict):
    AfaLoggerFunc.tradeInfo( ">>>开始查询通存通兑冲销登记簿[" + BJEDTE + "][" + BSPSQN + "]交易信息" )
                                                                     
    #==========组织查询条件=====================================================
    mpcbka_where_dict = {'BJEDTE':BJEDTE,'BSPSQN':BSPSQN}            
                                                                     
    #==========查询冲销登记簿相关业务信息=======================================
    mpcbka_dict = rccpsDBTrcc_mpcbka.selectu(mpcbka_where_dict)  
    
    if mpcbka_dict == None:
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow( 'S999', '查询通存通兑冲销登记簿交易信息异常' )
        
    if len(mpcbka_dict) <= 0:
        return AfaFlowControl.ExitThisFlow( 'S999', '通存通兑冲销登记簿中无此交易信息' )
    
    #==========将查询出的通存通兑冲销登记簿相关信息赋值到输出字典==============
    if not rccpsMap0000Dmpcbka2Dmpc_dict.map(mpcbka_dict,mpc_dict):
        return AfaFlowControl.ExitThisFlow( 'S999', '将查询出的通存通兑冲销登记簿相关信息赋值到输出字典异常' )
    
    AfaLoggerFunc.tradeInfo( ">>>结束查询通存通兑冲销登记簿[" + BJEDTE + "][" + BSPSQN + "]交易信息" )
    return True
Пример #52
0
def SubModuleDoSnd():
    AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(2.中心回执).卡通存请求报文接收[TRCC006_1135]进入***' )
    
    stat_dict = {}
    stat_dict['BJEDTE']  = TradeContext.BJEDTE
    stat_dict['BSPSQN']  = TradeContext.BSPSQN
    stat_dict['BESBNO']  = TradeContext.BESBNO
    stat_dict['BETELR']  = TradeContext.BETELR
    stat_dict['PRCCO']   = TradeContext.PRCCO
    stat_dict['STRINFO'] = TradeContext.STRINFO
    
    #根据afe返回码判断应答报文是否发送成功,并设置相应业务状态
    AfaLoggerFunc.tradeInfo("TradeContext.errorCode = [" + TradeContext.errorCode + "]")
    if TradeContext.errorCode == '0000':
        #=====发送农信银成功,设置状态为确认入账\拒绝\冲正成功====
        stat_dict['BCSTAT']  = TradeContext.BCSTAT
        stat_dict['BDWFLG']  = PL_BDWFLG_SUCC
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为" +  + "成功异常")
        
        AfaLoggerFunc.tradeInfo(">>>成功设置业务状态为" + TradeContext.BCSTATNM + "成功")
    else:
        #=====发送农信银失败,设置状态为确认入账\拒绝\冲正失败====       
        stat_dict['BCSTAT']  = TradeContext.BCSTAT
        stat_dict['BDWFLG']  = PL_BDWFLG_FAIL
        
        if not rccpsState.setTransState(stat_dict):
            return AfaFlowControl.ExitThisFlow('S999', "设置业务状态为确认入账\拒绝\冲正失败异常")
        
        AfaLoggerFunc.tradeInfo(">>>成功设置业务状态为" + TradeContext.BCSTATNM + "失败")
        
    if not AfaDBFunc.CommitSql( ):
        AfaLoggerFunc.tradeFatal( AfaDBFunc.sqlErrMsg )
        return AfaFlowControl.ExitThisFlow("S999","Commit异常")
    
    AfaLoggerFunc.tradeInfo( '***农信银系统:来账.中心类操作(2.中心回执).卡通存请求报文接收[TRCC006_1135]退出***' )
    return True