?? main.java~236~
字號:
package mmspiccenter;/** 當前彩信預報始終時間只提供一個時次的。 * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: hf</p> * @author rjz * @version 1.0 */import java.util.*;public class Main extends Engine{ public DBConnection db = null;//new DBConnection(/*Config.db_name ,Config.db_host*/);//null;//new DBConnection(Config.db_name ,Config.db_host); public CreateXmlSmilTxt createMms = new CreateXmlSmilTxt(); public getIniString ini = new getIniString(); public Main() { super("Main"); setDaemon(true); ReadIni(); db = new DBConnection(/*Config.db_name ,Config.db_host*/); } public boolean ReadIni(){ try{ System.out.println("-------圖片驅動程序-------MMSPicCenter1.0-------"); System.out.println("請不要用鼠標點擊command窗口。如果點擊了,請回車!"); Config.odbcstring = ini.getString("[LOCAL]","odbcstring") ; System.out.println(" 數據庫連接驅動 : "+ Config.odbcstring ); Config.db_host=ini.getString("[LOCAL]","db_host"); System.out.println(" 數據庫IP地址 : "+Config.db_host); Config.db_name=ini.getString("[LOCAL]","db_name"); System.out.println(" 數據庫名稱 : "+Config.db_name); Config.db_user=ini.getString("[LOCAL]","db_user"); System.out.println(" 數據庫用戶名 : "+Config.db_user); Config.db_password=ini.getString("[LOCAL]","db_password"); System.out.println(" 數據庫密碼 : "+Config.db_password ); Config.w_width = ini.getInt("[LOCAL]","w_width"); System.out.println(" 大圖標寬 : "+Config.w_width ); Config.w_high = ini.getInt("[LOCAL]","w_high"); System.out.println(" 大圖標高 : "+Config.w_high ); Config.t_width = ini.getInt("[LOCAL]","t_width"); System.out.println(" 小圖標寬 : "+Config.t_width ); Config.t_high = ini.getInt("[LOCAL]","t_high") ; System.out.println(" 小圖標寬 : "+ Config.t_high ); Config.www_url = ini.getString("[LOCAL]","www_url") ; System.out.println(" www_url : "+ Config.www_url ); return true; }catch(Exception e){ return false; } } public void LoadThread(){ createMms.startup() ; } public void run(){ LoadStaMmsParameter staLoad = new LoadStaMmsParameter(); staLoad.loadMmsPara() ;//裝載mms_parameter表 LoadThread(); while(true){ staLoad.loadSta();//裝載stn表 System.out.println("******************"+Config.sta_idV); for(int i = 0;i < Config.sta_idV .size();i++){ String sta_id = (String)((Vector)Config.sta_idV.get(i)).get(0);//取得一個站點號 String cityName = (String)((Vector)Config.sta_idV.get(i)).get(1); int donePara = 0; for(int j = 0;j<Config.mmsParaV .size();j++){ MmsParameter mmsPara = (MmsParameter)Config.mmsParaV.get(j);//取得一個彩信類別 String mms_type = mmsPara.mms_type ; String base_url = mmsPara.base_url ;//圖片元素的目錄 String type_url = mmsPara.type_url ;//輸出xml文件的目錄 String service_code = mmsPara.service_code ;//圖片的記費字段 String period = mmsPara.period ;//圖片預報的時段 String bg_url = mmsPara.bg_url ;//圖片底圖的路徑 String title_url = mmsPara.title_url ;//標題圖片的路徑 String title_x = mmsPara.title_x;//標題圖片的x坐標 String title_y = mmsPara.title_y;//標題圖片的y坐標 String w_url = mmsPara.w_url;//天氣符號所在的目錄路徑!注意不是圖片路徑 //天氣和氣溫圖片的坐標:按天為單位,只標記開始天氣的坐標和第一個氣溫符號的坐標 String w_x = mmsPara.w_x; Vector w_xV = new Vector();//天氣符號的x坐標組 String w_y = mmsPara.w_y; Vector w_yV = new Vector();//天氣符號的y坐標組 String t_url = mmsPara.t_url;//氣溫符號所在的目錄路徑!注意不是圖片路徑 String t_x = mmsPara.t_x; Vector t_xV = new Vector();//氣溫符號的x坐標組 String t_y = mmsPara.t_y; Vector t_yV = new Vector();//氣溫符號的y坐標組 StringTokenizer st_w_x = new StringTokenizer(w_x,","); StringTokenizer st_w_y = new StringTokenizer(w_y,","); StringTokenizer st_t_x = new StringTokenizer(t_x,","); StringTokenizer st_t_y = new StringTokenizer(t_y,","); String xmltitle = mmsPara.xmltitle+sta_id ; String sp_url = mmsPara.sp_url ; String hour = mmsPara.hour ; System.out.println("ddd"+xmltitle); while(st_w_x.hasMoreElements() ){ w_xV.addElement((String)st_w_x.nextElement() );//向天氣符號的x坐標組添加元素 } while(st_w_y.hasMoreElements() ){ w_yV.addElement((String)st_w_y.nextElement()) ;//向天氣符號的y坐標組添加元素 } while(st_t_x.hasMoreElements() ){ t_xV.addElement((String)st_t_x.nextElement()) ;//向氣溫符號的x坐標組添加元素 } while(st_t_y.hasMoreElements() ){ t_yV.addElement((String)st_t_y.nextElement()) ;//向氣溫符號的y坐標組添加元素 } Vector w1V = new Vector();//開始天氣圖片名稱的組[qing.tga,duoyun.tga,...] Vector w2V = new Vector();//結束天氣圖片名稱的組 Vector t1V = new Vector();//開始氣溫圖片組的組[[[-,1,5],[2,4]],[],[],[],[]]最多5組 Vector t2V = new Vector();//結束氣溫圖片組的組[[[-,1,5],[2,4]],[],[],[],[]]最多5組 //下面開始查詢數據 int days = Integer.parseInt(period)/24; title_url += getTitlePicName(Integer.parseInt(period)); int a = 1;//當a = days是圖片數據是完整的 int dataNum = 0; String txt = ""; for(;a<days+1;a++){//按天 查詢天氣數據 String day = String.valueOf(a*24); String getWeatherDataSql = "select * from weather_data_all where period = "+ day+" and sta_id = "+sta_id+" and TO_DAYS(create_time)=TO_DAYS(now()) and hour = '"+hour+"'"; Vector v = new Vector(); v = (Vector)db.execute(getWeatherDataSql); System.out.println(v); if( v.size()>0 ){//if dataNum ++; //for(int z = 0 ;z <v.size() ;z++){// int z = 0; WeatherData weatherData = new WeatherData( (String)((Vector)v.get(z)).get(0),(String)((Vector)v.get(z)).get(1), (String)((Vector)v.get(z)).get(2),(String)((Vector)v.get(z)).get(3), (String)((Vector)v.get(z)).get(4),(String)((Vector)v.get(z)).get(5), (String)((Vector)v.get(z)).get(6),(String)((Vector)v.get(z)).get(7), (String)((Vector)v.get(z)).get(8),(String)((Vector)v.get(z)).get(9), (String)((Vector)v.get(z)).get(10),(String)((Vector)v.get(z)).get(11), (String)((Vector)v.get(z)).get(12),(String)((Vector)v.get(z)).get(13), (String)((Vector)v.get(z)).get(14),(String)((Vector)v.get(z)).get(15), (String)((Vector)v.get(z)).get(16),(String)((Vector)v.get(z)).get(17), (String)((Vector)v.get(z)).get(18),(String)((Vector)v.get(z)).get(19), (String)((Vector)v.get(z)).get(20),(String)((Vector)v.get(z)).get(21), (String)((Vector)v.get(z)).get(22),(String)((Vector)v.get(z)).get(23), (String)((Vector)v.get(z)).get(24),(String)((Vector)v.get(z)).get(25)); txt += weatherData.city_name +day+"小時預報"+"天氣:"+weatherData.b_w +"轉"+weatherData.e_w+ "氣溫:"+weatherData.b_t +"到"+weatherData.e_t +"攝氏度"+"空氣質量:"+weatherData.airquality +"污染物:"+ weatherData.pollutant+"污染指數:"+weatherData.pollutant_num+"日出時間:"+weatherData.sun_up+"日落時間:"+weatherData.sun_down ; //根據氣象數據確定圖片 //Vector picUrlV = new Vector(); String w1 = weatherData.b_w ; String w2 = weatherData.e_w; String t1 = weatherData.b_t; String t2 = weatherData.e_t; String w1Url = w_url+Utility.getWeatherPic(w1)+".tga";//tupian sun String w2Url = w_url+Utility.getWeatherPic(w2)+".tga";//tupian duoyun w1V.addElement(w1Url) ; w2V.addElement(w2Url); Vector t1UrlV = new Vector();//tupian[1,2] Vector t2UrlV = new Vector();//tupian[2,5] for(int b = 0;b<t1.length() ;b++){ int c = b + 1; t1UrlV.addElement(t_url+t1.substring(b,c)+".tga" ) ; } t1V.addElement(t1UrlV) ; for(int b = 0;b<t2.length() ;b++){ int c = b + 1; t2UrlV.addElement(t_url+t2.substring(b,c)+".tga" ) ; } t2V.addElement(t2UrlV); //} /* tianqi2 + and1 + biaoti 1 + qiwen + and1 + qiwen + C*/ // int picNum = w1V.size() + w2V.size() + 1 + 1 + t1UrlV.size()*t1V.size() + t1V.size() + t2UrlV.size()*t2V.size() + t1V.size() ; }else{//end if System.out.println("No Data : "+getWeatherDataSql); } }//end for a if(dataNum == days){ System.out.println(dataNum+"/"+days); System.out.println(bg_url+"bg_url"); Pic pic = new Pic(bg_url,title_url,title_x, title_y,w1V,w2V,w_xV,w_yV,t1V,t2V, t_xV,t_yV,txt,xmltitle,base_url+type_url, sta_id,sp_url,base_url,cityName,hour,service_code,period,type_url); System.out.println(bg_url+"+"+title_url+"+"+title_x+"+"+title_y+"+"+w1V+"+"+w2V+"+"+w_xV+"+"+w_yV+"+"+t1V+"+"+t2V+"+"+t_xV+"+"+t_yV); System.out.println("圖片數據全!"); Config.picV .push(pic); donePara ++; //Sta_idIsDone(sta_id); }else{ System.out.println("圖片數據不全!"); } try{ sleep(10); }catch(Exception e){ System.out.println("Exception In Main().run()"+e.toString()); } }//ChuLiWanYiGeMMSLeiBei System.out.println(donePara+"_+_"+Config.mmsParaV .size()); if(donePara == Config.mmsParaV .size() ){ Sta_idIsDone(sta_id); } try{ sleep(10); }catch(Exception e){ System.out.println("Exception In Main().run()"+e.toString()); } } try{ sleep(1000); }catch(Exception e){ System.out.println("Exception In Main().run()"+e.toString()); } } } public String getTitlePicName(int period){ String result = ""; int day = period/24; if(day == 1){ result = "tomorrow.tga"; }else if(day == 2){ result = "after2.tga"; }else if(day == 3){ result = "after3.tga"; }else if(day == 4){ result = "after4.tga"; }else if(day == 5){ result = "after5.tga"; } return result; } public void Sta_idIsDone(String sta_id){ String updateSql = /*"insert into stn (sta_id,name)values('12','fd')";*/"update stn set done_time = '"+Utility.getDateString()+"' where sta_id = '"+sta_id+"'"; System.out.println("updateSql:"+updateSql); Integer i = db.executeUpdate(updateSql); System.out.println("update result:"+i); } public static void main(String[] args) { Main main1 = new Main(); main1.startup() ; while(true){ try{ Thread.sleep(1000); }catch(Exception e){} } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -