using iWareCommon.Utils;
|
using iWareLog.ORM;
|
using iWareLog.Report.Helper;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace iWareLog.Report.Service
|
{
|
public class AlertService
|
{
|
private static object Lock = new object();
|
|
private static AlertService Instance = null;
|
|
/// <summary>
|
/// 获取单例的方法
|
/// </summary>
|
/// <returns>单例实体</returns>
|
public static AlertService GetInstance()
|
{
|
|
if (Instance == null)
|
{
|
lock (Lock)
|
{
|
if (Instance == null)
|
{
|
Instance = new AlertService();
|
}
|
}
|
}
|
return Instance;
|
}
|
|
|
|
/// <summary>
|
/// 查询时间内故障出现次数,总时间,以设备分组
|
/// </summary>
|
/// <param name="start"></param>
|
/// <param name="end"></param>
|
/// <returns></returns>
|
public List<AlertHelper> GetAlertByMachine(DateTime start, DateTime end)
|
{
|
using (DbModelLog context = new DbModelLog())
|
{
|
try
|
{
|
string sql = "SELECT name,COUNT(equipid) as devalertcount, sum(DATEDIFF(SECOND,createtime,finishtime)) as datediffs FROM DEVAlert WHERE createtime >= @p0 and createtime < @p1 group by name";
|
List<AlertHelper> data = context.Database.SqlQuery<AlertHelper>(sql, start, end).ToList();
|
return data;
|
}
|
catch (Exception ex)
|
{
|
LogTextHelper.WriteLine("AlertService", "GetAlertByMachine", ex.ToString());
|
return null;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 查询时间内故障出现次数,总时间,以故障代码分组
|
/// </summary>
|
/// <param name="start"></param>
|
/// <param name="end"></param>
|
/// <returns></returns>
|
public List<AlertHelper> GetAlertByAlertCode(DateTime start, DateTime end)
|
{
|
using (DbModelLog context = new DbModelLog())
|
{
|
try
|
{
|
string sql = "SELECT alertcode, COUNT(alertcode) as alertcount, sum(DATEDIFF(SECOND,createtime,finishtime)) as datediffs FROM DEVAlert WHERE createtime >= @p0 and createtime < @p1 group by alertcode";
|
List<AlertHelper> data = context.Database.SqlQuery<AlertHelper>(sql, start, end).ToList();
|
return data;
|
}
|
catch (Exception ex)
|
{
|
LogTextHelper.WriteLine("AlertService", "GetAlertByAlertCode", ex.ToString());
|
return null;
|
}
|
}
|
}
|
|
}
|
}
|