From a83653655bd2d83ae27bc874623d7392b7530f22 Mon Sep 17 00:00:00 2001 From: dell Date: Tue, 22 Aug 2023 17:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=96=B7=E7=85=A4=E8=B6=8B=E5=8A=BF=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=EF=BC=8C=E8=B6=8B=E5=8A=BF=E8=BD=B4=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entity/ReportManage/HistoryAlarmEntity.cs | 86 + .../ChartsManage/HistoryChartsService.cs | 25 +- .../ReportManage/HistoryAlarmService.cs | 215 +++ .../Controllers/HistoryChartsController.cs | 17 +- .../Views/HistoryCharts/Index.cshtml | 102 +- .../PenMeiHistoryChartsController.cs | 9 +- .../Views/PenMeiHistoryCharts/Index.cshtml | 4 +- .../PenMeiHistoryTechCharts/Index.cshtml | 66 +- .../Views/PenMeiRtTechCharts/Index.cshtml | 25 +- .../PenMeiHistoryAlarmController.cs | 154 ++ .../Views/PenMeiHistoryAlarm/Index.cshtml | 1505 +++++++++++++++++ HT.Cloud.Web/WaterCloud.Web.xml | 7 + HT.Cloud.Web/appsettings.json | 2 +- 13 files changed, 2120 insertions(+), 97 deletions(-) create mode 100644 HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs create mode 100644 HT.Cloud.Service/ReportManage/HistoryAlarmService.cs create mode 100644 HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmController.cs create mode 100644 HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml diff --git a/HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs b/HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs new file mode 100644 index 0000000..32b8603 --- /dev/null +++ b/HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs @@ -0,0 +1,86 @@ +using System; +using System.ComponentModel.DataAnnotations; +using SqlSugar; + +namespace HT.Cloud.Domain.ReportManage +{ + /// + /// 创 建:cdl + /// 日 期:2023-08-16 15:58 + /// 描 述:报警信息变量表实体类 + /// + [SugarTable("HT_HISTORY_ALARM")] + public class HistoryAlarmEntity + { + /// + /// + /// + [SugarColumn(ColumnName="TagID", ColumnDescription = "",ColumnDataType = "smallint(5)",IsIdentity = true)] + public int TagID { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="TagName", ColumnDescription = "",ColumnDataType = "nvarchar(512)")] + public string TagName { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")] + public bool DataType { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="DataSize", ColumnDescription = "",ColumnDataType = "smallint(5)")] + public int DataSize { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="Address", ColumnDescription = "",ColumnDataType = "nvarchar(64)")] + public string Address { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="GroupID", ColumnDescription = "",ColumnDataType = "smallint(5)")] + public int GroupID { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="IsActive", ColumnDescription = "",ColumnDataType = "bit(1)")] + public bool IsActive { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="Description", ColumnDescription = "",ColumnDataType = "nvarchar(128)")] + public string Description { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="Subsystem", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)] + public string Subsystem { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="Units", ColumnDescription = "",ColumnDataType = "nvarchar(20)", IsNullable = true)] + public string Units { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="WriteAddress", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)] + public string WriteAddress { get; set; } + /// + /// 报警类型 + /// + [SugarColumn(ColumnName="Alarmtype", ColumnDescription = "报警类型",ColumnDataType = "nvarchar(8)", IsNullable = true)] + public string Alarmtype { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="SysType", ColumnDescription = "",ColumnDataType = "nvarchar(8)", IsNullable = true)] + public string SysType { get; set; } + /// + /// + /// + [SugarColumn(ColumnName="SysAddress", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)] + public string SysAddress { get; set; } + } +} diff --git a/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs b/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs index 71485dc..5a163ef 100644 --- a/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs +++ b/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs @@ -52,19 +52,20 @@ namespace HT.Cloud.Service.ChartsManage return subsystems.ToJson(); } - public async Task GetAllSubsystemTag() + public async Task GetAllSubsystemTag(string groupDescription) { - List subsystems = new List(); - var grouped = _context.Queryable().ToList(); - List 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(); - } + List subsystems = new List(); + var groupId = _context.Queryable().Where(x => x.GroupDescription == groupDescription).First().GroupID; + var grouped = _context.Queryable().ToList().Where(x => x.GroupID == groupId); + List 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 GetSubsystemAllTag(string subsysytemName,string groupDescription) { diff --git a/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs b/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs new file mode 100644 index 0000000..60350fb --- /dev/null +++ b/HT.Cloud.Service/ReportManage/HistoryAlarmService.cs @@ -0,0 +1,215 @@ +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, IDenpendency + { + public HistoryAlarmService(ISqlSugarClient context) : base(context) + { + } + public async Task GetDriverGroupList() + { + + //var groupName = _context.Queryable().Where(x => x.GroupDescription == systemName).First().GroupName; + //var driverId = _context.Queryable().Where(x => x.GroupDescription == systemName).First().DriverID; + //var driverName = _context.Queryable().Where(x => x.DriverID == driverId).First().DriverName; + //var list = _context.Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_ALARM"); + + List subsystems = new List(); + var list_group = _context.Queryable().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 GetAllSubsystemTag(string systemName) + { + var groupName = _context.Queryable().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.Queryable().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.Queryable().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_ALARM"); + List subsystems = new List(); + //var grouped = repository.IQueryable().ToList(); + List 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 GetSubsystemAllTag(string subsysytemName, string systemName) + { + var groupName = _context.Queryable().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.Queryable().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.Queryable().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.Ado.SqlQuery($"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(); + 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 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.Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm", sqlParameters); + var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); + return valuelist.ToJson(); + + + // var testdata = new List + // { + // 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(); + //foreach (var value in valuelist) + //{ + // resultlist.Add(new ChartData() + // { + // name = value.HDATETIME, + // value = value.VALUE + // }); + //} + //return resultlist.ToJson(); + } + + public async Task GetAlarmRecordQuick(string HATYPE, string startdt, string enddt, string systemName) + { + + SugarParameter[] sqlParameters = + { + new SugarParameter("@HATYPE",HATYPE), + new SugarParameter("@Hstartdt",startdt), + new SugarParameter("@Henddt",enddt) + + + }; + var dt = _context.Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_Count", sqlParameters); + var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); + return valuelist.ToJson(); + + } + //GetAlarmRecordQuickDesc + public async Task GetAlarmRecordQuickDesc(string hhour, string systemName) + { + int Hhour = int.Parse(hhour); + SugarParameter[] sqlParameters = + { + new SugarParameter("@Hhour",Hhour) + }; + var dt = _context.Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm_History", sqlParameters); + var valuelist = DataTableConvertModel.ConvertDataTableToList(dt); + return valuelist.ToJson(); + + } + public async Task GetAlarmSubSystem(string alarmName, string systemName) + { + var groupName = _context.Queryable().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.Queryable().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.Queryable().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.Ado.SqlQuery($"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; } + } + } +} diff --git a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs index 30df69b..228b092 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs +++ b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs @@ -33,24 +33,27 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers return Content(data); } [HttpPost] - public async Task GetGroupSubsystemTag(ChartGroupDescription chartGroupDescription) + public async Task GetGroupSubsystemTag(string systemName) { - var data = await _historyChartsService.GetGroupSubsystemTag(chartGroupDescription.GroupDescription); + var data = await _historyChartsService.GetGroupSubsystemTag(systemName); return Content(data); } [HttpGet] public async Task GetAllSubsystemTag() { - - var data = await _historyChartsService.GetAllSubsystemTag(); + string systemName = "制粉系统"; + + var data = await _historyChartsService.GetAllSubsystemTag(systemName); return Content(data); } [HttpPost] - public async Task GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) - { - var data = await _historyChartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, chartSubsysytemName.GroupDescription); + public async Task GetSubsystemAllTag(string SubsysytemName) + { + string systemName = "制粉系统"; + + var data = await _historyChartsService.GetSubsystemAllTag(SubsysytemName, systemName); return Content(data); } diff --git a/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml b/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml index 99a18e9..8bfab0a 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/ChartsManage/Views/HistoryCharts/Index.cshtml @@ -312,9 +312,9 @@ } else { } }); - GetDriverGroupList(); + //GetDriverGroupList(); - //GetAllSubsystemTag(); + GetAllSubsystemTag(); var starttime = new Date(new Date().setHours(0, 0, 0, 0)); var starttimeString = starttime.getFullYear() + "-" + parseInt(starttime.getMonth() + 1) + "-" + starttime.getDate() + " " + (starttime.getHours()) + ":" + starttime.getMinutes() + ":" + starttime.getSeconds(); @@ -388,55 +388,55 @@ var StaticSelectTagList = new Array(); //获取所有变量组 - async function GetDriverGroupList() { - debugger; - $.ajax({ - url: "/ChartsManage/HistoryCharts/GetDriverGroupList", - type: "Get", - success: function (redata) { - debugger; - var listsubsysname = JSON.parse(redata); - $('#groupselect').combobox({ - data: listsubsysname, - valueField: 'Lable', - textField: 'Value', - value :'请选择系统', - checkOnSelect: true, - selectOnCheck: true - }); - $('#subsystemselect').combobox({ + //async function GetDriverGroupList() { + // debugger; + // $.ajax({ + // url: "/ChartsManage/HistoryCharts/GetDriverGroupList", + // type: "Get", + // success: function (redata) { + // debugger; + // var listsubsysname = JSON.parse(redata); + // $('#groupselect').combobox({ + // data: listsubsysname, + // valueField: 'Lable', + // textField: 'Value', + // value :'请选择系统', + // checkOnSelect: true, + // selectOnCheck: true + // }); + // $('#subsystemselect').combobox({ - value: '请先选择系统', - }); - } - }); - } - var StaticGroupDescription = ""; - updateGroupSelect = async function (data) { - StaticGroupDescription = data.Value; - var para = { "GroupDescription": data.Value } - //var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para); - debugger; - $.ajax({ - url: "/ChartsManage/HistoryCharts/GetGroupSubsystemTag", - type: "Post", - //dataType: "json", - data: para, - success: function (redata) { - var listsubsysname = JSON.parse(redata); - $('#subsystemselect').combobox({ - data: listsubsysname, - valueField: 'Lable', - textField: 'Value', - value: '请选择子系统', - checkOnSelect: true, - selectOnCheck: true - }); - } - }); + // value: '请先选择系统', + // }); + // } + // }); + //} + //var StaticGroupDescription = ""; + //updateGroupSelect = async function (data) { + // StaticGroupDescription = data.Value; + // var para = { "GroupDescription": data.Value } + // //var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para); + // debugger; + // $.ajax({ + // url: "/ChartsManage/HistoryCharts/GetGroupSubsystemTag", + // type: "Post", + // //dataType: "json", + // data: para, + // success: function (redata) { + // var listsubsysname = JSON.parse(redata); + // $('#subsystemselect').combobox({ + // data: listsubsysname, + // valueField: 'Lable', + // textField: 'Value', + // value: '请选择子系统', + // checkOnSelect: true, + // selectOnCheck: true + // }); + // } + // }); - } + //} //获取所有子系统列表ok 废弃 async function GetAllSubsystemTag() { debugger; @@ -463,7 +463,7 @@ //获取选中子系统tag updateSelect = async function (data) { //var groupDescription = ('#groupselect').combobox().getValue(); - var para = { "GroupDescription": StaticGroupDescription, "SubsysytemName": data.Value } + var para = { /*"GroupDescription": StaticGroupDescription,*/ "SubsysytemName": data.Value } //var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para); debugger; myajax = $.ajax({ @@ -825,8 +825,8 @@ @*
    *@
    -
    -
    + @*
    +
    *@
    GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) + public async Task GetSubsystemAllTag(string SubsysytemName) { - var data = await _historyChartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, chartSubsysytemName.GroupDescription); + string systemName = "喷煤系统"; + var data = await _historyChartsService.GetSubsystemAllTag(SubsysytemName, 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 99a18e9..866536e 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml @@ -625,10 +625,10 @@ // min: 0, // 让表格的刻度向靠里侧显示 axisTick: { - inside: true + inside: false }, axisLabel: { - inside: true, + inside: false, align: 'left', verticalAlign: 'bottom', }, diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryTechCharts/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryTechCharts/Index.cshtml index eefdbf5..1bfcbeb 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryTechCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryTechCharts/Index.cshtml @@ -532,7 +532,12 @@ return chardatalist; } - + //true + //false + //第一条Y轴是否显示轴线 + const oneAxisLineShow = true; + //其他Y轴是否显示轴线 + const otherAxisLineShow = false; showchart = async function () { //(document.getElementById('echarts-records'), 'walden'); @@ -562,9 +567,21 @@ var xDataArr = new Array(); var yDataArr = new Array(); + var maxArr = new Array(); + var minArr = new Array(); + var intervalArr = new Array(); for (var listindex = 0; listindex < chardatalist.length; listindex++) { let ydata = chardatalist[listindex].map(x => { return x.value }); let xdata = chardatalist[listindex].map(x => { return x.name }); + debugger; + let maxSrc = Math.max.apply(null, ydata); + let newMax = Math.ceil(maxSrc / 5) * 5; + maxArr.push(newMax); + let minSrc = Math.min.apply(null, ydata); + let newMin = Math.floor(minSrc / 5) * 5 + minArr.push(newMin); + let interval = (newMax - newMin) / 5 + intervalArr.push(interval); xDataArr.push(xdata); yDataArr.push(ydata); } @@ -591,32 +608,37 @@ let yAxisdata = { name: JSON.parse(JSON.stringify(unitnames[ci])), nameLocation: 'center', + nameGap:5, + nameRotate:270, + max: maxArr[ci], + min: minArr[ci], + interval: intervalArr[ci], + //splitNumber:21, type: 'value', //position:'left', //坐标轴两边留白策略,设置max、min后失效 boundaryGap: ['5%', '2%'], - // max: 700, - // min: 0, // 让表格的刻度向靠里侧显示 axisTick: { show: true, - inside: true + inside: false, + length: 9, }, minorTick:{ show:true, - length: 7, + length: 5, }, minorSplitLine: { show: true, }, axisLabel: { - inside: true, - align: 'left', + inside: false, + align: 'right', verticalAlign: 'bottom', }, // 设置刻度线的颜色等样式 axisLine: { - show: true, + show: oneAxisLineShow, onZero: true, onZeroAxisIndex:0, lineStyle: { @@ -641,8 +663,12 @@ let yAxisdata = { name: JSON.parse(JSON.stringify(unitnames[ci])), nameLocation: 'center', - // max: 800, - // min: 0, + nameGap: 5, + nameRotate: 270, + max: maxArr[ci], + min: minArr[ci], + interval: intervalArr[ci], + //splitNumber: 21, type: 'value', position: 'left', //坐标轴两边留白策略,设置max、min后失效 @@ -650,22 +676,23 @@ //alignTicks:true, axisTick: { show:true, - inside: true - }, - minorTick: { - show: true, - length: 7, + inside: false, + length: 9, }, + //minorTick: { + // show: true, + // length: 5, + //}, minorSplitLine:{ show:true, }, axisLabel: { - inside: true, - align: 'left', + inside: false, + align: 'right', verticalAlign: 'bottom', }, axisLine: { - show: true, + show: otherAxisLineShow, onZero: false, lineStyle: { //color: color[ci], @@ -674,7 +701,7 @@ } }, splitLine: { - show: false //想要不显示网格线,改为false + show: true //想要不显示网格线,改为false }, // 设置坐标轴偏移位置 offset: (ci) * 40 @@ -919,6 +946,7 @@ +
    diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtTechCharts/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtTechCharts/Index.cshtml index b0b04b9..8587ddf 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtTechCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtTechCharts/Index.cshtml @@ -969,7 +969,30 @@ yAxis.push(yAxisdata); } } - + /* + *一 + 1、复用制粉趋势界面源码建立喷煤趋势界面。 + 2、改进趋势图的曲线颜色设定,按照单位分类,相同单位变量绑定同一色系。 + 3、曲线对应Y轴数量合并,根据单词选择变量中单位类型数量,生成对应单位的轴。 + 4、修改补充冀南钢铁喷煤制粉技术方案。 + *二 + 1、增加顶部趋势图列显示,对应变量和曲线颜色,点击可显示和隐藏曲线。 + 2、增加趋势鼠标滚轮放大功能,在趋势上滚动滚轮对应缩短和增加时间跨度。 + 3、增加拖拽功能,在缩小时间跨度后,左键拖拽左右平移时间轴。 + 4、喷煤趋势后台控制器和数据服务重新构建,按照多系统方式,可查配置变量模板和多系统部署时不同数据。 + 5、协助水分仪上位机微波趋势显示修改,加大Y轴水分值量程,增加X轴时间跨度。 + *三 + 1、根据曲工的喷煤趋势模板表,自动生成历史趋势界面变量选择项,拆分速率相关变量和重要参数变量。 + 2、调用曲工查询过程,构建选择变量列表依次查询数据,绑定至对应曲线和对应坐标轴。 + 3、构建趋势chart的容器、X轴、Y轴、变量曲线实例、图例、颜色数组、鼠标提示框,组合生成趋势。 + *四 + 1、套用实时趋势的界面、前端JS、后端控制器、服务等实现代码,复用至喷煤实时趋势并制作该界面。 + 2、接入采集服务的实时数据库,设置实时趋势初始化时记录三秒钟实时数据来进行实时趋势初始化。 + *五 + 1、生成喷煤趋势变量随机数通过采集服务Api写入300cpu中,用来模拟实时趋势。 + 2、添加趋势刷新方法,按周期刷新趋势数据。 + 3、构建实时趋势,设置曲线数据从采集服务中的实时数据中每秒增加数据,最大数据量50个。 + */ //for (var ci = 0; ci < StaticSelectTagList.length; ci++) { // if (ci == 0) { diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmController.cs b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmController.cs new file mode 100644 index 0000000..ca8ebd8 --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryAlarmController.cs @@ -0,0 +1,154 @@ +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 PenMeiHistoryAlarmController : BaseController + { + public HistoryAlarmService _historyAlarmService { get;set;} + + [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 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; } + } + + } +} diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml new file mode 100644 index 0000000..9ab7298 --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryAlarm/Index.cshtml @@ -0,0 +1,1505 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + +
    + @**@ +
      +
    • 报警汇总
    • +
    • 报警查询
    • +
    +
    +
    +
    +
    + @*
    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    *@ +
    + @*
    +
    +
    +
    +
    *@ + +
    + +
    + @*
    +
    + +
    + + + +
    +
    +
    *@ +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + @*
    +
    + +
    + + + +
    +
    +
    *@ +
    +
    + +
    + + + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    +
    +
    @*style="width: 100%; height: 100% "*@ + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + @*
      *@ +
      +
      +
      +
      +
      +
      + +
      + +
      +
      +
      +
      + @*
      +
      +
      +
      +
      *@ + +
      +
      +
      +
      + +
      + +
      +
      +
      +
      +
      + +
      + +
      +
      +
      +
      +
      + +
      + + + +
      +
      +
      + +
      +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      @*style="width: 100%; height: 100% "*@ +
      +
      +
      +
      +
      +
      +
      +
      + + diff --git a/HT.Cloud.Web/WaterCloud.Web.xml b/HT.Cloud.Web/WaterCloud.Web.xml index 73b99ad..92aaa6c 100644 --- a/HT.Cloud.Web/WaterCloud.Web.xml +++ b/HT.Cloud.Web/WaterCloud.Web.xml @@ -123,6 +123,13 @@ 描 述:订单管理控制器类 + + + 创 建:cdl + 日 期:2023-02-23 11:10 + 描 述:历史趋势控制器类 + + 创 建:cdl diff --git a/HT.Cloud.Web/appsettings.json b/HT.Cloud.Web/appsettings.json index 0ea9f8a..a464a9b 100644 --- a/HT.Cloud.Web/appsettings.json +++ b/HT.Cloud.Web/appsettings.json @@ -25,7 +25,7 @@ "SqlMode": "TenantSql", //数据库模式多租户或者多库 "MoreSql" "ProjectPrefix": "watercloud", //项目中的前缀 "ReviseSystem": false, //是否重置密码 - "LoginErrorCount": 4, //登录错误次数 + "LoginErrorCount": 18, //登录错误次数 "IsCluster": false, //集群参数 开启时需要去quartz下载响应数据库 "NeedClear": false, //是否删除定时调度任务 "SqlConfig": [