/// <summary> /// 获取最新发布的春运报文信息 /// </summary> /// <param name="dt">预报时间</param> /// <returns></returns> private SpringForecastModel GetWelfareForecastInfoNow(DateTime dt) { try { SpringForecastModel infoList = null; // 原始方法 string strSQL = "select * from LFS_SPRINGFORECAST where ddatetime = to_date('" + dt.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') "; OracleHelper oh = new OracleHelper("HAIKOUConnect"); DataTable dTable = oh.ExecuteDataTable(strSQL); if (dTable != null && dTable.Rows.Count > 0) { infoList = new SpringForecastModel(); infoList.Ddatetime = dt; infoList.Numid = Convert.ToInt32(dTable.Rows[0]["NUMID"].ToString()); //报文期号 infoList.TotalTrendTitle = dTable.Rows[0]["TOTALTRENDTITLE"].ToString(); //春运天气总趋势预测标题 infoList.TotalTrendForecast = dTable.Rows[0]["TOTALTRENDFORECAST"].ToString(); //春运天气总趋势预测内容 infoList.ThreeDayForecastTitle = dTable.Rows[0]["THREEDAYFORECASTTITLE"].ToString(); //未来3天天气预报 一级标题 infoList.ThreeDayForecast = dTable.Rows[0]["THREEDAYFORECAST"].ToString(); //未来3天天气预报 标题 infoList.ThreeDayContent = dTable.Rows[0]["THREEDAYCONTENT"].ToString(); //未来3天天气预报 内容 infoList.ThreeDayTrafficForecast = dTable.Rows[0]["THREEDAYTRAFFICFORECAST"].ToString(); //未来三天交通气象预报 标题 infoList.MainTrafficRoad = dTable.Rows[0]["MAINTRAFFICROAD"].ToString(); //未来三天交通气象预报 1、主要交通路段 内容 infoList.QiozhouStrait = dTable.Rows[0]["QIOZHOUSTRAIT"].ToString(); //未来三天交通气象预报 2、琼州海峡 内容 infoList.ProvinceForcastTitle = dTable.Rows[0]["PROVINCEFORECASTTITLE"].ToString(); //三、未来4~7天全省天气趋势预报标题 infoList.FutureProvinceForcast = dTable.Rows[0]["FUTUREPROVINCEFORECAST"].ToString(); //三、未来4~7天全省天气趋势预报 内容 infoList.ForecastName = dTable.Rows[0]["FORECASTER"].ToString(); //预报员姓名 infoList.ForecastDate = dTable.Rows[0]["FORECASTDATE"].ToString(); //报文发布时间 } return(infoList); } catch (Exception ex) { return(null); } }
/// <summary> /// 获取春运报文信息,如果没有则返回默认报文信息 /// </summary> /// <param name="DDateTime">预报时间</param> /// <returns></returns> public SpringForecastModel GetSpringForecastInfo(DateTime DDateTime) { SpringForecastModel info = GetWelfareForecastInfoNow(DDateTime); if (info == null) { return(GetSpringForecastFromGrid(DDateTime)); } return(info); }
/// <summary> /// 制作最新春运报文信息 /// </summary> /// <param name="dt"></param> /// <returns></returns> private SpringForecastModel GetSpringForecastFromGrid(DateTime dt) { SpringForecastModel infoList = null; try { infoList = new SpringForecastModel(); string sql = "select max(NUMID) as NOID from LFS_SPRINGFORECAST t"; OracleHelper oh = new OracleHelper("HAIKOUConnect"); string newNum = oh.ExecuteScalar(sql).ToString();//欧洲中心最新数据时间 string timesql = "select max(ddatetime) as latesttime from LFS_SPRINGFORECAST t"; string latestTime = oh.ExecuteScalar(timesql).ToString();//欧洲中心最新数据时间 if (latestTime != "") { DateTime ecdt = DateTime.Parse(latestTime); if (dt.Ticks > ecdt.Ticks) { infoList.Numid = Convert.ToInt32(newNum) + 1; //报文期号 } else { infoList.Numid = Convert.ToInt32(newNum);//报文期号 } } else { infoList.Numid = 1; } string proSql = string.Format(@"select * from wechat_prodocut_hn t where PRO_ID =5");//取入库的三天预报报文数据 DataTable protable = oh.ExecuteDataTable(proSql); string pro_content = protable.Rows[0]["PRO_CONTEXT"].ToString(); string pastpro = ""; //天气回顾 string futurepro = ""; //天气展望 if (pro_content.Split(';').Length >= 3) { pastpro = pro_content.Split(';')[0].Split(':')[1]; futurepro = pro_content.Split(';')[1] + ";" + pro_content.Split(';')[2]; } else if (pro_content.Split(';').Length == 2) { pastpro = pro_content.Split(';')[0].Split(':')[1]; futurepro = pro_content.Split(';')[1]; } else if (pro_content.Split('。').Length >= 3) { pastpro = pro_content.Split('。')[0].Split(':')[1] + "。"; futurepro = pro_content.Split('。')[1] + "。" + pro_content.Split('。')[2] + "。"; } else if (pro_content.Split(';').Length == 2) { pastpro = pro_content.Split('。')[0].Split(':')[1]; futurepro = pro_content.Split('。')[1]; } infoList.Ddatetime = dt; infoList.TotalTrendTitle = DateTime.Now.ToString("yyyy") + "年春运天气总趋势预测"; infoList.TotalTrendForecast = "预计" + DateTime.Now.ToString("yyyy") + "年春运期间(2月1日~3月12日),我市XXX"; infoList.ThreeDayForecastTitle = "未来三天春运天气预报"; //未来3天天气预报 一级标题 infoList.ThreeDayForecast = "未来3天天气预报"; //未来3天天气预报 第一段 标题 infoList.ThreeDayContent = pastpro; //未来3天天气预报 第一段 内容 infoList.ThreeDayTrafficForecast = "未来三天交通气象预报"; //未来三天交通气象预报 第二段 标题 infoList.MainTrafficRoad = "X日~X日,本岛东线高速公路海口至三亚路段、中线高速公路海口至琼中路段,阴天有小雨,能见度较差,对公路交通运输有一定影响。"; //未来三天交通气象预报 1、主要交通路段 内容 infoList.QiozhouStrait = "X日~X日白天,琼州海峡XXX,风力X~X级、阵风X级,通航气象条件一般。"; // 二、未来三天交通气象预报 2、琼州海峡 内容 infoList.ProvinceForcastTitle = "未来4~7天全省天气趋势预报"; //三、未来4~7天全省天气趋势预报 infoList.FutureProvinceForcast = "X~X日XXX,大部分时段X,气温X,近海海面风力X~X级,阵风X级。"; //三、未来4~7天全省天气趋势预报 内容 return(infoList); } catch (Exception ex) { return(null); } }
public bool InsertSpringForecast(DateTime dt, SpringForecastModel info, List <SpringForecastModel> daysList, string forecaster) { try { string strSQL = ""; string strID = ""; int result1 = 0; foreach (SpringForecastModel info1 in daysList) { strSQL = "select recid from LFS_SPRINGFORECASTDAYS where ddatetime=to_date('" + dt.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') and FORECASTDATE= to_date('" + info1.Ddatetime.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') "; OracleHelper oh = new OracleHelper("HAIKOUConnect"); strID = oh.db_GreateQuery(strSQL); if (strID.Length > 0) { strSQL = "update LFS_SPRINGFORECASTDAYS set WEATHER1 ='" + info1.Weather + "'" + ",WEATHERPIC1='" + info1.WeatherIcon + "'" + ",MINTEMP='" + info1.MinTemp + "'" + ",MAXTEMP='" + info1.MaxTemp + "'" + ",LANDMINWIND='" + info1.LandMinWind + "'" + ",LANDMAXWIND='" + info1.LandMaxWind + "'" + ",LANDWINDDIRECT='" + info1.LandWindDirect + "'" + ",SEAMINWIND='" + info1.SeaMinWind + "'" + ",SEAMAXWIND='" + info1.SeaMaxWind + "'" + ",SEAWINDDIRECT='" + info1.SeaWindDirect + "'" + ",GUSTWIND='" + info1.GustWind + "'" + " ,WRITETIME=to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "', 'yyyy-mm-dd HH24:mi:ss')" + " where RECID=" + strID;; } else { strSQL = "insert into LFS_SPRINGFORECASTDAYS(ddatetime,WEATHER1,WEATHERPIC1,MINTEMP,MAXTEMP,LANDMINWIND,LANDMAXWIND,LANDWINDDIRECT,SEAMINWIND,SEAMAXWIND,SEAWINDDIRECT,GUSTWIND,FORECASTTIME,recid) values(" + " to_date('" + dt.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') " + ",'" + info1.Weather + "'" + ",'" + info1.WeatherIcon + "'" + ",'" + info1.MinTemp + "'" + ",'" + info1.MaxTemp + "'" + ",'" + info1.LandMinWind + "'" + ",'" + info1.LandMaxWind + "'" + ",'" + info1.LandWindDirect + "'" + ",'" + info1.SeaMinWind + "'" + ",'" + info1.SeaMaxWind + "'" + ",'" + info1.SeaWindDirect + "'" + ",'" + info1.GustWind + "'" + ",to_date('" + info1.ForcastTime.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') " + ",seq_LFS_SPRINGFORECASTDAYS.Nextval)"; } result1 = oh.db_ExecuteNonQuery(strSQL); if (result1 <= 0) { return(false); } } if (result1 > 0) { strSQL = "select recid from LFS_SPRINGFORECAST where ddatetime=to_date('" + dt.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') "; OracleHelper oh = new OracleHelper("HAIKOUConnect"); strID = oh.db_GreateQuery(strSQL); if (strID.Length > 0) { strSQL = "update LFS_SPRINGFORECAST set WEATHERTODAY='" + info.Weather + "'" + ",WRITETIME=to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') " + ",NUMID='" + info.Numid + "'" + ",FORECASTER='" + forecaster + "'" + ",TOTALTRENDTITLE='" + info.TotalTrendTitle + "'" + ",TOTALTRENDFORECAST='" + info.TotalTrendForecast + "'" + ",THREEDAYFORECASTTITLE='" + info.ThreeDayForecastTitle + "'" + ",THREEDAYFORECAST='" + info.ThreeDayForecast + "'" + ",THREEDAYCONTENT='" + info.ThreeDayContent + "'" + ",THREEDAYTRAFFICFORECAST='" + info.ThreeDayTrafficForecast + "'" + ",MAINTRAFFICROAD='" + info.MainTrafficRoad + "'" + ",QIOZHOUSTRAIT='" + info.QiozhouStrait + "'" + ",PROVINCEFORECASTTITLE='" + info.ProvinceForcastTitle + "'" + ",FUTUREPROVINCEFORECAST='" + info.FutureProvinceForcast + "'" + ",FILEFLAG=0" + ",FORECASTDATE='" + info.ForecastDate + "'" + " where RECID=" + strID; } else { strSQL = "insert into LFS_SPRINGFORECAST(RECID" + ",DDATETIME" + ",WRITETIME" + ",NUMID" + ",TOTALTRENDTITLE" + ",TOTALTRENDFORECAST" + ",THREEDAYFORECASTTITLE" + ",THREEDAYFORECAST" + ",THREEDAYCONTENT" + ",THREEDAYTRAFFICFORECAST" + ",MAINTRAFFICROAD" + ",QIOZHOUSTRAIT" + ",PROVINCEFORECASTTITLE" + ",FUTUREPROVINCEFORECAST" + ",CREATEWORD" + ",FORECASTER" + ",FILEFLAG" + ",FORECASTDATE" + ") values(seq_LFS_SPRINGFORECAST.Nextval" + " ,to_date('" + dt.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi') " + ",to_date('" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "','yyyy-mm-dd hh24:mi')" + ",'" + info.Numid + "'" + ",'" + info.TotalTrendTitle + "'" + ",'" + info.TotalTrendForecast + "'" + ",'" + info.ThreeDayForecastTitle + "'" + ",'" + info.ThreeDayForecast + "'" + ",'" + info.ThreeDayContent + "'" + ",'" + info.ThreeDayTrafficForecast + "'" + ",'" + info.MainTrafficRoad + "'" + ",'" + info.QiozhouStrait + "'" + ",'" + info.ProvinceForcastTitle + "'" + ",'" + info.FutureProvinceForcast + "'" + ",'" + 0 + "'" + ",'" + forecaster + "'" + ",'" + 0 + "'" + ",'" + info.ForecastDate + "'" + ")"; } result1 = oh.db_ExecuteNonQuery(strSQL); if (result1 <= 0) { return(false); } } } catch (Exception ex) { return(false); } return(true); }
public bool InsertSpringForcast(DateTime dt, List <SpringForecastModel> infoList, SpringForecastModel info, string forecaster) { return(dfDAL.InsertSpringForecast(dt, info, infoList, forecaster)); }