📄 main_0210.ec
字号:
#include "../incl/bank.h"#include <sys/time.h>#include "../incl/lu62.h"#define ASCII "IBM-eucCN" /* ASCII code page **/#define EBCDIC "IBM-935" /* EBCDIC (Host) code page **/#define A2E 1 /* translate ASCII to EBCDIC **/#define E2A 2 /* translate EBCDIC to ASCII **/#define HEADLEN 7#define MAX_WORKERS 50#define MAX_COMMENT 50#define MAX_BUFFERSIZE 1024static void toolong1 ();jmp_buf oldenv1;extern WORKER *wk;extern int htime_out1;extern $char stockdb1[20];SEND_NET_0210 send_net_0210;RECV_NET_0210 recv_net_0210;int net_tohost_0210(sockfd,rcv_data_package,snd_data_package)int sockfd;char *rcv_data_package;char *snd_data_package;{ int i,flag,j,k,n; char *tmp; char manager_id[10]; char comment[10][80], buf[100]; FILE *fp; WORKER wks[ MAX_WORKERS ]; char duig_0210_buff[1024]; $connect to $stockdb1; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"Open database stock err![%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"数据库开启错误"); return( -1 ); } EXEC SQL UPDATE t_worker_sign SET on_off = "1"; if(sqlca.sqlcode) { WriteLog ( LOGFILE,"Update database stock err![%d]\n",sqlca.sqlcode ); $disconnect current; return( -1 ); } $disconnect current; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE, "Close database stock err![%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"数据库关闭错误"); return( -1 ); } wk = NULL; tmp = rcv_data_package; WriteLog(LOGFILE,"********签到主处理开始*************"); WriteLog(LOGFILE,"接收数据:\n[%s]",rcv_data_package); i = unpknet_stock_0210(rcv_data_package,duig_0210_buff); WriteLog(LOGFILE,"i=%d\n",i); if(i == - 20) { strcpy(snd_data_package,duig_0210_buff); printf("对公数据:[%s]\n",snd_data_package); return(0); } if (i<0) { WriteLog(LOGFILE,"unpknet_stock err!"); strcpy ( send_net_0210.retcode,"8999"); strcpy ( send_net_0210.errmsg,"解包错误"); pktonet_stock_0210(snd_data_package); return( 0 ); } fp = fopen( (char *)getfname( WORKDIR, "/etc/ntbkhold"), "r" ); if ( fp == NULL ) { WriteLog( LOGFILE,"ntbkhold not found! \n" ); return( -1 ); } i = j = n = 0; while( i< MAX_WORKERS && j< MAX_COMMENT && fgets( buf, 80, fp ) != NULL ) { if ( buf[ 0 ] == '#' || buf[ 0 ] == '\n' ) { strcpy( comment[j++], buf ); continue; /* 注释行空行 */ } sscanf( buf, "%s%s%s%s%s%s%s\n", wks[ i ].manager_id, wks[ i ].worker_4, wks[ i ].worker_5, wks[ i ].passwd, wks[ i ].rank, wks[ i ].note, wks[ i ].active ); if ( signon( wks[i] ) == 0 ) { wks[ i ].active[ 0 ] = '1'; n++; WriteLog(LOGFILE,"第[%d]个签到成功!",i); } else { wks[ i ].active[ 0 ] = '0'; WriteLog(LOGFILE,"第[%d]个签到失败!",i); } i++; } fclose( fp ); if( n == 0 ) { WriteLog(LOGFILE,"柜员签到失败!"); strcpy ( send_net_0210.retcode,"8999"); strcpy ( send_net_0210.errmsg,"柜员签到失败"); } else { WriteLog(LOGFILE,"柜员签到成功!"); strcpy ( send_net_0210.retcode,"0000"); strcpy ( send_net_0210.errmsg,"柜员签到成功"); worker_on(&wk); } pktonet_stock_0210(snd_data_package); WriteLog(LOGFILE,"********签到主处理结束*************\n"); return(0);}static void toolong1 (){ htime_out1 = 1; alarm ( 0 ); signal ( SIGALRM, SIG_IGN ); longjmp( oldenv1, 1 );}signon( wk )WORKER wk;{ int sendlen, recvlen, retcode; char sendstr[512], recvstr[512], date[10]; struct head hd; int net_err,length, i; char sideinfo[9] = "SAVCICSB",str[100] ; char recvasc[512]; strcpy( hd.jym, "0111"); strcpy( hd.gzh, wk.worker_4); strcpy( hd.sqjb, wk.rank); strcpy( hd.bz, wk.note); hd.sqyh[0] = '\0'; hd.lsh = 0; memcpy( sendstr, headstr(hd), 27 ); getdatea(date); sendlen=Hmeg(sendstr,27, wk.worker_5, 0x6f ); sendlen=Hmeg(sendstr,sendlen, wk.passwd, 0x62 ); sendlen=Hmeg(sendstr,sendlen, wk.worker_4, 0x59 ); sendlen=Hmeg(sendstr,sendlen, "1", 0x52 ); sendlen=Hmeg(sendstr,sendlen, date+2, 0x53 ); sendlen=Hmeg(sendstr,sendlen, "1", 0x54 ); sendstr[sendlen++]=0xff; retcode = LUFunction(LU_ALLOC, sideinfo, NULL, NULL); WriteLog ( LOGFILE,"检查LU连路结束!"); if (retcode != 0) { strcpy ( send_net_0210.retcode, "8999" ); strcpy ( send_net_0210.errmsg,"系统错误"); WriteLog ( LOGFILE,"LU_ALLOC err:[%d]",retcode); return(-1); } retcode = LUFunction(LU_SEND, &sendlen, sendstr); WriteLog ( LOGFILE,"向9000发送数据结束!"); if (retcode != 0) { LUFunction(LU_FREE); strcpy ( send_net_0210.retcode, "8999" ); strcpy ( send_net_0210.errmsg,"系统错误"); WriteLog ( LOGFILE,"LU_SEND err:[%d]",retcode); return(-1); } length = MAX_BUFFERSIZE; retcode = LUFunction(LU_RECEIVE, &length, recvstr); WriteLog ( LOGFILE,"接收9000返回数据结束!"); if (retcode != 0) { LUFunction(LU_FREE); strcpy ( send_net_0210.retcode, "8999" ); strcpy ( send_net_0210.errmsg,"系统错误"); WriteLog ( LOGFILE,"LU_RECEIVE err:[%d]",retcode); return(-1); } sendlen = 1; strcpy(sendstr,"1"); retcode = LUFunction(LU_SENDTRUE, &sendlen, sendstr); WriteLog ( LOGFILE,"向9000发送确认数据结束!"); if (retcode != 0) { LUFunction(LU_FREE); strcpy ( send_net_0210.retcode, "8999" ); strcpy ( send_net_0210.errmsg,"系统错误"); WriteLog ( LOGFILE,"LU_SENDTRUE err:[%d]",retcode); return(-1); } LUFunction(LU_FREE);/* */ for( i = 0; i < 20; i ++ ) { fprintf(stderr, "%02x ", recvstr[i]); }/* */ if( recvstr[2] == 0x09 ) return( 0 ); else{ gb_conv(0, recvstr+7, recvasc); WriteLog ( LOGFILE,"recvstr:[%s]",recvasc); return( -1 ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -