📄 dinstall.pc
字号:
exceptExit(gcretval,gcretstr);
}
}
if (gib6e >= 0)
{
gcretval=intoPdn_relayProc(); /*生成pdn_relay详细资料*/
if (gcretval != 0)
{
#ifdef YYDEBUG
DebugLog("pdn_relay");
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(gcretval,gcretstr);
}
}
if (gilines > 1)
{
gcretval=intoPdn_relateProc(); /*生成pdn_relate详细资料*/
if (gcretval != 0)
{
#ifdef YYDEBUG
DebugLog("pdn_relate");
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(gcretval,gcretstr);
}
}
PrintStatus("yqd========ready in p_orderdisproc ");
sprintf(gcretstr,"yqd====业务码:==%s",gcsrv_code);
PrintStatus(gcretstr);
sprintf(gcretstr,"yqd====strcmp(gcsrv_code,I7):==%d",strcmp(gcsrv_code,"I7"));
PrintStatus(gcretstr);
sprintf(gcretstr,"yqd====giv5e:==%d",giv5e);
PrintStatus(gcretstr);
/*对激活业务的特殊处理*/
if ( (giv5e >= 0) && ( strcmp(gcsrv_code,"I7") == 0 ) )
{
PrintStatus("yqd========in p_orderdisproc ");
gcretval=intoP_orderdisProc();
if (gcretval != 0)
{
#ifdef YYDEBUG
DebugLog("p_orderdis");
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(gcretval,gcretstr);
}
}
/*激活业务对号码资源进行处理,更新rn_number,rc_sim*/
if ( strcmp(gcsrv_code,"I7") == 0 )
{
EXEC SQL SELECT product_no INTO :lcproduct_no FROM pdn_pdinfo WHERE produce_id =:gcmainproduce_id AND produce_type = 1;
trim(lcproduct_no);
PrintStatus("yqd ========号码状态更新:产品号码为:=");
PrintStatus(lcproduct_no);
EXEC SQL SELECT COUNT(*) INTO :lcifexist
FROM rc_sim ,rn_number
WHERE rc_sim.prod_no=:lcproduct_no AND rc_sim.use_state='F'
AND rn_number.product_no=:lcproduct_no AND rn_number.use_state='D';
if (sqlca.sqlcode < 0)
{
exceptExit(-1,"查询rc_sim和rn_number表出错!");
}
if (sqlca.sqlcode > 0)
{
exceptExit(1,"该号码系统没有该号码,或该号码已经被激活");
}
/*改sim卡号的使用状态为预站*/
EXEC SQL UPDATE RC_SIM SET use_state= 'E'
WHERE prod_no=:lcproduct_no AND use_state='F';
if (sqlca.sqlcode < 0)
{
exceptExit(3," 更新sim卡使用状态字段出错。" );
}
EXEC SQL UPDATE RN_NUMBER SET use_state= 'E'
WHERE product_no=:lcproduct_no ;
if (sqlca.sqlcode < 0)
{
exceptExit(3," 更新RC_NO使用状态字段出错。" );
}
}
/*释放号码处理*/
for(i=0;i<strlen(gcproduct_nostr);i=0)
{
lcproduct_no[0]=0;
j=strcspn(gcproduct_nostr,"/");
memcpy(lcproduct_no,gcproduct_nostr,j);
lcproduct_no[j]=0;
trim(lcproduct_no);
EXEC SQL UPDATE rn_number SET use_state = 'A' WHERE product_no = :lcproduct_no AND use_state = 'E';
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"修改rn_number出错");
#ifdef YYDEBUG
DebugLog("%s",gcretstr);
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(-1,gcretstr);
}
/*zhg add 2004.7.21 begin*/
EXEC SQL SELECT 1 into :v_count from dual where EXISTS (select 1 from pdn_pdinfo where product_no = :lcproduct_no);
if(v_count)
{
strcpy(lcproduct_nosf,lcproduct_no);
if (strcmp(lcproduct_nosf,"")==0)
{
strcpy(lcproduct_nosf,"999");
}
strcpy(gcmainproduce_idsf,gcmainproduce_id);
if (strcmp(gcmainproduce_idsf,"")==0)
{
strcpy(gcmainproduce_idsf,"888");
}
/*EXEC SQL INSERT INTO RELEASENOLOG(SCBH,SFHM,SFSJ,FLAG) VALUES(:gcmainproduce_idsf,:lcproduct_nosf,sysdate,'1');
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"插入RELEASENOLOG出错1");
exceptExit(-1,gcretstr);
}
comment by wzq 20041220
*/
}
EXEC SQL SELECT 1 into :v_count from dual where EXISTS (select 1 from pd_pdinfo where product_no = :lcproduct_no);
if(v_count)
{
strcpy(lcproduct_nosf,lcproduct_no);
if (strcmp(lcproduct_nosf,"")==0)
{
strcpy(lcproduct_nosf,"999");
}
strcpy(gcmainproduce_idsf,gcmainproduce_id);
if (strcmp(gcmainproduce_idsf,"")==0)
{
strcpy(gcmainproduce_idsf,"888");
}
/*EXEC SQL INSERT INTO RELEASENOLOG(SCBH,SFHM,SFSJ,FLAG) VALUES(:gcmainproduce_idsf,:lcproduct_nosf,sysdate,'2');
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"插入RELEASENOLOG出错2");
exceptExit(-1,gcretstr);
}
comment by wzq 20041220
*/
}
strcpy(lcproduct_nosf,lcproduct_no);
if (strcmp(lcproduct_nosf,"")==0)
{
strcpy(lcproduct_nosf,"999");
}
strcpy(gcmainproduce_idsf,gcmainproduce_id);
if (strcmp(gcmainproduce_idsf,"")==0)
{
strcpy(gcmainproduce_idsf,"888");
}
/*EXEC SQL INSERT INTO RELEASENOLOG(SCBH,SFHM,SFSJ,FLAG) VALUES(:gcmainproduce_idsf,:lcproduct_nosf,sysdate,'3');
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"插入RELEASENOLOG出错3");
exceptExit(-1,gcretstr);
}
comment by wzq 20041220
*/
/*zhg add 2004.7.21 end*/
strcpy(gcproduct_nostr,gcproduct_nostr + 1 + j);
#ifdef YYDEBUG
DebugLog("good!!!,i=%d,j=%d,lcproduct_no=%s,gcproduct_nostr=%s",i,j,lcproduct_no,gcproduct_nostr);
#endif
}
/*释放ps编号处理*/
for(i=0;i<strlen(gcps_codestr);i=0)
{
lcps_code[0]=0;
j=strcspn(gcps_codestr,"/");
memcpy(lcps_code,gcps_codestr,j);
lcps_code[j]=0;
EXEC SQL UPDATE ps_handset_data SET use_state = 'A' WHERE ps_code = :lcps_code AND use_state = 'E';
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"修改ps_handset_data出错");
#ifdef YYDEBUG
DebugLog("%s",gcretstr);
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(-1,gcretstr);
}
strcpy(gcps_codestr,gcps_codestr + 1 + j);
#ifdef YYDEBUG
DebugLog("good!!!,i=%d,j=%d,gcps_code=%s,gcps_codestr=%s",i,j,lcps_code,gcps_codestr);
#endif
}
/*ADD BY zgw 20050425 *释放sim编号处理*/
for(i=0;i<strlen(gcsim_codestr);i=0)
{ /***********************************************/
/* sprintf("^*&*&^&(()*&)(^)*&)(*&)(&)(*&)(&yeqindan");*/
lcsim_code[0]=0;
j=strcspn(gcsim_codestr,"/");
memcpy(lcsim_code,gcsim_codestr,j);
lcsim_code[j]=0;
sprintf(temp_1,"zgw=========1092===lcsim_code:%s ",lcsim_code);
PrintStatus(temp_1);
EXEC SQL UPDATE rc_sim SET use_state = 'A' WHERE iccid = :lcsim_code AND use_state = 'E';
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"修改rc_sim出错");
#ifdef YYDEBUG
DebugLog("%s",gcretstr);
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(-1,gcretstr);
}
strcpy(gcsim_codestr,gcsim_codestr + 1 + j);
#ifdef YYDEBUG
DebugLog("good!!!,i=%d,j=%d,gcsim_code=%s,gcsim_codestr=%s",i,j,lcsim_code,gcsim_codestr);
#endif
sprintf(temp_1,"zgw=1110==!!,i=%d,j=%d,gcsim_code=%s,gcsim_codestr=%s",i,j,lcsim_code,gcsim_codestr);
PrintStatus(temp_1);
}
/*所有表纪录INSERT后,统一提交*/
if ( CicsCommit() != 0)
{
#ifdef YYDEBUG
DebugLog("0030");
fclose(tracefp);
CopyTr(gcfilename,gcyyerrlog);
#endif
exceptExit(10005,COMMIT_ERR );
}
else
{
setParamNum(10);
setRecColNum(3);
#ifdef YYDEBUG
DebugLog("gcmainaccept_id=%s",gcmainaccept_id);
DebugLog("gcmainproduct_id=%s",gcmainproduct_id);
#endif
PrintStatus("gcmainaccept_id");
PrintStatus(gcmainaccept_id);
PrintStatus("gcmainproduct_id");
PrintStatus(gcmainproduct_id);
addParams(BEGIN,gcmainproduce_id,gcmainproduce_no,gcmainaccept_id,gcmainorder_id,"",gcmainproduct_id,gcowncust_id,gcowncust_code,gcusercust_id,gcusercust_code,END);
for(i=0;i<100;i++)
{
if (gcoldcontract[i][0] != 0)
{
gcoldcontract[i][0]='c';
addFields(BEGIN,gcoldcontract[i],gcpayid[i],gcnewcontract[i],END);
}
}
#ifdef YYDEBUG
DebugLog("处理全部完成");
fclose(tracefp);
#endif
normalExit(0,LINK_SUCCESS);
}
}
/*
* 函数说明:生成pdn_pdinfo信息
* 输入参数:
* 输出参数:
* 返 回 值:
*/
int intoPdn_pdinfoProc()
{
EXEC SQL BEGIN DECLARE SECTION;
char lca0[PDINFO_FIELD][PDINFO_LENGTH] = {0};
char lcsub[3] = {0};
int lisub=0;
char lcroad_name[102] = {0};
char lcprod_addr[302] = {0};
char lccomments[260] = {0};
int j=0;
int k=0;
EXEC SQL END DECLARE SECTION;
if (gilines <= 1) /*非中继处理*/
{
/*删除全部旧纪录*/
if (gitimes == 2)
{
EXEC SQL DELETE FROM pdn_pdinfo WHERE produce_id = :gcmainproduce_id AND produce_type = 1;
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"删除pdn_pdinfo出错");
return -1;
}
}
}
else /*中继处理*/
{
if (gitimes == 2)
{
/*删除旧纪录*/
EXEC SQL DELETE FROM pdn_pdinfo WHERE produce_id IN (SELECT produce_id FROM pdn_relate WHERE rela_prd_id = :gcmainproduce_id AND rela_prd_no = :gcmainproduce_no AND (rela_type = '01' OR rela_type = '02')) AND produce_type = 1;
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"删除pdn_pdinfo出错");
return -1;
}
}
}
for (k=0;k<PDINFO_FIELD;k++)
{
lca0[k][0] = 0;
}
for(j=gia0s;j<=gia0e;j++)
{
ncpyRec(j,1,lcsub,3);
lisub=atoi(lcsub);
if ( lisub == 21 )
{
ncpyRec(j,3,lcroad_name,102);
trim(lcroad_name);
}
else if (lisub == 22 )
{
ncpyRec(j,3,lcprod_addr,302);
trim(lcprod_addr);
}
else if (lisub == 29)
{
ncpyRec(j,3,lccomments,260);
trim(lccomments);
}
else
{
ncpyRec(j,3,lca0[lisub],PDINFO_LENGTH);
trim(lca0[lisub]);
}
}
/*判断是否需要生成所有者客户编号*/
if ((lca0[3][0] != 0) && (gcowncust_id[0] == 0))
{
strcpy(gcowncust_id,lca0[3]);
}
else if ((lca0[3][0] != 0) && (gcowncust_id[0] != 0) && (strcmp(lca0[3],gcowncust_id) != 0))
{
strcpy(gcretstr,"所有者客户编号不一致");
return -1;
}
else if ((lca0[3][0] == 0) && (gcowncust_id[0] == 0))
{
sprintf(gcowncust_id,"%d",GenCustidProc());
trim(gcowncust_id);
if (strcmp(gcowncust_id,"-1") == 0)
{
strcpy(gcretstr,"生成所有者客户编号出错");
return -1;
}
}
/*判断是否需要生成使用者客户编号*/
/*如果只有一条客户资料纪录,认为所有者和使用者为同一客户*/
if ((lca0[4][0] != 0) && (gcusercust_id[0] == 0))
{
strcpy(gcusercust_id,lca0[4]);
}
else if ((lca0[4][0] != 0) && (gcusercust_id[0] != 0) && (strcmp(lca0[4],gcusercust_id) != 0))
{
strcpy(gcretstr,"使用者客户编号不一致");
return -1;
}
else if ((lca0[4][0] == 0) && (gcusercust_id[0] == 0))
{
if (gie7rows == 1 )
{
strcpy(gcusercust_id,gcowncust_id);
}
else
{
sprintf(gcusercust_id,"%d",GenCustidProc());
trim(gcusercust_id);
if (strcmp(gcusercust_id,"-1") == 0)
{
strcpy(gcretstr,"生成使用者客户编号出错");
return -1;
}
}
}
if (gilines <= 1) /*非中继处理*/
{
/*删除全部旧纪录*/
EXEC SQL INSERT INTO pdn_pdinfo(produce_id,produce_type,product_id,owncust_id,usercust_id,exch_code,product_no,unit_type,unit_code,month_rent,prod_prop,prod_class,prod_pwd,prot_code,stop_stype,use_state,time_len,town_id,measure_code,linebox_id,detail_id,road_name,prod_addr,prod_zip,near_tel,out_flag,out_dist,stime,alt_time,comments,safe_level,limit_time,post_flag,post_info,post_addr,post_name,post_zip,town_flag,bill_type,prod_using,rela_flag,rela_prod_id,spare_fld0,spare_fld1,spare_fld2,spare_fld3,spare_fld4,spare_fld5)
VALUES(:gcmainproduce_id,1,:gcmainproduct_id,:gcowncust_id,:gcusercust_id,:lca0[5],:lca0[6],:lca0[7],:lca0[8],:lca0[9],:lca0[10],:lca0[11],:lca0[12],:lca0[13],:lca0[14],:lca0[15],:lca0[16],:lca0[17],:lca0[18],:lca0[19],:lca0[20],:lcroad_name,:lcprod_addr,:lca0[23],:lca0[24],:lca0[25],:lca0[26],sysdate,:lca0[28],:lccomments,:lca0[30],to_date(:lca0[31],'YYYY-MM-DD HH24:MI:SS'),:lca0[32],:lca0[33],:lca0[34],:lca0[35],:lca0[36],:lca0[37],:lca0[38],:lca0[39],:lca0[40],:lca0[41],:lca0[42],:lca0[43],:lca0[44],:lca0[45],:lca0[46],to_date(:lca0[47],'YYYY-MM-DD HH24:MI:SS'));
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"插入pdn_pdinfo出错");
return -1;
}
}
else /*中继处理*/
{
for(p=0;p<gisrvs;p++)
{
#ifdef YYDEBUG
DebugLog("gisrvs=%d",gisrvs);
DebugLog("p=%d",p);
DebugLog("gcnewproduce_id=%s",gcnewproduce_id[p]);
DebugLog("gcnewproduct_id=%s",gcnewproduct_id[p]);
DebugLog("gcnewproduct_no=%s",gcnewproduct_no[p]);
#endif
EXEC SQL INSERT INTO pdn_pdinfo(produce_id,produce_type,product_id,owncust_id,usercust_id,exch_code,product_no,unit_type,unit_code,month_rent,prod_prop,prod_class,prod_pwd,prot_code,stop_stype,use_state,time_len,town_id,measure_code,linebox_id,detail_id,road_name,prod_addr,prod_zip,near_tel,out_flag,out_dist,stime,alt_time,comments,safe_level,limit_time,post_flag,post_info,post_addr,post_name,post_zip,town_flag,bill_type,prod_using,rela_flag,rela_prod_id,spare_fld0,spare_fld1,spare_fld2,spare_fld3,spare_fld4,spare_fld5)
VALUES(:gcnewproduce_id[p],1,:gcnewproduct_id[p],:gcowncust_id,:gcusercust_id,:lca0[5],:gcnewproduct_no[p],:lca0[7],:lca0[8],:lca0[9],:lca0[10],:lca0[11],:lca0[12],:lca0[13],:lca0[14],:lca0[15],:lca0[16],:lca0[17],:lca0[18],:lca0[19],:lca0[20],:lcroad_name,:lcprod_addr,:lca0[23],:lca0[24],:lca0[25],:lca0[26],sysdate,:lca0[28],:lccomments,:lca0[30],to_date(:lca0[31],'YYYY-MM-DD HH24:MI:SS'),:lca0[32],:lca0[33],:lca0[34],:lca0[35],:lca0[36],:lca0[37],:lca0[38],:lca0[39],:lca0[40],:lca0[41],:lca0[42],:lca0[43],:lca0[44],:lca0[45],:lca0[46],to_date(:lca0[47],'YYYY-MM-DD HH24:MI:SS'));
if (sqlca.sqlcode < 0)
{
strcpy(gcretstr,"插入pdn_pdinfo出错");
return -1;
}
}
}
#ifdef YYDEBUG
DebugLog("pdn_pdinfo,gcowncust_id=%s",gcowncust_id);
#endif
return 0;
}
/*
* 函数说明:生成pdn_phone信息
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -