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

📄 cdrreportdetail.java

📁 WAP PUSH后台源码,WAP PUSH后台源码
💻 JAVA
字号:
package com.sxit.wap.threads;
import java.io.*;
import java.sql.*;
import java.util.Date;
public class CDRReportDetail {
	//两个序列号
	private int fileHeadNo = 1;
	private long fileBodyNo = 1;
	private int fileNo = 0;
	private long SystemCount = 10000000000l;
	//为生成文件头准备的信息
	private java.sql.Timestamp firstTime = null;
	private java.sql.Timestamp lastTime = null;
	private int  totalRows =0;
	private int  totalFee = 0;
	//
	public CDRReportDetail () {
	}

	public String getFileName (Date date, Date currTime) {
		fileNo = (fileNo +1 ) % 10000 ;
		if (fileNo ==0) fileNo =1;
		System.out.println(date);//
		return "15" +new java.text.SimpleDateFormat("MM").format (date)
			+new java.text.SimpleDateFormat("yyyyMMddHHmm").format (currTime)+
			"030"+fillIntZero ( fileNo, 4)+".req";
	}

	public String dateToString ( Date date ) {
		if (date ==null)
			return "";
		return	new java.text.SimpleDateFormat("yyyyMMddHHmmss").format (date);
	}
	public void beforGetFileHead (java.sql.Timestamp firstTime,java.sql.Timestamp lastTime,int  totalRows,int  totalFee) {
		this.firstTime = firstTime;
		this.lastTime = lastTime;
		this.totalRows = totalRows;
		this.totalFee = totalFee;
	}
	private String fillIntZero ( int t, int times ) {
		int j = 1;
		for ( int i = 0; i < times; i++ )
			j = j * 10;
		String str = Integer.toString ( j + t );
		str = str.substring ( str.length () - times ); //从0001开始,排满9999
		return str;
	}
	private String fillLongZero ( long t, int times ) {
		long j = 1;
		for ( int i = 0; i < times; i++ )
			j = j * 10;
		String str = Long.toString ( j + t );
		str = str.substring ( str.length () - times ); //从0001开始,排满9999
		return str;
	}

	public String getFileHead (Date currTime) {
		//0103 00 20030808112125 901 105 030 20030805110431 20030807171726 0000000090 00000850000
		//0025 00 20040228142328 901 105 030 20040228000000 20040228000000 1410065410 1410065408
		String str  = "";
		str += fillIntZero(fileHeadNo,4);//从0001开始,排满9999
		fileHeadNo = (fileHeadNo +1 ) % 10000  ;
		if (fileHeadNo ==0)fileHeadNo = 1;
		str += "00";//文件版本号
		str += dateToString(currTime);//文件产生时间
		str += "904";//文件生成方系统代码
		str += "105";//文件采集方系统代码
		str += "030";//用户归属地代码,国内用户取省分代码
		str += dateToString(firstTime);;//记录开始日期时间,结果集第一条记录时间
		str += dateToString(lastTime);;//记录结束日期时间,结果集最后一条记录时间
		str += fillLongZero(totalRows,10);//总记录数CHAR(10)
		str += fillLongZero(totalFee*10,10);//总费用CHAR(10)人民币:厘。
		//str += "0";//备注
		str += "\n";//换行

		return str;
	}

	public void doFileBody (ResultSet result,PrintWriter out) {
		Date tempDate = null;
		try {
			while ( result.next () ) {
				out.print( Long.toString (fileBodyNo) );//1.流水号1-9999999999
				fileBodyNo = (fileBodyNo +1) % 10000000000l ;
				if (fileBodyNo ==0) fileBodyNo= 1;
				out.print ("\t") ;
				out.print ( "0" );//2.详单类型
				out.print ("\t") ;
				out.print ( new String(result.getString (10 ).getBytes("ISO8859-1")) );//3.SP标识 从数据库中读取---------------------cp name
				out.print ("\t") ;
				//out.print ( "");//4.SP侧本次服务登陆名-----------------------""
				out.print ( "\t" );
				//out.print ( "");//5.移动终端IP地址-------------------------------""
				out.print ( "\t01\t" );
				out.print ( "WAP1.2" );//6.业务类型
				out.print ( "\t" );
				//out.print ( new String(result.getString (1 ).getBytes(),"GB2312") );//7.业务类型名称----------------------------------sp name
				out.print ( "\t" );
				//out.print ( result.getString ( 5 ) );//8.业务代码-----------------------------
				//out.print ( "\t" );
				out.print ( new String(result.getString (8 ).getBytes(),"GB2312") );//9.业务名称---------------------------channel name
                                out.print ( "\t" );
				out.print ((result.getString (7)==null || "".equals(result.getString (7)))?"":new String(result.getString (7 ).getBytes(),"GB2312"));//10.内容/应用代码---------------------channel id
				out.print ( "\t" );
				out.print ( new String(result.getString (8 ).getBytes(),"GB2312") );//11.内容/应用名称------------------------channel name
				out.print ( "\t" );
				out.print ( result.getString ( 6 ) );//12.MDN号码--------------------------mdn
				out.print ( "\t" );
				out.print ( "86" + result.getString ( 6 ));//13.IMSI号码--------------------------""
				out.print ( "\t" );
				out.print ( "WAP" );//14.NAI用户名----------------------------"WAP"
				out.print ( "\t" );
				out.print ( "NAIDomain");//15.NAI的Domain字符串---------------------------"NAIDomain"
				out.print ( "\t" );
				tempDate = result.getTimestamp ( 2 ) ;
				if (tempDate !=null)
					out.print ( new java.text.SimpleDateFormat("yyyyMMddHHmmss").format (tempDate) );//16.起始时间---------------------------???
				out.print ( "\t" );
				tempDate = result.getTimestamp ( 2 ) ;//tempDate = result.getDate ( 3 ) ;
				if (tempDate !=null)
					out.print ( new java.text.SimpleDateFormat("yyyyMMddHHmmss").format (tempDate) );//17.终止时间---------------------------""
				out.print ( "\t" );
				//out.print ( "" );//18.数量---------------------------""
				out.print ( "\t" );
				//out.print ( "" );//19.时长---------------------------""
				out.print ( "\t" );
				//out.print ( "");//20.上行流量---------------------------""
				out.print ( "\t" );
				//out.print ( "" );//21.下行流量---------------------------""
				out.print ( "\t" );
				//out.print ( "");//22.总流量---------------------------""
				out.print ( "\t" );
				out.print ( result.getString ( 4 ) + "0" );//23.优惠前金额---------------------------
				out.print ( "\t" );
				out.print ( result.getString ( 4 ) + "0" );//24.优惠后金额---------------------------
				out.print ( "\t" );
				out.print ( "0" );//25.优惠金额---------------------------0
				out.print ( "\t" );
				out.print ( "4" );//26.计费单位---------------------------4
				out.print ( "\t" );
				out.print ( result.getString ( 5 ) );//27.计费类型---------------------------FeeType
				out.print ( "\t" );
				//out.print ( "" );//28.费率描述代码---------------------------""
				out.print ( "\t" );
				//out.print ( "");//29.优惠描述代码---------------------------""
				out.print ( "\t" );
				out.print ( new String(result.getString (9 ).getBytes("ISO8859-1")) );//30.URL---------------------------
				out.print ( "\t" );
				out.print ( "030");//31.系统编码---------------------------"030"
				out.print ( "\t" );
				out.print (Long.toString( SystemCount) );//32.系统内部主键---------------------------SysIntraKey
				SystemCount ++ ;
				if (SystemCount >Long.MAX_VALUE-2)
					SystemCount =1;
				out.print ( "\t" );
				out.print ( "0" );//33.系统保留1
				out.print ( "\t" );
				//out.print ( "" );//34.系统保留2
				out.print ( "\t" );
				//out.print ( "" );//35.备注
				//out.print ( "\t" );
				out.print ( "\n" );//36.换行
				String rowid = result.getString("rowid");
				Database.updateBySql("update wap_user_sub_his set is_done = 1 where rowid= '" + rowid + "'");
			}

		} catch ( Exception e1 ) {
			e1.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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