📄 main_0211.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 1024extern int htime_out1;static void toolong1();extern $char stockdb1[20];jmp_buf oldenv1;extern WORKER *wk;void GetSystemTime(char *);void GetFileName( char * );SEND_NET_0211 send_net_0211;RECV_NET_0211 recv_net_0211;int net_tohost_0211(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],stock_worker[6]; char duig_0211_buff[1024]; $char CurDate[10+1]; FILE *fp; FILE *fpBakFile; char BakFileName[128+1], FileName[40]; WORKER wks[ MAX_WORKERS ]; $int t_on_off; $struct f_history_serial { char trans_type[5]; char acco_type[2]; char account[33]; double amount; char req_serial[16]; char ans_serial[7]; char time[7]; char host_serial[7]; char retcode[5]; char errmsg[41]; double balance; char chong_flag[2]; char date[11]; }history_serial; $struct f_stock_serial { char trans_type[5]; char acco_type[2]; char account[33]; double amount; char req_serial[16]; char ans_serial[7]; char time[7]; char host_serial[7]; char retcode[5]; char errmsg[41]; double balance; char chong_flag[2]; }stock_serial; $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 ); } $select on_off into $t_on_off from t_worker_sign; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE, "Open database stock err![%d]\n",sqlca.sqlcode ); $disconnect current; return( -1 ); } if(t_on_off == 0 ) { $disconnect current; WriteLog(LOGFILE,"签退成功!"); WriteLog(LOGFILE,"柜员签退成功!"); strcpy ( send_net_0211.retcode,"0000"); strcpy ( send_net_0211.errmsg,"柜员签退成功"); worker_off(&wk); pktonet_stock_0211(snd_data_package); return(0); } if(t_on_off == 2 ) { $disconnect current; WriteLog(LOGFILE,"柜员签退中!"); WriteLog(LOGFILE,"柜员签退中!"); strcpy ( send_net_0211.retcode,"8999"); strcpy ( send_net_0211.errmsg,"柜员签退中"); worker_off(&wk); pktonet_stock_0211(snd_data_package); return(0); } EXEC SQL UPDATE t_worker_sign SET on_off = "2"; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"update t_worker_sign error\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"update t_worker_sign error"); pktonet_stock_0211(snd_data_package); $disconnect current; return(-1); } wk = NULL; tmp = rcv_data_package; WriteLog(LOGFILE,"********签退主处理开始*************"); memset(CurDate,0,sizeof(CurDate)); GetSystemTime(CurDate); WriteLog(LOGFILE,"接收数据:\n[%s]",rcv_data_package); memset( duig_0211_buff, 0, sizeof(duig_0211_buff) ); i = unpknet_stock_0211(rcv_data_package,duig_0211_buff); if(i == - 20) { strcpy(snd_data_package,duig_0211_buff); WriteLog ( LOGFILE,"对公数据:[%s]\n",snd_data_package); EXEC SQL UPDATE t_worker_sign SET on_off = "1"; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"update t_worker_sign error=[%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"update t_worker_sign error"); pktonet_stock_0211(snd_data_package); $disconnect current; return(-1); } return(0); } if (i<0) { WriteLog(LOGFILE,"unpknet_stock err!"); strcpy ( send_net_0211.retcode,"8999"); strcpy ( send_net_0211.errmsg,"解包错误"); pktonet_stock_0211(snd_data_package); EXEC SQL UPDATE t_worker_sign SET on_off = "1"; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"update t_worker_sign error=[%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"update t_worker_sign error"); pktonet_stock_0211(snd_data_package); $disconnect current; return(-1); } return( 0 ); } fp = fopen( (char *)getfname( WORKDIR, "/etc/ntbkhold"), "r" ); if ( fp == NULL ) { WriteLog( LOGFILE,"ntbkhold not found! \n" ); EXEC SQL UPDATE t_worker_sign SET on_off = "1"; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"update t_worker_sign error=[%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"update t_worker_sign error"); pktonet_stock_0211(snd_data_package); $disconnect current; return(-1); } else { WriteLog ( LOGFILE,"open ntbkhold error"); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"open ntbkhold error"); pktonet_stock_0211(snd_data_package); 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 ( signoff( wks[i] ) == 0 ) { WriteLog(LOGFILE,"第[%d]个签退成功!",i); n++; } else { WriteLog(LOGFILE,"第[%d]个签退失败!",i); } i++; } fclose( fp ); if( n == 0 ) { WriteLog(LOGFILE,"柜员签退失败!"); EXEC SQL UPDATE t_worker_sign SET on_off = "1"; if ( sqlca.sqlcode ) { WriteLog ( LOGFILE,"update t_worker_sign error=[%d]\n",sqlca.sqlcode ); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"update t_worker_sign error"); pktonet_stock_0211(snd_data_package); $disconnect current; return(-1); } else { WriteLog ( LOGFILE,"open ntbkhold error"); strcpy ( send_net_0211.errmsg,"柜员签退失败"); strcpy ( send_net.retcode,"8999"); strcpy ( send_net.errmsg,"open ntbkhold error"); pktonet_stock_0211(snd_data_package); return(-1); } } worker_off(&wk); /* 对帐 (0214)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -