📄 cispub.cpp
字号:
clsSybCommand.MapColumn( 2, slis413.code, NTBSTRINGBIND); clsSybCommand.MapColumn( 3, slis413.name, NTBSTRINGBIND); clsSybCommand.MapColumn( 4, slis413.type, NTBSTRINGBIND); clsSybCommand.MapColumn( 5, slis413.citycode, NTBSTRINGBIND); clsSybCommand.MapColumn( 6, slis413.effdate, NTBSTRINGBIND); clsSybCommand.MapColumn( 7, slis413.invdate, NTBSTRINGBIND); clsSybCommand.MapColumn( 8, slis413.alttype, NTBSTRINGBIND); clsSybCommand.MapColumn( 9, slis413.remark, NTBSTRINGBIND); RetFlag = clsSybCommand.GetData(); if( RetFlag ) { memset( sSqlCmd, 0, sizeof(sSqlCmd) ); strcpy( Table, "DISCENT" ); sprintf( sSqlCmd, "DELETE FROM %s WHERE CODE='%s'", Table, slis413.code ); ret = DeleteCisData( Table, sSqlCmd, pRetMsg ); if( ret <= 0 ) { printf("日切处理:删除节点信息失败![%s]\n", slis413.code ); printf( "sSqlCmd:[%s]\n", sSqlCmd ); } memset( sSqlCmd, 0, sizeof(sSqlCmd)); sprintf( sSqlCmd, "INSERT INTO %s VALUES('%s','%s','%s','%s','%s','%s','%s','%s')", Table, slis413.code, slis413.name, slis413.type, slis413.citycode, slis413.effdate, slis413.invdate, slis413.alttype, "0"); ret = SaveCisData( Table, sSqlCmd, pRetMsg); if( ret <= 0 ) { sprintf( pRetMsg, "日切处理:增加节点[%s]失败!\n", slis413.code ); printf( "sSqlCmd:[%s]\n", sSqlCmd ); strcpy( pRetMsg, "日切处理:增加节点失败!\n"); filelog(ERRLOG, "日切处理:增加节点失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } } else { if (!clsSybCommand.HasNextResultSet()) { printf("\n"); break; } } //及时删除副表记录 strcpy( Table, "DISCENT_ASS" ); memset(sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf(sSqlCmd, "DELETE FROM %s WHERE WORKDATE='%s' and CODE='%s'", Table, workdate, slis413.code ); ret = DeleteCisData( Table, sSqlCmd, pRetMsg ); if ( ret <= 0 ) { printf("删除已增加分中心付表记录失败!\n"); printf("sSqlCmd:[%s]\n", sSqlCmd ); strcpy( pRetMsg, "日切处理:删除已增加分中心付表记录失败!\n"); filelog(ERRLOG, "日切处理:删除已增加分中心付表记录失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } printf("处理[%03d/%03d][%s]\n", j+1, nCount, slis413.code ); }//END FOR printf("\r\n=========================[%02d/%02d]节点信息生效处理完成==========================\n", j,nCount); /*************************节点失效处理**************************/ printf("\r\n=========================[节点信息失效处理]==========================\n"); nCount = 0; strcpy( Table, "DISCENT" ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf( sSqlCmd, "SELECT count(*) FROM %s WHERE INVDATE='%s'", Table,strCis->newsysdata ); ret = clsSybCommand.GetLastRecord(sSqlCmd, &nCount , INTBIND); if( ret <= 0 ) { printf("查找失效节点失败nCount:[%s]\n", nCount ); printf( "sSqlCmd:[%s]\n" , sSqlCmd ); strcpy( pRetMsg, "日切处理:查找失效节点失败!\n"); filelog(ERRLOG, "日切处理:查找失效节点失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } printf("日切需处理待失效节点[%d]条!\n", nCount ); char code[4+1]; for( j=0;j<nCount;i++ ) { memset( code, 0, sizeof(code) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf( sSqlCmd, "SELECT CODE FROM %s WHERE INVDATE='%s'", Table,strCis->newsysdata ); ret = clsSybCommand.Select(sSqlCmd); ret = clsSybCommand.GetLastRecord(sSqlCmd, code , NTBSTRINGBIND); if( ret<=0 ) { memset( sSqlCmd, 0, sizeof(sSqlCmd) ); strcpy( Table, "DISCENT" ); sprintf( sSqlCmd, "DELETE FROM %s WHERE CODE='%s'", Table, code ); ret = DeleteCisData( Table, sSqlCmd, pRetMsg); if( ret <= 0 ) { sprintf( pRetMsg, "日切处理:删除失效节点[%s]失败!\n", code ); printf( "sSqlCmd:[%s]\n", sSqlCmd ); strcpy( pRetMsg, "日切处理:删除失效节点失败!\n"); filelog(ERRLOG, "日切处理:删除失效节点失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } } else { if (!clsSybCommand.HasNextResultSet()) { printf("\n"); break; } } printf("处理[%03d/%03d][%s]\n", j+1, nCount, slis413.code ); } printf("\r\n=========================[%d]节点信息失效处理完成==========================\n", j); /**********************节点停启运处理***********************/ printf("=========================[节点停启运处理]==========================\n"); strcpy( Table, "cis406" ); CIS406 strCis406; memset( sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf( sSqlCmd, "SELECT count(*) FROM %s WHERE EFFDATE='%s'", Table,strCis->newsysdata ); ret = clsSybCommand.GetLastRecord(sSqlCmd, &nCount , INTBIND); if( ret < 0 ) { printf("查找待停启运节点信息失败!\n"); printf("sSqlCmd:[%s]\n", sSqlCmd ); strcpy( pRetMsg, "日切处理:查找待停启运节点信息失败!\n"); filelog(ERRLOG, "日切处理:查找待停启运节点信息失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } char *pStr = new char[nCount*5+1]; memset( pStr, 0, nCount*5+1 ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); sprintf( sSqlCmd, "SELECT * FROM %s WHERE EFFDATE='%s'", Table,strCis->newsysdata ); ret = clsSybCommand.Select(sSqlCmd); for( i=0; ;i++ ) { memset( &strCis406, 0, sizeof(strCis406) ); clsSybCommand.MapColumn( 1, strCis406.predata,NTBSTRINGBIND); clsSybCommand.MapColumn( 2, strCis406.changnode,NTBSTRINGBIND); clsSybCommand.MapColumn( 3, strCis406.effdata,NTBSTRINGBIND); clsSybCommand.MapColumn( 4, strCis406.changsta,NTBSTRINGBIND); clsSybCommand.MapColumn( 5, strCis406.changetime,NTBSTRINGBIND); clsSybCommand.MapColumn( 6, strCis406.subinfo,NTBSTRINGBIND); RetFlag = clsSybCommand.GetData(); if( RetFlag ) { strcat( pStr, strCis406.changnode ); strcat( pStr, strCis406.changsta ); } else { if (!clsSybCommand.HasNextResultSet()) { printf("\n"); break; } } printf("处理[%d][%s]\n", i+1, strCis406.changnode ); } for( i=0; i<nCount; i++ ) { char code[4+1]; char stat[1+1]; memset(code, 0, sizeof(code) ); memset(stat, 0, sizeof(stat) ); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memcpy( code, pStr+i*5, 4 ); memcpy( stat, pStr+i*5+4, 1 ); strcpy( Table, "DISCENT" ); sprintf( sSqlCmd, "UPDATE %s SET STATUS='%s' WHERE CODE='%s'", Table, stat, code); ret = UpCisData( Table, sSqlCmd, pRetMsg); if( ret <= 0 ) { strcpy( pRetMsg, "日切处理:节点停启运处理失败!\n"); printf( "sSqlCmd:[%s]\n", sSqlCmd ); strcpy( pRetMsg, "日切处理:节点停启运处理失败!\n"); filelog(ERRLOG, "日切处理:节点停启运处理失败!\tsSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } } printf("\r\n=========================[%d]节点停启运处理完成==========================\n", nCount); if( flag == 0 ) { printf("\r\n========================[非停启运日切置系统状态为正常]=========================\n", i); memset( sSqlCmd, 0, sizeof(sSqlCmd) ); memset( Table, 0, sizeof(Table) ); strcpy( Table, "login" ); sprintf( sSqlCmd,"UPDATE %s SET currsysstat='01'", Table ); ret = UpCisData(Table, sSqlCmd, pRetMsg ); if( ret <= 0 ) { printf("日切处理:置系统状态为正常失败!\n" ); strcpy( pRetMsg, "日切处理:置系统状态为正常失败!\n"); filelog(ERRLOG, "日切处理:置系统状态为正常失败!\tsSqlCmd:[%s]\n", sSqlCmd ); printf( "sSqlCmd:[%s]\n", sSqlCmd ); return FALSE; } } return TRUE;}//获取对帐明细信息int BepsPub::CheckDetail(LIS601 *lisCis){ char sSqlCmd[512]; int nResCode = 0; int nCount = 0; char flag[2]; memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(flag, 0, sizeof(flag)); if( strncmp( lisCis->lwflag , "2" ,1) == 0 ) strcpy( flag , "1"); else strcpy( flag , "0"); //modify by limh 0521 删除金额位判断 if( strncmp(lisCis->opetype,"100",3) == 0) sprintf( sSqlCmd , "select count(*) from cis100 where msgtype='%s' and precativedate='%s' and recvbankno='%s' and businessno=%d",flag,lisCis->predate,lisCis->sendbank,atoi(lisCis->businessno)); else sprintf( sSqlCmd , "select count(*) from cis101 where msgtype='%s' and precativedate='%s' and recvbankno='%s' and businessno=%d ",flag,lisCis->predate,lisCis->sendbank,atoi(lisCis->businessno)); nResCode = clsSybCommand.GetLastRecord(sSqlCmd, &nCount , 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); } return nCount; } //更改对帐明细信息int BepsPub::UpDetail(LIS601 *lisCis){ char sSqlCmd[512]; int nResCode = 0; char flag[2]; BeginTrans(); memset(sSqlCmd, 0, sizeof(sSqlCmd)); memset(flag, 0, sizeof(flag)); if( strncmp( lisCis->lwflag , "2" ,1) == 0 ) strcpy( flag , "1"); else strcpy( flag , "0"); if( strncmp(lisCis->opetype,"100",3) == 0) sprintf( sSqlCmd , "update cis100 set checkstatus='01' where msgtype='%s' and precativedate='%s' and recvbankno='%s' and businessno=%d ",flag,lisCis->predate,lisCis->sendbank,atoi(lisCis->businessno)); else sprintf( sSqlCmd , "update cis101 set checkstatus='01' where msgtype='%s' and precativedate='%s' and recvbankno='%s' and businessno=%d ",flag,lisCis->predate,lisCis->sendbank,atoi(lisCis->businessno)); nResCode = clsSybCommand.Update(sSqlCmd); if( nResCode < 0 ) { RollbackTrans(); filelog("Sql.log","sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); printf("sSqlCmd = [%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); } CommitTrans(); return nResCode; }//发送队列表入库 add by limh 0415BOOL BepsPub::SaveSendData(SENDDATA *sSendData , char *Add,char *BankNo,char *sResDesc ){ int nCisId = 0; char sSqlCmd[500*1024]; char Head[1024],Text[4096],Tail[100]; char Len[10]; MsgHeader sMsgHeader; memset( Head , 0 , sizeof( Head )); memset( Text , 0 , sizeof( Text )); memset( Tail , 0 , sizeof( Tail )); memset( Len , 0 , sizeof( Len )); sprintf( Tail , "{C: }"); memset( &sMsgHeader , 0 , sizeof(MsgHeader)); if (!MakeTrxsSerialNo(&nCisId,sResDesc,CISID)) { return FALSE; } char WorkDate[9]; memset( WorkDate , 0 , sizeof( WorkDate )); GetWorkDate(WorkDate); memcpy( sMsgHeader.VerId , "0" , 1); memcpy( sMsgHeader.AppTradeCode , "4" , 1); memcpy( sMsgHeader.CMT_No , sSendData->msgid + 3 , 3); memcpy( sMsgHeader.reserv , "0CIS" , 4 ); sprintf( sMsgHeader.StartAddr,"%012s", getenv("BANKNO")); sprintf( sMsgHeader.DestAddr,"%-12s", getenv("CENTER")); printf("sMsgHeader.DestAddr = [%s]\n", sMsgHeader.DestAddr ); sprintf( sMsgHeader.MesgID , "%020d",nCisId); sprintf( sMsgHeader.MesgReqNo , "%020d",nCisId); memcpy( sMsgHeader.WorkDate , WorkDate , 8); sprintf( Head , "{1:%01s%06s%01s%03s%04s%012s%12s%01s%01s%020s%020s%08s%014s%04s%06s%01s%020s}", sMsgHeader.VerId, sMsgHeader.MsgLen, sMsgHeader.AppTradeCode, sMsgHeader.CMT_No, sMsgHeader.reserv, sMsgHeader.StartAddr, sMsgHeader.DestAddr, sMsgHeader.MesgPurp, sMsgHeader.OutForm, sMsgHeader.MesgID, sMsgHeader.MesgReqNo, sMsgHeader.WorkDate, sMsgHeader.SentTime, sMsgHeader.ExpTime, sMsgHeader.DelTime, sMsgHeader.MesgPri, sMsgHeader.Reserve); sprintf( Text , "%s{3:%s%s}%s", Head, sSendData->msgcontent,Add,Tail); sprintf(Len,"%06d", strlen(Text)); memcpy( Text + 4 , Len , 6); printf("+++++++++++Head = [%d][%s]\n", strlen(Head), Head ); printf("+++++++++++Text = [%d][%s]\n", strlen(Text), Text ); sSendData->dataidx = nCisId; strcpy( sSendData->doflag , "0"); memset( sSqlCmd , 0 , sizeof( sSqlCmd )); sprintf( sSqlCmd, "insert into %s values(%d,'%s','%s','%s','%s','%s')", "send_data", sSendData->dataidx, sSendData->orgno, sSendData->workdate, sSendData->doflag, sSendData->msgid, Text); if( 0 >= clsSybCommand.Insert(sSqlCmd) ) { filelog(CIS_SRV_LOG, "Insert into send_data error [%d][%s][%s]" " at file=%s in line=%d\n", sqlca.sqlcode, sqlca.sqlerrtext,sSqlCmd, __FILE__, __LINE__); return FALSE; } return TRUE;}//取工作日期BOOL BepsPub::GetWorkDate(char *WorkDate){ int nResCode; char sSqlCmd[512]; memset(sSqlCmd, '\0', sizeof(sSqlCmd)); //获取系统控制表的参数 sprintf(sSqlCmd,"SELECT currsysdate FROM login" ); nResCode = clsSybCommand.GetLastRecord(sSqlCmd,WorkDate,NTBSTRINGBIND); if ( nResCode <= 0 ) { filelog(CIS_SRV_LOG, "GetWorkDate=[%d][%s][%s]\n",sqlca.sqlcode,sqlca.sqlerrtext,sSqlCmd); return FALSE; } return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -