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

📄 hbdt.java

📁 JAVA邮件系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
*
* Hbdt.java
*
*/

import java.io.*;
import java.sql.*;
import java.util.Calendar;

/*

 @author Liyan

*/

public class Hbdt
{
	//航班基本信息:
	//航班动态的基本信息:
	
	//公司名称、国内国际、航班号、机型、日期、
	//起飞机场、落地机场、航班状态、计划起飞、计划落地、实际起飞、实际落地
	//航空公司名称:
	String sCompany,sGngj,sHbh,sJxdm,sZxrq;
	String[] sQfjc,sLdjc,sHbzt,sJhqf,sJhld,sSjqf,sSjld;
	
	//其它基本变量:一个航班的最大经停点、实际经停点、特定航线航班数
	int nMaxLength=10,nHbhLength=0,nLineLength=0;
	
	//航线查询的变量:
	DBOperater DBLine;
	ResultSet rsLine;
		
	Hbdt()
	{
		//构造函数
		//一些初始化的过程
		sQfjc = new String[nMaxLength];
		sLdjc = new String[nMaxLength];
		sHbzt = new String[nMaxLength];
		sJhqf = new String[nMaxLength];
		sJhld = new String[nMaxLength];
		sSjqf = new String[nMaxLength];
		sSjld = new String[nMaxLength];
	}
	
	
//航班动态:按航班号查询航班情况
	public boolean DtHbhQuery(String sHbh)
	{
		this.sHbh=sHbh;
	//加入时间的判断:
		//取得航班动态中的执行日期:
		String sDate="";
		String sSql="SELECT distinct zxrq";
		sSql+=" FROM hbdt WHERE hbh ='"+sHbh+"' order by zxrq desc";
		
		DBOperater DB = new DBOperater("Hb");
		ResultSet rs = DB.executeQuery(sSql);
		if(rs==null){
			DB.close();
			nHbhLength=0;
			return false;
		}
		try
		{
			if(rs.next()){
				sDate=rs.getString(1);
			}else{
				DB.close();
				nHbhLength=0;
				return false;
			}
		}catch(Exception ex){
			DB.close();
			nHbhLength=0;
			return false;
		}
		DB.close();
		
		//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
		Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
		int nc[] =getZxrq(sDate);
		c2.set(nc[0],nc[1]-1,nc[2],48,0);
		if(c2.getTime().before(c1.getTime()))
			return false;
		String sAddition = " AND zxrq = '"+sDate+"'";
		
		
	//把起飞落地情况依次放入数组:
	//执行日期的处理:hbdt是否只放每个航班的最新情况?
		//寻找航班起点:
		//String sSql="SELECT * FROM hbdt WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%' ";
		//sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%')";
		sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc,jxdm,zxrq,gngj";
		sSql+=" FROM hbdt WHERE hbh ='"+sHbh+"' AND zxrq = '"+sDate+"'";
		sSql+=" AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"'";
		sSql+=" AND zxrq ='"+sDate+"')";
		
		DB = new DBOperater("Hb");
		rs = DB.executeQuery(sSql);
		if(rs==null){
			DB.close();
			nHbhLength=0;
			return false;
		}
		try
		{
			if(rs.next()){
				sHbzt[0]=rs.getString(1);
				sQfjc[0]=rs.getString(2);
				sJhqf[0]=rs.getString(3);
				sSjqf[0]=rs.getString(4);
				sJhld[0]=rs.getString(5);
				sSjld[0]=rs.getString(6);
				sLdjc[0]=rs.getString(7);
				sJxdm=rs.getString(8);
				sZxrq=rs.getString(9);
				sGngj=rs.getString(10);
			}else{
				DB.close();
				nHbhLength=0;
				return false;
			}
		}catch(Exception ex){
			DB.close();
			nHbhLength=0;
			return false;
		}
		DB.close();
		
		
		//寻找中间点:
		String Condition=" And qfjc<>'"+sQfjc[0]+"'";
		for(int i=1;i<nMaxLength;i++){
			
			//sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc FROM hbdt WHERE hbh ='"+sHbh+"' "+Condition;
			//sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"' "+Condition+")" ;
			sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc FROM hbdt WHERE hbh ='"+sHbh+"' ";
			sSql+="and zxrq = '"+sDate+"' "+Condition;
			sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"' ";
			sSql+="and zxrq = '"+sDate+"' "+Condition+")" ;
			
			DB = new DBOperater("Hb");
			rs = DB.executeQuery(sSql);
			if(rs==null){
				DB.close();
				nHbhLength=0;
				return false;
			}
			try
			{
				if(rs.next()){
					sHbzt[i]=rs.getString(1);
					sQfjc[i]=sLdjc[i-1]=rs.getString(2);
					sJhqf[i]=rs.getString(3);
					sSjqf[i]=rs.getString(4);
					sJhld[i]=rs.getString(5);
					sSjld[i]=rs.getString(6);
					sLdjc[i]=rs.getString(7);
				}else{
					DB.close();
					break;
				}
			}catch(Exception ex){
				DB.close();
				nHbhLength=0;
				return false;
			}
			DB.close();
			nHbhLength++;
			Condition+=" And qfjc<>'"+sQfjc[i]+"'";
		}
		
		//获得落地时间:
		for(int i=0;i<=nHbhLength;i++)
		{
			sSql="SELECT yjld,sjld FROM hbdt WHERE hbh ='"+sHbh+"'";
			sSql+=" AND ldjc='"+sLdjc[i]+"' and zxrq = '"+sDate+"'";
			
			DB = new DBOperater("Hb");
			rs = DB.executeQuery(sSql);
			if(rs==null){
				DB.close();
				nLineLength=0;
				return false;
			}
			try
			{
				if(rs.next()){
					sJhld[i]=rs.getString(1);
					sSjld[i]=rs.getString(2);
				}else{
					DB.close();
					break;
				}
			}catch(Exception ex){
				DB.close();
				nLineLength=0;
				return false;
			}
			DB.close();
		}
		
		nHbhLength++;
		return true;
	}
	
	
//航班动态:按航线查询航班情况
	/*public void setDtLineQuery(String sFrom,String sTo)
	{
		//String sLineSql="SELECT * FROM hbdt WHERE qfjc='"+this.zwqcToSzdm(sFrom)+"' AND ldjc='"+this.zwqcToSzdm(sTo);
		//sLineSql+="' order by hbh";
		String sLineSql="SELECT * FROM hbdt WHERE qfjc like '%"+this.zwqcToSzdm(sFrom)+"%' AND ldjc like '%"+this.zwqcToSzdm(sTo);
		sLineSql+="%' order by hbh";
		DBLine = new DBOperater("hb");
		rsLine = DBLine.executeQuery(sLineSql);
		this.countNember("SELECT count(*) FROM hbdt WHERE qfjc like '%"+this.zwqcToSzdm(sFrom)+"%' AND ldjc like '%"+this.zwqcToSzdm(sTo)+"%'");
	}*/
	
	public String[][] DtLineQuery(String sFrom,String sTo)
	{
		//加入时间的判断:
		//取得航班动态中的执行日期:
		String sDate="";
		String sSql="SELECT distinct zxrq";
		sSql+=" FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom);
		sSql+="' AND ldjc = '"+this.zwqcToSzdm(sTo)+"' order by zxrq desc";
		
		DBOperater DB = new DBOperater("Hb");
		ResultSet rs = DB.executeQuery(sSql);
		
		try
		{
			if(rs.next()){
				sDate=rs.getString(1);
			}else{
				DB.close();
				nHbhLength=0;
				return null;
			}
		}catch(Exception ex){
			DB.close();
			nHbhLength=0;
			return null;
		}
		DB.close();
		
		//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
		Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
		int nc[] =getZxrq(sDate);
		c2.set(nc[0],nc[1]-1,nc[2],48,0);
		if(c2.getTime().before(c1.getTime()))
			return null;
		String sAddition = " AND zxrq = '"+sDate+"'";
		
	//查询符合条件的航班数量:
		sSql="SELECT count(*) FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom);
		sSql+="' AND ldjc = '"+this.zwqcToSzdm(sTo)+"' and zxrq = '"+sDate+"'";
		DB = new DBOperater("hb");
		rs = DB.executeQuery(sSql);
		int nCount=0;
		try
		{
			System.out.println("nCount0:"+nCount);
			if(rs.next()){
				nCount = rs.getInt(1);
				System.out.println("nCount1:"+nCount);
			}
		}catch(Exception ex){
			System.out.println(ex.toString());
			return null;
		}
		DB.close();
		
		if(nCount==0)
			return null;
		String[][] sArray = new String[nCount][11];
		//依次为:    hbh、hbzt、qfjc、jhqf、sjqf、jhld、sjld、ldjc、jxdm、zxrq、gngj
		//表中的位置:  1、   3、   5、   6、   8、  10、  12、  13、  14、  15、 16
		
	//查询符合条件的航班:
		sSql="SELECT * FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom)+"' AND ldjc = '"+this.zwqcToSzdm(sTo);
		sSql+="' and zxrq='"+sDate+"' order by hbh";
		DB = new DBOperater("hb");
		rs = DB.executeQuery(sSql);
		try
		{
			for(int i=0;i<nCount;i++)
				if(rs.next()){
					sArray[i][0] = rs.getString(1);
					sArray[i][1] = rs.getString(3);
					sArray[i][2] = rs.getString(5);
					sArray[i][3] = rs.getString(6);
					sArray[i][4] = rs.getString(8);
					sArray[i][5] = rs.getString(10);
					sArray[i][6] = rs.getString(12);
					sArray[i][7] = rs.getString(13);
					sArray[i][8] = rs.getString(14);
					sArray[i][9] = rs.getString(15);
					sArray[i][10] = rs.getString(16);
				}
		}catch(Exception ex){
			System.out.println(ex.toString());
			return null;
		}
		DB.close();
		return sArray;
	}
	
