Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }