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

📄 dphsacti.pc

📁 小灵通机卡分离模块的设计.建立在数据库服务器
💻 PC
📖 第 1 页 / 共 4 页
字号:
      {
#ifdef	YYDEBUG
        DebugLog("cn_cust_info error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
}
/**-----------------------生成Pdn_account,pdn_accountinfo详细资料----------------------------------------------------*/
	if(strstr(gctable_bunch,"A3")!=0)
	{
			PrintStatus("yqd419进入pdn——account");

		gcretval=intoPdn_accountProc();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_servcontrol error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
}
/**-----------------------生成Pdn_phssim详细资料----------------------------------------------------*/
	if(strstr(gctable_bunch,"J2")!=0)
	{
		PrintStatus("yqd434进入pdn——phssim");

		gcretval=intoPdn_phssimProc();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_phssim error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
}
/**-----------------------生成Pdn_incr_prodProc详细资料----------------------------------------------------*/


	if(strstr(gctable_bunch,"G0")!=0)
	{	
PrintStatus("yqd448进入pdn——incr——prodproc");

		gcretval=intoPdn_incr_prodProc();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_incr_prod error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
    }
/**-----------------------生成Pdn_phone详细资料----------------------------------------------------*/
	if(strstr(gctable_bunch,"A1")!=0)
	{
		PrintStatus("yqd465 进入pdn——phone");

		gcretval=intoPdn_phoneProc();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_phone error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }

}

/**-----------------------生成p_orderdis详细资料----------------------------------------------------*/
PrintStatus("yqd536======");
		gcretval=intop_orderdis();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_phone error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
PrintStatus("yqd546======p_orderdis");
/**-----------------------生成Pdn_prod_prop详细资料----------------------------------------------------*/

		gcretval=intoPdn_prod_propProc();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_phone error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }


/**-----------------------生成Pdn_prepay详细资料----------------------------------------------------*/
PrintStatus("yqd======563");

		gcretval=intoPdn_prepay();
      if (gcretval != 0)
      {
#ifdef	YYDEBUG
        DebugLog("Pdn_phone error");
        fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
        exceptExit(gcretval,gcretstr);
      }
PrintStatus("yqd485程序运行完成");
	/*************************************************************/

   if ( CicsCommit() != 0)
    {
#ifdef	YYDEBUG
      DebugLog("commit error");
      fclose(tracefp);
		CopyTr(gcfilename,gcyyerrlog);
#endif
		  exceptExit(10005,COMMIT_ERR );
    }
    else
    {
    	#ifdef	YYDEBUG
      DebugLog("finish ");
      fclose(tracefp);
			#endif
		/*
			设置返回值
			1.生产编号
		  2.生产流水
		  3.受理编号
		  4.订单编号
		  5.产品编号
			char  gcmainproduce_id[26] = {0};
			char  gcmainproduce_no[26] = {0};
			char  gcmainorder_id[26] = {0};
			char  gcmainaccept_id[26] = {0};
			char  gcmainproduct_id[26] = {0};

			
			sprintf(gcretstr,"1080yqd	gccust_id:%s",	gccust_id);
*/
			setParamNum(5);

			addParams(BEGIN,gcmainproduce_id,gcmainproduce_no,gcmainaccept_id,gcmainorder_id,gcmainproduct_id,END);
      normalExit(0,LINK_SUCCESS);

		}

}

/*--------------------end main---------------------------------*/


/*
* 函数说明:生成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;
	int i=0;
	int linum = 0;
	EXEC SQL END DECLARE SECTION;
	/*PrintStatus("yqd587 come in the inter of pdn_pdinfoproc");

	EXEC SQL SELECT COUNT(*) INTO :linum FROM pdn_pdinfo
	WHERE product_id=:gcmainproduct_id AND produce_type=1;
*/
	EXEC SQL DELETE FROM pdn_pdinfo
	WHERE produce_id=:gcmainproduce_id AND produce_type=1;
 	sprintf(gcretstr,"yqd:sqlca.sqlcode=%d",sqlca.sqlcode);
	PrintStatus(gcretstr);

