2023-03-03 16:07:50 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using HT.Cloud.Code;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using HT.Cloud.DataBase;
|
|
|
|
|
using HT.Cloud.Domain.ChartsManage;
|
|
|
|
|
using Serenity.Services;
|
|
|
|
|
using iTextSharp.text;
|
|
|
|
|
using HT.Cloud.Domain.DevicesManage;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
|
|
|
|
namespace HT.Cloud.Service.ChartsManage
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创 建:cdl
|
|
|
|
|
/// 日 期:2023-02-23 11:10
|
|
|
|
|
/// 描 述:历史趋势服务类
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class HistoryChartsService : BaseService<HistoryChartsEntity>, IDenpendency
|
|
|
|
|
{
|
2023-08-24 09:28:09 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 绑定数据仓库的数据库ID
|
|
|
|
|
/// </summary>
|
|
|
|
|
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
|
|
|
|
|
|
|
|
|
|
public HistoryChartsService(ISqlSugarClient context) : base(context)
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-31 14:01:38 +08:00
|
|
|
|
public async Task<string> GetDriverGroupList()
|
|
|
|
|
{
|
|
|
|
|
List<GroupNameList> subsystems = new List<GroupNameList>();
|
2023-08-24 09:28:09 +08:00
|
|
|
|
var list_group = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().ToList();
|
2023-07-31 14:01:38 +08:00
|
|
|
|
int i = 0;
|
|
|
|
|
foreach (var group in list_group)
|
|
|
|
|
{
|
|
|
|
|
subsystems.Add(new GroupNameList() { Lable = "a" + i, Value = group.GroupDescription });
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
return subsystems.ToJson();
|
|
|
|
|
}
|
2023-07-27 15:19:54 +08:00
|
|
|
|
|
2023-07-31 14:01:38 +08:00
|
|
|
|
public async Task<string> GetGroupSubsystemTag(string groupDescription)
|
|
|
|
|
{
|
|
|
|
|
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
2023-08-24 09:28:09 +08:00
|
|
|
|
var groupId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == groupDescription).First().GroupID;
|
|
|
|
|
var grouped = _context.AsTenant().QueryableWithAttr<MetaTagEntity>().ToList().Where(x=>x.GroupID==groupId);
|
2023-07-31 14:01:38 +08:00
|
|
|
|
List<string> list_name_two = grouped.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();
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-19 16:06:08 +08:00
|
|
|
|
public async Task<string> GetAllSubsystemTag(string systemName)
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
2023-08-22 17:24:56 +08:00
|
|
|
|
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
2025-02-19 16:06:08 +08:00
|
|
|
|
var systemId = _context.AsTenant().QueryableWithAttr<MetaSystemEntity>().Where(x => x.SystemName == systemName).First().SystemID;
|
|
|
|
|
var grouplist = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.SystemID == systemId).ToList();
|
2025-02-26 09:51:50 +08:00
|
|
|
|
var i = 0;
|
2025-02-19 16:06:08 +08:00
|
|
|
|
foreach (var group in grouplist)
|
|
|
|
|
{
|
|
|
|
|
var grouped = _context.AsTenant().QueryableWithAttr<MetaTagEntity>().ToList().Where(x => x.GroupID == group.GroupID);
|
|
|
|
|
List<string> list_name_two = grouped.Select(t => t.Subsystem).GroupBy(c => c).Select(c => c.First()).ToList();
|
|
|
|
|
foreach (var Meta_Tag in list_name_two)
|
|
|
|
|
{
|
|
|
|
|
subsystems.Add(new SubsysytemNameList() { Lable = "a" + i, Value = Meta_Tag });
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-08-22 17:24:56 +08:00
|
|
|
|
return subsystems.ToJson();
|
|
|
|
|
}
|
2023-03-03 16:07:50 +08:00
|
|
|
|
|
2025-02-19 16:06:08 +08:00
|
|
|
|
public async Task<string> GetSubsystemAllTag(string subSystemName,string systemName)
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
|
|
|
|
var reList = new List<SubAllTagReturn>();
|
2025-02-19 16:06:08 +08:00
|
|
|
|
var subsysname = subSystemName;
|
|
|
|
|
var systemId = _context.AsTenant().QueryableWithAttr < MetaSystemEntity >().Where(x=>x.SystemName == systemName).First().SystemID;
|
|
|
|
|
var grouplist = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.SystemID == systemId).ToList();//.First().GroupID;
|
|
|
|
|
foreach (var group in grouplist)
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
2025-02-19 16:06:08 +08:00
|
|
|
|
var response = _context.AsTenant().QueryableWithAttr<MetaTagEntity>().Where(x => x.Subsystem == subsysname && x.GroupID == group.GroupID).Select(x => new { x.TagID, x.Description, x.Units }).ToList();
|
|
|
|
|
//var reList = new List<SubAllTagReturn>();
|
|
|
|
|
foreach (var subsystem in response)
|
|
|
|
|
{
|
|
|
|
|
reList.Add(
|
|
|
|
|
new SubAllTagReturn()
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
2025-02-19 16:06:08 +08:00
|
|
|
|
TagID = (short)subsystem.TagID,
|
2023-03-03 16:07:50 +08:00
|
|
|
|
Description = subsystem.Description + $"({subsystem.Units})",
|
|
|
|
|
Units = subsystem.Units
|
|
|
|
|
}
|
2025-02-19 16:06:08 +08:00
|
|
|
|
);
|
|
|
|
|
}
|
2023-03-03 16:07:50 +08:00
|
|
|
|
}
|
|
|
|
|
return reList.ToJson();
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-19 16:06:08 +08:00
|
|
|
|
public async Task<string> GetChartsTagValue(short tagid,string startdt, string enddt, int timeinterval, string systemName)
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
|
|
|
|
SugarParameter[] sqlParameters =
|
|
|
|
|
{
|
|
|
|
|
new SugarParameter("@enddt",enddt),
|
|
|
|
|
new SugarParameter("@Htagid",tagid),
|
|
|
|
|
new SugarParameter("@startdt",startdt),
|
|
|
|
|
new SugarParameter("@timeinterval",timeinterval)
|
|
|
|
|
};
|
2025-02-19 16:06:08 +08:00
|
|
|
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable($"Query_Group_Tag_{systemName}", sqlParameters);
|
2023-03-03 16:07:50 +08:00
|
|
|
|
//*
|
|
|
|
|
//var ds = db.SqlQuery("Query_Report_Period", sqlParameters);///
|
|
|
|
|
|
|
|
|
|
var valuelist = DataTableConvertModel<HDATETIMEVALUE>.ConvertDataTableToList(dt);
|
|
|
|
|
var resultlist = new List<ChartData>();
|
|
|
|
|
foreach (var value in valuelist)
|
|
|
|
|
{
|
|
|
|
|
resultlist.Add(new ChartData()
|
|
|
|
|
{
|
|
|
|
|
name = value.HDATETIME,
|
|
|
|
|
value = value.VALUE
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return resultlist.ToJson();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class SubsysytemNameList
|
|
|
|
|
{
|
|
|
|
|
public string Lable { get; set; }
|
|
|
|
|
public string Value { get; set; }
|
|
|
|
|
}
|
2023-07-31 14:01:38 +08:00
|
|
|
|
private class GroupNameList
|
|
|
|
|
{
|
|
|
|
|
public string Lable { get; set; }
|
|
|
|
|
public string Value { get; set; }
|
|
|
|
|
}
|
|
|
|
|
public class SubAllTagReturn
|
2023-03-03 16:07:50 +08:00
|
|
|
|
{
|
|
|
|
|
//x.TagID, x.Description, x.Units
|
|
|
|
|
public short TagID { get; set; }
|
|
|
|
|
public string Description { get; set; }
|
|
|
|
|
public string Units { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ChartData
|
|
|
|
|
{
|
|
|
|
|
public decimal value { get; set; }
|
|
|
|
|
public String name { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class HDATETIMEVALUE
|
|
|
|
|
{
|
|
|
|
|
public String HDATETIME { get; set; }
|
|
|
|
|
public decimal VALUE { get; set; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|