diff --git a/HT.Cloud.Code/DefaultStartUp.cs b/HT.Cloud.Code/DefaultStartUp.cs index 7b1fdfc..43eb778 100644 --- a/HT.Cloud.Code/DefaultStartUp.cs +++ b/HT.Cloud.Code/DefaultStartUp.cs @@ -310,16 +310,46 @@ namespace HT.Cloud.Code this IServiceCollection @this) { var ret = new List(); - var assemblies = Directory.GetFiles(AppContext.BaseDirectory, "*.dll") - .Select(x => x.Substring(@"\").Substring(@"/").Replace(".dll", "")) - .Select(x => Assembly.Load(x)).ToArray(); - //排除列表 - var ignoreList= new List{ "EventBusHostedService" }; - foreach (var item in assemblies) + try { - ret.AddRange(item.GetTypes() //获取当前类库下所有类型 - .Where(t => typeof(BackgroundService).IsAssignableFrom(t)) //获取间接或直接继承t的所有类型 - .Where(t => !t.IsAbstract && t.IsClass && !ignoreList.Contains(t.Name)));//获取非抽象类 排除接口继承 + var listAssemblies = new List(); + + var assemblies1 = Directory.GetFiles(AppContext.BaseDirectory, "*.dll"); + + foreach( var assembly in assemblies1) + { + Console.WriteLine(assembly); + } + + var assemblies = Directory.GetFiles(AppContext.BaseDirectory, "*.dll") + .Select(x => x.Substring(@"\").Substring(@"/").Replace(".dll", "")); + //.Select(x => Assembly.Load(x)).ToArray(); + foreach (var assembliesFile in assemblies) + { + try + { + Console.WriteLine(assembliesFile+"\n"); + listAssemblies.Add(Assembly.Load(assembliesFile)); + } + catch(Exception ex) + { + Console.WriteLine(ex.ToString()); + } + + } + var arrAssemblies = listAssemblies.ToArray(); + //排除列表 + var ignoreList = new List { "EventBusHostedService" }; + foreach (var item in arrAssemblies) + { + ret.AddRange(item.GetTypes() //获取当前类库下所有类型 + .Where(t => typeof(BackgroundService).IsAssignableFrom(t)) //获取间接或直接继承t的所有类型 + .Where(t => !t.IsAbstract && t.IsClass && !ignoreList.Contains(t.Name)));//获取非抽象类 排除接口继承 + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); } foreach (var item in ret) { diff --git a/HT.Cloud.CodeGenerator/HT.Cloud.CodeGenerator.csproj b/HT.Cloud.CodeGenerator/HT.Cloud.CodeGenerator.csproj index 3e97079..40c607e 100644 --- a/HT.Cloud.CodeGenerator/HT.Cloud.CodeGenerator.csproj +++ b/HT.Cloud.CodeGenerator/HT.Cloud.CodeGenerator.csproj @@ -9,7 +9,7 @@ - + diff --git a/HT.Cloud.Data/HT.Cloud.DataBase.csproj b/HT.Cloud.Data/HT.Cloud.DataBase.csproj index 372ade4..b6552a8 100644 --- a/HT.Cloud.Data/HT.Cloud.DataBase.csproj +++ b/HT.Cloud.Data/HT.Cloud.DataBase.csproj @@ -9,7 +9,10 @@ - + + + + diff --git a/HT.Cloud.Domain/Entity/ReportManage/RTApplicationStateEntity.cs b/HT.Cloud.Domain/Entity/ReportManage/RTApplicationStateEntity.cs new file mode 100644 index 0000000..2168a31 --- /dev/null +++ b/HT.Cloud.Domain/Entity/ReportManage/RTApplicationStateEntity.cs @@ -0,0 +1,30 @@ +using System; +using System.ComponentModel.DataAnnotations; +using SqlSugar; + +namespace HT.Cloud.Domain.Entity.ReportManage +{ + /// + /// 创 建:cdl + /// 日 期:2023-03-30 14:52 + /// 描 述:实时报表SQL转换实体类 + /// + [SugarTable("HT_REALTIME_APPSTATE")] + [Tenant("1")] + public class RTApplicationStateEntity + { + + + /// + /// + /// + [SugarColumn(ColumnName = "ID", ColumnDescription = "", ColumnDataType = "int(10)")] + public int Id { get; set; } + /// + /// 显示名称 + /// + [SugarColumn(ColumnName = "ApplicationName", ColumnDescription = "", ColumnDataType = "int(128)", IsNullable = true)] + public string Description { get; set; } + + } +} diff --git a/HT.Cloud.Domain/HT.Cloud.Domain.csproj b/HT.Cloud.Domain/HT.Cloud.Domain.csproj index b835a79..dc89b2d 100644 --- a/HT.Cloud.Domain/HT.Cloud.Domain.csproj +++ b/HT.Cloud.Domain/HT.Cloud.Domain.csproj @@ -10,7 +10,7 @@ - + diff --git a/HT.Cloud.Service/ChartsManage/RtTechChartsService.cs b/HT.Cloud.Service/ChartsManage/RtTechChartsService.cs index f511350..9f0e788 100644 --- a/HT.Cloud.Service/ChartsManage/RtTechChartsService.cs +++ b/HT.Cloud.Service/ChartsManage/RtTechChartsService.cs @@ -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 GetChartsTagValueInit(string[] charts_TagNames,string systemName) + public async Task GetChartsTagValueInit(string[] charts_TagNames, string[] Tables, string systemName) { + var tagName_list = new List(); var result_list = new List>(); @@ -121,7 +123,23 @@ namespace HT.Cloud.Service.ChartsManage result_list.Add(new List()); } var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().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>(); + 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) + { + finish = false; + initDbData = new List>(); + for(int i = 0;i.ConvertDataTableToList(dt); + var resultlist = new List(); + foreach (var value in valuelist) + { + resultlist.Add(new ChartData() + { + name = value.HDATETIME, + value = value.VALUE + }); + } + initDbData.Add(resultlist); + } + finish = true; + } + + public async Task GetChartsTagValue(string[] charts_TagNames, string systemName) { var tagName_list = new List(); @@ -227,5 +288,6 @@ namespace HT.Cloud.Service.ChartsManage public String HDATETIME { get; set; } public decimal VALUE { get; set; } } - } + + } } diff --git a/HT.Cloud.Service/ReportManage/ApplicationStateService.cs b/HT.Cloud.Service/ReportManage/ApplicationStateService.cs new file mode 100644 index 0000000..444c092 --- /dev/null +++ b/HT.Cloud.Service/ReportManage/ApplicationStateService.cs @@ -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, IDenpendency + { + /// + /// 绑定数据仓库的数据库ID + /// + private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; + + public ApplicationStateService(ISqlSugarClient context) : base(context) + { + } + + public async Task GetApplicationList(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}_STATE"); + + return list.ToJson(); + } + + public async Task GetRtApplicationState(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}_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; } + } + } +} diff --git a/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs b/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs index 3b52dc8..55ec250 100644 --- a/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs +++ b/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs @@ -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 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(); + } + 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; } + } + } } diff --git a/HT.Cloud.Service/SystemManage/CoderuleService.cs b/HT.Cloud.Service/SystemManage/CoderuleService.cs index b7ff550..52a89fe 100644 --- a/HT.Cloud.Service/SystemManage/CoderuleService.cs +++ b/HT.Cloud.Service/SystemManage/CoderuleService.cs @@ -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 { diff --git a/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml b/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml index 9ef5ce3..b8ac4b1 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml @@ -691,6 +691,7 @@ //bool变量取消平滑采取折线 let issmooth = !(StaticSelectTagList[si].Units ==='Y/N') let seriesdata = { + symbol: "none", data: yDataArr[si], // 曲线名 name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)), @@ -872,7 +873,7 @@
[Area("PenMeiChartsManage")] - public class PenMeiHistoryChartsController : BaseController - { + [HandlerLogin(needLogin:false)] + [HandlerAuthorize(needAuth:false)] + public class PenMeiHistoryChartsController : BaseController //BaseController + { public HistoryChartsService _historyChartsService { get;set;} /// /// 绑定数据仓库的数据库ID diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiHistoryTechChartsController.cs b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiHistoryTechChartsController.cs index 0f7b8dc..b745631 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiHistoryTechChartsController.cs +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiHistoryTechChartsController.cs @@ -20,7 +20,9 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers /// 描 述:历史趋势控制器类 /// [Area("PenMeiChartsManage")] - public class PenMeiHistoryTechChartsController : BaseController + [HandlerLogin(needLogin: false)] + [HandlerAuthorize(needAuth: false)] + public class PenMeiHistoryTechChartsController : BaseController { public HistoryTechChartsService _historyTechChartsService { get;set;} /// diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtTechChartsController.cs b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtTechChartsController.cs index 07fd9ef..42cf786 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtTechChartsController.cs +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtTechChartsController.cs @@ -20,7 +20,9 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers /// 描 述:历史趋势控制器类 /// [Area("PenMeiChartsManage")] - public class PenMeiRtTechChartsController : BaseController + [HandlerLogin(needLogin: false)] + [HandlerAuthorize(needAuth: false)] + public class PenMeiRtTechChartsController : BaseController { public RtTechChartsService _rtTechChartsService { get;set;} /// @@ -65,10 +67,10 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers } [HttpPost] - public async Task GetChartsTagValueInit(string[] charts_TagNames) + public async Task GetChartsTagValueInit(string[] charts_TagNames, string[] Tables) { var systemName = "喷煤系统"; - var data = await _rtTechChartsService.GetChartsTagValueInit(charts_TagNames, systemName); + var data = await _rtTechChartsService.GetChartsTagValueInit(charts_TagNames, Tables, systemName); return Content(data); } diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml index bcefc28..065fb97 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml @@ -691,6 +691,7 @@ //bool变量取消平滑采取折线 let issmooth = !(StaticSelectTagList[si].Units ==='Y/N') let seriesdata = { + symbol: "none", data: yDataArr[si], // 曲线名 name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)), @@ -872,7 +873,7 @@
{ return x.value }); - // let xdata = chardatalist[listindex].map(x => { return x.name }); - // xDataArr.push(xdata); - // yDataArr.push(ydata); - // } - // var lightwhite = 0; - // if (unitsrc.length > 0) { - // lightwhite = (unitsrc.length ) * 40; - // } - - // //var lightwhite = (chardatalist.length) * 100; - // var color = new Array(); - // for (var colori = 0; colori < StaticSelectTagList.length; colori++) { - // //color.push(roundrgb()) - // color.push(StaticSelectTagList[colori].HTRGB); - // //color.push("#000000"); - // } - - - // var yAxis = new Array(); - // debugger; - // var maxYs = unitsrc.length; - // for (var ci = 0; ci < unitsrc.length; ci++) { - // if (ci == 0) - // { - // let yAxisdata = { - // name: JSON.parse(JSON.stringify(unitnames[ci])), - // nameLocation: 'center', - // type: 'value', - // //position:'left', - // //坐标轴两边留白策略,设置max、min后失效 - // boundaryGap: ['5%', '2%'], - // // max: 700, - // // min: 0, - // // 让表格的刻度向靠里侧显示 - // axisTick: { - // inside: true - // }, - // axisLabel: { - // inside: true, - // align: 'left', - // verticalAlign: 'bottom', - // }, - // // 设置刻度线的颜色等样式 - // axisLine: { - // show: true, - // onZero: true, - // onZeroAxisIndex:0, - // lineStyle: { - // //color: color[ci], - - // color: unitcolor[ci], - // width: 3 - // } - // }, - // splitLine: { - // show: true, //想要不显示网格线,改为false - // lineStyle: { - // // 设置网格为虚线 - // type: 'dashed' - // } - // }, - // //offset: (ci - 1) * 100 - // } - // yAxis.push(yAxisdata); - // } - // else { - // let yAxisdata = { - // name: JSON.parse(JSON.stringify(unitnames[ci])), - // nameLocation: 'center', - // // max: 800, - // // min: 0, - // type: 'value', - // position: 'left', - // //坐标轴两边留白策略,设置max、min后失效 - // boundaryGap: ['5%', '2%'], - // axisLabel: { - // inside: true, - // align: 'left', - // verticalAlign: 'bottom', - // }, - // axisLine: { - // show: true, - // onZero: false, - // lineStyle: { - // //color: color[ci], - // color: unitcolor[ci], - // width: 3 - // } - // }, - // splitLine: { - // show: false //想要不显示网格线,改为false - // }, - // // 设置坐标轴偏移位置 - // offset: (ci) * 40 - // //offset: (ci) * 100 - // } - // yAxis.push(yAxisdata); - // } - // } - - - // //for (var ci = 0; ci < StaticSelectTagList.length; ci++) { - // // if (ci == 0) { - // // let yAxisdata = { - // // name: JSON.parse(JSON.stringify(StaticSelectTagList[ci].Description)), - // // nameLocation: 'center', - // // type: 'value', - // // //坐标轴两边留白策略,设置max、min后失效 - // // boundaryGap: ['5%', '2%'], - // // // max: 700, - // // // min: 0, - // // // 让表格的刻度向靠里侧显示 - // // axisTick: { - // // inside: true - // // }, - // // axisLabel: { - // // inside: true, - // // align: 'left', - // // verticalAlign: 'bottom', - // // }, - // // // 设置刻度线的颜色等样式 - // // axisLine: { - // // show: true, - // // lineStyle: { - // // //color: color[ci], - // // color: StaticSelectTagList[ci].HTRGB, - // // width: 3 - // // } - // // }, - // // splitLine: { - // // show: true, //想要不显示网格线,改为false - // // lineStyle: { - // // // 设置网格为虚线 - // // type: 'dashed' - // // } - // // } - // // } - // // yAxis.push(yAxisdata); - // // } - // // else { - // // let yAxisdata = { - // // name: JSON.parse(JSON.stringify(StaticSelectTagList[ci].Description)), - // // nameLocation: 'center', - // // // max: 800, - // // // min: 0, - // // type: 'value', - // // //坐标轴两边留白策略,设置max、min后失效 - // // boundaryGap: ['5%', '2%'], - // // axisLabel: { - // // inside: true, - // // align: 'right', - // // verticalAlign: 'bottom', - // // }, - // // axisLine: { - // // show: true, - // // lineStyle: { - // // //color: color[ci], - // // color: StaticSelectTagList[ci].HTRGB, - // // width: 3 - // // } - // // }, - // // splitLine: { - // // show: false //想要不显示网格线,改为false - // // }, - // // // 设置坐标轴偏移位置 - // // offset: (ci - 1) * 100 - // // //offset: (ci) * 100 - // // } - // // yAxis.push(yAxisdata); - // // } - // //} - - // var series = new Array(); - // for (var si = 0; si < StaticSelectTagList.length; si++) { - // var unitIndex = 0; - // var unitss = StaticSelectTagList[si].Units; - // for(var ui = 0;ui GetAlarmACC(Alarm_ACC_Params alarm_ACC_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime(alarm_ACC_Params.StartTime); + var EndTime = Gettime(alarm_ACC_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_ACC(StartTime, EndTime, systemName); + return Content(data); + } + + [HttpPost] + public async Task GetAlarmHistogram(Alarm_Histogram_Params alarm_Histogram_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime_(alarm_Histogram_Params.StartTime); + var EndTime = Gettime_(alarm_Histogram_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_Histogram(StartTime, EndTime, systemName); + return Content(data); + } + + [HttpPost] + public async Task GetAlarmPie(Alarm_Pie_Params alarm_Pie_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime(alarm_Pie_Params.StartTime); + var EndTime = Gettime(alarm_Pie_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_Pie(StartTime, EndTime, systemName); + return Content(data); + } + + //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 SubsysytemNameList + //{ + // public string Lable { get; set; } + // public string Value { get; set; } + //} + + public class ChartSubsysytemName { public string SubsysytemName { get; set; } } @@ -153,5 +198,22 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers public string Hhour { get; set; } } + + + public class Alarm_ACC_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Histogram_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Pie_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } } } diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmNewController.cs b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmNewController.cs new file mode 100644 index 0000000..a825378 --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmNewController.cs @@ -0,0 +1,236 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc; +using HT.Cloud.Code; +using HT.Cloud.Domain.ChartsManage; +using HT.Cloud.Service; +using Microsoft.AspNetCore.Authorization; +using HT.Cloud.Service.ChartsManage; +using HT.Cloud.Service.ReportManage; +using Serenity.Services; + +namespace HT.Cloud.Web.Areas.ReportManage.Controllers +{ + /// + /// 创 建:cdl + /// 日 期:2023-02-23 11:10 + /// 描 述:历史趋势控制器类 + /// + [Area("PenMeiReportManage")] + public class PenMeiHistoryAlarmNewController : BaseController + { + public HistoryAlarmService _historyAlarmService { get;set;} + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] + public async Task GetDriverGroupList() + { + var data = await _historyAlarmService.GetDriverGroupList(); + return Content(data); + } + + [HttpGet] + public async Task GetAllSubsystemTag() + { + string systemName = "喷煤系统"; + + var data = await _historyAlarmService.GetAllSubsystemTag(systemName); + return Content(data); + } + + [HttpPost] + public async Task GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) + { + string systemName = "喷煤系统"; + + var data = await _historyAlarmService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, systemName); + return Content(data); + } + + [HttpPost] + public async Task GetAlarmRecord(Alarm_Params charts_Params) + { + string systemName = "喷煤系统"; + + short TagID = short.Parse(charts_Params.TagID); + var StartTime = Gettime(charts_Params.StartTime); + var EndTime = Gettime(charts_Params.EndTime); + + var data = await _historyAlarmService.GetAlarmRecord(TagID, StartTime, EndTime, systemName); + return Content(data); + } + [HttpPost] + public async Task GetAlarmRecordQuick(Alarm_Quick_Params alarm_Quick_Params) + { + string systemName = "喷煤系统"; + + var Alarmtype = alarm_Quick_Params.Alarmtype; + var StartTime = Gettime(alarm_Quick_Params.StartTime); + var EndTime = Gettime(alarm_Quick_Params.EndTime); + + var data = await _historyAlarmService.GetAlarmRecordQuick(Alarmtype, StartTime, EndTime, systemName); + return Content(data); + } + [HttpPost] + public async Task GetAlarmRecordQuickDesc(Alarm_Quick_Desc_Params alarm_Quick_Desc_Params) + { + string systemName = "喷煤系统"; + + var hhour = alarm_Quick_Desc_Params.Hhour; + + var data = await _historyAlarmService.GetAlarmRecordQuickDesc(hhour, systemName); + return Content(data); + } + [HttpPost] + public async Task GetAlarmSubSystem(SubSystem_Params subSystem_Params) + { + string systemName = "喷煤系统"; + + var AlarmName = subSystem_Params.AlarmName; + var data = await _historyAlarmService.GetAlarmSubSystem(AlarmName,systemName); + return Content(data); + } + + public string Gettime(string longtime) + { + long jsTimeStamp = long.Parse(longtime); + System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 + DateTime dt = startTime.AddMilliseconds(jsTimeStamp); + return (dt.ToString("yyyy/MM/dd HH:mm:ss")); + } + + public string Gettime_(string longtime) + { + long jsTimeStamp = long.Parse(longtime); + System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 + DateTime dt = startTime.AddMilliseconds(jsTimeStamp); + return (dt.ToString("yyyy-MM-dd HH:mm:ss")); + } + + + [HttpPost] + public async Task GetAlarmACC(Alarm_ACC_Params alarm_ACC_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime(alarm_ACC_Params.StartTime); + var EndTime = Gettime(alarm_ACC_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_ACC(StartTime, EndTime, systemName); + return Content(data); + } + + [HttpPost] + public async Task GetAlarmHistogram(Alarm_Histogram_Params alarm_Histogram_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime_(alarm_Histogram_Params.StartTime); + var EndTime = Gettime_(alarm_Histogram_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_Histogram(StartTime, EndTime, systemName); + return Content(data); + } + + [HttpPost] + public async Task GetAlarmPie(Alarm_Pie_Params alarm_Pie_Params) + { + string systemName = "喷煤系统"; + + var StartTime = Gettime(alarm_Pie_Params.StartTime); + var EndTime = Gettime(alarm_Pie_Params.EndTime); + + var data = await _historyAlarmService.GetAlarm_Pie(StartTime, EndTime, systemName); + return Content(data); + } + + /* + * 一 + * 1、重绘管理系统所有趋势曲线,曲线的数据点上不在绘制图形圆点。 + * 2、实时趋势开放拖动和JS代码添加可向前加载数据集的动态方法。 + * 二 + * 1、后台服务在获取实时趋势初始化数据时进行向前的数据获取,为初始数据集添加一段历史数据。 + * 2、参加公司组织的拍摄技术培训。 + * 三 + * 1、使用异步和函数回调来执行历史数据查询,在实时数据获取后进行时间戳对其,避免出现重复时间和漏掉时间。 + * 2、报警分析柱图优化,单日柱状图从堆叠图修改为平铺柱状图。 + * 四 + * 1、柱状图添加工具条,可支持堆叠图、平铺图、折线图切换显示,并支持下载功能。 + * 2、添加图表联动功能,增加柱状图和饼图的点击事件,在柱状区域或饼状区域内点击可跳转至该报警信息的详细查询。 + * 五 + * 1、 + * 2、整理管理系统以前相关的设计、宣传素材,编写管理系统演示用ppt。 + */ + //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 SubsysytemNameList + //{ + // public string Lable { get; set; } + // public string Value { get; set; } + //} + + public class ChartSubsysytemName + { + public string SubsysytemName { get; set; } + } + + //public class HDATETIMEVALUE + //{ + // public String HDATETIME { get; set; } + // public decimal VALUE { get; set; } + //} + //public class ChartData + //{ + // public decimal value { get; set; } + // public String name { get; set; } + //} + public class SubSystem_Params + { + public string AlarmName { get; set; } + } + public class Alarm_Params + { + public string TagID { get; set; } + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Quick_Params + { + public string Alarmtype { get; set; } + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Quick_Desc_Params + { + public string Hhour { get; set; } + } + + + + public class Alarm_ACC_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Histogram_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } + public class Alarm_Pie_Params + { + public string StartTime { get; set; } + public string EndTime { get; set; } + } + } +} diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryReportController.cs b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryReportController.cs index 5d2b431..2c0fab5 100644 --- a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryReportController.cs +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryReportController.cs @@ -15,7 +15,9 @@ using HT.Cloud.Code; namespace HT.Cloud.Web.Areas.PenMeiReportManage.Controllers { [Area("PenMeiReportManage")] - public class PenMeiHistoryReportController : BaseController + [HandlerLogin(needLogin: false)] + [HandlerAuthorize(needAuth: false)] + public class PenMeiHistoryReportController : BaseController { public HistoryReportService _historyReportService { get; set; } /// diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml index 9ab7298..3a29ba8 100644 --- a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml @@ -701,6 +701,60 @@ value: getFormatDateone(endtime), }); }); + lay('#dateReStartTimeSD').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(starttime), + }); + }); + lay('#dateReEndTimeSD').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(endtime), + }); + }); + lay('#dateReStartTimeZhu').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(starttime), + }); + }); + lay('#dateReEndTimeZhu').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(endtime), + }); + }); + lay('#dateReStartTimeBing').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(starttime), + }); + }); + lay('#dateReEndTimeBing').each(function () { + laydate.render({ + elem: this, + trigger: 'click', + format: "yyyy-MM-dd HH:mm:ss", + //value: "2023-02-23 13:56:25", + value: getFormatDateone(endtime), + }); + }); }); function getFormatDate(date) { let year = date.getFullYear(); @@ -1157,8 +1211,239 @@ return result; } + ShowSDChart = async function() { + var alarmlist = new Array(); + debugger; + let datetimestart = $('#dateReStartTimeSD')[0].value; + let datetimeend = $('#dateReEndTimeSD')[0].value; - + //getChecked + //var checkRow = $('#subsystemTagList').datalist("getChecked"); + let datapa = { "StartTime": Date.parse(new Date(datetimestart)), "EndTime": Date.parse(new Date(datetimeend)) }; + let result; + debugger; + + myajax = await $.ajax({ + url: "/PenMeiReportManage/PenMeiHistoryAlarm/GetAlarmACC", + type: "Post", + //dataType: "json", + data: datapa, + success: function (redata) { + debugger; + result = JSON.parse(redata); + var myChart = echarts.init(document.getElementById('resultsandian'), 'walden'); + myChart.dispose(); + myChart = echarts.init(document.getElementById('resultsandian'), 'walden'); + myChart.hideLoading(); + myChart.showLoading(); + var sdata = []; + var ldata = []; + // for (var i = 0; i < result.length; i++) { + for (var i = 0; i < 10; i++) { + sdata.push({ + + name: result[i].Description, + data:[result[i].hcount, result[i].hztime], + symbolSize: 50, + type:'scatter' + }); + ldata.push(result[i].Description); + } + + var option = { + xAxis: { + + name: '报警次数', + nameGap: 16, + nameTextStyle: { + fontSize: 16 + }, + //max: 31, + splitLine: { + show: true + } + }, + yAxis: { + + name: '报警总时长', + nameLocation: 'end', + nameGap: 20, + nameTextStyle: { + fontSize: 16 + }, + splitLine: { + show: true + } + }, + legend: { + data:ldata + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross' + } + }, + series:sdata, + // series: [{ + // SymbolSize:20, + // data:data, + // type:'scatter', + // }, + //] + } + myChart.hideLoading(); + myChart.setOption(JSON.parse(JSON.stringify(option))); + } + }); + + } + + ShowZhuChart = async function () { + var alarmlist = new Array(); + debugger; + let datetimestart = $('#dateReStartTimeZhu')[0].value; + let datetimeend = $('#dateReEndTimeZhu')[0].value; + + //getChecked + //var checkRow = $('#subsystemTagList').datalist("getChecked"); + let datapa = { "StartTime": Date.parse(new Date(datetimestart)), "EndTime": Date.parse(new Date(datetimeend)) }; + let result; + debugger; + + myajax = await $.ajax({ + url: "/PenMeiReportManage/PenMeiHistoryAlarm/GetAlarmHistogram", + type: "Post", + //dataType: "json", + data: datapa, + success: function (redata) { + debugger; + var data = JSON.parse(redata); + var myChart = echarts.init(document.getElementById('resultzhu')); + myChart.dispose(); + myChart = echarts.init(document.getElementById('resultzhu')); + myChart.hideLoading(); + myChart.showLoading(); + + let date = []; //x轴日期 + let lenged = []; //series的个数 + let s = []; + data.map((item) => { + date.push(item['HDATE']); + lenged.push(item['Description']); + }); + debugger; + date = [...new Set(date)]; //去重 + lenged = [...new Set(lenged)]; + console.log(date, lenged); + let series = []; + lenged.map((item) => { + //生成 series + let obj = { + name: item, + type: 'bar', + stack: 'As', + emphasis: { + focus: 'series' + }, + data: [] + }; + series.push(obj); + }); + + data.map((item) => { + //对series 的data进行处理 + + series.map((item1) => { + if (item1.name == item['Description'] && date.indexOf(item['HDATE']) > -1) { + item1.data[date.indexOf(item['HDATE'])] = item['hztime']; + } + }); + }); + var option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: {}, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: [ + { + type: 'category', + data: date + } + ], + yAxis: [ + { + type: 'value' + } + ], + series: series + }; + myChart.hideLoading(); + option && myChart.setOption(option); + // myChart.setOption(JSON.parse(JSON.stringify(option))); + } + }); + } + + ShowBingChart = async function () { + var alarmlist = new Array(); + debugger; + let datetimestart = $('#dateReStartTimeBing')[0].value; + let datetimeend = $('#dateReEndTimeBing')[0].value; + + //getChecked + //var checkRow = $('#subsystemTagList').datalist("getChecked"); + let datapa = { "StartTime": Date.parse(new Date(datetimestart)), "EndTime": Date.parse(new Date(datetimeend)) }; + let result; + debugger; + + myajax = await $.ajax({ + url: "/PenMeiReportManage/PenMeiHistoryAlarm/GetAlarmPie", + type: "Post", + //dataType: "json", + data: datapa, + success: function (redata) { + debugger; + result = JSON.parse(redata); + + var myChart = echarts.init(document.getElementById('resultbing'), 'walden'); + myChart.dispose(); + myChart = echarts.init(document.getElementById('resultbing'), 'walden'); + myChart.hideLoading(); + myChart.showLoading(); + var data = []; + for (var i = 0; i < result.length; i++) { + + data.push({ value: result[i].Hpercent, name: result[i].Description + "\n" + result[i].Hpercent + "%" }); + } + debugger; + var option = { + title: { + text: '报警时长占比统计', + // subtext: '纯属虚构', + left: 'center' + }, + series:[ + { + type: 'pie', + data:data + } + ] + } + myChart.hideLoading(); + myChart.setOption(JSON.parse(JSON.stringify(option))); + } + }); + } }); @@ -1166,15 +1451,297 @@ - +
@**@
    -
  • 报警汇总
  • +
  • 散点图
  • +
  • 柱状图
  • +
  • 饼图图
  • +
  • 报警汇总
  • 报警查询
+
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ + +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + +
@*
@@ -1277,7 +1844,7 @@
+ + .layui-table-tool > .layui-table-tool-temp { + padding-right: 0px; + } + + + + + +
+ @**@ +
    + @*
  • 散点图
  • *@ +
  • 重点报警统计
  • +
  • 报警时长占比
  • +
  • 报警汇总
  • +
  • 报警查询
  • +
+
+ + @*
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
*@ + +
+
+
+ +
+ + +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ + @*
+
+ +
+ + + +
+
+
*@ +
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+ @*
+
+
+
+
+
+
+
+ +
+ +
+
+
*@ +
+ @*
+
+
+
+
*@ + +
+ +
+ @*
+
+ +
+ + + +
+
+
*@ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ @*
+
+ +
+ + + +
+
+
*@ +
+
+ +
+ + + +
+
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
@*style="width: 100%; height: 100% "*@ + +
+
+
+
+
+
+
+
+
+
+
+ @*
    *@ +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + @*
    +
    +
    +
    +
    *@ + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    +
    +
    @*style="width: 100%; height: 100% "*@ +
    +
    +
    +
    +
    +
    +
    +
    + + diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryReport/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryReport/Index.cshtml index 15d2738..24c78c4 100644 --- a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryReport/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryReport/Index.cshtml @@ -75,7 +75,7 @@
    + + + + +
    +
    +
    +
    +
    +
    状态信息
    +
    +
    +
    +
    +
    +
    +
    + 实时 +
    CPU使用率
    +
    +
    +

    + 当前记录 +
    +
    +
    +
    +
    +
    +
    +
    + 实时 +
    ARM使用率
    +
    +
    +

    + 当前记录 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    报表统计
    +
    +
    +
    +
    +
    +
    +
    +
    服务器信息
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    服务器名称 + @Environment.MachineName +
    总内存
    操作系统@System.Runtime.InteropServices.RuntimeInformation.OSDescription
    系统架构@System.Runtime.InteropServices.RuntimeInformation.OSArchitecture
    外网IP + +
    +
    +
    +
    +
    +
    +
    .NET信息
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    环境变量@Html.Raw(env.EnvironmentName)
    ContentRootPath + @Html.Raw(env.ContentRootPath) +
    WebRootPath@Html.Raw(env.WebRootPath)
    .NET版本 + @Html.Raw(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription) +
    启动时间 + @System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString("yyyy-MM-dd HH:mm:ss") +
    +
    +
    +
    +
    +
    +
    diff --git a/HT.Cloud.Web/Controllers/BaseController.cs b/HT.Cloud.Web/Controllers/BaseController.cs index 86af4bb..9845763 100644 --- a/HT.Cloud.Web/Controllers/BaseController.cs +++ b/HT.Cloud.Web/Controllers/BaseController.cs @@ -59,7 +59,6 @@ namespace HT.Cloud.Web } [HttpGet] - [HandlerAuthorize] public virtual ActionResult Index() { return View(); diff --git a/HT.Cloud.Web/DataProtection/key-e2f052f6-1509-4c55-84de-04eb742fe28f.xml b/HT.Cloud.Web/DataProtection/key-e2f052f6-1509-4c55-84de-04eb742fe28f.xml new file mode 100644 index 0000000..e446386 --- /dev/null +++ b/HT.Cloud.Web/DataProtection/key-e2f052f6-1509-4c55-84de-04eb742fe28f.xml @@ -0,0 +1,16 @@ + + + 2023-10-26T06:08:18.4927965Z + 2023-10-26T06:08:18.4519268Z + 2024-01-24T06:08:18.4519268Z + + + + + + + VfIzIpwFUHHKnUpgU9+YB6hSl0rbMsdUVz6nl/7btIoiBsd7lUY61AX4hKJrqQ9ACz4CSODJ4trRjmXnkSP3OA== + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/HT.Cloud.Web.csproj b/HT.Cloud.Web/HT.Cloud.Web.csproj index 7297a75..4607add 100644 --- a/HT.Cloud.Web/HT.Cloud.Web.csproj +++ b/HT.Cloud.Web/HT.Cloud.Web.csproj @@ -11,6 +11,7 @@ false false true + true @@ -60,9 +61,10 @@ - + + diff --git a/HT.Cloud.Web/Startup.cs b/HT.Cloud.Web/Startup.cs index 7438165..cea2ba5 100644 --- a/HT.Cloud.Web/Startup.cs +++ b/HT.Cloud.Web/Startup.cs @@ -54,7 +54,7 @@ namespace HT.Cloud.Web .ReviseSuperSysem() .AddEventBus() .AddRabbitMq() - .AddWorkerService() + //.AddWorkerService()//23/11/2,注释,修复初始化报错 .AddSignalR(options => { //客户端发保持连接请求到服务端最长间隔,默认30秒,改成4分钟,网页需跟着设置connection.keepAliveIntervalInMilliseconds = 12e4;即2分钟 diff --git a/HT.Cloud.Web/Views/Home/Default.cshtml b/HT.Cloud.Web/Views/Home/Default.cshtml index 98b2dcd..967318d 100644 --- a/HT.Cloud.Web/Views/Home/Default.cshtml +++ b/HT.Cloud.Web/Views/Home/Default.cshtml @@ -572,6 +572,7 @@ legendArr.push(StaticChartList[ci].Description); ySeries.push( { + // symbol: "none", name: StaticChartList[ci].Description, type: 'line', data: yData[ci], @@ -590,7 +591,7 @@ }, smooth: true, symbol: 'circle', - symbolSize: 6, + symbolSize: 1, showAllSymbol: true, color: colorArr[ci], } @@ -697,7 +698,8 @@ // show: true, // position: 'top' //}, - type: 'value' + type: 'value', + scale: true }, series:ySeries, //series: [ diff --git a/HT.Cloud.Web/WaterCloud.Web.xml b/HT.Cloud.Web/WaterCloud.Web.xml index f3f3fab..d81181f 100644 --- a/HT.Cloud.Web/WaterCloud.Web.xml +++ b/HT.Cloud.Web/WaterCloud.Web.xml @@ -165,6 +165,18 @@ 绑定数据仓库的数据库ID
    + + + 创 建:cdl + 日 期:2023-02-23 11:10 + 描 述:历史趋势控制器类 + + + + + 绑定数据仓库的数据库ID + + 绑定数据仓库的数据库ID diff --git a/HT.Cloud.Web/appsettings.json b/HT.Cloud.Web/appsettings.json index d1fe1cf..ac529ae 100644 --- a/HT.Cloud.Web/appsettings.json +++ b/HT.Cloud.Web/appsettings.json @@ -13,7 +13,7 @@ "LoginMultiple": false, // 是否允许一个账户在多处登录 "AllowCorsSite": "http://localhost:8058", // 允许的其他站点访问Api "DBProvider": "SqlServer", //SqlServer //Oracle - "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbmDk32vhkYsxag9amyZ1OOMwPA3yWW1gKjVgKPpDBSgVaiansOQtPtF5IQDwQ7q12LOaKRfCsNZGg56LRoA5R2eybLLG8j/xLWDC8/X7aDMHvZ2G8SWZzlDTt8jTQulouSVBP7JtlWXsAj1B5NVUxvlqn5yJiaz89ISUyPp1+A/XQ==", + "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij6YiQpV5DIw6JRzXXsYlzoJ+bUF4h97SyChJobnKFm1EOA4aBGj+/Aje1MD7G13GOXplGKNnRzOB6qvav/vGq4xLAOc1EyKCHAMDCgWSEpu5uXl7LYv8gGNRQzIjv6UkUBLzX1Jetj7Hf9iYws19sCoRXI/1Vm5bZIVwLQThEctF8imcaVDPhGNcPCH1kr+h5A==", "DBCommandTimeout": 180, // 数据库超时时间,单位秒 "CacheProvider": "Memory", // 缓存使用方式 Redis/Memory "RedisConnectionString": "127.0.0.1:6379", //docker部署 172.17.0.1 @@ -34,7 +34,7 @@ { "DBNumber": "1", "DBProvider": "SqlServer", //MySql //Oracle - "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbnYiY85KP1HOOhZ7C60SCx1TwEmcNLYzAsnfEdOBXU0nU0Oy8su8Qtkf/CPFKNyOJYTJKdUqu23gKYXItXANHKYm37ayRrKmUCNtdRkxoN9I6Y8N+yLiP1Qjk207DBIXR4vgChSgSPr9USeuNmLVsiBiUuDY+4KnQF8uHwQxMBvWg==" + "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij6YiQpV5DIw6JRzXXsYlzoJ+bUF4h97SyChJobnKFm1EOA4aBGj+/Aje1MD7G13GOXplGKNnRzOB6qvav/vGq4xLAOc1EyKCHAMDCgWSEpu5uXl7LYv8gGNRQzIjv6UkUBLzX1Jetj7Hf9iYws19sCoRXI/1Vm5bZIVwLQThEctF8imcaVDPhGNcPCH1kr+h5A==" } ], "RabbitMq": { diff --git a/原ORM-SqlSugar版本纪安装类库.png b/原ORM-SqlSugar版本纪安装类库.png new file mode 100644 index 0000000..d0f64c7 Binary files /dev/null and b/原ORM-SqlSugar版本纪安装类库.png differ