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

📄 mgetfee.c

📁 电力与银行通讯的源码 1.应用tuxedo中间件. 2.与银行的前置机通讯. 3.proc*c 的应用
💻 C
📖 第 1 页 / 共 3 页
字号:
/*	MGETFEE(MQRYFEE):取费用(或查询费用)(该文件有改动需要同步更新mqryfee.cpp,完全一致,只有函数名不相同)	Input : 		序号 说明		长度	备注		1	客户编号	10			2	查询类别	1	0-只取该客户编号费用1-按该户合同号取费用		3	起始日期	8	YYYYMMDD,空白--不限制		4	截止日期	8	YYYYMMDD,空白--不限制		5	电费类别	2	00-全部(查询使用)                    11-所有应收(收费使用)		6	强制标志	2	00--不返回费用明细数据包;且超过阈值也不返回费用记录结果集,但返回记录数;				10--返回费用明细数据包;但超过阈值只返回记录数;				01-强制返回费用记录结果集,不返回费用明细数据;				11-强制返回所有结果				(缴费时默认给11,查询时默认给00)	Output: 		1	返回状态(可以转换成int型)	8	>0-返回的费用记录数											=0-没有费用记录											<0-访问失败											-100-该客户编号不存在		2	实际的结果记录数n	4	如不等于上面的值,则认为查询结果太多		3	费用明细记录数m		4	用于校验		4	费用记录结果集		226 * n	将各费用记录以一定格式拼成的字符串,格式:附		5	费用明细数据包		37 * m	结果集的格式:	电费流水	CHAR(15)		费用月份	CHAR(6)		YYYYMM	电费总额	CHAR(13)	##########.##	违约金额	CHAR(13)	##########.##	户名		CHAR(40)		用电地址	CHAR(80)		表号		CHAR(20)		平起码		CHAR(10)	#######.##	平止码		CHAR(10)	#######.##	客户编号	CHAR(10)		抄表顺序	CHAR(6)	明细结果的格式:	电费流水	CHAR(15)		项目代码	CHAR(2)	将电费中的各个项目进行编码,每一项都代表一个实际的名称	项目值		CHAR(20)	可以为金额、数量、说明等*/#include "public.h"#include "feeid.h"#define SIZE_OF_MAIN 223	/*主结构的大小*/#define SIZE_OF_DETAIL 37	/*明细结构的大小*/#define MAX_RESULT	100		/*最大的结果数,如不是强制处理,则大于该数则不处理*/#define MAX_DETAIL_ONE 40   /*每条记录的最大明细数*/#ifdef __cplusplusextern "C"#endifvoid#ifdef MW_CICSmain(MW_SVCINFO * transb)#endif#ifdef MW_TUXEDOMGETFEE(MW_SVCINFO * transb)#endif{	/*定义输入参数*/	char szKHBH[11] = "";	char szDateFrom[9] = "";	char szDateTo[9] = "";	int  iFlag = 0;	int  iFeeFlag = 0;	int  iForceFlag = 0;	/*定义输出参数*/	char *szResult ;		/*主要信息结果集*/	char *szResultDetail;	/*明细费用结果集*/	int  iResultCount = 0;	/*结果记录数*/	int  iDetailCount = 0;	/*明细记录数*/	/*定义数据库数据处理变量*/	double  dFeeID = 0;	/*电费流水	CHAR(15)	*/	char	szFeeMonth[7] = "";	/*费用月份	CHAR(6)		YYYYMM*/	double  dSumFee = 0;	/*电费总额	CHAR(13)	##########.##*/	double  dLateFee = 0;	/*违约金额	CHAR(13)	##########.##*/	char	szAcctName[41] = "";/*户名		CHAR(40)	*/	char	szAddress[81] = "";	/*用电地址	CHAR(80)	*/	char	szMeterID[21] = "";/*表号		CHAR(20)	*/	double  dBeginPos = 0;/*平起码		CHAR(10)	#######.##*/	double  dEndPos = 0;/*平止码		CHAR(10)	#######.##*/	char	szKH_NO[11] = "";/*客户编号		CHAR(10)	*/	char	szCBSX[7] = "";/*抄表顺序		CHAR(6)	*/	/*明细变量:数据库中各字段对应的变量,将数据取到这些变量中,并对每一个有数据的字段设置到明细中*/double d_DFID;double d_CSYSHJ; double d_BSDF;   double d_PDF ;   double d_FDF ;   double d_GDF ;   double d_JBDF;   double d_LLDF;   double d_DSK1;   double d_DSK2;   double d_DSK3;   double d_DSK4;   double d_DSK5;   double d_DSK6;   double d_DSK7;   double d_DSK8;   double d_PZM ;   double d_PQM ;   double d_FZM ;   double d_FQM ;   double d_GZM ;   double d_GQM ;   double d_WGZM;   double d_WGQM;   double d_PBS  ;       double d_FBS  ;       double d_GBS  ;       double d_WGBS ;       double d_PJFDL;       double d_FJFDL;       double d_GJFDL;       double d_WGJFDL;      double d_JFRL  ;      double d_TZL   ;      double d_PDFDJ ;      double d_FDFDJ ;      double d_GDFDJ ;      double d_JBDFDJ;      double d_DSK1DJ;      double d_DSK2DJ;      double d_DSK3DJ;      double d_DSK4DJ;      double d_DSK5DJ;      double d_DSK6DJ;      double d_DSK7DJ;      double d_DSK8DJ;      double d_PDL   ;      double d_FDL   ;      double d_GDL   ;      double d_WGDL  ;      double d_DL    ;      CS_NUMERIC cs_DFID;        /*电费ID Numeric(15,0) IDENTITY,*/char sz_CBCBM[8] = "";     /*抄表册编码 VARCHAR(7),*/char sz_JLZZBH[13] = "";   /*计量装置编号 VARCHAR(12),*/char sz_DFNY[7] = "";      /*电费年月 CHAR(6) ,*/char sz_CBSXH[7] = "";     /*抄表顺序号 CHAR(6),*/char sz_YSKSSJ[11] = "";   /*应收开始时间 Datetime DEFAULT GETDATE(),*/CS_NUMERIC cs_CSYSHJ;      /*初始应收合计 Numeric(15,4) Default 0,*/CS_NUMERIC cs_BSDF;        /*补收电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_PDF ;        /*平电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_FDF ;        /*峰电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_GDF ;        /*谷电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_JBDF;        /*基本电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_LLDF;        /*力率电费 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK1;        /*代收款1 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK2;        /*代收款2 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK3;        /*代收款3 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK4;        /*代收款4 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK5;        /*代收款5 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK6;        /*代收款6 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK7;        /*代收款7 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK8;        /*代收款8 Numeric(15,4) Default 0,*/CS_NUMERIC cs_PZM ;        /*平止码 Numeric(10,2),*/CS_NUMERIC cs_PQM ;        /*平起码 Numeric(10,2),*/CS_NUMERIC cs_FZM ;        /*峰止码 Numeric(10,2),*/CS_NUMERIC cs_FQM ;        /*峰起码 Numeric(10,2),*/CS_NUMERIC cs_GZM ;        /*谷止码 Numeric(10,2),*/CS_NUMERIC cs_GQM ;        /*谷起码 Numeric(10,2),*/CS_NUMERIC cs_WGZM;        /*无功止码 Numeric(10,2),*/CS_NUMERIC cs_WGQM;        /*无功起码 Numeric(10,2),*/int i_YGBL        ;/*有功倍率 INT,*/int i_WGBL        ;/*无功倍率 INT,*/CS_NUMERIC cs_PBS  ;       /*平变损 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_FBS  ;       /*峰变损 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_GBS  ;       /*谷变损 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_WGBS ;       /*无功变损 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_PJFDL;       /*平计费电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_FJFDL;       /*峰计费电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_GJFDL;       /*谷计费电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_WGJFDL;      /*无功计费电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_JFRL  ;      /*计费容量 Numeric(13,0) DEFAULT 0,*/int  i_GLYS  ;      /*功率因数 int,*/CS_NUMERIC cs_TZL   ;      /*调整率 Numeric(6,4),*/CS_NUMERIC cs_PDFDJ ;      /*平电费单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_FDFDJ ;      /*峰电费单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_GDFDJ ;      /*谷电费单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_JBDFDJ;      /*基本电费单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK1DJ;      /*代收款1单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK2DJ;      /*代收款2单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK3DJ;      /*代收款3单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK4DJ;      /*代收款4单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK5DJ;      /*代收款5单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK6DJ;      /*代收款6单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK7DJ;      /*代收款7单价 Numeric(15,4) Default 0,*/CS_NUMERIC cs_DSK8DJ;      /*代收款8单价 Numeric(15,4) Default 0,*/char sz_CCBH[21] = "";     /*出厂编号 VARCHAR(20) NULL,    --表号*/int  i_TSBZ;               /*特殊标志 tinyint     NULL,    --对应多块表*/CS_NUMERIC cs_PDL   ;      /*平抄见电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_FDL   ;      /*峰抄见电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_GDL   ;      /*谷抄见电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_WGDL  ;      /*无功抄见电量 Numeric(13,0) DEFAULT 0,*/CS_NUMERIC cs_DL    ;      /*总表抄见电量 Numeric(13,0) DEFAULT 0,*/char sz_RZBZSM[21] = "";   /*入帐说明		VARCHAR(20)*/char sz_KHXM[41] = "";     /*户名		CHAR(40)	*/char sz_YDDZ[81] = "";     /*用电地址	CHAR(80)	*/char szKHBHTmp[11] = "";char szTemp1[100] = "";CS_NUMERIC cs_DF_SUM  ;       /*电费总额=CSYSHJ-YSZJE*/CS_NUMERIC cs_WYJ    ;      /*违约金=YSWYJCKJE-WYJSSJE-WYJJMSPJE-WYJHJSPJE*/double d_DF_SUM;double d_WYJ;	/*定义临时变量*/	char szSql[5000] = "";	char szDelSql[100] = "delete from  I_TMP_BANK_QRY where ID=@@spid";	void *ppVar[100];	unsigned char pParam[] = TYPE_CHAR TYPE_CHAR TYPE_CHAR TYPE_INT TYPE_INT TYPE_INT;	int nStatus = 0;	char szMsg[255];	int i,j;	BOOL bRet;	CMiddleWare mwMidWare;	char *szInBuf;	char *szOutBuf;	char szTemp[1000]= "";	int iReturn;	int  nBufferSize = 0;	/*输出的Buffer大小*/	MW_Init(&mwMidWare,transb);	szInBuf = MW_GetInBuf(&mwMidWare);	if (szInBuf == NULL)	{		gf_Return(&mwMidWare,-1,"没有输入参数!");		return;	}/*	MW_Trace("OK1");*/	MW_Trace("请注意下面是输入参数:");		MW_Trace(szInBuf);	/*取输入参数*/	strncpy(szKHBH,szInBuf,10);	szKHBH[10] = '\0';	strncpy(szTemp,szInBuf + 10,1);	szTemp[1] = '\0';	iFlag = atoi(szTemp);	strncpy(szDateFrom,szInBuf + 11,8);	szDateFrom[8] = '\0';	strncpy(szDateTo  ,szInBuf + 11 + 8,8);	szDateTo[8] = '\0';	strncpy(szTemp,szInBuf + 11 + 8 + 8,2);	szTemp[2] = '\0';	iFeeFlag = atoi(szTemp);	strncpy(szTemp,szInBuf + 11 + 8 + 8 + 2,2);	szTemp[2] = '\0';	iForceFlag = atoi(szTemp);/* 输入参数:客户编号;起始日期;截止日期;           根据合同号:0-否,1-是;           电费类别:0-全部(欠费表与历史表中),                    11-所有应收应退,                    21-所有欠费(超过收费期限),                    22-当年欠费,                    23-历欠(非当年欠费) 输出参数:查询结果:0-正常结束, -100-客户编号不存在或重复@ac_khbh VARCHAR(10),@act_from CHAR(8),@act_to CHAR(8),@ai_gjhth INT,@ai_dflb INT,@ai_cxjg INT output	*/	ppVar[0] = &iReturn;	/*执行取费用存储过程*/	bRet = DB_ExecuteStoredProcedureWithResult(&theDatabase, "Up_c_bank_get_fee", &nStatus, 		ppVar,1,		pParam,szKHBH,szDateFrom,szDateTo,iFlag,iFeeFlag,0);	if(!bRet || nStatus)	//失败	{		DB_ExecuteSQL(&theDatabase,szDelSql);		gf_Return(&mwMidWare,-1,"执行Up_c_bank_get_fee失败");		return;	}	if (iReturn == -100)	{		DB_ExecuteSQL(&theDatabase,szDelSql);		gf_Return(&mwMidWare,-100,"该客户不存在");		return;	}	/*从临时表中取数据,并分配输出的数据缓冲*/	/*1、取记录数,并分配内存*/	sprintf(szSql,"select count(*) from I_TMP_BANK_QRY where ID=@@spid");	ppVar[0] = &iResultCount;	if(!DB_SQLPrepare(&theDatabase, szSql, ppVar, 1))	{		DB_ExecuteSQL(&theDatabase,szDelSql);		sprintf(szMsg,"SQL = %s Prepare失败!",szSql);		gf_Return(&mwMidWare,-1,szMsg);		return;	}	DB_SQLFetch(&theDatabase);	DB_SQLDone(&theDatabase);	/*根据数据量分配内存空间*/	if (iForceFlag == 0)	{

⌨️ 快捷键说明

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