private List <ZoneForecastInfo> GetForecastInfo(DateTime dt, string area, DateTime dtStart) { List <ZoneForecastInfo> listInfo = null; DataTable dtTable = null; DataTable dtTable2 = null; try { string strSQL = "SELECT distinct RECID,DDATETIME,YBSX,RAIN,T2M,RHSFC,WSPD10M,WDIR10M,FORECASTTIME"; string strSQL1 = "SELECT max(T2M) as MAXTEMPERATURE,MIN(T2M) AS MINTEMPERATURE"; strSQL += string.Format(" FROM T_HK_NEW_GRID_FORECAST T WHERE DDATETIME = TO_DATE('{0}','YYYY-MM-DD HH24:MI:SS') AND VENUEID = {1} AND FORECASTTIME>TO_DATE('{2}','YYYY-MM-DD HH24:MI:SS') AND ROWNUM<=24 ORDER BY YBSX,FORECASTTIME", dt, GetZoneNum(area).Split(';')[0], dtStart); strSQL1 += string.Format(" FROM T_HK_NEW_GRID_FORECAST T WHERE DDATETIME = TO_DATE('{0}','YYYY-MM-DD HH24:MI:SS') AND VENUEID = {1} AND FORECASTTIME>TO_DATE('{2}','YYYY-MM-DD HH24:MI:SS') AND ROWNUM<=24 ORDER BY YBSX,FORECASTTIME", dt, GetZoneNum(area).Split(';')[0], dtStart); try { OracleHelper th = new OracleHelper("HAIKOUConnect"); dtTable = th.ExecuteDataTable(strSQL); dtTable2 = th.ExecuteDataTable(strSQL1); if (dtTable != null && dtTable.Rows.Count > 0 && dtTable2 != null && dtTable2.Rows.Count > 0) { listInfo = new List <ZoneForecastInfo>(); string name = GetZoneNum(area).Split(';')[1].Trim(); for (int i = 0; i < dtTable.Rows.Count; i++) { ZoneForecastInfo info = new ZoneForecastInfo(); info.AreaName = name; info.Recid = dtTable.Rows[i]["RECID"].ToString(); info.Ddatetime = dtTable.Rows[i]["DDATETIME"].ToString(); info.Ybsx = dtTable.Rows[i]["YBSX"].ToString(); info.Rain = Convert.ToDouble(dtTable.Rows[i]["RAIN"]).ToString("####0.#"); info.T2m = Convert.ToDouble(dtTable.Rows[i]["T2M"]).ToString("####0.#"); info.Rhsfc = Convert.ToDouble(dtTable.Rows[i]["RHSFC"]).ToString("####0.#"); info.Wspd10m = Convert.ToDouble(dtTable.Rows[i]["WSPD10M"]).ToString("####0.#"); info.Wdir10m = Convert.ToDouble(dtTable.Rows[i]["WDIR10M"]).ToString("####0.#"); info.Forecasttime = dtTable.Rows[i]["FORECASTTIME"].ToString(); info.Rain2 = info.Rain; info.T2m2 = info.T2m; info.Maxtemperature = Convert.ToDouble(dtTable2.Rows[0]["MAXTEMPERATURE"]).ToString("####0.#"); info.Mintemperature = Convert.ToDouble(dtTable2.Rows[0]["MINTEMPERATURE"]).ToString("####0.#"); listInfo.Add(info); } } } catch (Exception ex) { CreateLogTxt.ErrWriter(ex); } } catch (Exception ex) { CreateLogTxt.WriteLog(ex.ToString()); } return(listInfo); }
public bool SaveForInfoList(List <ZoneForecastInfo> InfoList, string name, DateTime dt) { string strSQL = ""; string strRecID = ""; int iResult = 0; if (InfoList == null || InfoList.Count <= 0) { return(false); } try { OracleHelper th = new OracleHelper("HAIKOUConnect"); #region ZoneForecastInfo dataInfo1 = InfoList[0]; strSQL = "select RECID from LFS_AREAWEATHER where DDATETIME=to_date('" + dataInfo1.Ddatetime + "' ,'YYYY-MM-DD HH24:MI:SS') and AREANAME= '" + dataInfo1.AreaName + "' and isNextDay=0"; strRecID = th.db_GreateQuery(strSQL); if (!string.IsNullOrEmpty(strRecID) && int.TryParse(strRecID, out iResult)) { strSQL = "update LFS_AREAWEATHER set " + " RAIN=" + dataInfo1.Rain.ToString() + ",WINDSPEED=" + dataInfo1.Wspd10m + ",WINDDIRECT='" + dataInfo1.Wdir10m + "'" + ",HUMIDITY=" + dataInfo1.Rhsfc + ",HUMIDITY=" + dataInfo1.Maxtemperature + ",HUMIDITY=" + dataInfo1.Mintemperature + ",WRITETIME=sysdate" + " where recid=" + strRecID + " and AREANAME= '" + dataInfo1.AreaName + "' "; iResult = th.db_ExecuteNonQuery(strSQL); } else { strSQL = "insert into LFS_AREAWEATHER(recid,AREANAME,ddatetime,RAIN,WINDSPEED,WINDDIRECT,HUMIDITY,MAXTEMPERATURE,MINTEMPERATURE,WRITETIME) values(SEQ_LFS_AREAWEATHER.NEXTVAL,'" + dataInfo1.AreaName + "',to_date('" + dataInfo1.Ddatetime + "' ,'YYYY-MM-DD HH24:MI:SS'),'" + dataInfo1.Rain.ToString() + "','" + dataInfo1.Wspd10m + "','" + dataInfo1.Wdir10m + "','" + dataInfo1.Rhsfc + "','" + dataInfo1.Maxtemperature + "','" + dataInfo1.Mintemperature + "'," + "sysdate)"; iResult = th.db_ExecuteNonQuery(strSQL); } #endregion foreach (ZoneForecastInfo dataInfo in InfoList) { strSQL = "select recid from LFS_AREAWEATHERHOUR where DDATETIME=to_date('" + dataInfo.Ddatetime + "', 'YYYY-MM-DD HH24:MI:SS') and AREANAME= '" + dataInfo.AreaName + "' and FORECASTTIME=to_date('" + dataInfo.Forecasttime + "', 'YYYY-MM-DD HH24:MI:SS') "; strRecID = th.db_GreateQuery(strSQL); if (!string.IsNullOrEmpty(strRecID) && int.TryParse(strRecID, out iResult)) { strSQL = "update LFS_AREAWEATHERHOUR set " + "WRITETIME=sysdate" + ",RAIN=" + dataInfo.Rain + ",WINDSPEED=" + dataInfo.Wspd10m + ",WINDDIRECT= '" + dataInfo.Wdir10m + "' " + ",TEMPERATURE=" + dataInfo.T2m + ",HUMIDITY=" + dataInfo.Rhsfc + ",RAINPCORSTATE=4" + " where recid=" + strRecID + "and AREANAME= '" + dataInfo.AreaName + "'"; iResult = th.db_ExecuteNonQuery(strSQL); } else { strSQL = "insert into LFS_AREAWEATHERHOUR(recid,AREANAME,DDATETIME,WRITETIME,RAIN,WINDSPEED,WINDDIRECT,TEMPERATURE,HUMIDITY,RAINPCORSTATE,FORECASTTIME) values(SEQ_LFS_AREAWEATHERHOUR.NEXTVAL,'" + dataInfo.AreaName + "',to_date('" + dataInfo.Ddatetime + "', 'YYYY-MM-DD HH24:MI:SS'),sysdate" + "," + dataInfo.Rain + "," + dataInfo.Wspd10m + ", '" + dataInfo.Wdir10m + "' " + "," + dataInfo.T2m + "," + dataInfo.Rhsfc + ",4,to_date('" + dataInfo.Forecasttime + "', 'YYYY-MM-DD HH24:MI:SS'))"; iResult = th.db_ExecuteNonQuery(strSQL); } } if (iResult > 0) { strSQL = "insert into lfs_welfareproduce (RECID,DDATETIME,PRIMARYFORECASTER,FORECASTER,ISEDIT,TRACECOUNT) values (" + "SEQ_LFS_WELFAREPRODUCE.NEXTVAL" + ",to_date('" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "', 'YYYY-MM-DD HH24:MI:SS') " + ",''" + ",'" + name + "'" + "," + 0 + "" + "," + 0 + "" + ")"; iResult = th.db_ExecuteNonQuery(strSQL); if (iResult > 0) { return(true); } } } catch (Exception ex) { CreateLogTxt.ErrWriter(ex); return(false); } return(false); }