Ejemplo n.º 1
0
 /// <summary>
 /// 添加实时数据
 /// </summary>
 /// <param name="model">实体</param>
 /// <returns></returns>
 public bool AddRealTimeData(YY_DATA_AUTO model)
 {
     //判断参数类型,转存数据
     //更新雨量、河道水位、水库水位表 并 转存
     //ResaveToHLJDB.UpdRain_River_RsvrList(model);
     Reflection_Resave.Resave(model);
     return(dt.Insert <YY_DATA_AUTO>("YY_DATA_AUTO", model));
 }
Ejemplo n.º 2
0
 public static void Resave(YY_DATA_AUTO model)
 {
     if (state)
     {
         System.Reflection.MethodInfo mi = T.GetMethod("Resave", new Type[] { typeof(YY_DATA_AUTO) });
         mi.Invoke(O, new object[] { model });
     }
 }
Ejemplo n.º 3
0
        public void Resave(YY_DATA_AUTO model)
        {
            decimal d = 0;

            if (decimal.TryParse(model.CorrectionVALUE.ToString(), out d))
            {
                if (d < 9999)
                {
                    UpdRain_River_RsvrList(model);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 添加实时数据
        /// </summary>
        /// <param name="STCD">站号</param>
        /// <param name="ItemID">监测项号</param>
        /// <param name="TM">监测时间</param>
        /// <param name="RTM">接收时间</param>
        /// <param name="NFOINDEX">信道类型</param>
        /// <param name="Value">数据值</param>
        /// <returns></returns>
        public bool AddRealTimeData(string STCD, string ItemID, DateTime TM, DateTime RTM, int NFOINDEX, decimal?Value)
        {
            YY_DATA_AUTO model = new YY_DATA_AUTO();

            model.STCD      = STCD;
            model.ItemID    = ItemID;
            model.TM        = TM;
            model.DOWNDATE  = RTM;
            model.NFOINDEX  = NFOINDEX;
            model.DATAVALUE = Value;
            //model.DATATYPE = null;
            return(dt.Insert <YY_DATA_AUTO>("YY_DATA_AUTO", model));
        }
Ejemplo n.º 5
0
        void RainList_Init()
        {
            DataTable datatable = PublicBD.db.GetRealTimeNewData(new string[] { "26" });

            if (datatable != null && datatable.Rows.Count > 0)
            {
                YY_DATA_AUTO model;
                foreach (DataRow row in datatable.Rows)
                {
                    model                 = new YY_DATA_AUTO();
                    model.STCD            = row["STCD"].ToString();
                    model.ItemID          = row["ItemID"].ToString();
                    model.DOWNDATE        = DateTime.Parse(row["DOWNDATE"].ToString());
                    model.TM              = DateTime.Parse(row["TM"].ToString());
                    model.CorrectionVALUE = decimal.Parse(row["CorrectionVALUE"].ToString());
                    model.STTYPE          = row["STTYPE"].ToString();
                    RainList.Add(model);
                }
            }
        }
Ejemplo n.º 6
0
 private void ResaveVoltage(YY_DATA_AUTO model)
 {
     #region 转存站号只能存8位
     string _stcd = "";
     if (model.STCD.Length == 10)
     {
         _stcd = model.STCD.Substring(2, 8);
     }
     #endregion
     bool   b        = true;
     string FileName = "Info" + DateTime.Now.ToString("yyyy-MM-dd");
     string message  = "";
     //只每天存4次
     if (model.TM.ToString("yyyy-MM-dd HH:mm:ss") == model.TM.ToString("yyyy-MM-dd 02:00:00") || model.TM.ToString("yyyy-MM-dd HH:mm:ss") == model.TM.ToString("yyyy-MM-dd 08:00:00") || model.TM.ToString("yyyy-MM-dd HH:mm:ss") == model.TM.ToString("yyyy-MM-dd 14:00:00") || model.TM.ToString("yyyy-MM-dd HH:mm:ss") == model.TM.ToString("yyyy-MM-dd 20:00:00"))
     {
         b = msdb.dt.Insert("ST_RUNINFO_R", new string[] { "STCD", "TM", "SYSTM", "VOLTAGE" }, new object[] { _stcd, model.TM, DateTime.Now, model.CorrectionVALUE });
         if (!b)
         {
             message = "站号:" + _stcd + "   监测项:电压   监测时间:" + model.TM + "   监测值:" + model.CorrectionVALUE + " -----转存失败";
             Service._51Data.SystemError.SystemLog(FieldPath, FileName, message);
         }
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 更新实时数据
 /// </summary>
 /// <param name="model">实体</param>
 /// <param name="Where">条件</param>
 /// <returns></returns>
 public bool UdpRealTimeData(YY_DATA_AUTO model, string Where)
 {
     return(dt.Update <YY_DATA_AUTO>("YY_DATA_AUTO", model, Where));
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 添加实时数据
 /// </summary>
 /// <param name="model">实体</param>
 /// <returns></returns>
 public bool AddRealTimeData(YY_DATA_AUTO model)
 {
     return(dt.Insert <YY_DATA_AUTO>("YY_DATA_AUTO", model));
 }
Ejemplo n.º 9
0
        private void ResaveRain(YY_DATA_AUTO oldModel, YY_DATA_AUTO newModel)
        {
            #region 转存站号只能存8位
            string _stcd = "";
            if (newModel.STCD.Length == 10)
            {
                _stcd = newModel.STCD.Substring(2, 8);
            }
            #endregion

            decimal pdr      = 0;
            bool    b        = true;
            string  FileName = "Info" + DateTime.Now.ToString("yyyy-MM-dd");
            string  message  = "";
            if (oldModel != null)
            {
                pdr = newModel.CorrectionVALUE.Value - oldModel.CorrectionVALUE.Value;
                TimeSpan span = (TimeSpan)(newModel.TM - oldModel.TM);
                if (pdr > 0 && pdr <= 4)
                {
                    if ((int)(span.TotalSeconds) > 0) //雨量大于0 ,时间差不为负值(先发后至数据不入库)
                    {
                        int k = Convert.ToInt16(pdr / 0.5m);

                        int Seconds = 60 / k;   //分配每个雨量值写入间隔
                        //可以用if( ((int)(span.TotalSeconds))>86400)  --一天  判断超过某时长 就不平均分配时间写入雨量
                        for (int i = 0; i < k; i++)
                        {
                            DateTime datetime = newModel.TM.AddSeconds(Seconds * (-1 * i));
                            b = msdb.dt.Insert("ST_YCRAIN_R", new string[] { "STCD", "TM", "SYSTM", "V" }, new object[] { _stcd, datetime, newModel.DOWNDATE, 0.5 });
                            if (!b)
                            {
                                message = "站号:" + _stcd + "   监测项:雨量   监测时间:" + datetime + "   监测值:0.5 -----转存失败";
                                Service._51Data.SystemError.SystemLog(FieldPath, FileName, message);
                            }
                        }
                    }
                }
                else if (pdr > 4)
                {
                    if ((int)(span.TotalSeconds) > 0) //雨量大于0 ,时间差不为负值(先发后至数据不入库)
                    {
                        int k = Convert.ToInt16(pdr / 0.5m);

                        int Seconds = ((int)(span.TotalSeconds)) / k; //分配每个雨量值写入间隔
                        //可以用if( ((int)(span.TotalSeconds))>86400)  --一天  判断超过某时长 就不平均分配时间写入雨量
                        for (int i = 0; i < k; i++)
                        {
                            DateTime datetime = newModel.TM.AddSeconds(Seconds * (-1 * i));
                            b = msdb.dt.Insert("ST_YCRAIN_R", new string[] { "STCD", "TM", "SYSTM", "V" }, new object[] { _stcd, datetime, newModel.DOWNDATE, 0.5 });
                            if (!b)
                            {
                                message = "站号:" + _stcd + "   监测项:雨量   监测时间:" + datetime + "   监测值:0.5 -----转存失败";
                                Service._51Data.SystemError.SystemLog(FieldPath, FileName, message);
                            }
                        }
                    }
                }
            }
            else
            {
                if (newModel.CorrectionVALUE > 0)
                {
                    //第一次回传雨量
                    b = msdb.dt.Insert("ST_YCRAIN_R", new string[] { "STCD", "TM", "SYSTM", "V" }, new object[] { _stcd, newModel.TM, newModel.DOWNDATE, 0.5 });
                    if (!b)
                    {
                        message = "站号:" + _stcd + "   监测项:雨量   监测时间:" + newModel.TM + "   监测值:0.5 -----转存失败";
                        Service._51Data.SystemError.SystemLog(FieldPath, FileName, message);
                    }
                }
            }
        }
Ejemplo n.º 10
0
        public void UpdRain_River_RsvrList(YY_DATA_AUTO model)
        {
            if (model.ItemID == "26")
            {
                YY_DATA_AUTO oldModel = null;
                var          rainlist = from a in RainList where a.STCD == model.STCD select a;
                lock (RainList)
                {
                    if (rainlist.Count() > 0)
                    {
                        oldModel = rainlist.First();
                        ResaveRain(oldModel, model);

                        rainlist.First().CorrectionVALUE = model.CorrectionVALUE;
                        rainlist.First().DOWNDATE        = model.DOWNDATE;
                        rainlist.First().TM = model.TM;
                    }
                    else
                    {
                        ResaveRain(oldModel, model);
                        RainList.Add(model);
                    }
                }
            }
            else if (model.ItemID == "39" && model.STTYPE == "48")  //河道
            {
                YY_DATA_AUTO oldModel  = null;
                var          riverlist = from a in RiverList where a.STCD == model.STCD select a;
                lock (RiverList)
                {
                    if (riverlist.Count() > 0)
                    {
                        oldModel = riverlist.First();
                        ResaveRiver(oldModel, model);

                        riverlist.First().CorrectionVALUE = model.CorrectionVALUE;
                        riverlist.First().DOWNDATE        = model.DOWNDATE;
                        riverlist.First().TM = model.TM;
                    }
                    else
                    {
                        ResaveRiver(oldModel, model);
                        RiverList.Add(model);
                    }
                }
            }
            else if (model.ItemID == "39" && model.STTYPE == "4B") //水库model.ItemID == "3B"
            {
                YY_DATA_AUTO oldModel = null;
                var          rsvrlist = from a in RsvrList where a.STCD == model.STCD select a;
                lock (RsvrList)
                {
                    if (rsvrlist.Count() > 0)
                    {
                        oldModel = rsvrlist.First();
                        ResaveRsvr(oldModel, model);

                        rsvrlist.First().CorrectionVALUE = model.CorrectionVALUE;
                        rsvrlist.First().DOWNDATE        = model.DOWNDATE;
                        rsvrlist.First().TM = model.TM;
                    }
                    else
                    {
                        ResaveRsvr(oldModel, model);
                        RsvrList.Add(model);
                    }
                }
            }
            else if (model.ItemID == "38") //电压
            {
                ResaveVoltage(model);
            }
        }