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, IDenpendency { /// /// 绑定数据仓库的数据库ID /// private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; public HistoryAlarmService(ISqlSugarClient context) : base(context) { } public async Task GetDriverGroupList() { //var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; //var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; //var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; //var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_ALARM"); List subsystems = new List(); var list_group = _context.AsTenant().QueryableWithAttr().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 GetAllSubsystemTag(string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_ALARM"); List subsystems = new List(); //var grouped = _context.AsTenant().QueryableWithAttr().ToList(); List 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 GetSubsystemAllTag(string subsysytemName, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"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(); 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 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.ConvertDataTableToList(dt); return valuelist.ToJson(); // var testdata = new List // { // 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(); //foreach (var value in valuelist) //{ // resultlist.Add(new ChartData() // { // name = value.HDATETIME, // value = value.VALUE // }); //} //return resultlist.ToJson(); } public async Task GetAlarmRecordForTagName(string Description, string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; var driverID = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupName == groupName).First().DriverID; var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverID).First().DriverName; //short tagid = (short)_context.AsTenant().QueryableWithAttr().Where(x => x.Description == Description).First().TagID; var alarmList = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarmRecordQuick(string HATYPE, string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarmHistory(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; SugarParameter[] sqlParameters = { new SugarParameter("@Henddt",enddt), new SugarParameter("@HGROUPNAME",groupName), new SugarParameter("@Hstartdt",startdt) }; var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_PMHis", sqlParameters); var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); return valuelist.ToJson(); } //GetAlarmRecordQuickDesc public async Task GetAlarmRecordQuickDesc(string hhour, string systemName) { int Hhour = int.Parse(hhour); var groupName = _context.AsTenant().QueryableWithAttr().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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarmSubSystem(string alarmName, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_ALARM"); var subSystem = list.Where(x => x.Description == alarmName).First().Subsystem; return subSystem.ToJson(); } public async Task GetAlarm_ACC(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarm_Histogram(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarm_Pie(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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.ConvertDataTableToList(dt); return valuelist.ToJson(); } public async Task GetAlarm_CS(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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_CS", sqlParameters); var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); var result = new List(); 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 GetAlarm_Ztime(string startdt, string enddt, string systemName) { var groupName = _context.AsTenant().QueryableWithAttr().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_Ztime", sqlParameters); var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); var result = new List(); 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; } } } }