📄 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 + -