⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cispub.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 5 页
字号:
*     FALSE:处理失败*作    者:zhanglongping *日    期: 2006-09-30****************************************************************************/BOOL BepsPub::GetMbfeData( MainInfo *sMainInfo , MBFEDATA *sMbfeData ){    filelog(CIS_INTER_MB, "Enter BepsPub::GetMbfeData\n");    	int nResCode;	char sSqlCmd[2048];		memset( sSqlCmd , 0 , sizeof(sSqlCmd));	sprintf( sSqlCmd , "SELECT * FROM %s WHERE PkgPreDate='%s' and "		"ISDfiCode='%s' and OSDfiCode='%s' and PkgSerNo ='%s'",		T_MBFEDATA, sMainInfo->WorkDate,sMainInfo->SendBank,		sMainInfo->RecvBank,sMainInfo->TrxNo);	filelog(CIS_INTER_MB, "sqlCmd=[%d][%s]\n", strlen(sSqlCmd), sSqlCmd);		nResCode = clsSybCommand.GetLastRecord(sSqlCmd,						sMbfeData->MbfeIdx      ,INTBIND,			sMbfeData->CisIdx       ,INTBIND,			sMbfeData->doflag       ,NTBSTRINGBIND,			sMbfeData->rsflag       ,NTBSTRINGBIND,			sMbfeData->PkgType      ,NTBSTRINGBIND,			sMbfeData->ISDfiCode    ,NTBSTRINGBIND,			sMbfeData->OSDfiCode    ,NTBSTRINGBIND,			sMbfeData->RtnLimted    ,NTBSTRINGBIND,			sMbfeData->PkgPreDate   ,NTBSTRINGBIND,			sMbfeData->PkgSerNo	    ,NTBSTRINGBIND,			sMbfeData->RNTurnDate   ,NTBSTRINGBIND,			sMbfeData->PkgExpData   ,NTBSTRINGBIND,			sMbfeData->TrxsType     ,NTBSTRINGBIND,			sMbfeData->IDfiCode     ,NTBSTRINGBIND,			sMbfeData->ODfiCode     ,NTBSTRINGBIND,			sMbfeData->PreDate      ,NTBSTRINGBIND,			sMbfeData->TrxNo	    ,NTBSTRINGBIND,			sMbfeData->MEYSYB       ,NTBSTRINGBIND,			sMbfeData->Amount	    ,NTBSTRINGBIND,			sMbfeData->PayerBKCD    ,NTBSTRINGBIND,			sMbfeData->PayerACC     ,NTBSTRINGBIND,			sMbfeData->PayerName    ,NTBSTRINGBIND,			sMbfeData->PayerAddr    ,NTBSTRINGBIND,			sMbfeData->RecverBKCD   ,NTBSTRINGBIND,			sMbfeData->RecverACC    ,NTBSTRINGBIND,			sMbfeData->RecverName   ,NTBSTRINGBIND,			sMbfeData->RecverAddr   ,NTBSTRINGBIND,			sMbfeData->OprtType     ,NTBSTRINGBIND,			sMbfeData->RtnInfo      ,NTBSTRINGBIND,			sMbfeData->ExpDataLen	,NTBSTRINGBIND,			sMbfeData->ExpType 	    ,NTBSTRINGBIND,			sMbfeData->ChkDate      ,NTBSTRINGBIND,			sMbfeData->AccNo      	,NTBSTRINGBIND,			sMbfeData->Info         ,NTBSTRINGBIND,			sMbfeData->RedoCount    ,NTBSTRINGBIND,			sMbfeData->RedoInfo     ,NTBSTRINGBIND,			sMbfeData->RedoInfo1    ,NTBSTRINGBIND,			sMbfeData->ChkModel	    ,NTBSTRINGBIND,			sMbfeData->ChkPsw      	,NTBSTRINGBIND,			sMbfeData->MbfeData     ,NTBSTRINGBIND,			sMbfeData->TagData      ,NTBSTRINGBIND);	if ( nResCode <= 0 )               	{                                          filelog(CIS_INTER_MB, "Database operator return[%d][%s]"            " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,            __FILE__, __LINE__);        		return FALSE;	}        filelog(CIS_INTER_MB, "Exit BepsPub::GetMbfeData\n");	return TRUE;}/****************************************************************************函数说明:MBFE业务明细数据转CIS明细*输入参数:*输出参数:*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者: *日    期: ****************************************************************************/BOOL BepsPub::MbfeToCis(MainInfo *sMainInfo , MBFEDATA *sMbfeData ,	CISDATA *sCisData){	filelog(CIS_INTER_MB, "Enter BepsPub::MbfeToCis\n");		int nCisIdx = 0;	int nCount = 0;	char sResDesc[255];	if (!MakeTrxsSerialNo(&nCisIdx,sResDesc,CISID))	{				return FALSE;	}		sCisData->CisIdx  = nCisIdx;	sCisData->MbfeIdx = sMbfeData->MbfeIdx;	//处理标志//  memcpy( sCisData->doflag     , sMbfeData->doflag     ,  2   );	strcpy( sCisData->doflag     ,CIS_NO );	//来往标志//  memcpy( sCisData->rsflag     , sMbfeData->rsflag     ,  1   );		strcpy( sCisData->rsflag     ,CISOUT );	//柜员号	memcpy( sCisData->OprNo      , sMainInfo->OprNo      ,  10  );		//包类型号	memcpy( sCisData->PkgType    , sMbfeData->PkgType    ,  3   );	//业务类型号		memcpy( sCisData->TrxsType   , sMbfeData->TrxsType   ,  5   );	//委托日期		memcpy( sCisData->PreDate    , sMbfeData->PreDate    ,  8   );	//交易序号		memcpy( sCisData->TrxNo      , sMbfeData->TrxNo      ,  8   );  	//收款人开户行	memcpy( sCisData->RecverBKCD , sMbfeData->RecverBKCD ,  12  );	//收款人账号		memcpy( sCisData->RecverACC  , sMbfeData->RecverACC  ,  32  );	//收款人名称		memcpy( sCisData->RecverName , sMbfeData->RecverName ,  60  );	//付款人开户行行		memcpy( sCisData->PayerBKCD  , sMbfeData->PayerBKCD  ,  12  );	//付款人账号		memcpy( sCisData->PayerACC   , sMbfeData->PayerACC   ,  32  );	//收款人名称		memcpy( sCisData->PayerName  , sMbfeData->PayerName  ,  60  );		//货币符号	memcpy( sCisData->MEYSYB     , sMbfeData->MEYSYB     ,  3   );	//金额		memcpy( sCisData->Amount     , sMbfeData->Amount     ,  15  );	//支票种类  	memcpy( sCisData->AccKind    , sMainInfo->AccKind    ,  2   );		//票据号码	memcpy( sCisData->AccNo      , sMbfeData->AccNo      ,  12  );	//出票日期		memcpy( sCisData->ChkDate    , sMbfeData->ChkDate    ,  8   );	//提示付款日期		memcpy( sCisData->AccDate    , sMainInfo->AccDate    ,  8   );		//支付密码?=校验密码	memcpy( sCisData->AccPsw     , sMbfeData->ChkPsw     ,  20  );	//用途  	memcpy( sCisData->Info       , sMbfeData->Info       ,  60  );	//备注	//	memcpy( sCisData->Remark     , sMbfeData->Remark     ,  120 );	//系统受理日期	//	memcpy( sCisData->SysDate    , sMbfeData->SysDate    ,  8   );	//回执期限		memcpy( sCisData->RtnLimted  , sMbfeData->RtnLimted  ,  8   ); 	//补发标志 //	memcpy( sCisData->SRCFlag    , sMbfeData->SRCFlag    ,  1   );		//核签状态//	memcpy( sCisData->ChkSatus   , sMbfeData->ChkSatus   ,  2   );	//正面图像  	memcpy( sCisData->PicFront   , sMainInfo->PicFrt     ,  29  );	//背面图像		memcpy( sCisData->PicBack    , sMainInfo->PicBck     ,  29  );	//数字签名	//	memcpy( sCisData->SignInfo   , sMbfeData->SignInfo   ,  1800);	//背书次数  	memcpy( sCisData->RedoCount  , sMbfeData->RedoCount  ,  2   );  	nCount = atoi(  sCisData->RedoCount );	//背书人清单	memcpy( sCisData->RedoInfo   , sMbfeData->RedoInfo   ,  nCount*60); 		sprintf( sCisData->CisData , "%3s%5s%8s%8s%12s%32s%60s%12s%32s%60s%3s%15s"		"%2s%12s%8s%8s%20s%60s%120s%8s%8s%1s%2s%2s%s",			sCisData->PkgType    ,			sCisData->TrxsType   ,			sCisData->PreDate    ,			sCisData->TrxNo      ,			sCisData->RecverBKCD ,			sCisData->RecverACC  ,			sCisData->RecverName ,			sCisData->PayerBKCD  ,			sCisData->PayerACC   ,			sCisData->PayerName  ,			sCisData->MEYSYB     ,			sCisData->Amount     ,			sCisData->AccKind    ,			sCisData->AccNo      ,			sCisData->ChkDate    ,			sCisData->AccDate    ,			sCisData->AccPsw     ,			sCisData->Info       ,			sCisData->Remark     ,			sCisData->SysDate    ,			sCisData->RtnLimted  ,			sCisData->SRCFlag    ,			sCisData->ChkSatus   ,			sCisData->PicFront   ,			sCisData->PicBack    ,			sCisData->SignInfo   ,			sCisData->RedoCount  ,			sCisData->RedoInfo   );	filelog(CIS_INTER_MB, "Exit BepsPub::MbfeToCis\n");	return TRUE;}/****************************************************************************函数说明:CIS报文入库*输入参数:*输出参数:*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者: *日    期: ****************************************************************************/BOOL BepsPub::SaveCis(CISDATA *sCisData){	filelog(CIS_INTER_MB, "Enter BepsPub::SaveCis");		char sSqlCmd[8192];	int nResCode;		memset( sSqlCmd , 0 , sizeof( sSqlCmd ));	sprintf(sSqlCmd,    "INSERT INTO %s VALUES(%d, %d, '%s', '%s', '%s', '%s', "		"'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', "		"'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', "		"'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",        		T_CISDATA        ,        		sCisData->CisIdx ,        		sCisData->MbfeIdx,        		sCisData->doflag ,			sCisData->doflag     ,			sCisData->rsflag     ,			sCisData->rsflag     ,			sCisData->OprNo      ,			sCisData->PkgType    ,			sCisData->TrxsType   ,			sCisData->PreDate    ,			sCisData->TrxNo      ,			sCisData->RecverBKCD ,			sCisData->RecverACC  ,			sCisData->RecverName ,			sCisData->PayerBKCD  ,			sCisData->PayerACC   ,			sCisData->PayerName  ,			sCisData->MEYSYB     ,			sCisData->Amount     ,			sCisData->AccKind    ,			sCisData->AccNo      ,			sCisData->ChkDate    ,			sCisData->AccDate    ,			sCisData->AccPsw     ,			sCisData->Info       ,			sCisData->Remark     ,			sCisData->SysDate    ,			sCisData->RtnLimted  ,			sCisData->SRCFlag    ,			sCisData->ChkSatus   ,			sCisData->PicFront   ,			sCisData->PicBack    ,			sCisData->SignInfo   ,			sCisData->RedoCount  ,			sCisData->RedoInfo   ,			sCisData->CisData    );			nResCode = clsSybCommand.Insert(sSqlCmd);		if ( nResCode <= 0 ) 		{			filelog(CIS_INTER_MB,"SaveCis = [%d][%s][%s]\n",sqlca.sqlcode,			sqlca.sqlerrtext,sSqlCmd);			return FALSE;    		}//CIS报文入库处理			filelog(CIS_INTER_MB, "Exit BepsPub::SaveCis");	return TRUE;    }   /****************************************************************************函数说明:CIS业务明细数据转MBFE明细*输入参数:*输出参数:*          *返回值  :TRUE :处理成功*     FALSE:处理失败*作    者: *日    期: ****************************************************************************/BOOL BepsPub::CisToMbfe(MainInfo *sMainInfo , MBFEDATA *sMbfeData , CISDATA *sCisData){	char sResDesc[255];	int nMbfeIdx = 0;	int nCount = 0;	BankInfo sBankInfo;	BOOL bret;	memset( &sBankInfo , 0 , sizeof( sBankInfo ));			if (!MakeTrxsSerialNo(&nMbfeIdx,sResDesc,MBFEID))		return FALSE;	sCisData->MbfeIdx  = nMbfeIdx;    	sCisData->CisIdx = sMbfeData->CisIdx;    	//处理标志    	memcpy ( sMbfeData->doflag	, sCisData->doflag	,  2   );      	strcpy ( sMbfeData->rsflag	, CISIN);  //来往标志    	//包类型号     	memcpy ( sMbfeData->PkgType	, sCisData->PkgType	,  3   );     	//发起清算行号    //    	memcpy ( sMbfeData->ISDfiCode	, sCisData->ISDfiCode	,  12  );  	strcpy ( sBankInfo.sBankCode , sCisData->PayerBKCD);	bret = FindBankInfo(&sBankInfo,sResDesc);	if( bret == FALSE )	{		filelog("CisPub.log" , "bankno[%s]%s" , sBankInfo.sBankCode , sResDesc );		return FALSE;	}	memcpy ( sMbfeData->ISDfiCode	, sBankInfo.sSapBkCode  ,  12  );	//接收清算行号//    	memcpy ( sMbfeData->OSDfiCode	, sCisData->OSDfiCode	,  12  );   	strcpy ( sBankInfo.sBankCode , sCisData->RecverBKCD);	bret = FindBankInfo(&sBankInfo,sResDesc);	if( bret == FALSE )	{		filelog("CisPub.log" , "bankno[%s]%s" , sBankInfo.sBankCode , sResDesc );		return FALSE;	}	memcpy ( sMbfeData->OSDfiCode	, sBankInfo.sSapBkCode  ,  12  );	//回执期限//    	memcpy ( sMbfeData->RtnLimted	, sCisData->RtnLimted	,  8   ); 	//包委托日期 同当前业务系统日期     	memcpy ( sMbfeData->PkgPreDate	, sCisData->PreDate	,  8   );  	bret = GetSysCtlPar(WKDATE, sMbfeData->PkgPreDate , sResDesc);	if( bret == FALSE )    	{		filelog("CisPub.log" , "[CisToMbfe]获取工作日期失败!" );	  	return FALSE;	}	 //包序号	strcpy ( sMbfeData->PkgSerNo , "99999999" );  	//转发日期                     //    	memcpy ( sMbfeData->RNTurnDate	, sCisData->RNTurnDate	,  8   ); 	//包附加数据 //    	memcpy ( sMbfeData->PkgExpData	, sCisData->PkgExpData	,  64  ); 	//业务类型号         	memcpy ( sMbfeData->TrxsType	, sCisData->TrxsType	,  5   );       	/****************************************************************/     	//发起行号      	memcpy ( sMbfeData->IDfiCode	, sCisData->PayerBKCD	,  12  );     	//接收行号     	memcpy ( sMbfeData->ODfiCode	, sCisData->RecverBKCD	,  12  );      	/****************************************************************/     	//委托日期      	memcpy ( sMbfeData->PreDate	, sCisData->PreDate	,  8   );      	//支付交易序号    	memcpy ( sMbfeData->TrxNo	, sCisData->TrxNo	,  8   );     	//货币符号     	memcpy ( sMbfeData->MEYSYB	, sCisData->MEYSYB	,  3   );     	//金额         	memcpy ( sMbfeData->Amount	, sCisData->Amount	,  15  );     	//付款人开户行行号     	memcpy ( sMbfeData->PayerBKCD	, sCisData->PayerBKCD	,  12  );     	//付款人账号         	memcpy ( sMbfeData->PayerACC	, sCisData->PayerACC	,  32  );      	//付款人姓名        	memcpy ( sMbfeData->PayerName	, sCisData->PayerName	,  60  );     	//收款人开户行         	memcpy ( sMbfeData->RecverBKCD	, sCisData->RecverBKCD	,  12  );     	//收款人账号         	memcpy ( sMbfeData->RecverACC	, sCisData->RecverACC	,  32  );      	//收款人名称        	memcpy ( sMbfeData->RecverName	, sCisData->RecverName	,  60  );     	//业务类型 99-其他     	memcpy ( sMbfeData->OprtType    , "99"                  ,  2   ); 	 //退汇附言    //    	memcpy ( sMbfeData->RtnInfo	, sCisData->RtnInfo	,  60  ); 	//附加域长度    	strcpy ( sMbfeData->ExpDataLen  , "00000755" ); 	//附加域类型                    	strcpy ( sMbfeData->ExpType     , "0");    	//出票日期                             	memcpy ( sMbfeData->ChkDate	, sCisData->ChkDate	,  8  );     	//票据号码     	memcpy ( sMbfeData->AccNo	, sCisData->AccNo	,  12 );     	//用途     	memcpy ( sMbfeData->Info	, sCisData->Info	,  60 );     	//背书次数     	memcpy ( sMbfeData->RedoCount	, sCisData->RedoCount	,  2  );    	//背书人清单      	nCount = atoi( sMbfeData->RedoCount );    	memcpy ( sMbfeData->RedoInfo	, sCisData->RedoInfo	,  nCount*60 );     	//校验模式 05-其他 	strcpy ( sMbfeData->ChkModel , "05" );	 //校验密码//    	memcpy ( sMbfeData->ChkPsw	, sCisData->AccPsw	,  512  ); 	sprintf( sMbfeData->ChkPsw , "%512s" , sCisData->AccPsw);			sprintf( sMbfeData->MbfeData,"%3s%12s%12s%8s%8s%8s%8s%64s%5s%12s%12s%8s%8s"		"%3s%15s%12s%32s%60s%60s%12s%32s%60s%60s%12s%60s%8s%1s%8s%12s%60s%2s"		"%1000s%60s%2s%512s",			sMbfeData->PkgType       ,			sMbfeData->ISDfiCode     ,			sMbfeData->OSDfiCode     ,			sMbfeData->RtnLimted     ,			sMbfeData->PkgPreDate    ,			sMbfeData->PkgSerNo      ,			sMbfeData->RNTurnDate    ,			sMbfeData->PkgExpData    ,			sMbfeData->TrxsType      ,			sMbfeData->IDfiCode      ,			sMbfeData->ODfiCode      ,			sMbfeData->PreDate       ,			sMbfeData->TrxNo         ,			sMbfeData->MEYSYB        ,			sMbfeData->Amount        ,			sMbfeData->PayerBKCD     ,			sMbfeData->PayerACC      ,			sMbfeData->PayerName     ,			sMbfeData->PayerAddr     ,			sMbfeData->RecverBKCD    ,			sMbfeData->RecverACC     ,			sMbfeData->RecverName    ,			sMbfeData->RecverAddr    ,			sMbfeData->OprtType      ,			sMbfeData->RtnInfo       ,			sMbfeData->ExpDataLen    ,			sMbfeData->ExpType       ,			sMbfeData->ChkDate       ,			sMbfeData->AccNo         ,			sMbfeData->Info          ,			sMbfeData->RedoCount     ,			sMbfeData->RedoInfo      ,	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -