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

📄 cispub.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    sprintf(sSqlCmd,"SELECT dataid FROM cisserno WHERE sertype='%s'",SerType);    nResCode = clsSybCommand.GetLastRecord(sSqlCmd,&nSerialNo , INTBIND);    if( nResCode <= 0 )    {	filelog("Sql.log","MakeTrxsSerialNo = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);	sprintf(sResDesc,"获取业务序列号[%s]失败!",SerType);	return FALSE;    }    //业务包号采用倒序生成(为避免与正常支付报文包号重复)    if( strncmp( SerType , PKGNO , 1 ) != 0 )    {        *SerialNo = nSerialNo;        if( nSerialNo == 99999 )	    nSerialNo = 1;        else            nSerialNo += 1;    }else{        *SerialNo = nSerialNo;        if( nSerialNo == 90000000 )	    nSerialNo = 99999999;        else            nSerialNo -= 1;    }    memset(sSqlCmd, '\0', sizeof(sSqlCmd));             sprintf(sSqlCmd,"UPDATE cisserno SET dataid = %d WHERE sertype='%s'",nSerialNo ,SerType);    nResCode = clsSybCommand.Update(sSqlCmd);    if( nResCode <= 0 )    {	filelog("Sql.log","MakeTrxsSerialNo = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);	sprintf( sResDesc , "更改业务序列号[%s]失败!",SerType);	return FALSE;    }    return TRUE;  }     //根据参数代码获取系统控制参数BOOL BepsPub::GetCisSysCtlPar(char *sParCode,char *sParValue,char *sResDesc){    int nResCode;	char sSqlCmd[512];			memset(sSqlCmd, '\0', sizeof(sSqlCmd));		//获取系统控制表的参数	sprintf(sSqlCmd,"SELECT parvalue FROM syspara WHERE  parcode='%s'", sParCode);		nResCode = clsSybCommand.GetLastRecord(sSqlCmd,sParValue,NTBSTRINGBIND);	if ( nResCode <= 0 )	{		filelog("Sql.log", "GetSysCtlPar=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		sprintf(sResDesc,"获取系统参数[%s]失败!",sParCode);		return FALSE;	}	return TRUE;}//根据参数代码获取系统[MBFE]控制参数int BepsPub::GetSysCtlPar(char *sParCode,char *sParValue,char *sResDesc){        int nResCode;	char sSqlCmd[512];			memset(sSqlCmd, 0, sizeof(sSqlCmd));		//获取系统控制表的参数	sprintf(sSqlCmd,"SELECT parvalue FROM MBFEPMDT2101 WHERE parcode='%s'",sParCode);	nResCode = clsSybCommand.GetLastRecord(sSqlCmd,sParValue,NTBSTRINGBIND);		if ( nResCode <= 0 )	{		strcpy(sResDesc,"获取系统控制表的参数失败!");		return FALSE;	}	StrTrim( sParValue ,0x2F);	StrTrim( sParValue ,' ');	return TRUE;}//根据参数代码获取系统[MBFE]控制参数int BepsPub::CheckSerail(int *flag){	char BankNo[13],sResDesc[100];	memset( BankNo , 0 , sizeof( BankNo ));	*flag = 0;	GetSysCtlPar( "11" , BankNo,sResDesc);	if(BankNo[0] != '3')		*flag = 1;	if(BankNo[1] != '1')		*flag = 1;	if(BankNo[2] != '3')		*flag = 1;	if(BankNo[3] != '4')		*flag = 1;	if(BankNo[4] != '7')		*flag = 1;	if(BankNo[5] != '3')		*flag = 1;	if(BankNo[6] != '2')		*flag = 1;	if(BankNo[7] != '0')		*flag = 1;	if(BankNo[8] != '0')		*flag = 1;	if(BankNo[9] != '0')		*flag = 1;	if(BankNo[10] != '1')		*flag = 1;	if(BankNo[11] != '1')		*flag = 1;	return TRUE;}//获取CIS原始报文信息int BepsPub::GetCisInfo(RECVDATA *sRecvData,char *status){       	char sSqlCmd[512];	int nResCode = 0;    	int dataidx;	memset(sSqlCmd, 0, sizeof(sSqlCmd));                     sprintf(sSqlCmd,"SELECT min(dataidx) FROM recv_data WHERE doflag ='%s'" ,status);	nResCode = clsSybCommand.GetLastRecord( sSqlCmd, &dataidx, INTBIND );	if( nResCode < 0 )	{		filelog("Sql.log","sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		printf("sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		sCis.RollbackTrans();	}        sCis.BeginTrans();	memset( sSqlCmd, 0, sizeof(sSqlCmd) );        sprintf(sSqlCmd,"SELECT * FROM recv_data WHERE dataidx =%d" ,dataidx);	nResCode = clsSybCommand.GetLastRecord(sSqlCmd,		&sRecvData->dataidx , INTBIND,		sRecvData->orgno , NTBSTRINGBIND,		sRecvData->workdate , NTBSTRINGBIND,		sRecvData->doflag , NTBSTRINGBIND,		sRecvData->msgid , NTBSTRINGBIND,		sRecvData->msgcontent , NTBSTRINGBIND);	if( nResCode < 0 )	{		filelog("Sql.log","sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		printf("sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		sCis.RollbackTrans();	}    sCis.CommitTrans();	return nResCode;  }    //获取待发送报文信息int BepsPub::GetCisSendInfo(RECVDATA *sRecvData,char *status){       	char sSqlCmd[512];	int nResCode = 0;    	memset(sSqlCmd, 0, sizeof(sSqlCmd));                     sprintf(sSqlCmd,"SELECT * FROM send_data WHERE doflag ='%s'" ,status);	nResCode = clsSybCommand.GetLastRecord(sSqlCmd,		&sRecvData->dataidx , INTBIND,		sRecvData->orgno , NTBSTRINGBIND,		sRecvData->workdate , NTBSTRINGBIND,		sRecvData->doflag , NTBSTRINGBIND,		sRecvData->msgid , NTBSTRINGBIND,		sRecvData->msgcontent , NTBSTRINGBIND);	if( nResCode < 0 )	{		filelog("Sql.log","sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		printf("sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);	}	return nResCode;  }    //保存报文int BepsPub::SaveCisData( char *Table, char *sSqlCmd, char *pRetMsg ){	int nResCode;	nResCode = clsSybCommand.Insert(sSqlCmd);	if ( nResCode <= 0 )	{		filelog("Sql.log","SaveCisData = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		filelog("Sql.log","[SaveCisData]执行INSERT [%s]明细失败!\n", sSqlCmd );		sprintf( pRetMsg ,"执行INSERT [%s]失败!\n", Table);		return FALSE;	}	return 1;}//更新报文int BepsPub::UpCisData( char *Table, char *sSqlCmd, char *pRetMsg ){	int nResCode; 	nResCode = clsSybCommand.Update(sSqlCmd);	if ( nResCode <= 0 )	{		filelog("Sql.log","UpCisData = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		filelog("Sql.log","[UpCisData]执行UPDATE [%s]明细失败!\n", sSqlCmd );		sprintf( pRetMsg ,"执行UPDATE [%s]失败!\n", Table);	}		return TRUE;}//查找报文int BepsPub::FindCisData( char *Table, char *sSqlCmd, int *nFlag, char *pRetMsg ){	int nResCode;	nResCode = clsSybCommand.GetLastRecord( sSqlCmd, nFlag, INTBIND);	if ( nResCode <= 0 )	{		filelog("Sql.log","FindCisData = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		filelog("Sql.log","[FindCisData]执行SELECT [%s]明细失败!\n", sSqlCmd );		sprintf( pRetMsg ,"执行SELECT [%s]失败!\n", Table);		return FALSE;	}//	StrTrim( nFlag ,' ');	return TRUE;}//查找报文int BepsPub::FindCisValue( char *Table, char *sSqlCmd, char *value, char *pRetMsg ){	int nResCode;	nResCode = clsSybCommand.GetLastRecord(sSqlCmd,value,NTBSTRINGBIND);	if ( nResCode <= 0 )	{		filelog("Sql.log","FindCisData = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		filelog("Sql.log","[FindCisData]执行SELECT [%s]明细失败!\n", sSqlCmd );		sprintf( pRetMsg ,"执行SELECT [%s]失败!\n", Table);		return FALSE;	}//	StrTrim( nFlag ,' ');	return TRUE;}//查找报文int BepsPub::DeleteCisData(char * Table, char * sSqlCmd, char * pRetMsg){	int nResCode;	nResCode = clsSybCommand.Delete(sSqlCmd);	if ( nResCode <= 0 )	{		filelog("Sql.log","DeleteCisData = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd);		filelog("Sql.log","[DeleteCisData]执行DELETE [%s]明细失败!\n", sSqlCmd );		sprintf( pRetMsg ,"执行DELETE [%s]失败!\n", Table);		return FALSE;	}	return TRUE;}//设置处理状态int BepsPub::SetDoflag( char *Table,int *Idx, char *doflag, char *pRetMsg ){	int ret;	char sSqlCmd[255+1];	memset( sSqlCmd, 0, sizeof(sSqlCmd) );	sCis.BeginTrans();	sprintf(sSqlCmd, "UPDATE %s SET doflag='%s' WHERE dataidx=%d",                              Table,                             doflag,*Idx );	ret = UpCisData( Table, sSqlCmd, pRetMsg );	if( ret <= 0 )	{		sprintf( pRetMsg, "更改业务状态失败[%s]\n", sSqlCmd);		sCis.RollbackTrans();		return FALSE;	}	sCis.CommitTrans();		return TRUE;}//日切处理函数int BepsPub::ChangeDate( CIS405 *strCis, char *pRetMsg ){	char sSqlCmd[1024+1];	char Table[20+1];	char effflag[1+1];	int ret, RetFlag;	int nCount=0, i=0, j=0;	char center[5];	int flag=0;		memset( sSqlCmd, 0, sizeof(sSqlCmd) );	memset( Table,   0, sizeof(Table) );	memset( effflag, 0, sizeof(effflag) );	memset( center, 0, sizeof(center) );	sprintf( center,"%s", getenv("CENTER") );	//停运日切查找之前是否收到停运报文,然后修改login表系统状态为02停运	if( strncmp(strCis->sysstat, "02", 2)==0 )//停运日切	{		flag = 1;		printf("\r\n=========================[进入停运日切]==========================\n");		strcpy( Table, "cis406" );		sprintf( sSqlCmd, "SELECT count(*) from %s WHERE CODE='%s' OR CODE='%s' and  EFFDATE='%s'", Table, "9999", center, strCis->newsysdata );			ret = clsSybCommand.GetLastRecord(sSqlCmd, &nCount , INTBIND);		if( nCount <= 0 )		{			strcpy( pRetMsg, "未收到停运报文退出停运日切!\n" );			return FALSE;		}else{			strcpy( Table, "login" );			memset( sSqlCmd, 0, sizeof(sSqlCmd) );			sprintf( sSqlCmd, "UPDATE %s SET currsysstat='%s'", Table, "02" ); 			ret = clsSybCommand.Update(sSqlCmd);        		if( ret < 0 )        		{				strcpy(pRetMsg, "更改停运标志失败,退出停运日切处理!\n" );				filelog(ERRLOG, "更改停运标志失败,退出停运日切处理!\tsSqlCmd:[%s]\n", sSqlCmd );				return FALSE;        		}		}	}	//启运日切修改系统状态为01正常	if( strncmp(strCis->sysstat, "01", 2)==0 )//启运日切	{		flag = 1;		strcpy( Table, "login" );		printf("\r\n=========================[进入启运日切]==========================\n");		memset( sSqlCmd, 0, sizeof(sSqlCmd) );		sprintf( sSqlCmd, "UPDATE %s SET currsysstat='%s'", Table, "01" );		ret = clsSybCommand.Update(sSqlCmd);        	if( ret < 0 )        	{			strcpy(pRetMsg, "更改停运标志失败,退出启运日切处理!\n" );			filelog(ERRLOG, "更改停运标志失败,退出启运日切处理!\tsSqlCmd:[%s]\n", sSqlCmd );			return FALSE;        	}		//启运总中心分中心    		strcpy( Table, "DISCENT" );		memset( sSqlCmd, 0, sizeof(sSqlCmd) );		sprintf( sSqlCmd, "UPDATE %s SET STATUS='%s' WHERE CODE='%s' OR CODE='%s'", Table, "0", "9999", getenv("CENTER") );		ret = clsSybCommand.Update(sSqlCmd);        	if( ret < 0 )        	{			strcpy(pRetMsg, "启运日切:启运总中心/分中心失败!\n" );			filelog(ERRLOG, "启运日切:启运总中心/分中心失败!\tsSqlCmd:[%s]\n", sSqlCmd );			return FALSE;        	}	}		//第一步工作日切换	printf("\r\n=========================[进行工作日切换]==========================\n");	strcpy( Table, "login" );	memset( sSqlCmd, 0, sizeof(sSqlCmd) );	sprintf( sSqlCmd, "UPDATE %s SET currsysdate='%s'",	     	Table,	     	strCis->newsysdata);	ret = UpCisData(Table, sSqlCmd, pRetMsg );	if( ret <= 0 )	{		strcpy( pRetMsg, "日切处理:切换工作日出错!\n" );		filelog(ERRLOG, "日切处理:切换工作日出错!\tsSqlCmd:[%s]\n", sSqlCmd );		return FALSE;	}	printf("\r\n=========================[工作日切换完成]==========================\n");	//第二步公共参数生效	printf("\r\n=========================[公共参数生效处理]==========================\n");	strcpy( Table, "cis407" );	memset( sSqlCmd, 0, sizeof(sSqlCmd) );	sprintf( sSqlCmd, "SELECT count(*) FROM %s WHERE effdata='%s'", Table, strCis->newsysdata);	ret = clsSybCommand.GetLastRecord(sSqlCmd, &nCount , INTBIND);

⌨️ 快捷键说明

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