Exemplo n.º 1
0
        /// <summary>
        /// 保存报警数据(判断数据库里面10秒钟前有没有相同的报警,有的话更新数据,没有插入)
        /// </summary>
        /// <param name="coalCode"></param>
        /// <param name="type"></param>
        /// <param name="datas"></param>
        private void AlarmAnalydata(string coalCode, string type, string datas)
        {
            //'3001101','1-1','瓦斯','模拟量','采区1','%','0','4','1','.5','.5','.48','2011/12/26 11:52:06','2011/12/26 11:52:16','10','0','','1.42','2011/12/26 11:52:06','1'Ï

            string sql;
            ServerAnalys serverAnalys = new ServerAnalys(this.WsDownvalue, this.WsUpvalue, this.CODownvalue, this.COUpvalue);
            string[] dataList = null;
            dataList = serverAnalys.AlarmAnalys(datas).Split('Ï');
            int dataListCount = dataList.Length;
            for (int i = 0; i < dataListCount; i++)
            {
                if (dataList[i].Contains(","))
                {
                    string[] data = dataList[i].Split(',');
                    string[] DateTime = data[12].Split('\'');
                    //SELECT * FROM [SafetyNetworking].[dbo].[TN_AlarmRecode] where CoalCode= '3001101' and DevCode= '1-1' and AlarmETime >'2011-12-26 11:51:06'
                    sql = "SELECT * FROM [SafetyNetworking].[dbo].[TN_AlarmRecode] where CoalCode = " + data[0]
                       + " and DevCode= " + data[1] + " and  AlarmETime >= '" + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'";
                    DataSet ds = DQuery(sql);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        int Duration = Convert.ToInt32(ds.Tables[0].Rows[0]["Duration"]) + Convert.ToInt32(data[14].Split('\'')[1]);
                        if (Convert.ToDecimal(ds.Tables[0].Rows[0]["DevMaxValue"]) < Convert.ToDecimal(data[17].Split('\'')[1]))
                        {
                            sql = "UPDATE [SafetyNetworking].[dbo].[TN_AlarmRecode] SET [AlarmETime] = "
                                   + data[13].ToString() + ", [Duration] = '" + Duration.ToString()
                                   + "' , [DevMaxValue] = " + data[17]
                                    + ", [DevMaxTime] = " + data[18]
                                   + " where CoalCode = " + data[0]
                               + " and DevCode= " + data[1] + " and  AlarmETime >= '"
                               + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'";
                        }
                        else
                        {
                            sql = "UPDATE [SafetyNetworking].[dbo].[TN_AlarmRecode] SET [AlarmETime] = "
                                + data[13].ToString() + " , [Duration] = '" + Duration.ToString()
                                + "' where CoalCode = " + data[0]
                            + " and DevCode= " + data[1] + " and  AlarmETime >= '"
                            + Convert.ToDateTime(DateTime[1]).AddSeconds(-10).ToString() + "'";
                        }
                    }
                    else
                    {
                        sql = SQL_INSERT_ALARMRECODE;
                        sql += "SELECT ";
                        sql += dataList[i];
                    }
                    ExecuteAnalySqlByTranscation(sql);
                }
            }

        }