喷煤趋势报警,趋势轴样式修改完成
This commit is contained in:
86
HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs
Normal file
86
HT.Cloud.Domain/Entity/ReportManage/HistoryAlarmEntity.cs
Normal file
@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using SqlSugar;
|
||||
|
||||
namespace HT.Cloud.Domain.ReportManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-08-16 15:58
|
||||
/// 描 述:报警信息变量表实体类
|
||||
/// </summary>
|
||||
[SugarTable("HT_HISTORY_ALARM")]
|
||||
public class HistoryAlarmEntity
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagID", ColumnDescription = "",ColumnDataType = "smallint(5)",IsIdentity = true)]
|
||||
public int TagID { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagName", ColumnDescription = "",ColumnDataType = "nvarchar(512)")]
|
||||
public string TagName { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")]
|
||||
public bool DataType { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DataSize", ColumnDescription = "",ColumnDataType = "smallint(5)")]
|
||||
public int DataSize { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Address", ColumnDescription = "",ColumnDataType = "nvarchar(64)")]
|
||||
public string Address { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="GroupID", ColumnDescription = "",ColumnDataType = "smallint(5)")]
|
||||
public int GroupID { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="IsActive", ColumnDescription = "",ColumnDataType = "bit(1)")]
|
||||
public bool IsActive { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Description", ColumnDescription = "",ColumnDataType = "nvarchar(128)")]
|
||||
public string Description { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Subsystem", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)]
|
||||
public string Subsystem { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Units", ColumnDescription = "",ColumnDataType = "nvarchar(20)", IsNullable = true)]
|
||||
public string Units { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="WriteAddress", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)]
|
||||
public string WriteAddress { get; set; }
|
||||
/// <summary>
|
||||
/// 报警类型
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Alarmtype", ColumnDescription = "报警类型",ColumnDataType = "nvarchar(8)", IsNullable = true)]
|
||||
public string Alarmtype { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="SysType", ColumnDescription = "",ColumnDataType = "nvarchar(8)", IsNullable = true)]
|
||||
public string SysType { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="SysAddress", ColumnDescription = "",ColumnDataType = "nvarchar(64)", IsNullable = true)]
|
||||
public string SysAddress { get; set; }
|
||||
}
|
||||
}
|
@ -52,19 +52,20 @@ namespace HT.Cloud.Service.ChartsManage
|
||||
return subsystems.ToJson();
|
||||
}
|
||||
|
||||
public async Task<string> GetAllSubsystemTag()
|
||||
public async Task<string> GetAllSubsystemTag(string groupDescription)
|
||||
{
|
||||
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
||||
var grouped = _context.Queryable<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();
|
||||
}
|
||||
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
||||
var groupId = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == groupDescription).First().GroupID;
|
||||
var grouped = _context.Queryable<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> GetSubsystemAllTag(string subsysytemName,string groupDescription)
|
||||
{
|
||||
|
215
HT.Cloud.Service/ReportManage/HistoryAlarmService.cs
Normal file
215
HT.Cloud.Service/ReportManage/HistoryAlarmService.cs
Normal file
@ -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<HistoryAlarmEntity>, IDenpendency
|
||||
{
|
||||
public HistoryAlarmService(ISqlSugarClient context) : base(context)
|
||||
{
|
||||
}
|
||||
public async Task<string> GetDriverGroupList()
|
||||
{
|
||||
|
||||
//var groupName = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||
//var driverId = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||
//var driverName = _context.Queryable<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||
//var list = _context.Ado.SqlQuery<Ht_History_ReportEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
||||
|
||||
List<GroupNameList> subsystems = new List<GroupNameList>();
|
||||
var list_group = _context.Queryable<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> GetAllSubsystemTag(string systemName)
|
||||
{
|
||||
var groupName = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||
var driverId = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||
var driverName = _context.Queryable<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||
var list = _context.Ado.SqlQuery<HistoryAlarmEntity>($"SELECT * FROM HT_{driverName}_{groupName}_ALARM");
|
||||
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
||||
//var grouped = repository.IQueryable().ToList();
|
||||
List<string> 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<string> GetSubsystemAllTag(string subsysytemName, string systemName)
|
||||
{
|
||||
var groupName = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||
var driverId = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||
var driverName = _context.Queryable<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||
var list = _context.Ado.SqlQuery<HistoryAlarmEntity>($"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<SubAllTagReturn>();
|
||||
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<string> 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<AlarmValue>.ConvertDataTableToList(dt);
|
||||
return valuelist.ToJson();
|
||||
|
||||
|
||||
// var testdata = new List<AlarmValue>
|
||||
// {
|
||||
// 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<ChartData>();
|
||||
//foreach (var value in valuelist)
|
||||
//{
|
||||
// resultlist.Add(new ChartData()
|
||||
// {
|
||||
// name = value.HDATETIME,
|
||||
// value = value.VALUE
|
||||
// });
|
||||
//}
|
||||
//return resultlist.ToJson();
|
||||
}
|
||||
|
||||
public async Task<string> 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<AlarmValueCount>.ConvertDataTableToList(dt);
|
||||
return valuelist.ToJson();
|
||||
|
||||
}
|
||||
//GetAlarmRecordQuickDesc
|
||||
public async Task<string> 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<AlarmValueCountDesc>.ConvertDataTableToList(dt);
|
||||
return valuelist.ToJson();
|
||||
|
||||
}
|
||||
public async Task<string> GetAlarmSubSystem(string alarmName, string systemName)
|
||||
{
|
||||
var groupName = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||
var driverId = _context.Queryable<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||
var driverName = _context.Queryable<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||
var list = _context.Ado.SqlQuery<HistoryAlarmEntity>($"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; }
|
||||
}
|
||||
}
|
||||
}
|
@ -33,24 +33,27 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
||||
return Content(data);
|
||||
}
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetGroupSubsystemTag(ChartGroupDescription chartGroupDescription)
|
||||
public async Task<ActionResult> GetGroupSubsystemTag(string systemName)
|
||||
{
|
||||
|
||||
var data = await _historyChartsService.GetGroupSubsystemTag(chartGroupDescription.GroupDescription);
|
||||
var data = await _historyChartsService.GetGroupSubsystemTag(systemName);
|
||||
return Content(data);
|
||||
}
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetAllSubsystemTag()
|
||||
{
|
||||
|
||||
var data = await _historyChartsService.GetAllSubsystemTag();
|
||||
string systemName = "制粉系统";
|
||||
|
||||
var data = await _historyChartsService.GetAllSubsystemTag(systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName)
|
||||
{
|
||||
var data = await _historyChartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, chartSubsysytemName.GroupDescription);
|
||||
public async Task<ActionResult> GetSubsystemAllTag(string SubsysytemName)
|
||||
{
|
||||
string systemName = "制粉系统";
|
||||
|
||||
var data = await _historyChartsService.GetSubsystemAllTag(SubsysytemName, systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
|
@ -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 @@
|
||||
@*<ul id="dataTree" class="dtree" data-id="0"></ul>*@
|
||||
<div id="aleft" style="float:left;width:100%;height:100%">
|
||||
<div class="easyui-panel" title="选择设备信息" style="width:100%;height:100%">
|
||||
<div class="easyui-combobox" id="groupselect" name="group" data-options="onSelect:function(rec){updateGroupSelect(rec)}" style="width:100%;height:40px">
|
||||
</div>
|
||||
@*<div class="easyui-combobox" id="groupselect" name="group" data-options="onSelect:function(rec){updateGroupSelect(rec)}" style="width:100%;height:40px">
|
||||
</div>*@
|
||||
<div class="easyui-combobox" id="subsystemselect" name="state" data-options="onSelect:function(rec){updateSelect(rec)}" style="width:100%;height:40px">
|
||||
</div>
|
||||
<div class="easyui-datalist" id="subsystemTagList" title="变量列表" style="position: relative;width:100%;height:auto;overflow:auto;" data-options="
|
||||
|
@ -42,15 +42,16 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetAllSubsystemTag()
|
||||
{
|
||||
|
||||
var data = await _historyChartsService.GetAllSubsystemTag();
|
||||
string systemName = "喷煤系统";
|
||||
var data = await _historyChartsService.GetAllSubsystemTag(systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName)
|
||||
public async Task<ActionResult> GetSubsystemAllTag(string SubsysytemName)
|
||||
{
|
||||
var data = await _historyChartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, chartSubsysytemName.GroupDescription);
|
||||
string systemName = "喷煤系统";
|
||||
var data = await _historyChartsService.GetSubsystemAllTag(SubsysytemName, systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
|
@ -625,10 +625,10 @@
|
||||
// min: 0,
|
||||
// 让表格的刻度向靠里侧显示
|
||||
axisTick: {
|
||||
inside: true
|
||||
inside: false
|
||||
},
|
||||
axisLabel: {
|
||||
inside: true,
|
||||
inside: false,
|
||||
align: 'left',
|
||||
verticalAlign: 'bottom',
|
||||
},
|
||||
|
@ -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 @@
|
||||
<body style="height:100%">
|
||||
|
||||
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
|
||||
|
||||
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
||||
<div class="layui-row layui-col-space5" style="height:100%">
|
||||
<div class="layui-col-md2 layui-col-xs3" style="height:100%;padding-right:12px;">
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-02-23 11:10
|
||||
/// 描 述:历史趋势控制器类
|
||||
/// </summary>
|
||||
[Area("PenMeiReportManage")]
|
||||
public class PenMeiHistoryAlarmController : BaseController
|
||||
{
|
||||
public HistoryAlarmService _historyAlarmService { get;set;}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetDriverGroupList()
|
||||
{
|
||||
var data = await _historyAlarmService.GetDriverGroupList();
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetAllSubsystemTag()
|
||||
{
|
||||
string systemName = "喷煤系统";
|
||||
|
||||
var data = await _historyAlarmService.GetAllSubsystemTag(systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName)
|
||||
{
|
||||
string systemName = "喷煤系统";
|
||||
|
||||
var data = await _historyAlarmService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, systemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -123,6 +123,13 @@
|
||||
描 述:订单管理控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmController">
|
||||
<summary>
|
||||
创 建:cdl
|
||||
日 期:2023-02-23 11:10
|
||||
描 述:历史趋势控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.ReportManage.Controllers.MetaTagAlarmController">
|
||||
<summary>
|
||||
创 建:cdl
|
||||
|
@ -25,7 +25,7 @@
|
||||
"SqlMode": "TenantSql", //数据库模式多租户或者多库 "MoreSql"
|
||||
"ProjectPrefix": "watercloud", //项目中的前缀
|
||||
"ReviseSystem": false, //是否重置密码
|
||||
"LoginErrorCount": 4, //登录错误次数
|
||||
"LoginErrorCount": 18, //登录错误次数
|
||||
"IsCluster": false, //集群参数 开启时需要去quartz下载响应数据库
|
||||
"NeedClear": false, //是否删除定时调度任务
|
||||
"SqlConfig": [
|
||||
|
Reference in New Issue
Block a user