	/*public String[] DtLineQuery()
	{
		if(rsLine==null)
			return null;
		String[] sArray = new String[11];
		//依次为:    hbh、hbzt、qfjc、jhqf、sjqf、jhld、sjld、ldjc、jxdm、zxrq、gngj
		//表中的位置:  1、   3、   5、   6、   8、  10、  12、  13、  14、  15、 16
		try
		{
			if(rsLine.next()){
				sArray[0] = rsLine.getString(1);
				sArray[1] = rsLine.getString(3);
				sArray[2] = rsLine.getString(5);
				sArray[3] = rsLine.getString(6);
				sArray[4] = rsLine.getString(8);
				sArray[5] = rsLine.getString(10);
				sArray[6] = rsLine.getString(12);
				sArray[7] = rsLine.getString(13);
				sArray[8] = rsLine.getString(14);
				sArray[9] = rsLine.getString(15);
				sArray[10] = rsLine.getString(16);
				return sArray;
			}
		}catch(Exception ex){
			return null;
		}
		return null;
	}
	
	//关闭连接。
	public void DtLineClose()
	{
		if(DBLine!=null)
			DBLine.close();
	}*/
	
	//航班动态:按航空公司查询航班:
	public String[] getHbdtCompany(String sCompany,int nPageLarge,int nPageNember)
	{
		if(sCompany==null){
			return null;
		}
		
		//加入时间的判断:
		//取得航班动态中的执行日期:
		String sDate="";
		String sSql="SELECT distinct zxrq";
		sSql+=" FROM hbdt WHERE hbh like '"+sCompany+"%' order by zxrq desc";
		
		DBOperater DB = new DBOperater("Hb");
		ResultSet rs = DB.executeQuery(sSql);
		
		try
		{
			if(rs.next()){
				sDate=rs.getString(1);
			}else{
				DB.close();
				nHbhLength=0;
				return null;
			}
		}catch(Exception ex){
			DB.close();
			nHbhLength=0;
			return null;
		}
		DB.close();
		
		//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
		Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
		int nc[] =getZxrq(sDate);
		c2.set(nc[0],nc[1]-1,nc[2],48,0);
		if(c2.getTime().before(c1.getTime()))
			return null;
		String sAddition = " AND zxrq = '"+sDate+"'";
		
		sSql="Select distinct hbh From hbdt Where hbh like '"+sCompany+"%'";
		sSql+=" and zxrq = '"+sDate+"' order by hbh";
		DB = new DBOperater("Hb");
		rs = DB.executeQuery(sSql);
		if(rs==null){
			DB.close();
			return null;
		}
		
		if(nPageNember<1)
			nPageNember=1;
		
		try
		{
			for(int i=0;i<(nPageNember-1)*nPageLarge;i++)
				if(rs.next()){

				}else{
					DB.close();
					return null;
				}
				
		}catch(Exception ex){
			DB.close();
			return null;
		}
		
		String[] sTmpArray = new String[nPageLarge];
		int nTmp=0;
		try

⌨️ 快捷键说明

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