cisproc.cpp

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

CPP
2,145
字号
	                   strCis->billenddate,	                   strCis->billsummoney,	                   strCis->subbillrate,	                   atoi(strCis->totaltrade),	                   strCis->totalbillrate,	                   atoi(strCis->billlistnum),	                   strCis->billlist,	                   pRecvData->msgcontent );	sCis.BeginTrans();	//保存入库	ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n");		filelog(CISPROLOG, "保存CIS201报文失败!\n");		filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd );		sCis.RollbackTrans();		return FALSE;	}	sCis.CommitTrans();//[改]根据配置进行发送行内处理	ret = SendtoMb();	return TRUE;}//解析CIS301查询报文int Parse301( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){	int ret;	char Table[20];	char sSqlCmd[1024*10];	CIS301 *strCis = NULL;	CIS301 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, ":CJ9:", strCis->querydate))	{		strcpy( RetMsg, "Can't find TAG:[:CJ9:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":056:", strCis->querybookno))	{		strcpy( RetMsg, "Can't find TAG:[:056:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01C:", strCis->querybankno))	{		strcpy( RetMsg, "Can't find TAG:[:01C:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01D:", strCis->acceptbankno))	{		strcpy( RetMsg, "Can't find TAG:[:01D:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":02D:", strCis->srcmessagetype))	{		strcpy( RetMsg, "Can't find TAG:[:02D:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":051:", strCis->srcpredate))	{		strcpy( RetMsg, "Can't find TAG:[:051:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":005:", strCis->srcbusinessno))	{		strcpy( RetMsg, "Can't find TAG:[:005:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CC1:", strCis->srcrecvbankno))	{		strcpy( RetMsg, "Can't find TAG:[:CC1:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CND:", strCis->srcmoneysum))	{		strcpy( RetMsg, "Can't find TAG:[:CND:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D33:", strCis->srcbilltype))	{		strcpy( RetMsg, "Can't find TAG:[:D33:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D08:", strCis->srcbillno))	{		strcpy( RetMsg, "Can't find TAG:[:D08:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":053:", strCis->querycontent))	{		strcpy( RetMsg, "Can't find TAG:[:053:]!\n" );        	return FALSE;	}	char org[12+1];    char parvalue[1+1];	memset( parvalue, 0, sizeof(parvalue));	memset( org, 0, sizeof(org));	if( !sCis.GetCisSysCtlPar("026", parvalue, RetMsg) )	{		strcpy(RetMsg, "获取系统参数失败!!!\n");		return FALSE;	}	if( strcmp(parvalue, "0") == 0 )                strcpy( org, strCis->acceptbankno );        else        	sprintf(org, "%s", getenv("BANKCODE"));	strcpy( Table, "cis301302" );	printf("strCis->srcbusinessno=[%s]",strCis->srcbusinessno);	sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",	                   Table,	                   org,	                   USERNO,	                   LFLAG,	                   CISDATASTATE_SUC,	                   SPACE,	                   strCis->querydate,	                   strCis->querybookno,	                   strCis->querybankno,	                   strCis->srcmessagetype,	                   strCis->srcpredate,	                   atoi(strCis->srcbusinessno),	                   strCis->srcrecvbankno,	                   strCis->srcmoneysum,	                   strCis->srcbilltype,	                   strCis->srcbillno,	                   strCis->querycontent,	                   "",//strCis->acceptdate,	                   "",//strCis->acceptbookno,	                   strCis->acceptbankno,	                   "",//strCis->acceptcontent,	                   pRecvData->msgcontent );	sCis.BeginTrans();	//保存入库	ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n");		filelog(CISPROLOG, "保存301查询报文失败!\n" );		filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd );				sCis.RollbackTrans();		return FALSE;	}	sCis.CommitTrans();//[改]根据配置进行发送行内处理	ret = SendtoMb();	return TRUE;}//解析CIS302查复报文int Parse302( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){	int ret;	int nFlag;	char Table[20];	char sSqlCmd[1024*10];	CIS302 *strCis = NULL;	CIS302 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, ":CJ1:", strCis->acceptdate))	{		strcpy( RetMsg, "Can't find TAG:[:CJ9:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":043:", strCis->acceptbookno))	{		strcpy( RetMsg, "Can't find TAG:[:056:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01D:", strCis->acceptbankno))	{		strcpy( RetMsg, "Can't find TAG:[:01C:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CJA:", strCis->orgquerydate))	{		strcpy( RetMsg, "Can't find TAG:[:01D:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":CP1:", strCis->orgquerybookno))	{		strcpy( RetMsg, "Can't find TAG:[:02D:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":01C:", strCis->orgquerybankno))	{		strcpy( RetMsg, "Can't find TAG:[:051:]!\n" );        	return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":054:", strCis->acceptcontent))	{		strcpy( RetMsg, "Can't find TAG:[:005:]!\n" );        	return FALSE;	}		strcpy( Table, "cis301302" );	sprintf( sSqlCmd, "SELECT count(*) FROM %s WHERE querydate='%s' and querybookno='%04s' and querybankno='%s' and msgtype='0'",	                   Table,	                   strCis->orgquerydate,	                   strCis->orgquerybookno,	                   strCis->orgquerybankno);	printf("sSqlCmd=[%s]",sSqlCmd);	sCis.BeginTrans();		ret = sCis.FindCisData( Table, sSqlCmd, &nFlag, RetMsg );	if( ret != 1  || nFlag != 1 )	{		printf("匹配查询报文失败!\n");		filelog(CISPROLOG, "查复报文匹配原查询报文失败!\n" );		filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd );				sCis.RollbackTrans();		return FALSE;	}	memset(sSqlCmd, 0, sizeof(sSqlCmd) );	sprintf( sSqlCmd, "UPDATE %s SET status='02', acceptdate='%s', acceptbookno='%s', acceptbankno='%s', acceptcontent='%s',message='%s' WHERE querydate='%s' and querybookno='%04s' and querybankno='%s' and msgtype='0'",	                   Table,	                   strCis->acceptdate,	                   strCis->acceptbookno,	                   strCis->acceptbankno,	                   strCis->acceptcontent,	                   pRecvData->msgcontent,	                   strCis->orgquerydate,	                   strCis->orgquerybookno,	                   strCis->orgquerybankno);	//保存入库	ret = sCis.UpCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n");		filelog(CISPROLOG, "保存查复报文失败!\n" );		filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd );				sCis.RollbackTrans();		return FALSE;	}	//视情况进行发送行内操作	sCis.CommitTrans();//[改]根据配置进行发送行内处理	ret = SendtoMb();	return TRUE;}//解析CIS303自由格式报文int Parse303( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){	int ret;	char Table[20];	char sSqlCmd[1024*10];	CIS303 *strCis;	CIS303 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, ":D06:", strCis->sendcentercode))	{		strcpy( RetMsg, "Can't find TAG:[:D06:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D02:", strCis->sendbillplaceno))	{		strcpy( RetMsg, "Can't find TAG:[:D02:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D04:", strCis->sendbillorgno))	{		strcpy( RetMsg, "Can't find TAG:[:D04:]!\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, ":0BA:", strCis->messageno))	{		strcpy( RetMsg, "Can't find TAG:[:0BA:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D07:", strCis->recvcentercode))	{		strcpy( RetMsg, "Can't find TAG:[:D07:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D03:", strCis->recvbillplaceno))	{		strcpy( RetMsg, "Can't find TAG:[:D03:]!\n" );	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":D05:", strCis->recvbillorgno))	{		strcpy( RetMsg, "Can't find TAG:[:D05:]!\n" );	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":BS7:", strCis->dispatchflag))	{		strcpy( RetMsg, "Can't find TAG:[:BS7:]!\n" );		return FALSE;	}	if(FALSE == pTagMML->getParaValue(MML_CONTTYPE_CONT, ":055:", strCis->content))	{		strcpy( RetMsg, "Can't find TAG:[:055:]!\n" );		return FALSE;	}	char org[12+1];	char parvalue[1+1];	memset( parvalue, 0, sizeof(parvalue));	memset( org, 0, sizeof(org));	if( !sCis.GetCisSysCtlPar("026", parvalue, RetMsg) )	{		strcpy(RetMsg, "获取系统参数失败!!!\n");		return FALSE;	}	if( strcmp(parvalue, "0") == 0 )                strcpy( org, strCis->recvbillorgno );        else        	sprintf(org, "%s", getenv("BANKCODE"));		strcpy( Table, "cis303" );	sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",	                   Table,	                   org,	                   USERNO,	                   LFLAG,	                   CISDATASTATE_SUC,	                   SPACE,	                   strCis->sendcentercode,	                   strCis->sendbillplaceno,	                   strCis->sendbillorgno,	                   strCis->precativedate,	                   strCis->messageno,	                   strCis->recvcentercode,	                   strCis->recvbillplaceno,	                   strCis->recvbillorgno,	                   strCis->dispatchflag,	                   strCis->content,	                   pRecvData->msgcontent);	sCis.BeginTrans();	//保存入库	ret = sCis.SaveCisData ( Table, sSqlCmd, RetMsg );	if( ret <= 0 )	{		printf("保存报文失败!\n");		filelog(CISPROLOG, "保存自由格式报文失败!\n" );		filelog(CISPROLOG, "sSqlCmd:[%s]\n", sSqlCmd );				sCis.RollbackTrans();		return FALSE;	}	sCis.CommitTrans();//[改]根据配置进行发送行内处理	ret = SendtoMb();	return TRUE;}//解析CIS305业务状态查询应答报文int Parse305( TCnapsTagMML *pTagMML, RECVDATA *pRecvData, char *RetMsg ){	int ret, nFlag;	char Table[20];	char sSqlCmd[1024*10];	CIS305 *strCis;	CIS305 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))	{

⌨️ 快捷键说明

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