大版本更新推送

This commit is contained in:
dell
2023-11-06 21:26:55 +08:00
parent b94dc66092
commit 17b4e899ff
36 changed files with 3491 additions and 377 deletions

View File

@ -14,6 +14,7 @@ using HT.Cloud.Domain.ReportManage;
using Quartz;
using Newtonsoft.Json.Linq;
using System.Threading;
using System.Security.Cryptography.Xml;
namespace HT.Cloud.Service.ChartsManage
{
@ -107,8 +108,9 @@ namespace HT.Cloud.Service.ChartsManage
return reList.ToJson();
}
public async Task<string> GetChartsTagValueInit(string[] charts_TagNames,string systemName)
public async Task<string> GetChartsTagValueInit(string[] charts_TagNames, string[] Tables, string systemName)
{
var tagName_list = new List<string>();
var result_list = new List<List<ChartData>>();
@ -121,7 +123,23 @@ namespace HT.Cloud.Service.ChartsManage
result_list.Add(new List<ChartData>());
}
var remoteRtDataServer = _context.AsTenant().QueryableWithAttr<RtTechChartsEntity>().First().remotertdataserver + $"?groupName={groupName}";
for (int i = 0; i < 3; i++)
/**/
var timeEnd = DateTime.Now.AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
var timeStart = DateTime.Now.AddHours(-2).ToString("yyyy-MM-dd HH:mm:ss");
var timeinterval = 1;
bool finish = false;
var initDbData = new List<List<ChartData>>();
Task.Run(() =>
{
GetTagValueInit_Backgroud(Tables, charts_TagNames, timeStart, timeEnd, timeinterval, out finish, out initDbData);
});
/**/
while (!finish)
{
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
@ -150,9 +168,52 @@ namespace HT.Cloud.Service.ChartsManage
}
Thread.Sleep(980);
}
return result_list.ToJson();
for(int ii =0;ii<initDbData.Count;ii++)
{
var item = result_list[ii].ToList();
initDbData[ii].AddRange(item);
}
return initDbData.ToJson();
}
public void GetTagValueInit_Backgroud(string[] tables, string[] tagNames, string startdt, string enddt, int timeinterval,out bool finish, out List<List<ChartData>> initDbData)
{
finish = false;
initDbData = new List<List<ChartData>>();
for(int i = 0;i<tagNames.Length;i++)
{
SugarParameter[] sqlParameters =
{
new SugarParameter("@HTable",tables[i]),
new SugarParameter("@HTagName",tagNames[i]),
new SugarParameter("@startdt",startdt),
new SugarParameter("@enddt",enddt),
new SugarParameter("@timeinterval",timeinterval)
};
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Chart_Tag", 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
});
}
initDbData.Add(resultlist);
}
finish = true;
}
public async Task<string> GetChartsTagValue(string[] charts_TagNames, string systemName)
{
var tagName_list = new List<string>();
@ -227,5 +288,6 @@ namespace HT.Cloud.Service.ChartsManage
public String HDATETIME { get; set; }
public decimal VALUE { get; set; }
}
}
}
}

View File

@ -0,0 +1,80 @@
using MiniExcelLibs;
using Serenity.Services;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HT.Cloud.Domain.ReportManage;
using Newtonsoft.Json.Linq;
using System.Data;
using HT.Cloud.Code;
using HT.Cloud.Domain.ChartsManage;
using HT.Cloud.Domain.DevicesManage;
using Quartz;
using Microsoft.Extensions.Logging;
using HT.Cloud.Domain.Entity.ReportManage;
using System.Diagnostics;
using System.Threading;
namespace HT.Cloud.Service.ReportManage
{
public class ApplicationStateService : BaseService<RTApplicationStateEntity>, IDenpendency
{
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
public ApplicationStateService(ISqlSugarClient context) : base(context)
{
}
public async Task<string> GetApplicationList(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<RTMainPageEntity>($"SELECT * FROM HT_{driverName}_{groupName}_STATE");
return list.ToJson();
}
public async Task<string> GetRtApplicationState(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<RTMainPageEntity>($"SELECT * FROM HT_{driverName}_{groupName}_STATE");
var interval = 1000;
foreach ( var item in list )
{
var process = Process.GetProcessesByName("HT.Cloud.Web")[0];
var startTime = DateTime.UtcNow;
var startCpuUsage = process.TotalProcessorTime;
// Perform some work
Thread.Sleep(interval);
var endTime = DateTime.UtcNow;
var endCpuUsage = process.TotalProcessorTime;
var cpuUsage = (endCpuUsage - startCpuUsage) / (endTime - startTime) / Environment.ProcessorCount * 100;
var memory = process.WorkingSet64 / (1024 * 1024);
Console.WriteLine($"CPU usage: {cpuUsage}% Memory: {memory}MB");
}
return list.ToJson();
}
public class RealTimeDataFormat
{
public string Description { get; set; }
public string Value { get; set; }
public string RtTime { get; set; }
}
}
}

View File

@ -177,6 +177,49 @@ namespace HT.Cloud.Service.ReportManage
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();
}
private class AlarmValueCount
{
public string Alarmtype { get; set; }
@ -218,5 +261,27 @@ namespace HT.Cloud.Service.ReportManage
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; }
}
}
}

View File

@ -8,7 +8,7 @@ using HT.Cloud.DataBase;
using HT.Cloud.Domain.SystemManage;
using HT.Cloud.Code.Model;
using System.Globalization;
using NetTaste;
//using NetTaste;
namespace HT.Cloud.Service.SystemManage
{