/*	linum=-1;
	EXEC SQL SELECT COUNT(*) INTO :linum FROM dc_sim_preprod
	WHERE product_id=:gcoldproduct_id ;
	PrintStatus(gcoldproduct_id);
	sprintf(gcretstr,"yqd6018 RECORD COUNT IN  DC_SIM_PREPROD=%d",linum);
	PrintStatus(gcretstr);
*/


	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,
  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)
  (SELECT :gcmainproduce_id,1,:gcmainproduct_id,
  								:gcGenCustid,:gcGenCustid,
  								exch_code,:gcproduct_no,unit_type,unit_code, month_rent,
  								prod_prop,prod_class,prod_pwd,prot_code,
  								use_state,time_len,town_id,measure_code,linebox_id,detail_id,
  								road_name,prod_addr,prod_zip,near_tel,out_flag,out_dist,sysdate,
  								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
									FROM dc_sim_preprod
									WHERE product_id =:gcoldproduct_id);

	EXEC SQL SELECT COUNT(*) INTO :linum FROM pdn_pdinfo
	WHERE produce_id=:gcmainproduce_id ;
	 sprintf(gcretstr,"yqd====631record of pdn_pdinfo:%d",linum);
		PrintStatus(gcretstr);


		  if (sqlca.sqlcode < 0)
		  {
	   strcat(gcretstr,"插入pdn_pdinfo出错");
	 sprintf(gcretstr,"yqd628:%d,%s",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
	PrintStatus("yqd dphsacti1110");
	PrintStatus(gcretstr);
 	    return -1;
		  }


	#ifdef	YYDEBUG
	DebugLog("pdn_pdinfo,gcowncust_id=%s",gcowncust_id);
	#endif
	return 0;
}


/*
* 函数说明:生成pdn_phone信息
* 输入参数:
* 输出参数:
* 返 回 值:
*/

int intoPdn_phoneProc()

{
	EXEC SQL BEGIN DECLARE SECTION;

	char lca1[PHONE_FIELD][PHONE_LENGTH] = {0};
	char lcsub[3] = {0};
	int  lisub=0;
	char lcsrowid[5] = {0};
	char lccrowid[5] = {0};
	int  j=0;
	int  k=0;
	int  li_rows=0;
	char lcswitch_id[11] = {0};
	char lcno_level[11] = {0};
	int linum=0;
	EXEC SQL END DECLARE SECTION;

	/*PrintStatus("yqd672 in inter of pdn_phoneproc");
*/
	EXEC SQL SELECT switch_id,no_level
	INTO :lcswitch_id,:lcno_level
	FROM rn_number
	WHERE product_no = :gcproduct_no;
      if (sqlca.sqlcode < 0)
      {
        strcat(gcretstr,"查询pdn_phone出错");
        return -1;
      }

 /* 	EXEC SQL SELECT COUNT(*) INTO :linum FROM rn_number
	WHERE product_no = :gcproduct_no;
 	sprintf(gcretstr,"yqd687 RECORD COUNT IN  rn_number=%d",linum);
	PrintStatus(gcretstr);
*/

	/*生成电话编号*/
	      sprintf(gcphone_id,"%d",GenPhoneidProc());
        trim(gcphone_id);
        if (strcmp(gcphone_id,"-1") == 0)
        {
          strcat(gcretstr,"生成电话编号出错");
          return -1;
        }


      EXEC SQL INSERT INTO pdn_phone(produce_id,produce_type,phone_id,product_id,
      product_no,prodno_grade,sele_flag,group_no,inside_no,
      tel_id,lead_no,ldist_type,secrecy_mode,line_type,subprod_num,
      revs_type,fac_code,measure_id,hcol_id,hcol_seq,switch_id,
      prodno_name,spare_fld0,spare_fld1,spare_fld2,spare_fld3,
      spare_fld4,spare_fld5)
      VALUES(:gcmainproduce_id,1,:gcphone_id,:gcmainproduct_id,
      :gcproduct_no,:lcno_level,'1','','',0,'','','1',0,'','1',
      :gcpsnm,'','','',:lcswitch_id,'','','','','','','');
      if (sqlca.sqlcode < 0)
      {
        strcat(gcretstr,"插入pdn_phone出错");
        return -1;
      }

    /*   	EXEC SQL SELECT COUNT(*) INTO :linum FROM pdn_phone
	WHERE produce_id = :gcmainproduce_id;
 	sprintf(gcretstr,"yqd717 RECORD COUNT IN  pdn_phone=%d",linum);
	PrintStatus(gcretstr);
*/

	return 0;
}


/*
* 函数说明:生成pdn_incr_prod信息
* 输入参数:
* 输出参数:
* 返 回 值:
*/

