📄 proc.ec
字号:
flag++; } $fetch cur_curs into $sfjzh_msg; if(sqlca.sqlcode!=0){flag_f=0;break;} fprintf(fp,"%-12s%-40s%14s\n",sfjzh_msg.sfdwzh,sfjzh_msg.sfdwmc,sfjzh_msg.qcjy); flag++;if(flag==21)flag=1; break; case 23: if(flag==1) { fprintf(fp,"%-13s%-40s\n","收费项目","项目名称"); flag++; } $fetch cur_curs into $sfjxm_msg; if(sqlca.sqlcode!=0){flag_f=0;break;} fprintf(fp,"%-8s%-40s\n",sfjxm_msg.sfxm,sfjxm_msg.xmmc); flag++;if(flag==21)flag=1; break; default:break; }}fclose(fp);sprintf(sndname,"%s","/usr/hcdl/dlmg/server/report/sndfile");memcpy(msg->rc,PATR_OK,2);return(3);}fun_check(opcode,myfun,oplevel)char opcode[],myfun[],oplevel[];{char c_date[9],c_time[7];char stime[50];$char funname[16],fundes[81],funpre[16],funlevel[6];$int funuse,funuse1;$char logcode[3],logdate[25],logfun[16];char choice[2];int i;i=oplevel[0]-'0';i--;strcpy(funname,myfun);$select unique fun_p,fun_u,fun_l into $funpre,$funuse,$funlevel from fun_adm where fun_n = $funname;if(sqlca.sqlcode!=0) { return(1); }if(funlevel[i]=='0') { return(2); }if(strncmp(funpre,"NO",2)!=0) { $select unique fun_u into $funuse1 from fun_adm where fun_n = $funpre; if(sqlca.sqlcode!=0) { return(1); } if(funuse1 < 1) { return(3); } }funuse=funuse+1;$update fun_adm set fun_u=$funuse where fun_n=$funname;if(sqlca.sqlcode!=0) { printf("修 改 失 败 !!\n"); return(4); }return(0);}proc21(msg)DL_MSG *msg;{/* 6000开工 */ $ int rq; $ long jys,k,lsh_max,lsh_min,beg,end; /* 判是否已开工 */ $ select * from lskzb where rq=today; if(sqlca.sqlcode!=0&&sqlca.sqlcode!=100) /* fail to execute sql */ { memcpy(msg->rc,PATR_CXERR,2); puts("select form lskzb\n"); return(-1); } if(sqlca.sqlcode==0) /* 已开工 */ { if (rest_shm()<0) { puts("rest_shm \n"); memcpy(msg->rc,PATR_NCS,2); return(1); } memcpy(msg->rc,PATR_OK,2); return(0); } /* 联机流水表的数据写入历史流水表 */ $lock table lslsb in exclusive mode; $lock table ljlsb in exclusive mode; $lock table sfjmxb in exclusive mode; $lock table sfjmxlsb in exclusive mode; $lock table lskzb in exclusive mode; $ begin work; $ insert into lslsb select * from ljlsb; if((sqlca.sqlcode!=0) && (sqlca.sqlcode!=SQLNOTFOUND)) { printf("%d",SQLCODE); $ rollback work; puts("insert lslsb error\n"); memcpy(msg->rc,PATR_INSERT,2); return(1); } /* 删除联机流水表的数据 */ $ delete from ljlsb; if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND) /* fail to execute sql */ { $ rollback work; puts("delete ljlsb error\n"); memcpy(msg->rc,PATR_INSERT,2); return(1); } $ insert into sfjmxlsb select * from sfjmxb; if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND) /* fail to execute sql */ { printf("%d",SQLCODE); $ rollback work; puts("insert sfjmxlsb error\n"); memcpy(msg->rc,PATR_INSERT,2); return(1); } /* 删除收费局明细表的数据 */ $ delete from sfjmxb; if(sqlca.sqlcode!=0 && sqlca.sqlcode!=SQLNOTFOUND) /* fail to execute sql */ { $ rollback work; puts("delete sfjmxb error\n"); memcpy(msg->rc,PATR_INSERT,2); return(1); } /* 清最大流水号,置当日日期 */ $ update lskzb set mlsh=0,rq=today; if(sqlca.sqlcode!=0) /* fail to execute sql */ { $ rollback work; memcpy(msg->rc,PATR_UPDATE,2); return(1); } /* 起共享内存 */ if (init_shm()<0) { $ rollback work; memcpy(msg->rc,PATR_NCS,2); return(1); } /* 删除最早的一日流水 */ $ commit work; memcpy(msg->rc,PATR_OK,2); return(1);}proc22(msg)DL_MSG *msg;{$char opcode[3],opl[2];$char c_date[9],c_time[20];$char hcdl_date[9];FILE *fp;int mapbool;strmove(opcode,msg->teller,2);$select oper_level into $opl from operater_arch where oper_code=$opcode;mapbool=fun_check(opcode,"start_mp",opl);get_time(c_date,c_time);switch(mapbool){case 1: memcpy(msg->rc,PATR_WCCX,2);return(0);case 2: memcpy(msg->rc,PATR_WQ,2);return(0);case 3: memcpy(msg->rc,PATR_QTB,2);return(0);case 4: memcpy(msg->rc,PATR_XGC,2);return(0);}if((fp=fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))!=NULL){memcpy(msg->rc,PATR_LJYQ,2); return(0);}fclose(fp);system("/usr/hcdl/online/bin/mp &");system("/usr/hcdl/onlineac/bin/mpac &");post_check("start_mp",msg);memcpy(msg->rc,PATR_OK,2);return(1);}proc01(msg)DL_MSG *msg;{$char opcode[3],opl[2];FILE *fp;int pid,pidac;char fun_name[20];char filename[20];char yn[2];int mapbool,mapbool1;strmove(opcode,msg->teller,2);$select oper_level into $opl from operater_arch where oper_code=$opcode;mapbool=fun_check(opcode,"stop_mp",opl);switch(mapbool){case 1:memcpy(msg->rc,PATR_WCCX,2);return(0);case 2:memcpy(msg->rc,PATR_WQ,2);return(0);case 3:memcpy(msg->rc,PATR_QTB,2);return(0);case 4:memcpy(msg->rc,PATR_XGC,2);return(0);}if((fp=fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))==NULL){ memcpy(msg->rc,PATR_LJWQ,2); return(0);} if (kill_mp(msg)<0) { memcpy(msg->rc,PATR_KIERR,2); printf("kill 进程失败 !!"); } else{ memcpy(msg->rc,PATR_OK,2); printf("kill 进程成功 !!"); }fscanf(fp,"%d %d",&pid,&pidac);sprintf(fun_name,"kill -9 %d %d",pid,pidac);system(fun_name);fclose(fp);system("rm /usr/hcdl/dlmg/server/report/start_mp");post_check("stop_mp",msg);memcpy(msg->rc,PATR_OK,2);return(1);}int get_time(char *c_date,char *c_time){long now_second;struct tm his;time(&now_second); his = *(localtime(&now_second));if (his.tm_year<90) his.tm_year+=2000;else his.tm_year+=1900; sprintf (c_date,"%04d%02d%02d\0",his.tm_year,his.tm_mon+1,his.tm_mday);sprintf (c_time,"%02d%02d%02d\0",his.tm_hour,his.tm_min,his.tm_sec);return(1);}post_check(fun,mmsg)char fun[];DL_MSG *mmsg;{$char funname[16];$int funuse;char choice[3];strcpy(funname,fun);$select fun_u into $funuse from fun_adm where fun_n = $funname;if(sqlca.sqlcode!=0) {memcpy(mmsg->rc,PATR_PDR,2);return(0); }funuse=funuse+1;$update fun_adm set fun_u=$funuse where fun_n=$funname;if(sqlca.sqlcode!=0) { memcpy(mmsg->rc,PATR_PXG,2); return(0); }return(1);}/* 6000日终处理 */ /*new proc91 written on 10.25.98*/proc91(msg)DL_MSG *msg;{/* RS6000轧帐 */ $char opl[2]; $ struct st_wtdwb tb_wtdwb; $ struct st_cxszzb tb_cxszzb; $ int tot_count; int i,len; tb_wtdwb.skzje=0;tb_wtdwb.ljwjzje=0;tb_wtdwb.ljyjzje=0; tb_wtdwb.plskje=0;tb_wtdwb.plfkje=0; /*to determine if this operator has the right to continue*/ /*int mapbool; strmove(opcode,msg->teller,2); $select oper_level into $opl from operater_arch where oper_code=$opcode; mapbool=fun_check(opcode,"start_mp",opl); get_time(c_date,c_time); switch(mapbool) { case 1: memcpy(msg->rc,PATR_WCCX,2);return(0); case 2: memcpy(msg->rc,PATR_WQ,2);return(0); case 3: memcpy(msg->rc,PATR_QTB,2);return(0); case 4: memcpy(msg->rc,PATR_XGC,2);return(0); } */ /*to see if /usr/hcdl/online/bin/&mp process has been killed*/ if((fopen("/usr/hcdl/dlmg/server/report/start_mp","r"))!=NULL) { memcpy(msg->rc,PATR_LJYQ,2); return(0); } /*生成本日单位轧帐表*/ $ declare p_cur cursor for select * from wtdwb; $ open p_cur; if(sqlca.sqlcode!=0) { puts("\n Fetch from p_cur(0) err!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(0); } /* 判断今日是否已做过轧帐*/ $ select count(*) into $tot_count from wtdwb where rq=today and jzbz="1"; if(sqlca.sqlcode!=0) { puts("\n Select from wtdwb err!"); memcpy(msg->rc,PATR_CXERR,2); return(0); } if(tot_count!=0)/*本日已做过轧帐*/ { /*只轧wtdwb,不再重轧cxszzb*/ /*生成本日单位轧帐表*/ $begin work; while(1) { $fetch p_cur into $tb_wtdwb; if(sqlca.sqlcode!=0&&sqlca.sqlcode!=SQLNOTFOUND) { puts("\n Fetch from p_cur err!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(0); } if(sqlca.sqlcode==SQLNOTFOUND) break; $select sum(je) into $tb_wtdwb.skzje from cxszzb where (not zt3="8") and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.skzje=0; $select sum(je) into $tb_wtdwb.plskje from cxszzb where zt3="7" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.plskje=0; $select sum(je) into $tb_wtdwb.plfkje from cxszzb where zt3="8" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.plfkje=0; $update wtdwb set (skzje,plskje,plfkje) =($tb_wtdwb.skzje,$tb_wtdwb.plskje,$tb_wtdwb.plfkje) where dwdm=$tb_wtdwb.dwdm; if(sqlca.sqlcode!=0) { puts("\n update wtdwb(2) err!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(0); } } } else/*本日第一次轧帐*/ { /*先轧cxszzb表,再轧wtdwb*/ $begin work; /*删除储蓄所轧帐表*/ $lock table cxszzb in exclusive mode; $delete from cxszzb; if(sqlca.sqlcode!=0) { puts("\n Delete cxszzb err!"); memcpy(msg->rc,PATR_DELE,2); $rollback work; return(0); } /*生成本日储蓄所轧帐表*/ $insert into cxszzb(sh,gyh,dslx,dwdm,jydm,kkfs,zt3,je,rq) select sh,jlyh,dslx,dwdm,jym,zt2,zt3,je,jkrq from ljlsb where jybz="0" and zt1="1" and jkrq=today; /*what if ljlsb is empty*/ if(sqlca.sqlcode!=0) /* fail to execute sql */ { puts("\n insert into cxszzb from ljlsb err1!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(1); } while(1) { $fetch p_cur into $tb_wtdwb; if(sqlca.sqlcode!=0&&sqlca.sqlcode!=SQLNOTFOUND) { puts("\n Fetch from p_cur err!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(0); } if(sqlca.sqlcode==SQLNOTFOUND) break; $select count(*),sum(je) into $tot_count,$tb_wtdwb.skzje from cxszzb where (not zt3="8") and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.skzje=0; $select count(*),sum(je) into $tot_count,$tb_wtdwb.ljwjzje from cxszzb where zt3="5" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.ljwjzje=0; $select count(*),sum(je) into $tot_count,$tb_wtdwb.ljyjzje from cxszzb where zt3="6" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.ljyjzje=0; $select count(*),sum(je) into $tot_count,$tb_wtdwb.plskje from cxszzb where zt3="7" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.plskje=0; $select count(*),sum(je) into $tot_count,$tb_wtdwb.plfkje from cxszzb where zt3="8" and dwdm=$tb_wtdwb.dwdm; if(tot_count==0) tb_wtdwb.plfkje=0; $update wtdwb set (skzje,ljwjzje,ljyjzje,plskje,plfkje,jzbz,rq) =($tb_wtdwb.skzje,$tb_wtdwb.ljwjzje,$tb_wtdwb.ljyjzje, $tb_wtdwb.plskje,$tb_wtdwb.plfkje,"0",today) where dwdm=$tb_wtdwb.dwdm; if(sqlca.sqlcode!=0) { puts("\n update wtdwb(1) err!"); memcpy(msg->rc,PATR_YBC,2); $rollback work; return(0); } } } $ commit work; $ close p_cur; $ free p_cur; puts("\n"); puts("\n 轧帐完成!"); memcpy(msg->rc,PATR_OK,2); return(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -