Files
HTCloud/HT.Cloud.Service/ChartsManage/HistoryTechChartsService.cs
dell fbc097d131 1、陕西建龙打包版本
2、drawio导入SFC
3、多系统并存修改
2025-02-19 16:06:08 +08:00

166 lines
6.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
using HT.Cloud.Domain.ReportManage;
using Quartz;
using Serenity.Data;
namespace HT.Cloud.Service.ChartsManage
{
/// <summary>
/// 创 建cdl
/// 日 期2023-02-23 11:10
/// 描 述:历史趋势服务类
/// </summary>
public class HistoryTechChartsService : BaseService<HistoryTechChartsEntity>, IDenpendency
{
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
public HistoryTechChartsService(ISqlSugarClient context) : base(context)
{
}
public async Task<string> GetAllTagList(string systemName, string chartTagType)
{
//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_CHARTEntity>($"SELECT * FROM HT_{systemName}_CHART WHERE ChartTagType = '{chartTagType}'");
return list.ToJson();
}
public async Task<string> GetDriverGroupList()
{
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> GetGroupSubsystemTag(string groupDescription)
{
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
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);
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();
}
public async Task<string> GetAllSubsystemTag()
{
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
var grouped = _context.AsTenant().QueryableWithAttr<MetaTagEntity>().ToList();
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();
}
public async Task<string> GetSubsystemAllTag(string subsysytemName,string groupDescription)
{
var subsysname = subsysytemName;
var groupId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == groupDescription).First().GroupID;
var response = _context.AsTenant().QueryableWithAttr<MetaTagEntity>().Where(x => x.Subsystem == subsysname&&x.GroupID == 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()
{
TagID =(short)subsystem.TagID,
Description = subsystem.Description + $"({subsystem.Units})",
Units = subsystem.Units
}
);
}
return reList.ToJson();
}
public async Task<string> GetChartsTagValue(string table, string tagName, string startdt, string enddt, int timeinterval, string systemName)
{
SugarParameter[] sqlParameters =
{
new SugarParameter("@HTable",table),
new SugarParameter("@HTagName",tagName),
new SugarParameter("@startdt",startdt),
new SugarParameter("@enddt",enddt),
new SugarParameter("@timeinterval",timeinterval)
};
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable($"Query_Chart_Tag_{systemName}", sqlParameters);
//*
//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; }
}
private class GroupNameList
{
public string Lable { get; set; }
public string Value { get; set; }
}
public class SubAllTagReturn
{
//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; }
}
}
}