📄 bank_svr.c
字号:
sql_setdlist[0].sqlind = 0L;
#line 382 "bank_svr.sqc"
sqlasetdata(2,0,1,sql_setdlist,NULL,0L);
}
#line 382 "bank_svr.sqc"
sqlaaloc(3,1,18,0L);
{
struct sqla_setdata_list sql_setdlist[1];
#line 382 "bank_svr.sqc"
sql_setdlist[0].sqltype = 496; sql_setdlist[0].sqllen = 4;
#line 382 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)&Records;
#line 382 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 382 "bank_svr.sqc"
sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
}
#line 382 "bank_svr.sqc"
sqlacall((unsigned short)24,9,2,3,0L);
#line 382 "bank_svr.sqc"
sqlastop(0L);
}
#line 382 "bank_svr.sqc"
}
else
{
/*
EXEC SQL SELECT count(*)
INTO :Records
FROM dr_jqxxmx
WHERE Iss21 = :termno and Iss3 = :pc;
*/
{
#line 389 "bank_svr.sqc"
sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 389 "bank_svr.sqc"
sqlaaloc(2,2,19,0L);
{
struct sqla_setdata_list sql_setdlist[2];
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)termno;
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 389 "bank_svr.sqc"
sql_setdlist[1].sqltype = 460; sql_setdlist[1].sqllen = 32;
#line 389 "bank_svr.sqc"
sql_setdlist[1].sqldata = (void*)pc;
#line 389 "bank_svr.sqc"
sql_setdlist[1].sqlind = 0L;
#line 389 "bank_svr.sqc"
sqlasetdata(2,0,2,sql_setdlist,NULL,0L);
}
#line 389 "bank_svr.sqc"
sqlaaloc(3,1,20,0L);
{
struct sqla_setdata_list sql_setdlist[1];
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqltype = 496; sql_setdlist[0].sqllen = 4;
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)&Records;
#line 389 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 389 "bank_svr.sqc"
sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
}
#line 389 "bank_svr.sqc"
sqlacall((unsigned short)24,10,2,3,0L);
#line 389 "bank_svr.sqc"
sqlastop(0L);
}
#line 389 "bank_svr.sqc"
}
if (sqlca.sqlcode != 0)
{
SqlInfoGet(errorMsg, &sqlca);
debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);
retcode = abs(sqlca.sqlcode)%10000;
strcpy(snddata, errorMsg);
SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
return;
}
if(Records <= 0)
{
retcode = 1001;
strcpy(snddata, "无该发卡机的库存记录");
SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
return;
}
if(pc[0] == 0x00)
{
/*
EXEC SQL SELECT max(Iss3)
INTO :pc
FROM dr_jqxxmx
WHERE Iss21 = :termno;
*/
{
#line 414 "bank_svr.sqc"
sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 414 "bank_svr.sqc"
sqlaaloc(2,1,21,0L);
{
struct sqla_setdata_list sql_setdlist[1];
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)termno;
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 414 "bank_svr.sqc"
sqlasetdata(2,0,1,sql_setdlist,NULL,0L);
}
#line 414 "bank_svr.sqc"
sqlaaloc(3,1,22,0L);
{
struct sqla_setdata_list sql_setdlist[1];
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 32;
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)pc;
#line 414 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 414 "bank_svr.sqc"
sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
}
#line 414 "bank_svr.sqc"
sqlacall((unsigned short)24,11,2,3,0L);
#line 414 "bank_svr.sqc"
sqlastop(0L);
}
#line 414 "bank_svr.sqc"
if (sqlca.sqlcode != 0)
{
SqlInfoGet(errorMsg, &sqlca);
debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);
retcode = abs(sqlca.sqlcode)%10000;
strcpy(snddata, errorMsg);
SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
return;
}
Alltrim(pc);
}
/*
EXEC SQL SELECT max(Iss4)
INTO :lsh
FROM dr_jqxxmx
WHERE Iss21 = :termno and Iss3 = :pc;
*/
{
#line 429 "bank_svr.sqc"
sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 429 "bank_svr.sqc"
sqlaaloc(2,2,23,0L);
{
struct sqla_setdata_list sql_setdlist[2];
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)termno;
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 429 "bank_svr.sqc"
sql_setdlist[1].sqltype = 460; sql_setdlist[1].sqllen = 32;
#line 429 "bank_svr.sqc"
sql_setdlist[1].sqldata = (void*)pc;
#line 429 "bank_svr.sqc"
sql_setdlist[1].sqlind = 0L;
#line 429 "bank_svr.sqc"
sqlasetdata(2,0,2,sql_setdlist,NULL,0L);
}
#line 429 "bank_svr.sqc"
sqlaaloc(3,1,24,0L);
{
struct sqla_setdata_list sql_setdlist[1];
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 32;
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)lsh;
#line 429 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 429 "bank_svr.sqc"
sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
}
#line 429 "bank_svr.sqc"
sqlacall((unsigned short)24,12,2,3,0L);
#line 429 "bank_svr.sqc"
sqlastop(0L);
}
#line 429 "bank_svr.sqc"
if (sqlca.sqlcode != 0)
{
SqlInfoGet(errorMsg, &sqlca);
debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);
retcode = abs(sqlca.sqlcode)%10000;
strcpy(snddata, errorMsg);
SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
return;
}
/*
EXEC SQL SELECT Iss20, Iss8, Iss11, Iss18, Iss17
INTO :jgh, :gyh, :jkks, :yeks, :hsks
FROM dr_jqxxmx
WHERE Iss21 = :termno and Iss3 = :pc and Iss4 = :lsh;
*/
{
#line 442 "bank_svr.sqc"
sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 442 "bank_svr.sqc"
sqlaaloc(2,3,25,0L);
{
struct sqla_setdata_list sql_setdlist[3];
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)termno;
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqltype = 460; sql_setdlist[1].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqldata = (void*)pc;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqltype = 460; sql_setdlist[2].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqldata = (void*)lsh;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqlind = 0L;
#line 442 "bank_svr.sqc"
sqlasetdata(2,0,3,sql_setdlist,NULL,0L);
}
#line 442 "bank_svr.sqc"
sqlaaloc(3,5,26,0L);
{
struct sqla_setdata_list sql_setdlist[5];
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqldata = (void*)jgh;
#line 442 "bank_svr.sqc"
sql_setdlist[0].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqltype = 460; sql_setdlist[1].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqldata = (void*)gyh;
#line 442 "bank_svr.sqc"
sql_setdlist[1].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqltype = 460; sql_setdlist[2].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqldata = (void*)jkks;
#line 442 "bank_svr.sqc"
sql_setdlist[2].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[3].sqltype = 460; sql_setdlist[3].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[3].sqldata = (void*)yeks;
#line 442 "bank_svr.sqc"
sql_setdlist[3].sqlind = 0L;
#line 442 "bank_svr.sqc"
sql_setdlist[4].sqltype = 460; sql_setdlist[4].sqllen = 32;
#line 442 "bank_svr.sqc"
sql_setdlist[4].sqldata = (void*)hsks;
#line 442 "bank_svr.sqc"
sql_setdlist[4].sqlind = 0L;
#line 442 "bank_svr.sqc"
sqlasetdata(3,0,5,sql_setdlist,NULL,0L);
}
#line 442 "bank_svr.sqc"
sqlacall((unsigned short)24,13,2,3,0L);
#line 442 "bank_svr.sqc"
sqlastop(0L);
}
#line 442 "bank_svr.sqc"
if (sqlca.sqlcode != 0)
{
SqlInfoGet(errorMsg, &sqlca);
debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);
retcode = abs(sqlca.sqlcode)%10000;
strcpy(snddata, errorMsg);
SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
return;
}
}
Alltrim(jgh);
Alltrim(gyh);
Alltrim(jkks);
Alltrim(yeks);
Alltrim(hsks);
retcode = 0;
sndlen = 0;
/*
if(strlen(pc) > 15)
memcpy(snddata, pc, 15);
else
memcpy(snddata, pc, strlen(pc));
sndlen = sndlen + 15;
if(strlen(jgh) > 7)
memcpy(snddata + sndlen, jgh, 7);
else
memcpy(snddata + sndlen, jgh, strlen(jgh));
sndlen = sndlen + 7;
if(strlen(termno) > 7)
memcpy(snddata + sndlen, termno, 7);
else
memcpy(snddata + sndlen, termno, strlen(termno));
sndlen = sndlen + 7;
//日期 X(8)
memset(snddata + sndlen, '0', 8);
sndlen = sndlen + 8;
//时间 X(8)
memset(snddata + sndlen, '0', 8);
sndlen = sndlen + 8;
//当前加卡柜员 X(07)
if(strlen(gyh) > 7)
memcpy(snddata + sndlen, gyh, 7);
else
memcpy(snddata + sndlen, gyh, strlen(gyh));
sndlen = sndlen + 7;
//初始卡数 9(8)
sprintf(tmpstr, "%08d", atol(jkks));
memcpy(snddata + sndlen, tmpstr, 8);
sndlen = sndlen + 8;
//剩余卡数 9(8)
sprintf(tmpstr, "%08d", atol(yeks));
memcpy(snddata + sndlen, tmpstr, 8);
sndlen = sndlen + 8;
//回收卡数 9(8)
sprintf(tmpstr, "%08d", atol(hsks));
memcpy(snddata + sndlen, tmpstr, 8);
sndlen = sndlen + 8;
//成功发卡 9(8)
sprintf(tmpstr, "%08d", atol(jkks) - atol(hsks));
memcpy(snddata + sndlen, tmpstr, 8);
sndlen = sndlen + 8;
//可疑卡数 9(8)
sprintf(tmpstr, "%08d", 0);
memcpy(snddata + sndlen, tmpstr, 8);
sndlen = sndlen + 8;
snddata[sndlen] = 0x00;
*/
SendToBank(rcvSocket, retcode, sndlen, snddata);
return;
}
int SendToBank(int rcvSocket, int retcode, int datalen, char *sndData)
{
ANS_HEAD anspack;
int sndLen;
char tmpstr[256];
if(retcode == 0)
anspack.TOAMSGTYPE[0] = 'N';
else
anspack.TOAMSGTYPE[0] = 'E';
memset(&anspack, 0x20, sizeof(ANS_HEAD));
sprintf(tmpstr, "%04d", retcode);
memcpy(anspack.TOAMSGCODE, tmpstr, 4);
memset(anspack.TOACURSPOS, '0', 4);
memset(anspack.TOATMSEQNO, '0', 6);
memset(anspack.TOASUBSTRCODE, '0', 4);
memset(anspack.TOASUBSAPCODE, '0', 2);
memset(anspack.TOATRDATE, '0', 8);
memset(anspack.TOATRTIME, '0', 6);
memset(anspack.TOAACDATE, '0', 8);
memset(anspack.TOAJRNNO, '0', 9);
memset(anspack.TOAPAGEIND, '0', 1);
memset(anspack.TOACOMPIND, '0', 1);
memset(anspack.TOAENCRIND, '0', 1);
memset(anspack.TOATRBR, '0', 6);
anspack.TOAFINFLAG[0] = 'N';
memset(anspack.TOAAUTH, '0', 2);
sprintf(tmpstr, "%04d", datalen);
memcpy(anspack.TOAMSGLEN, tmpstr, 4);
sndLen = sizeof(ANS_HEAD)-4096 + datalen;
sprintf(tmpstr, "%08d", sndLen - 8);
memcpy(anspack.PACKLEN, tmpstr, 4);
memcpy(anspack.TOAOUTPDATA, sndData, datalen);
if (write(rcvSocket, (unsigned char *)&anspack, sndLen) != sndLen)
{
debugLog(__FILE__, __LINE__, "send ans to bank failed");
close(rcvSocket);
return -1;
}
return 0;
}
void sig_child( )
{
while( waitpid( -1, NULL, WNOHANG ) > 0 ) ;
}
void sig_Terminate( )
{
kill( getpid(), SIGKILL );
exit( 0 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -