409 lines
16 KiB
C#
409 lines
16 KiB
C#
using HT.Cloud.Code;
|
|
using HT.Cloud.Domain.DevicesManage;
|
|
using HT.Cloud.Domain.ReportManage;
|
|
using Quartz;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Reflection.PortableExecutable;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace HT.Cloud.Service.ReportManage
|
|
{
|
|
public class HistoryAlarmService : BaseService<HistoryAlarmEntity>, IDenpendency
|
|
{
|
|
/// <summary>
|
|
/// 绑定数据仓库的数据库ID
|
|
/// </summary>
|
|
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
|
|
|
|
public HistoryAlarmService(ISqlSugarClient context) : base(context)
|
|
{
|
|
}
|
|
public async Task<string> GetDriverGroupList()
|
|
{
|
|
|
|
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
//var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
|
//var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
|
//var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<Ht_History_ReportEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
|
|
|
List<GroupNameList> subsystems = new List<GroupNameList>();
|
|
var list_group = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().ToList();
|
|
int i = 0;
|
|
foreach (var group in list_group)
|
|
{
|
|
subsystems.Add(new GroupNameList() { Lable = "a" + i, Value = group.GroupDescription});
|
|
i++;
|
|
}
|
|
return subsystems.ToJson();
|
|
}
|
|
public async Task<string> GetAllSubsystemTag(string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
|
var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
|
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<HistoryAlarmEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
|
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
|
//var grouped = _context.AsTenant().QueryableWithAttr<HistoryAlarmEntity>().ToList();
|
|
List<string> list_name_two = list.Select(t => t.Subsystem).GroupBy(c => c).Select(c => c.First()).ToList();
|
|
int i = 0;
|
|
foreach (var Meta_Tag in list_name_two)
|
|
{
|
|
subsystems.Add(new SubsysytemNameList() { Lable = "a" + i, Value = Meta_Tag });
|
|
i++;
|
|
}
|
|
return subsystems.ToJson();
|
|
}
|
|
public async Task<string> GetSubsystemAllTag(string subsysytemName, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
|
var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
|
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<HistoryAlarmEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
|
|
|
var subsysname = subsysytemName;
|
|
var response = list.Where(x => x.Subsystem == subsysname).Select(x => new { x.TagID, x.Description, x.Units }).ToList();
|
|
var reList = new List<SubAllTagReturn>();
|
|
foreach (var subsystem in response)
|
|
{
|
|
reList.Add(
|
|
new SubAllTagReturn()
|
|
{
|
|
TagID = (short)subsystem.TagID,
|
|
Description = subsystem.Description,
|
|
Units = subsystem.Units
|
|
}
|
|
);
|
|
}
|
|
return reList.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarmRecord(short tagid, string startdt, string enddt, string systemName)
|
|
{
|
|
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@Henddt",enddt),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Htagid",tagid)
|
|
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmValue>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
|
|
|
|
// var testdata = new List<AlarmValue>
|
|
// {
|
|
// new AlarmValue() {
|
|
// Description= "测试标题",
|
|
// StartTime = "08点37分",
|
|
// EndTime = "08点38分"
|
|
// },
|
|
// new AlarmValue() {
|
|
// Description= "测试标题",
|
|
// StartTime = "08点37分",
|
|
// EndTime = "08点38分"
|
|
// },
|
|
// new AlarmValue() {
|
|
// Description= "测试标题",
|
|
// StartTime = "08点37分",
|
|
// EndTime = "08点38分"
|
|
// },
|
|
// new AlarmValue() {
|
|
// Description= "测试标题",
|
|
// StartTime = "08点37分",
|
|
// EndTime = "08点38分"
|
|
// }
|
|
//};
|
|
// return testdata.ToJson();
|
|
|
|
|
|
|
|
//var resultlist = new List<ChartData>();
|
|
//foreach (var value in valuelist)
|
|
//{
|
|
// resultlist.Add(new ChartData()
|
|
// {
|
|
// name = value.HDATETIME,
|
|
// value = value.VALUE
|
|
// });
|
|
//}
|
|
//return resultlist.ToJson();
|
|
}
|
|
|
|
|
|
public async Task<string> GetAlarmRecordForTagName(string Description, string startdt, string enddt, string systemName)
|
|
{
|
|
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
//var driverID = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupName == groupName).First().DriverID;
|
|
//var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverID).First().DriverName;
|
|
//short tagid = (short)_context.AsTenant().QueryableWithAttr<MetaTagEntity>().Where(x => x.Description == Description).First().TagID;
|
|
var alarmList = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<HistoryAlarmEntity>($"SELECT * FROM HT_{systemName}_ALARM");
|
|
int tagid = alarmList.Where(x=>x.Description == Description).First().TagID;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@Henddt",enddt),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Htagid",tagid)
|
|
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmValue>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
|
|
}
|
|
|
|
public async Task<string> GetAlarmRecordQuick(string HATYPE, string startdt, string enddt, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HATYPE",HATYPE),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt),
|
|
new SugarParameter("@HGROUPNAME",groupName)
|
|
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_Count", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmValueCount>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
|
|
}
|
|
|
|
public async Task<string> GetAlarmHistory(string startdt, string enddt, string systemName)
|
|
{
|
|
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@Henddt",enddt),
|
|
new SugarParameter("@HSYSTEMNAME",systemName),
|
|
new SugarParameter("@Hstartdt",startdt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_PMHis", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmValueCountDesc>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
|
|
}
|
|
|
|
//GetAlarmRecordQuickDesc
|
|
public async Task<string> GetAlarmRecordQuickDesc(string hhour, string systemName)
|
|
{
|
|
int Hhour = int.Parse(hhour);
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HGROUPNAME",groupName),
|
|
new SugarParameter("@Hhour",Hhour)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_History", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmValueCountDesc>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
|
|
}
|
|
public async Task<string> GetAlarmSubSystem(string alarmName, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
|
var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
|
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<HistoryAlarmEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
|
|
|
var subSystem = list.Where(x => x.Description == alarmName).First().Subsystem;
|
|
return subSystem.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarm_ACC(string startdt, string enddt, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HGROUPNAME",groupName),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_ACC", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmACC>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarm_Histogram(string startdt, string enddt, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HGROUPNAME",groupName),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_Histogram", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmHistogram>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarm_Pie(string startdt, string enddt, string systemName)
|
|
{
|
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HGROUPNAME",groupName),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_Pie", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmPie>.ConvertDataTableToList(dt);
|
|
return valuelist.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarm_CS(string startdt, string enddt, string systemName)
|
|
{
|
|
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HSYSTEMNAME",systemName),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_CS", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmCS>.ConvertDataTableToList(dt);
|
|
|
|
var result = new List<AlarmCS_Result>();
|
|
var hdate = startdt + "至" + enddt;
|
|
foreach (var item in valuelist)
|
|
{
|
|
result.Add(new AlarmCS_Result()
|
|
{
|
|
HDATE = hdate,
|
|
Tagname = item.Tagname,
|
|
Description = item.Description,
|
|
Hcount = item.Hcount,
|
|
});
|
|
}
|
|
|
|
|
|
return valuelist.ToJson();
|
|
}
|
|
|
|
public async Task<string> GetAlarm_Ztime(string startdt, string enddt, string systemName)
|
|
{
|
|
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
|
SugarParameter[] sqlParameters =
|
|
{
|
|
new SugarParameter("@HSYSTEMNAME",systemName),
|
|
new SugarParameter("@Hstartdt",startdt),
|
|
new SugarParameter("@Henddt",enddt)
|
|
};
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_Ztime", sqlParameters);
|
|
var valuelist = DataTableConvertModel<AlarmZtime>.ConvertDataTableToList(dt);
|
|
var result = new List<AlarmZtime_Result>();
|
|
var hdate = startdt + "至" + enddt;
|
|
foreach ( var item in valuelist)
|
|
{
|
|
result.Add(new AlarmZtime_Result() {
|
|
HDATE =hdate,
|
|
TAGNAME = item.TAGNAME,
|
|
Description = item.Description,
|
|
Hztime = item.Hztime,
|
|
});
|
|
}
|
|
return result.ToJson();
|
|
}
|
|
|
|
private class AlarmValueCount
|
|
{
|
|
public string Alarmtype { get; set; }
|
|
public string Description { get; set; }
|
|
public int hcount { get; set; }
|
|
public int hztime { get; set; }
|
|
}
|
|
private class AlarmValueCountDesc
|
|
{
|
|
public string Tagname { get; set; }
|
|
public string Description { get; set; }
|
|
public string Alarmtype { get; set; }
|
|
public string Typename { get; set; }
|
|
public string Startdt { get; set; }
|
|
public string Enddt { get; set; }
|
|
public int Hztime { get; set; }
|
|
}
|
|
private class AlarmValue
|
|
{
|
|
public string Description { get; set; }
|
|
public string startdt { get; set; }
|
|
public string enddt { get; set; }
|
|
public int Hztime { get; set; }
|
|
}
|
|
private class SubsysytemNameList
|
|
{
|
|
public string Lable { get; set; }
|
|
public string Value { get; set; }
|
|
}
|
|
private class GroupNameList
|
|
{
|
|
public string Lable { get; set; }
|
|
public string Value { get; set; }
|
|
}
|
|
private class SubAllTagReturn
|
|
{
|
|
//x.TagID, x.Description, x.Units
|
|
public short TagID { get; set; }
|
|
public string Description { get; set; }
|
|
public string Units { get; set; }
|
|
}
|
|
|
|
private class AlarmACC
|
|
{
|
|
public string TAGNAME { get; set; }
|
|
public string Description { get; set; }
|
|
public int hcount { get; set; }
|
|
public int hztime { get; set; }
|
|
}
|
|
private class AlarmHistogram
|
|
{
|
|
public string HDATE { get; set; }
|
|
public string TAGNAME { get; set; }
|
|
public string Description { get; set; }
|
|
public int hcount { get; set; }
|
|
public int hztime { get; set; }
|
|
}
|
|
private class AlarmPie
|
|
{
|
|
public string TAGNAME { get; set; }
|
|
public string Description { get; set; }
|
|
public double Hpercent { get; set; }
|
|
}
|
|
|
|
private class AlarmCS
|
|
{
|
|
public string Tagname { get; set; }
|
|
public string Description { get; set; }
|
|
public int Hcount { get; set; }
|
|
}
|
|
|
|
private class AlarmCS_Result
|
|
{
|
|
public string HDATE { get; set; }
|
|
public string Tagname { get; set; }
|
|
public string Description { get; set; }
|
|
public int Hcount { get; set; }
|
|
}
|
|
|
|
private class AlarmZtime
|
|
{
|
|
public string TAGNAME { get; set; }
|
|
public string Description { get; set; }
|
|
public int Hztime { get; set; }
|
|
}
|
|
private class AlarmZtime_Result
|
|
{
|
|
public string HDATE { get; set; }
|
|
public string TAGNAME { get; set; }
|
|
public string Description { get; set; }
|
|
public int Hztime { get; set; }
|
|
}
|
|
}
|
|
}
|