int intoPdn_incr_prodProc()

{
	EXEC SQL BEGIN DECLARE SECTION;

	char lcg0[6][12] = {0};
	char lcsub[3] = {0};
	char lcsrowid[5] = {0};
	char lccrowid[5] = {0};
	int  lisub=0;
	int  j=0;
	int  k=0;
	int  ltemp=0;
	char lcprod_class[3]={0};
	int linum=0;
	int RetCode;
	EXEC SQL END DECLARE SECTION;

			EXEC SQL DECLARE curincrprod CURSOR  FOR SELECT prod_class
			FROM dc_sim_preincr
			WHERE product_id  = :gcoldproduct_id;
			linum=-1;

/*			EXEC SQL SELECT COUNT(*) INTO :linum
			FROM dc_sim_preincr
			WHERE product_id  = :gcoldproduct_id;

	sprintf(gcretstr,"yqd763RECORDCOUNTIN  dc_sim_preincr=%d",linum);
	PrintStatus(gcretstr);

*/

			EXEC SQL OPEN curincrprod;
			while (1)
			{
			    EXEC SQL FETCH curincrprod INTO :lcprod_class;
	      	RetCode = checkError("dc_sim_preincr",LINK_SELECT);
	      	if ( RetCode == DATAERROR )
	      	{
	      		EXEC SQL close curincrprod;
	      		return -1 ;
					}
					if ( ( RetCode==DATANOTFOUND )||( getCurRecRowNum() > MAX_ROW_NUM ) )
					{
							break;
					}
/*	sprintf(gcretstr,"yqd776  lcprod_class=%s",lcprod_class);
	PrintStatus(gcretstr);*/
					trim(lcprod_class);
					
					EXEC SQL INSERT INTO pdn_incr_prod(produce_id,produce_type,product_id,prod_class,STIME,cons_flag)
					VALUES(:gcmainproduce_id,1,:gcmainproduct_id,:lcprod_class,sysdate,'A');
					if (sqlca.sqlcode < 0)
					{
						strcat(gcretstr,"插入pdn_incr_prod出错");
    				return -1;
    			}

				/*	EXEC SQL	SELECT COUNT(*) INTO :v_count1 FROM dc_prod_prop WHERE prod_class = :lcprod_class;
					if (sqlca.sqlcode < 0)
					{
								EXEC SQL close curincrprod;
								strcat(gcretstr,"查询dc_prod_prop表出错");
								return -1;
					}
					
					if (v_count1 == 0)
					{由于暂时不考虑pdn_prod_prop表,当在dc_prod_prop有数据的时候
									要写入该表,所以在只记录在没有数据的增值产品类别
						
											EXEC SQL INSERT INTO pdn_incr_prod(produce_id,produce_type,product_id,prod_class,STIME,cons_flag)
      								VALUES(:gcmainproduce_id,1,:gcmainproduct_id,:lcprod_class,sysdate,'A');
      								if (sqlca.sqlcode < 0)
      								{
        									strcat(gcretstr,"插入pdn_incr_prod出错");
        									return -1;
      								}
      		}
      		*/
			}
			EXEC SQL close curincrprod;


	/*		linum=-1;
			EXEC SQL SELECT COUNT(*) INTO :linum
			FROM pdn_incr_prod
			WHERE product_id  = :gcoldproduct_id AND produce_id = :gcmainproduce_id AND produce_type = 1 ;

	sprintf(gcretstr,"yqd558RECORDCOUNTIN  pdn_incr_prod=%d",linum);
	PrintStatus(gcretstr);
*/
	return 0;
}


/*
* 函数说明:生成pdn_prod_prop信息
* 输入参数:
* 输出参数:
* 返 回 值:
*/

int intoPdn_prod_propProc()

{
	EXEC SQL BEGIN DECLARE SECTION;
	char lcprod_class[3] = {0};
	char lcitem_code[41] = {0};
	char lcitem_value[256] = {0};
	int  RetCode=0;
	EXEC SQL END DECLARE SECTION;
	
			EXEC SQL DECLARE curdc_sim_preprop CURSOR  FOR SELECT 
			prod_class,item_code,item_value
			FROM dc_sim_preprop
			WHERE product_id  = :gcoldproduct_id;

			EXEC SQL OPEN curdc_sim_preprop;
			if (sqlca.sqlcode < 0)
			{
			strcpy(gcretstr,"打开游标出错");
			return -1;
			}
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -