⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dinstall.pc

📁 小灵通机卡分离模块的设计.建立在数据库服务器
💻 PC
📖 第 1 页 / 共 5 页
字号:
			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 + -