cisproc.cpp

来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 2,145 行 · 第 1/5 页

CPP
2,145
字号
	{		filelog( ERRLOG, "Parser file content failed\n");		return FALSE;	}	//得到委托日期	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate))	{		strcpy( RetMsg, "Can't find TAG:[:30A:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":0BC:", strCis->businessno))	{		strcpy( RetMsg, "Can't find TAG:[:0BC:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CC5:", strCis->recvbankno))	{		strcpy( RetMsg, "Can't find TAG:[:CC5:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":59C:", strCis->recvaccounts))	{		strcpy( RetMsg, "Can't find TAG:[:59C:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":59A:", strCis->recvname))	{		strcpy( RetMsg, "Can't find TAG:[:59A:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D21:", strCis->paybankno))	{		strcpy( RetMsg, "Can't find TAG:[:D21:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D23:", strCis->payaccounts))	{		strcpy( RetMsg, "Can't find TAG:[:D23:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D22:", strCis->payname))	{		strcpy( RetMsg, "Can't find TAG:[:D22:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":32A:", strCis->moneysum))	{		strcpy( RetMsg, "Can't find TAG:[:32A:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D32:", strCis->billtype))	{		strcpy( RetMsg, "Can't find TAG:[:D32:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D01:", strCis->billnum))	{		strcpy( RetMsg, "Can't find TAG:[:D01:]!\n" );		return FALSE;	}		if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D35:", strCis->outbilldate))	{		strcpy( RetMsg, "Can't find TAG:[:D35:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D36:", strCis->promptpaydate))	{		strcpy( RetMsg, "Can't find TAG:[:D36:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D51:", strCis->bankposignature))	{		strcpy( RetMsg, "Can't find TAG:[:D51:]!\n" );		return FALSE;		}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":33H:", strCis->outbillmoney))	{		strcpy( RetMsg, "Can't find TAG:[:33H:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D61:", strCis->potermdate))	{		strcpy( RetMsg, "Can't find TAG:[:D61:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D62:", strCis->acceptprotocol))	{		strcpy( RetMsg, "Can't find TAG:[:D62:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D63:", strCis->businessbargain))	{		strcpy( RetMsg, "Can't find TAG:[:D63:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D64:", strCis->acceptdate))	{		strcpy( RetMsg, "Can't find TAG:[:D64:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D65:", strCis->acceptbank))	{		strcpy( RetMsg, "Can't find TAG:[:D65:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D66:", strCis->acceptname))	{		strcpy( RetMsg, "Can't find TAG:[:D66:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D37:", strCis->purpose))	{		strcpy( RetMsg, "Can't find TAG:[:D37:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D38:", strCis->postscript))	{		strcpy( RetMsg, "Can't find TAG:[:D38:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D41:", strCis->authornum))	{		strcpy( RetMsg, "Can't find TAG:[:D41:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D42:", strCis->authorlist))	{		strcpy( RetMsg, "Can't find TAG:[:D42:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D34:", strCis->sysacceptdate))	{		strcpy( RetMsg, "Can't find TAG:[:D34:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS6:", strCis->returnterm))	{		strcpy( RetMsg, "Can't find TAG:[:BS6:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS4:", strCis->reissueflag))	{		strcpy( strCis->reissueflag,"0");		strcpy( RetMsg, "Can't find TAG:[:BS4:]!\n" );//		return FALSE;	}	//modify by limh 0525 增加了补发标志默认值 begin	STRTRIM( strCis->reissueflag ,' ');	if( strlen( strCis->reissueflag) == 0)		strcpy(strCis->reissueflag , "0");	//modify by limh 0525 增加了补发标志默认值 end	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DA0:", strCis->checksignature))	{		strcpy( RetMsg, "Can't find TAG:[:DA0:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DA9:", strCis->signature))	{		strcpy( RetMsg, "Can't find TAG:[:DA9:]!\n" );		return FALSE;	}		if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":72E:", strCis->frontpicimage))	{		strcpy( RetMsg, "Can't find TAG:[:72E:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":72F:", strCis->backpicimage))	{		strcpy( RetMsg, "Can't find TAG:[:72F:]!\n" );		//return FALSE;	}			//将正面图像保存在文件中    	ret = SaveCisPicDataToFile(FrontPicFilename,strCis->frontpicimage);	if( ret<=0 )	{		filelog(ERRLOG,"写入文件失败[%s]",FrontPicFilename);		return FALSE;	}	//将反面图像保存在文件中	ret = SaveCisPicDataToFile(BackPicFilename,strCis->backpicimage);	if( ret<=0 )	{		filelog(ERRLOG,"写入文件失败[%s]",BackPicFilename);		return FALSE;	}	/*补充其它信息*/	strncpy( strCis->organizeno, ZERO, sizeof(strCis->organizeno)-1 );	strncpy( strCis->inputuserno,ZERO, sizeof(strCis->inputuserno)-1 );	strncpy( strCis->inputtime,  ZERO, sizeof(strCis->inputtime)-1 );	strncpy( strCis->checkuserno,ZERO, sizeof(strCis->checkuserno)-1 );	strncpy( strCis->checktime,  ZERO, sizeof(strCis->checktime)-1 );	strncpy( strCis->modifytime, ZERO, sizeof(strCis->modifytime)-1 );	strncpy( strCis->outuserno,  ZERO, sizeof(strCis->outuserno)-1 );	strncpy( strCis->outtime,    ZERO, sizeof(strCis->outtime)-1 );		char Body[8096];	char *Begin = NULL;	char *End = NULL;	char Tmp[4096],Zero29[30],SendMbData[4096];		memset( Body , 0 ,sizeof( Body ));	memset( Tmp , 0 , sizeof( Tmp ));	memset( Zero29 , 0 ,sizeof( Zero29 ));	memset( SendMbData , 0 ,sizeof( SendMbData ));	//处理发送到行内包begin	Begin = strstr(cmsgbuf , ":DA9:");	if( Begin != NULL )	{		memcpy( SendMbData , cmsgbuf, Begin - &cmsgbuf[0]);		strcat( SendMbData, ":DA9::72E:");		strcat( SendMbData, Zero29);		strcat( SendMbData , ":72F:");		strcat( SendMbData, Zero29);		strcat( SendMbData , "}{C    }");	}	Begin = NULL;	//处理发送到行内包end	Begin = strstr(cmsgbuf,"{3:");	End = strstr( Begin , ":72E:"); 	if( End != NULL )	{		memcpy( Tmp , Begin+3 , End - Begin -3 );	}		printf("101Tmp = [%s]\n", Tmp );	sprintf( Body , "%s:72F:%sBACK:72E:%sFRONT}",Tmp ,filename,filename); 	printf("101Body = [%s]\n", Body );	//modify by limh 0603 接收来报机构号为提入行 begin	strcpy( strCis->organizeno , strCis->paybankno);	//modify by limh 0603 接收来报机构号为提入行 begin	char WorkDate[9];	memset( WorkDate , 0 , sizeof(WorkDate));	sCis.GetWorkDate(WorkDate);		strcpy( Table, "cis101" );	sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s',"	 "'%s','%s','%s','%s','%s','%s', '%s','%s','%s','%s', %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')",			                   Table,	                   strCis->organizeno,	                   strCis->inputuserno,	                   strCis->inputtime,	                   strCis->checkuserno,	                   strCis->checktime,	                   strCis->modifytime,	                   strCis->outuserno,	                   WorkDate,//strCis->outtime,	                   "20",SPACE,SPACE,"00",LFLAG,SPACE,SPACE,	                   strCis->precativedate,	                   atoi(strCis->businessno),	                   strCis->recvbankno,	                   strCis->recvaccounts,	                   strCis->recvname,	                   strCis->paybankno,	                   strCis->payaccounts,	                   strCis->payname,	                   strCis->moneysum,	                   strCis->billtype,	                   strCis->billnum,	                   strCis->outbilldate,	                   strCis->promptpaydate,	                   strCis->bankposignature,	                   strCis->outbillmoney,	                   strCis->potermdate,	                   strCis->acceptprotocol,	                   strCis->businessbargain,	                   strCis->acceptdate,	                   strCis->acceptbank,	                   strCis->acceptname,	                   strCis->purpose,	                   strCis->postscript,	                   strCis->authornum,	                   strCis->authorlist,	                   strCis->sysacceptdate,	                   strCis->returnterm,	                   strCis->reissueflag,	                   strCis->checksignature,	                   strCis->signature,	                   FrontPicFilename,BackPicFilename,	                   SPACE,	                   SPACE,	                   Body );	filelog("Sql.log","[%s]\n", sSqlCmd );	sCis.BeginTrans();	//保存入库	ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n");		filelog(CISPROLOG, "保存CIS101报文失败!\n");		sCis.RollbackTrans();		return FALSE;	}	/////////////发送行内处理/////////////////	//modify by limh 0520 发送队列表日期取应用系统日期	char *pDataid = NULL;	memset( sSqlCmd , 0 , sizeof( sSqlCmd ));	memset( Table , 0 , sizeof( Table ));	//modify by limh 0520 暂存临时表,等待核验结果发送行内	//主键:委托日期+发起行+支付交易序号	strcpy( Table, "sendmb_data_tmp" );	pDataid = sCis.getSerialNo('3');        sprintf(sSqlCmd,"INSERT INTO %s VALUES(%d,'%s','%s',%d,'%s','%s','%s','%s')",	                   Table,atoi(pDataid),strCis->precativedate,strCis->recvbankno,atoi(strCis->businessno),"9","CIS101",SendMbData,"");	       ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n %s",sSqlCmd);		filelog(CISPROLOG, "保存CIS100报文失败!\n");		sCis.RollbackTrans();		return FALSE;	}//[改]根据配置进行发送行内处理	ret = SendtoMb();	//视情况进行发送行内操作	sCis.CommitTrans();	return TRUE;}//解析CIS201业务计费清单报文int Parse201( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){	int ret;	char Table[20];	char sSqlCmd[1024*10];	CIS201 *strCis = NULL;	CIS201 TmpCis;	strCis = &TmpCis;	memset( Table, 0, sizeof(Table) );	memset( sSqlCmd, 0, sizeof(sSqlCmd) );	memset( &TmpCis, 0, sizeof(TmpCis) );	pTagMML->mmlInfo = pRecvData->msgcontent;	pTagMML->mmlInfoLen = strlen( pRecvData->msgcontent );	if(FALSE == pTagMML->parserMmlcmd())	{		filelog( CISPROLOG, "Parser file content failed\n");		return FALSE;	}	//得到委托日期	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":30A:", strCis->precativedate))	{		strcpy( RetMsg, "Can't find TAG:[:30A:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":C30:", strCis->sendnodenum))	{		strcpy( RetMsg, "Can't find TAG:[:C30:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":C37:", strCis->recvcode))	{		strcpy( RetMsg, "Can't find TAG:[:C37:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B21:", strCis->billmonth))	{		strcpy( RetMsg, "Can't find TAG:[:B21:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B22:", strCis->billstartdate))	{		strcpy( RetMsg, "Can't find TAG:[:B22:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B23:", strCis->billenddate))	{		strcpy( RetMsg, "Can't find TAG:[:B23:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB7:", strCis->billsummoney))	{		strcpy( RetMsg, "Can't find TAG:[:DB7:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB8:", strCis->subbillrate))	{		strcpy( RetMsg, "Can't find TAG:[:DB8:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DB9:", strCis->totaltrade))	{		strcpy( RetMsg, "Can't find TAG:[:DB9:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DC1:", strCis->totalbillrate))	{		strcpy( RetMsg, "Can't find TAG:[:DC1:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":DC2:", strCis->billlistnum))	{		strcpy( RetMsg, "Can't find TAG:[:DC2:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":B8R:", strCis->billlist))	{		strcpy( RetMsg, "Can't find TAG:[:B8R:]!\n" );        	return FALSE;	}		strcpy( Table, "cis201" );	sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",	                   Table,	                   strCis->precativedate,	                   strCis->sendnodenum,	                   strCis->recvcode,	                   strCis->billmonth,	                   strCis->billstartdate,

⌨️ 快捷键说明

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