コード例 #1
0
        public static DataSet AlarmDataQuery(List <string> deviceIDs, DateTime startTime, DateTime endTime, string alarmType, bool isID, bool IsNew)
        {
            int       num;
            DataSet   set   = new DataSet();
            DataTable table = new DataTable();

            for (num = 0; num < deviceIDs.Count; num++)
            {
                string cz     = "";
                string name   = "";
                Device device = DeviceModule.GetDeviceByID(long.Parse(deviceIDs[num]));
                if (device != null)
                {
                    name = device.DeviceName;
                    cz   = DistrictModule.GetDistrictName(device.DistrictId);
                }
                table.Clear();
                table.Columns.Clear();
                string[] strArray = new string[(endTime.Year - startTime.Year) + 1];
                int      year     = startTime.Year;
                while (year < (endTime.Year + 1))
                {
                    strArray[year - startTime.Year] = "DeviceAlarm_" + year.ToString();
                    year++;
                }
                string strSql = "";
                for (year = 0; year < strArray.Length; year++)
                {
                    if (CheckTableExiste(strArray[year]))
                    {
                        strSql = "select '" + cz + "' 村庄,'" + name + "' 设备,DeviceNo 设备编号" +
                                 ",CONVERT(varchar(100),StartTime,120) 开始时间,case when State='New' then '-' else CONVERT(varchar(100),EndTime,120) end 结束时间" +
                                 ",(select top 1 BaseDesc from BaseInfo where BaseType='AlarmType' and BaseKey=AlarmType) 类型,AlarmValue" +
                                 ",case when AlarmValue=0 then (select top 1 BaseValue0 from BaseInfo where BaseType='AlarmType' and BaseKey=AlarmType) else (select top 1 BaseValue1 from BaseInfo where BaseType='AlarmType' and BaseKey=AlarmType) end 状态" +
                                 ",case when State='New' then '持续中' else cast(Duration as varchar)+'秒' end 时长" +
                                 " from " + strArray[year] +
                                 " where DeviceNo = '" + DeviceModule.GetFullDeviceNoByID(long.Parse(deviceIDs[num])) + "'" +
                                 " and StartTime<='" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "' and StartTime>='" + startTime.ToString("yyyy-MM-dd HH:mm:ss") + "'";
                        if ((alarmType.Trim() != "") && (alarmType != "全部"))
                        {
                            strSql = strSql + " and AlarmType='" + BaseModule.GetAlarmTypeByDesc(alarmType).BaseKey + "'";
                        }
                        if (IsNew)
                        {
                            strSql = strSql + " and State = 'New'";
                        }
                    }
                }
                strSql = strSql + " order by StartTime desc";
                for (int i = 0; (table.Columns.Count == 0) && (i < 3); i++)
                {
                    table = DbHelperSQL.QueryDataTable(strSql);
                }
                if (table.Rows.Count != 0)
                {
                    set.Tables.Add(table.Copy());
                }
            }
            return(set);
        }
コード例 #2
0
        public static DataSet AlarmRecordsCount(List <string> deviceIDs, DateTime startTime, DateTime endTime, string alarmType, bool IsNew)
        {
            DataSet   set   = new DataSet();
            DataTable table = new DataTable();

            for (int i = 0; i < deviceIDs.Count; i++)
            {
                table.Clear();
                table.Columns.Clear();
                string strSql = "";
                bool   flag   = true;
                for (int j = startTime.Year; j < (endTime.Year + 1); j++)
                {
                    string strTableName = "DeviceAlarm_" + j.ToString();
                    if (CheckTableExiste(strTableName))
                    {
                        if (flag)
                        {
                            flag = false;
                        }
                        else
                        {
                            strSql = strSql + " union ";
                        }
                        string str3 = strSql;
                        strSql = str3 + "select count(*) as 记录条数 from " + strTableName + " where DeviceNo = '" + DeviceModule.GetFullDeviceNoByID(long.Parse(deviceIDs[i])) + "' and StartTime>='" + startTime.ToString("yyyy-MM-dd HH:mm:ss") + "' and StartTime<='" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "'";
                        if ((alarmType.Trim() != "") && (alarmType != "全部"))
                        {
                            strSql = strSql + " and AlarmType='" + BaseModule.GetAlarmTypeByDesc(alarmType).BaseKey + "'";
                        }
                        if (IsNew)
                        {
                            strSql = strSql + " and State = 'New'";
                        }
                    }
                }
                for (int k = 0; ((table.Columns.Count == 0) && (k < 3)) && (strSql != ""); k++)
                {
                    table = DbHelperSQL.QueryDataTable(strSql);
                }
                if (table.Rows.Count == 0)
                {
                    table = new DataTable();
                    table.Columns.Add("记录条数");
                    table.Rows.Add(table.NewRow());
                    table.Rows[0][0] = 0;
                }
                else if (table.Rows.Count > 1)
                {
                    int num4 = 0;
                    for (int m = 0; m < table.Rows.Count; m++)
                    {
                        num4 += Convert.ToInt32(table.Rows[m]["记录条数"].ToString());
                    }
                    table.Rows.Clear();
                    table.Rows.Add(new object[] { num4.ToString() });
                }
                set.Tables.Add(table.Copy());
            }
            return(set);
        }