Files
HTCloud/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs

223 lines
9.4 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> 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();
}
//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();
}
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; }
}
}
}