大版本更新推送
This commit is contained in:
@ -310,16 +310,46 @@ namespace HT.Cloud.Code
|
|||||||
this IServiceCollection @this)
|
this IServiceCollection @this)
|
||||||
{
|
{
|
||||||
var ret = new List<Type>();
|
var ret = new List<Type>();
|
||||||
var assemblies = Directory.GetFiles(AppContext.BaseDirectory, "*.dll")
|
try
|
||||||
.Select(x => x.Substring(@"\").Substring(@"/").Replace(".dll", ""))
|
|
||||||
.Select(x => Assembly.Load(x)).ToArray();
|
|
||||||
//排除列表
|
|
||||||
var ignoreList= new List<string>{ "EventBusHostedService" };
|
|
||||||
foreach (var item in assemblies)
|
|
||||||
{
|
{
|
||||||
ret.AddRange(item.GetTypes() //获取当前类库下所有类型
|
var listAssemblies = new List<Assembly>();
|
||||||
.Where(t => typeof(BackgroundService).IsAssignableFrom(t)) //获取间接或直接继承t的所有类型
|
|
||||||
.Where(t => !t.IsAbstract && t.IsClass && !ignoreList.Contains(t.Name)));//获取非抽象类 排除接口继承
|
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<string> { "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)
|
foreach (var item in ret)
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.3.45" />
|
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.1.3.45" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -9,7 +9,10 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.3.45" />
|
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.0" />
|
||||||
|
<PackageReference Include="MySqlConnector" Version="2.2.5" />
|
||||||
|
<PackageReference Include="Npgsql" Version="5.0.7" />
|
||||||
|
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.1.3.45" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
|
namespace HT.Cloud.Domain.Entity.ReportManage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 创 建:cdl
|
||||||
|
/// 日 期:2023-03-30 14:52
|
||||||
|
/// 描 述:实时报表SQL转换实体类
|
||||||
|
/// </summary>
|
||||||
|
[SugarTable("HT_REALTIME_APPSTATE")]
|
||||||
|
[Tenant("1")]
|
||||||
|
public class RTApplicationStateEntity
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "ID", ColumnDescription = "", ColumnDataType = "int(10)")]
|
||||||
|
public int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 显示名称
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "ApplicationName", ColumnDescription = "", ColumnDataType = "int(128)", IsNullable = true)]
|
||||||
|
public string Description { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MiniExcel" Version="1.30.0" />
|
<PackageReference Include="MiniExcel" Version="1.30.0" />
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.3.45" />
|
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.1.3.45" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -14,6 +14,7 @@ using HT.Cloud.Domain.ReportManage;
|
|||||||
using Quartz;
|
using Quartz;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Security.Cryptography.Xml;
|
||||||
|
|
||||||
namespace HT.Cloud.Service.ChartsManage
|
namespace HT.Cloud.Service.ChartsManage
|
||||||
{
|
{
|
||||||
@ -107,8 +108,9 @@ namespace HT.Cloud.Service.ChartsManage
|
|||||||
return reList.ToJson();
|
return reList.ToJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<string> GetChartsTagValueInit(string[] charts_TagNames,string systemName)
|
public async Task<string> GetChartsTagValueInit(string[] charts_TagNames, string[] Tables, string systemName)
|
||||||
{
|
{
|
||||||
|
|
||||||
var tagName_list = new List<string>();
|
var tagName_list = new List<string>();
|
||||||
|
|
||||||
var result_list = new List<List<ChartData>>();
|
var result_list = new List<List<ChartData>>();
|
||||||
@ -121,7 +123,23 @@ namespace HT.Cloud.Service.ChartsManage
|
|||||||
result_list.Add(new List<ChartData>());
|
result_list.Add(new List<ChartData>());
|
||||||
}
|
}
|
||||||
var remoteRtDataServer = _context.AsTenant().QueryableWithAttr<RtTechChartsEntity>().First().remotertdataserver + $"?groupName={groupName}";
|
var remoteRtDataServer = _context.AsTenant().QueryableWithAttr<RtTechChartsEntity>().First().remotertdataserver + $"?groupName={groupName}";
|
||||||
for (int i = 0; i < 3; i++)
|
|
||||||
|
|
||||||
|
/**/
|
||||||
|
var timeEnd = DateTime.Now.AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
|
var timeStart = DateTime.Now.AddHours(-2).ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
|
var timeinterval = 1;
|
||||||
|
bool finish = false;
|
||||||
|
var initDbData = new List<List<ChartData>>();
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
GetTagValueInit_Backgroud(Tables, charts_TagNames, timeStart, timeEnd, timeinterval, out finish, out initDbData);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**/
|
||||||
|
|
||||||
|
|
||||||
|
while (!finish)
|
||||||
{
|
{
|
||||||
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
|
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
|
||||||
|
|
||||||
@ -150,9 +168,52 @@ namespace HT.Cloud.Service.ChartsManage
|
|||||||
}
|
}
|
||||||
Thread.Sleep(980);
|
Thread.Sleep(980);
|
||||||
}
|
}
|
||||||
return result_list.ToJson();
|
|
||||||
|
for(int ii =0;ii<initDbData.Count;ii++)
|
||||||
|
{
|
||||||
|
var item = result_list[ii].ToList();
|
||||||
|
initDbData[ii].AddRange(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
return initDbData.ToJson();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void GetTagValueInit_Backgroud(string[] tables, string[] tagNames, string startdt, string enddt, int timeinterval,out bool finish, out List<List<ChartData>> initDbData)
|
||||||
|
{
|
||||||
|
finish = false;
|
||||||
|
initDbData = new List<List<ChartData>>();
|
||||||
|
for(int i = 0;i<tagNames.Length;i++)
|
||||||
|
{
|
||||||
|
SugarParameter[] sqlParameters =
|
||||||
|
{
|
||||||
|
new SugarParameter("@HTable",tables[i]),
|
||||||
|
new SugarParameter("@HTagName",tagNames[i]),
|
||||||
|
new SugarParameter("@startdt",startdt),
|
||||||
|
new SugarParameter("@enddt",enddt),
|
||||||
|
new SugarParameter("@timeinterval",timeinterval)
|
||||||
|
};
|
||||||
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Chart_Tag", sqlParameters);
|
||||||
|
//*
|
||||||
|
//var ds = db.SqlQuery("Query_Report_Period", sqlParameters);///
|
||||||
|
|
||||||
|
var valuelist = DataTableConvertModel<HDATETIMEVALUE>.ConvertDataTableToList(dt);
|
||||||
|
var resultlist = new List<ChartData>();
|
||||||
|
foreach (var value in valuelist)
|
||||||
|
{
|
||||||
|
resultlist.Add(new ChartData()
|
||||||
|
{
|
||||||
|
name = value.HDATETIME,
|
||||||
|
value = value.VALUE
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initDbData.Add(resultlist);
|
||||||
|
}
|
||||||
|
finish = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<string> GetChartsTagValue(string[] charts_TagNames, string systemName)
|
public async Task<string> GetChartsTagValue(string[] charts_TagNames, string systemName)
|
||||||
{
|
{
|
||||||
var tagName_list = new List<string>();
|
var tagName_list = new List<string>();
|
||||||
@ -227,5 +288,6 @@ namespace HT.Cloud.Service.ChartsManage
|
|||||||
public String HDATETIME { get; set; }
|
public String HDATETIME { get; set; }
|
||||||
public decimal VALUE { get; set; }
|
public decimal VALUE { get; set; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
80
HT.Cloud.Service/ReportManage/ApplicationStateService.cs
Normal file
80
HT.Cloud.Service/ReportManage/ApplicationStateService.cs
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
using MiniExcelLibs;
|
||||||
|
using Serenity.Services;
|
||||||
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data.SqlClient;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using HT.Cloud.Domain.ReportManage;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using System.Data;
|
||||||
|
using HT.Cloud.Code;
|
||||||
|
using HT.Cloud.Domain.ChartsManage;
|
||||||
|
using HT.Cloud.Domain.DevicesManage;
|
||||||
|
using Quartz;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using HT.Cloud.Domain.Entity.ReportManage;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
namespace HT.Cloud.Service.ReportManage
|
||||||
|
{
|
||||||
|
public class ApplicationStateService : BaseService<RTApplicationStateEntity>, IDenpendency
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 绑定数据仓库的数据库ID
|
||||||
|
/// </summary>
|
||||||
|
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
|
||||||
|
|
||||||
|
public ApplicationStateService(ISqlSugarClient context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetApplicationList(string systemName)
|
||||||
|
{
|
||||||
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||||
|
var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||||
|
var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||||
|
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<RTMainPageEntity>($"SELECT * FROM HT_{driverName}_{groupName}_STATE");
|
||||||
|
|
||||||
|
return list.ToJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetRtApplicationState(string systemName)
|
||||||
|
{
|
||||||
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||||
|
var driverId = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().DriverID;
|
||||||
|
var driverName = _context.AsTenant().QueryableWithAttr<MetaDriverEntity>().Where(x => x.DriverID == driverId).First().DriverName;
|
||||||
|
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<RTMainPageEntity>($"SELECT * FROM HT_{driverName}_{groupName}_STATE");
|
||||||
|
|
||||||
|
var interval = 1000;
|
||||||
|
|
||||||
|
foreach ( var item in list )
|
||||||
|
{
|
||||||
|
var process = Process.GetProcessesByName("HT.Cloud.Web")[0];
|
||||||
|
var startTime = DateTime.UtcNow;
|
||||||
|
var startCpuUsage = process.TotalProcessorTime;
|
||||||
|
// Perform some work
|
||||||
|
Thread.Sleep(interval);
|
||||||
|
var endTime = DateTime.UtcNow;
|
||||||
|
var endCpuUsage = process.TotalProcessorTime;
|
||||||
|
var cpuUsage = (endCpuUsage - startCpuUsage) / (endTime - startTime) / Environment.ProcessorCount * 100;
|
||||||
|
var memory = process.WorkingSet64 / (1024 * 1024);
|
||||||
|
Console.WriteLine($"CPU usage: {cpuUsage}% Memory: {memory}MB");
|
||||||
|
}
|
||||||
|
return list.ToJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class RealTimeDataFormat
|
||||||
|
{
|
||||||
|
public string Description { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
public string RtTime { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -177,6 +177,49 @@ namespace HT.Cloud.Service.ReportManage
|
|||||||
var subSystem = list.Where(x => x.Description == alarmName).First().Subsystem;
|
var subSystem = list.Where(x => x.Description == alarmName).First().Subsystem;
|
||||||
return subSystem.ToJson();
|
return subSystem.ToJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetAlarm_ACC(string startdt, string enddt, string systemName)
|
||||||
|
{
|
||||||
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||||
|
SugarParameter[] sqlParameters =
|
||||||
|
{
|
||||||
|
new SugarParameter("@HGROUPNAME",groupName),
|
||||||
|
new SugarParameter("@Hstartdt",startdt),
|
||||||
|
new SugarParameter("@Henddt",enddt)
|
||||||
|
};
|
||||||
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_ACC", sqlParameters);
|
||||||
|
var valuelist = DataTableConvertModel<AlarmACC>.ConvertDataTableToList(dt);
|
||||||
|
return valuelist.ToJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetAlarm_Histogram(string startdt, string enddt, string systemName)
|
||||||
|
{
|
||||||
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||||
|
SugarParameter[] sqlParameters =
|
||||||
|
{
|
||||||
|
new SugarParameter("@HGROUPNAME",groupName),
|
||||||
|
new SugarParameter("@Hstartdt",startdt),
|
||||||
|
new SugarParameter("@Henddt",enddt)
|
||||||
|
};
|
||||||
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_Histogram", sqlParameters);
|
||||||
|
var valuelist = DataTableConvertModel<AlarmHistogram>.ConvertDataTableToList(dt);
|
||||||
|
return valuelist.ToJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<string> GetAlarm_Pie(string startdt, string enddt, string systemName)
|
||||||
|
{
|
||||||
|
var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
|
||||||
|
SugarParameter[] sqlParameters =
|
||||||
|
{
|
||||||
|
new SugarParameter("@HGROUPNAME",groupName),
|
||||||
|
new SugarParameter("@Hstartdt",startdt),
|
||||||
|
new SugarParameter("@Henddt",enddt)
|
||||||
|
};
|
||||||
|
var dt = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("HT_BI_Alarm_Pie", sqlParameters);
|
||||||
|
var valuelist = DataTableConvertModel<AlarmPie>.ConvertDataTableToList(dt);
|
||||||
|
return valuelist.ToJson();
|
||||||
|
}
|
||||||
|
|
||||||
private class AlarmValueCount
|
private class AlarmValueCount
|
||||||
{
|
{
|
||||||
public string Alarmtype { get; set; }
|
public string Alarmtype { get; set; }
|
||||||
@ -218,5 +261,27 @@ namespace HT.Cloud.Service.ReportManage
|
|||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Units { 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ using HT.Cloud.DataBase;
|
|||||||
using HT.Cloud.Domain.SystemManage;
|
using HT.Cloud.Domain.SystemManage;
|
||||||
using HT.Cloud.Code.Model;
|
using HT.Cloud.Code.Model;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using NetTaste;
|
//using NetTaste;
|
||||||
|
|
||||||
namespace HT.Cloud.Service.SystemManage
|
namespace HT.Cloud.Service.SystemManage
|
||||||
{
|
{
|
||||||
|
@ -691,6 +691,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
@ -872,7 +873,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -285,6 +285,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
|
@ -20,8 +20,10 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
|||||||
/// 描 述:历史趋势控制器类
|
/// 描 述:历史趋势控制器类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Area("PenMeiChartsManage")]
|
[Area("PenMeiChartsManage")]
|
||||||
public class PenMeiHistoryChartsController : BaseController
|
[HandlerLogin(needLogin:false)]
|
||||||
{
|
[HandlerAuthorize(needAuth:false)]
|
||||||
|
public class PenMeiHistoryChartsController : BaseController //BaseController
|
||||||
|
{
|
||||||
public HistoryChartsService _historyChartsService { get;set;}
|
public HistoryChartsService _historyChartsService { get;set;}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 绑定数据仓库的数据库ID
|
/// 绑定数据仓库的数据库ID
|
||||||
|
@ -20,7 +20,9 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
|||||||
/// 描 述:历史趋势控制器类
|
/// 描 述:历史趋势控制器类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Area("PenMeiChartsManage")]
|
[Area("PenMeiChartsManage")]
|
||||||
public class PenMeiHistoryTechChartsController : BaseController
|
[HandlerLogin(needLogin: false)]
|
||||||
|
[HandlerAuthorize(needAuth: false)]
|
||||||
|
public class PenMeiHistoryTechChartsController : BaseController
|
||||||
{
|
{
|
||||||
public HistoryTechChartsService _historyTechChartsService { get;set;}
|
public HistoryTechChartsService _historyTechChartsService { get;set;}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -20,7 +20,9 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
|||||||
/// 描 述:历史趋势控制器类
|
/// 描 述:历史趋势控制器类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Area("PenMeiChartsManage")]
|
[Area("PenMeiChartsManage")]
|
||||||
public class PenMeiRtTechChartsController : BaseController
|
[HandlerLogin(needLogin: false)]
|
||||||
|
[HandlerAuthorize(needAuth: false)]
|
||||||
|
public class PenMeiRtTechChartsController : BaseController
|
||||||
{
|
{
|
||||||
public RtTechChartsService _rtTechChartsService { get;set;}
|
public RtTechChartsService _rtTechChartsService { get;set;}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -65,10 +67,10 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<ActionResult> GetChartsTagValueInit(string[] charts_TagNames)
|
public async Task<ActionResult> GetChartsTagValueInit(string[] charts_TagNames, string[] Tables)
|
||||||
{
|
{
|
||||||
var systemName = "喷煤系统";
|
var systemName = "喷煤系统";
|
||||||
var data = await _rtTechChartsService.GetChartsTagValueInit(charts_TagNames, systemName);
|
var data = await _rtTechChartsService.GetChartsTagValueInit(charts_TagNames, Tables, systemName);
|
||||||
return Content(data);
|
return Content(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -691,6 +691,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
@ -872,7 +873,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -869,7 +869,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -816,6 +816,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
@ -1029,7 +1030,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -478,18 +478,22 @@
|
|||||||
//获取tagvalue
|
//获取tagvalue
|
||||||
async function GetChartsTagValue() {
|
async function GetChartsTagValue() {
|
||||||
var chardatalist = new Array();
|
var chardatalist = new Array();
|
||||||
|
var tablesArr = [];
|
||||||
SelectTagNamelist.splice(0, SelectTagNamelist.length)
|
SelectTagNamelist.splice(0, SelectTagNamelist.length)
|
||||||
for (var si = 0; si < StaticSelectTagList.length; si++) {
|
for (var si = 0; si < StaticSelectTagList.length; si++) {
|
||||||
SelectTagNamelist.push(StaticSelectTagList[si].TagName);
|
SelectTagNamelist.push(StaticSelectTagList[si].TagName);
|
||||||
|
debugger;
|
||||||
|
tablesArr.push(StaticSelectTagList[si].Table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
myajax = await $.ajax({
|
myajax = await $.ajax({
|
||||||
url: "/PenMeiChartsManage/PenMeiRtTechCharts/GetChartsTagValueInit",
|
url: "/PenMeiChartsManage/PenMeiRtTechCharts/GetChartsTagValueInit",
|
||||||
type: "Post",
|
type: "Post",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
traditional: true,//这里设置为true
|
traditional: true,//这里设置为true
|
||||||
data: { charts_TagNames: SelectTagNamelist },
|
data: { charts_TagNames: SelectTagNamelist, Tables: tablesArr },
|
||||||
success: function (redata) { }
|
success: function (redata) { }
|
||||||
});
|
});
|
||||||
debugger;
|
debugger;
|
||||||
@ -508,319 +512,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//showchart = async function () {
|
|
||||||
// //(document.getElementById('echarts-records'), 'walden');
|
|
||||||
// var myChart = echarts.init(document.getElementById('result'),'walden');
|
|
||||||
|
|
||||||
// myChart.hideLoading();
|
|
||||||
// myChart.showLoading();
|
|
||||||
|
|
||||||
// var chardatalist = await GetChartsTagValue();
|
|
||||||
|
|
||||||
// var unitsrc = new Array();
|
|
||||||
// var unitnames = new Array();
|
|
||||||
// var unitcolor = new Array();
|
|
||||||
// for(var ddi = 0;ddi<StaticSelectTagList.length;ddi++){
|
|
||||||
// var unit_now = StaticSelectTagList[ddi].Units;
|
|
||||||
// if (unitsrc.indexOf(unit_now) == -1) {
|
|
||||||
// debugger;
|
|
||||||
// unitsrc.push(unit_now);
|
|
||||||
// unitnames.push(StaticSelectTagList[ddi].UnitType + "(" + StaticSelectTagList[ddi].Units + ")");
|
|
||||||
// unitcolor.push(StaticSelectTagList[ddi].HTRGB);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// debugger;
|
|
||||||
// myChart.dispose();
|
|
||||||
|
|
||||||
// var xDataArr = new Array();
|
|
||||||
// var yDataArr = 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 });
|
|
||||||
// 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<unitsrc.length;ui++){
|
|
||||||
// if (unitsrc[ui].Units == unitss){
|
|
||||||
// unitIndex = ui;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// debugger;
|
|
||||||
// //bool变量取消平滑采取折线
|
|
||||||
// let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
|
||||||
// let seriesdata = {
|
|
||||||
// data: yDataArr[si],
|
|
||||||
// // 曲线名
|
|
||||||
// name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
|
||||||
// // 设置参数对应的y坐标轴的索引
|
|
||||||
// yAxisIndex: unitIndex,
|
|
||||||
// type: 'line',
|
|
||||||
// // 曲线平滑设置
|
|
||||||
// smooth: issmooth
|
|
||||||
// }
|
|
||||||
// series.push(seriesdata);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 设置鼠标hover时的提示信息
|
|
||||||
// var tooltip = {
|
|
||||||
// trigger: 'axis', // 有3个属性值 axis item none
|
|
||||||
// axisPointer: {
|
|
||||||
// type: 'cross',
|
|
||||||
// label: {
|
|
||||||
// backgroundColor: '#6a7985' //配置展示方块的背景颜色
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// // 调整表格两边的空白的区
|
|
||||||
// var grid = {
|
|
||||||
// //left:'20px'
|
|
||||||
// // 左侧
|
|
||||||
// //x: '150px',
|
|
||||||
// x: lightwhite+'px',
|
|
||||||
// // 上部
|
|
||||||
// y: 25,
|
|
||||||
// // 右侧
|
|
||||||
// //x2: lightwhite + 'px',
|
|
||||||
// x2:10,
|
|
||||||
// // 下部
|
|
||||||
// // y2: 35
|
|
||||||
// }
|
|
||||||
// var letest = ['tg', 'fe', 'wdf'];
|
|
||||||
// // 调整图样的名称 // 定义图样和每条曲线的颜色
|
|
||||||
// var legend = new Array();
|
|
||||||
// for (var li = 0; li < StaticSelectTagList.length; li++) {
|
|
||||||
// debugger;
|
|
||||||
// let legenddata = StaticSelectTagList[li].Description;
|
|
||||||
// legend.push(JSON.parse(JSON.stringify(legenddata)));
|
|
||||||
// }
|
|
||||||
// var dataZoom = {
|
|
||||||
// //type: 'slider'
|
|
||||||
// type: 'inside'
|
|
||||||
// }
|
|
||||||
|
|
||||||
// var option = {
|
|
||||||
// xAxis: {
|
|
||||||
// name: '时间',
|
|
||||||
// type: 'category',
|
|
||||||
// position: 'bottom',
|
|
||||||
// data: xDataArr[0],
|
|
||||||
// // boundaryGap: false, //x下标在刻度处显示
|
|
||||||
// splitLine: {
|
|
||||||
// show: true, //想要不显示网格线,改为false
|
|
||||||
// lineStyle: {
|
|
||||||
// // 设置网格为虚线
|
|
||||||
// type: 'dashed'
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// axisTick:{
|
|
||||||
// show:true,
|
|
||||||
// //alignWithLabel:true,
|
|
||||||
// //interval:'1'
|
|
||||||
// },
|
|
||||||
// // splitArea: { show: true }, //保留网格区域
|
|
||||||
// // 设置刻度线的颜色等样式
|
|
||||||
// axisLine: {
|
|
||||||
// onZero: false,
|
|
||||||
// lineStyle: {
|
|
||||||
// color: 'black',
|
|
||||||
// width: 3
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// yAxis: yAxis,
|
|
||||||
// series: series,
|
|
||||||
// tooltip: tooltip,
|
|
||||||
// grid: grid,
|
|
||||||
// legend: {
|
|
||||||
// data: legend,
|
|
||||||
// top: 'top',
|
|
||||||
// bottom: 'auto',
|
|
||||||
// left: 'center',
|
|
||||||
// right: 'auto'
|
|
||||||
// },
|
|
||||||
// dataZoom: dataZoom,
|
|
||||||
// color: color
|
|
||||||
// };
|
|
||||||
// setTimeout(bulidchart(option), 500);
|
|
||||||
|
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
showchart = async function () {
|
showchart = async function () {
|
||||||
//(document.getElementById('echarts-records'), 'walden');
|
//(document.getElementById('echarts-records'), 'walden');
|
||||||
var myChart = echarts.init(document.getElementById('result'), 'walden');
|
var myChart = echarts.init(document.getElementById('result'), 'walden');
|
||||||
@ -1079,6 +770,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
|
@ -60,7 +60,7 @@
|
|||||||
async function GetAllSubsystemTag() {
|
async function GetAllSubsystemTag() {
|
||||||
debugger;
|
debugger;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "/ChartsManage/Rtcharts/GetAllSubsystemTag",
|
url: "/PenMeiChartsManage/PenMeiRtcharts/GetAllSubsystemTag",
|
||||||
type: "Get",
|
type: "Get",
|
||||||
//dataType: "json",
|
//dataType: "json",
|
||||||
//async: false,
|
//async: false,
|
||||||
@ -85,7 +85,7 @@
|
|||||||
//var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para);
|
//var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para);
|
||||||
debugger;
|
debugger;
|
||||||
myajax = $.ajax({
|
myajax = $.ajax({
|
||||||
url: "/ChartsManage/Rtcharts/GetSubsystemAllTag",
|
url: "/PenMeiChartsManage/PenMeiRtcharts/GetSubsystemAllTag",
|
||||||
type: "Post",
|
type: "Post",
|
||||||
//dataType: "json",
|
//dataType: "json",
|
||||||
data: para,
|
data: para,
|
||||||
@ -154,7 +154,7 @@
|
|||||||
//});
|
//});
|
||||||
//debugger;
|
//debugger;
|
||||||
myajax = await $.ajax({
|
myajax = await $.ajax({
|
||||||
url: "/ChartsManage/Rtcharts/GetChartsTagValueInit",
|
url: "/PenMeiChartsManage/PenMeiRtcharts/GetChartsTagValueInit",
|
||||||
type: "Post",
|
type: "Post",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
traditional: true,//这里设置为true
|
traditional: true,//这里设置为true
|
||||||
@ -285,6 +285,7 @@
|
|||||||
//bool变量取消平滑采取折线
|
//bool变量取消平滑采取折线
|
||||||
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
||||||
let seriesdata = {
|
let seriesdata = {
|
||||||
|
symbol: "none",
|
||||||
data: yDataArr[si],
|
data: yDataArr[si],
|
||||||
// 曲线名
|
// 曲线名
|
||||||
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
name: JSON.parse(JSON.stringify(StaticSelectTagList[si].Description)),
|
||||||
@ -395,7 +396,7 @@
|
|||||||
var RtData = new Array();
|
var RtData = new Array();
|
||||||
|
|
||||||
myajax = await $.ajax({
|
myajax = await $.ajax({
|
||||||
url: "/ChartsManage/Rtcharts/GetChartsTagValue",
|
url: "/PenMeiChartsManage/PenMeiRtcharts/GetChartsTagValue",
|
||||||
type: "Post",
|
type: "Post",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
traditional: true,//这里设置为true
|
traditional: true,//这里设置为true
|
||||||
|
@ -103,21 +103,66 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers
|
|||||||
return (dt.ToString("yyyy/MM/dd HH:mm:ss"));
|
return (dt.ToString("yyyy/MM/dd HH:mm:ss"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//public class SubAllTagReturn
|
public string Gettime_(string longtime)
|
||||||
//{
|
{
|
||||||
// //x.TagID, x.Description, x.Units
|
long jsTimeStamp = long.Parse(longtime);
|
||||||
// public short TagID { get; set; }
|
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
|
||||||
// public string Description { get; set; }
|
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
|
||||||
// public string Units { get; set; }
|
return (dt.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
//}
|
}
|
||||||
|
|
||||||
//public class SubsysytemNameList
|
|
||||||
//{
|
|
||||||
// public string Lable { get; set; }
|
|
||||||
// public string Value { get; set; }
|
|
||||||
//}
|
|
||||||
|
|
||||||
public class ChartSubsysytemName
|
[HttpPost]
|
||||||
|
public async Task<ActionResult> 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<ActionResult> 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<ActionResult> 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; }
|
public string SubsysytemName { get; set; }
|
||||||
}
|
}
|
||||||
@ -153,5 +198,22 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers
|
|||||||
public string Hhour { get; set; }
|
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; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 创 建:cdl
|
||||||
|
/// 日 期:2023-02-23 11:10
|
||||||
|
/// 描 述:历史趋势控制器类
|
||||||
|
/// </summary>
|
||||||
|
[Area("PenMeiReportManage")]
|
||||||
|
public class PenMeiHistoryAlarmNewController : BaseController
|
||||||
|
{
|
||||||
|
public HistoryAlarmService _historyAlarmService { get;set;}
|
||||||
|
/// <summary>
|
||||||
|
/// 绑定数据仓库的数据库ID
|
||||||
|
/// </summary>
|
||||||
|
private string groupDescription = GlobalContext.SystemConfig.GroupDescription;
|
||||||
|
[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 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<ActionResult> 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<ActionResult> 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<ActionResult> 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -15,7 +15,9 @@ using HT.Cloud.Code;
|
|||||||
namespace HT.Cloud.Web.Areas.PenMeiReportManage.Controllers
|
namespace HT.Cloud.Web.Areas.PenMeiReportManage.Controllers
|
||||||
{
|
{
|
||||||
[Area("PenMeiReportManage")]
|
[Area("PenMeiReportManage")]
|
||||||
public class PenMeiHistoryReportController : BaseController
|
[HandlerLogin(needLogin: false)]
|
||||||
|
[HandlerAuthorize(needAuth: false)]
|
||||||
|
public class PenMeiHistoryReportController : BaseController
|
||||||
{
|
{
|
||||||
public HistoryReportService _historyReportService { get; set; }
|
public HistoryReportService _historyReportService { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -701,6 +701,60 @@
|
|||||||
value: getFormatDateone(endtime),
|
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) {
|
function getFormatDate(date) {
|
||||||
let year = date.getFullYear();
|
let year = date.getFullYear();
|
||||||
@ -1157,8 +1211,239 @@
|
|||||||
return result;
|
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 @@
|
|||||||
</script>
|
</script>
|
||||||
<html style="height:100%">
|
<html style="height:100%">
|
||||||
<body style="height:100%">
|
<body style="height:100%">
|
||||||
|
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
|
||||||
<div class="layui-tab layui-tab-card" lay-filter="Chang" style="height:100%" id="tab1">
|
<div class="layui-tab layui-tab-card" lay-filter="Chang" style="height:100%" id="tab1">
|
||||||
@*<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>*@
|
@*<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>*@
|
||||||
<ul class="layui-tab-title">
|
<ul class="layui-tab-title">
|
||||||
<li class="layui-this" lay-id ="11">报警汇总</li>
|
<li class="layui-this" lay-id="sanding">散点图</li>
|
||||||
|
<li lay-id="zhu">柱状图</li>
|
||||||
|
<li lay-id="bing">饼图图</li>
|
||||||
|
<li lay-id ="11">报警汇总</li>
|
||||||
<li lay-id ="22">报警查询</li>
|
<li lay-id ="22">报警查询</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="layui-tab-content" style="height:90%">
|
<div class="layui-tab-content" style="height:90%">
|
||||||
|
|
||||||
<div class="layui-tab-item layui-show" style="height:100%">
|
<div class="layui-tab-item layui-show" style="height:100%">
|
||||||
|
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
||||||
|
<div class="layui-row layui-col-space5" style="height:100%">
|
||||||
|
|
||||||
|
<div class="layui-col-md12 layui-col-xs12" style="height:100%">
|
||||||
|
<form class="layui-form" style="height:auto;" id="formPreviewFormSD">
|
||||||
|
|
||||||
|
<div id="grid_31" class="layui-form-item layui-row grid active" data-id="grid_31"
|
||||||
|
data-tag="grid" data-index="0">
|
||||||
|
|
||||||
|
<div class="layui-col-md3 widget-col-list column1" data-index="0" data-parentindex="0">
|
||||||
|
<div id="ReStartTimeSD" class="layui-form-item active" data-id="ReStartTimeSD"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
开始时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReStartTimeSD" name="ndateReStartTimeSD" lay-verify="required"
|
||||||
|
class="layui-input icon-date widget-date " style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md3 widget-col-list column2" data-index="2" data-parentindex="0">
|
||||||
|
<div id="ReEndTimeSD" class="layui-form-item active" data-id="ReEndTimeSD"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
结束时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReEndTimeSD" name="ndateReEndTimeSD" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="2" data-parentindex="0" id="recentMdSD">
|
||||||
|
<div id="select_11SD" class="layui-form-item active" data-id="select_11SD" data-tag="select"
|
||||||
|
data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
||||||
|
速查范围:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 140px;">
|
||||||
|
|
||||||
|
<select name="selectquick" lay-filter="quickTime" lay-verify="required" id="selectRecentQuickSD">
|
||||||
|
<option value="onlyOneHour" selected="">
|
||||||
|
一小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyThreeHour">
|
||||||
|
三小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyEightHour">
|
||||||
|
八小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyTwelveHour">
|
||||||
|
十二小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyOneDay">
|
||||||
|
一天内
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="4" data-parentindex="0">
|
||||||
|
<div id="bottom_51SD" class="layui-form-item active" data-id="bottom_51SD" data-tag="bottom"
|
||||||
|
data-index="0">
|
||||||
|
<div class="layui-input-block" style="margin-left: 30px;">
|
||||||
|
<button id="btn_searchSD" type="button" class="layui-btn custom-zc" ; onclick="ShowSDChart()">
|
||||||
|
<i class="layui-icon ">
|
||||||
|
</i>
|
||||||
|
确定
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<form class="layui-form" style="height:calc(100% - 55px);width:100%" id="tablepanelsandian">
|
||||||
|
<div class="layui-panel" id="gridpanelsandian" style="width:100%;height: 100%;margin-bottom: 10px; ">
|
||||||
|
<div id="resultsandian" class="echart" style="width: 100%; height: 100% "></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-tab-item" style="height:100%">
|
||||||
|
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
||||||
|
<div class="layui-row layui-col-space5" style="height:100%">
|
||||||
|
|
||||||
|
<div class="layui-col-md12 layui-col-xs12" style="height:100%">
|
||||||
|
|
||||||
|
|
||||||
|
<form class="layui-form" style="height:auto;" id="formPreviewFormZhu">
|
||||||
|
|
||||||
|
<div id="grid_21Zhu" class="layui-form-item layui-row grid active" data-id="grid_21Zhu"
|
||||||
|
data-tag="grid" data-index="0">
|
||||||
|
|
||||||
|
<div class="layui-col-md3 widget-col-list column1" data-index="1" data-parentindex="0">
|
||||||
|
<div id="ReStartTimeZhu" class="layui-form-item active" data-id="ReStartTimeZhu"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
开始时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReStartTimeZhu" name="ndateReStartTime" lay-verify="required"
|
||||||
|
class="layui-input icon-date widget-date " style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md3 widget-col-list column2" data-index="2" data-parentindex="0">
|
||||||
|
<div id="ReEndTimeZhu" class="layui-form-item active" data-id="ReEndTimeZhu"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
结束时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReEndTimeZhu" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="2" data-parentindex="0" id="recentMdZhu">
|
||||||
|
<div id="select_11Zhu" class="layui-form-item active" data-id="select_11Zhu" data-tag="select"
|
||||||
|
data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
||||||
|
速查范围:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 140px;">
|
||||||
|
|
||||||
|
<select name="selectquick" lay-filter="quickTime" lay-verify="required" id="selectRecentQuickZhu">
|
||||||
|
<option value="onlyOneHour" selected="">
|
||||||
|
一小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyThreeHour">
|
||||||
|
三小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyEightHour">
|
||||||
|
八小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyTwelveHour">
|
||||||
|
十二小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyOneDay">
|
||||||
|
一天内
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="4" data-parentindex="0">
|
||||||
|
<div id="bottom_51Zhu" class="layui-form-item active" data-id="bottom_51Zhu" data-tag="bottom"
|
||||||
|
data-index="0">
|
||||||
|
<div class="layui-input-block" style="margin-left: 30px;">
|
||||||
|
<button id="btn_searchZhu" type="button" class="layui-btn custom-zc" ; onclick="ShowZhuChart()">
|
||||||
|
<i class="layui-icon ">
|
||||||
|
</i>
|
||||||
|
确定
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<form class="layui-form" style="height:calc(100% - 55px);width:100%" id="tablepanelZhu">
|
||||||
|
<div class="layui-panel" id="gridpanelzhu" style="width:100%;height: 100%;margin-bottom: 10px; ">
|
||||||
|
<div id="resultzhu" class="echart" style="width: 100%; height: 100% "></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-tab-item" style="height:100%">
|
||||||
|
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
||||||
|
<div class="layui-row layui-col-space5" style="height:100%">
|
||||||
|
|
||||||
|
<div class="layui-col-md12 layui-col-xs12" style="height:100%">
|
||||||
|
|
||||||
|
<form class="layui-form" style="height:auto;" id="formPreviewFormBing">
|
||||||
|
|
||||||
|
<div id="grid_21Bing" class="layui-form-item layui-row grid active" data-id="grid_21Bing"
|
||||||
|
data-tag="grid" data-index="0">
|
||||||
|
|
||||||
|
<div class="layui-col-md3 widget-col-list column1" data-index="1" data-parentindex="0">
|
||||||
|
<div id="ReStartTimeBing" class="layui-form-item active" data-id="ReStartTimeBing"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
开始时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReStartTimeBing" name="ndateReStartTime" lay-verify="required"
|
||||||
|
class="layui-input icon-date widget-date " style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md3 widget-col-list column2" data-index="2" data-parentindex="0">
|
||||||
|
<div id="ReEndTimeBing" class="layui-form-item active" data-id="ReEndTimeBing"
|
||||||
|
data-tag="date" data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
|
结束时间:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
|
<input id="dateReEndTimeBing" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
style="line-height: 40px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="2" data-parentindex="0" id="recentMdBing">
|
||||||
|
<div id="select_11Bing" class="layui-form-item active" data-id="select_11Bing" data-tag="select"
|
||||||
|
data-index="0">
|
||||||
|
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
||||||
|
速查范围:
|
||||||
|
</label>
|
||||||
|
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 140px;">
|
||||||
|
|
||||||
|
<select name="selectquick" lay-filter="quickTime" lay-verify="required" id="selectRecentQuickBing">
|
||||||
|
<option value="onlyOneHour" selected="">
|
||||||
|
一小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyThreeHour">
|
||||||
|
三小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyEightHour">
|
||||||
|
八小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyTwelveHour">
|
||||||
|
十二小时内
|
||||||
|
</option>
|
||||||
|
<option value="onlyOneDay">
|
||||||
|
一天内
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md2 widget-col-list column4" data-index="4" data-parentindex="0">
|
||||||
|
<div id="bottom_51Bing" class="layui-form-item active" data-id="bottom_51Bing" data-tag="bottom"
|
||||||
|
data-index="0">
|
||||||
|
<div class="layui-input-block" style="margin-left: 30px;">
|
||||||
|
<button id="btn_searchBing" type="button" class="layui-btn custom-zc" ; onclick="ShowBingChart()">
|
||||||
|
<i class="layui-icon ">
|
||||||
|
</i>
|
||||||
|
确定
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<form class="layui-form" style="height:calc(100% - 55px);width:100%" id="tablepanelBing">
|
||||||
|
<div class="layui-panel" id="gridpanelbing" style="width:100%;height: 100%;margin-bottom: 10px; ">
|
||||||
|
<div id="resultbing" class="echart" style="width: 100%; height: 100% "></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="layui-tab-item" style="height:100%">
|
||||||
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
||||||
<div class="layui-row layui-col-space5" style="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;">
|
@*<div class="layui-col-md2 layui-col-xs3" style="height:100%;padding-right:12px;">
|
||||||
@ -1277,7 +1844,7 @@
|
|||||||
<div id="ReEndTime1" class="layui-form-item active" data-id="ReEndTime1"
|
<div id="ReEndTime1" class="layui-form-item active" data-id="ReEndTime1"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime1" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime1" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
@ -1429,7 +1996,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -75,7 +75,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 150px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 150px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
<label class="layui-form-label layui-form-required" style="width: 110px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -1279,7 +1279,7 @@
|
|||||||
<div id="ReEndTime1" class="layui-form-item active" data-id="ReEndTime1"
|
<div id="ReEndTime1" class="layui-form-item active" data-id="ReEndTime1"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime1" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime1" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
@ -1431,7 +1431,7 @@
|
|||||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||||
data-tag="date" data-index="0">
|
data-tag="date" data-index="0">
|
||||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||||
结束世间:
|
结束时间:
|
||||||
</label>
|
</label>
|
||||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||||
|
@ -0,0 +1,402 @@
|
|||||||
|
@{
|
||||||
|
ViewBag.Title = "Index";
|
||||||
|
Layout = "~/Views/Shared/_Index.cshtml";
|
||||||
|
}
|
||||||
|
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment env
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
|
<style>
|
||||||
|
|
||||||
|
.layui-card {
|
||||||
|
border: 1px solid #f2f2f2;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
margin-right: 10px;
|
||||||
|
color: #1aa094;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-cray {
|
||||||
|
color: #ffb800 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-blue {
|
||||||
|
color: #1e9fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-tip {
|
||||||
|
color: #ff5722 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-qiuck-module {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-qiuck-module a i {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 30px;
|
||||||
|
background-color: #F8F8F8;
|
||||||
|
color: #333;
|
||||||
|
transition: all .3s;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-qiuck-module a cite {
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
display: block;
|
||||||
|
color: #666;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-module {
|
||||||
|
width: 100%;
|
||||||
|
height: 210px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||||
|
box-shadow: 0 1px 1px rgba(0,0,0,.05)
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-body {
|
||||||
|
padding: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-title {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
color: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
display: inline;
|
||||||
|
padding: .2em .6em .3em;
|
||||||
|
font-size: 75%;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
vertical-align: baseline;
|
||||||
|
border-radius: .25em;
|
||||||
|
margin-top: .3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
display: inline;
|
||||||
|
padding: .2em .6em .3em;
|
||||||
|
font-size: 75%;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
vertical-align: baseline;
|
||||||
|
border-radius: .25em;
|
||||||
|
margin-top: .3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-red {
|
||||||
|
color: red
|
||||||
|
}
|
||||||
|
|
||||||
|
.main_btn > p {
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layui-bg-number {
|
||||||
|
background-color: #F8F8F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-notice:hover {
|
||||||
|
background: #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-notice {
|
||||||
|
padding: 7px 16px;
|
||||||
|
clear: both;
|
||||||
|
font-size: 12px !important;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
transition: background 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-notice-title, .layuimini-notice-label {
|
||||||
|
padding-right: 70px !important;
|
||||||
|
text-overflow: ellipsis !important;
|
||||||
|
overflow: hidden !important;
|
||||||
|
white-space: nowrap !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-notice-title {
|
||||||
|
line-height: 28px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layuimini-notice-extra {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
right: 16px;
|
||||||
|
display: inline-block;
|
||||||
|
height: 16px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
layui.use(['layer', 'echarts', 'common'], function () {
|
||||||
|
var $ = layui.jquery,
|
||||||
|
layer = layui.layer,
|
||||||
|
common = layui.common,
|
||||||
|
echarts = layui.echarts;
|
||||||
|
common = layui.common;
|
||||||
|
common.iframeInterval(function () {
|
||||||
|
loadInfo();
|
||||||
|
}, 10000); //指定10秒刷新一次
|
||||||
|
$(function () {
|
||||||
|
loadInfo();
|
||||||
|
loadChart();
|
||||||
|
});
|
||||||
|
wcLoading.close();
|
||||||
|
function loadInfo() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/SystemSecurity/ServerMonitoring/GetServerDataJson?v=" + new Date().Format("yyyy-MM-dd hh:mm:ss"),
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
$('#cpucout').html(data.CPU + "%");
|
||||||
|
$('#armcout').html(data.ARM + "%");
|
||||||
|
$('#TotalRAM').html(data.TotalRAM);
|
||||||
|
$('#OutIP').html(data.IP);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function loadChart() {
|
||||||
|
var myChart = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||||
|
var xData = [];
|
||||||
|
var armData = [];
|
||||||
|
var cpuData = [];
|
||||||
|
common.ajax({
|
||||||
|
url: "/SystemSecurity/ServerMonitoring/GetServerData",
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
success: function (data) {
|
||||||
|
var length = data.length;
|
||||||
|
for (var i = 0; i < length; i++) {
|
||||||
|
if (data[i]['F_Date'] !== null) {
|
||||||
|
xData.push(new Date(data[i]['F_Date']).Format("yyyy-MM-dd"));
|
||||||
|
}
|
||||||
|
if (data[i]['F_ARM'] !== null) {
|
||||||
|
armData.push(data[i]['F_ARM']);
|
||||||
|
}
|
||||||
|
if (data[i]['F_CPU'] !== null) {
|
||||||
|
cpuData.push(data[i]['F_CPU']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
data: ['CPU使用率', 'ARM使用率']
|
||||||
|
},
|
||||||
|
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
data: xData
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: 'CPU使用率', type: 'line',
|
||||||
|
data: cpuData,
|
||||||
|
lineStyle: {
|
||||||
|
normal: {
|
||||||
|
width: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'circle',
|
||||||
|
symbolSize: 10,
|
||||||
|
showAllSymbol: true,
|
||||||
|
color: '#2499F8',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ARM使用率', type: 'line',
|
||||||
|
data: armData,
|
||||||
|
lineStyle: {
|
||||||
|
normal: {
|
||||||
|
width: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'circle',
|
||||||
|
symbolSize: 10,
|
||||||
|
showAllSymbol: true,
|
||||||
|
color: '#F90',
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
myChart.setOption(option);
|
||||||
|
// echarts 窗口缩放自适应
|
||||||
|
window.onresize = function () {
|
||||||
|
myChart.resize();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<div class="layuimini-container">
|
||||||
|
<div class="layuimini-main">
|
||||||
|
<div class="layui-row layui-col-space15">
|
||||||
|
<div class="layui-col-md6">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-header"><i class="fa fa-warning icon"></i>状态信息</div>
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div class="welcome-module">
|
||||||
|
<div class="layui-row layui-col-space10">
|
||||||
|
<div class="layui-col-xs6">
|
||||||
|
<div class="panel layui-bg-number" style="height:200px">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="panel-title">
|
||||||
|
<span class="label pull-right layui-bg-blue">实时</span>
|
||||||
|
<h5>CPU使用率</h5>
|
||||||
|
</div>
|
||||||
|
<div class="panel-content">
|
||||||
|
<h1 class="no-margins" id="cpucout"></h1>
|
||||||
|
<small>当前记录</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-xs6">
|
||||||
|
<div class="panel layui-bg-number" style="height:200px">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="panel-title">
|
||||||
|
<span class="label pull-right layui-bg-cyan">实时</span>
|
||||||
|
<h5>ARM使用率</h5>
|
||||||
|
</div>
|
||||||
|
<div class="panel-content">
|
||||||
|
<h1 class="no-margins" id="armcout"></h1>
|
||||||
|
<small>当前记录</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md6">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-header"><i class="fa fa-line-chart icon"></i>报表统计</div>
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div id="echarts-records" style="width: 100%;min-height:220px"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md6">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-header"><i class="fa fa-fire icon"></i>服务器信息</div>
|
||||||
|
<div class="layui-card-body layui-text">
|
||||||
|
<table class="layui-table">
|
||||||
|
<colgroup>
|
||||||
|
<col width="100">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>服务器名称</td>
|
||||||
|
<td>
|
||||||
|
@Environment.MachineName
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>总内存</td>
|
||||||
|
<td><span id="TotalRAM"></span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>操作系统</td>
|
||||||
|
<td>@System.Runtime.InteropServices.RuntimeInformation.OSDescription</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>系统架构</td>
|
||||||
|
<td>@System.Runtime.InteropServices.RuntimeInformation.OSArchitecture</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>外网IP</td>
|
||||||
|
<td>
|
||||||
|
<span id="OutIP"></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md6">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-header"><i class="fa fa-fire icon"></i>.NET信息</div>
|
||||||
|
<div class="layui-card-body layui-text">
|
||||||
|
<table class="layui-table">
|
||||||
|
<colgroup>
|
||||||
|
<col width="100">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>环境变量</td>
|
||||||
|
<td>@Html.Raw(env.EnvironmentName)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>ContentRootPath</td>
|
||||||
|
<td>
|
||||||
|
@Html.Raw(env.ContentRootPath)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>WebRootPath</td>
|
||||||
|
<td>@Html.Raw(env.WebRootPath)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>.NET版本</td>
|
||||||
|
<td>
|
||||||
|
@Html.Raw(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>启动时间</td>
|
||||||
|
<td>
|
||||||
|
@System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString("yyyy-MM-dd HH:mm:ss")
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -59,7 +59,6 @@ namespace HT.Cloud.Web
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[HandlerAuthorize]
|
|
||||||
public virtual ActionResult Index()
|
public virtual ActionResult Index()
|
||||||
{
|
{
|
||||||
return View();
|
return View();
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<key id="e2f052f6-1509-4c55-84de-04eb742fe28f" version="1">
|
||||||
|
<creationDate>2023-10-26T06:08:18.4927965Z</creationDate>
|
||||||
|
<activationDate>2023-10-26T06:08:18.4519268Z</activationDate>
|
||||||
|
<expirationDate>2024-01-24T06:08:18.4519268Z</expirationDate>
|
||||||
|
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
|
||||||
|
<descriptor>
|
||||||
|
<encryption algorithm="AES_256_CBC" />
|
||||||
|
<validation algorithm="HMACSHA256" />
|
||||||
|
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
|
||||||
|
<!-- Warning: the key below is in an unencrypted form. -->
|
||||||
|
<value>VfIzIpwFUHHKnUpgU9+YB6hSl0rbMsdUVz6nl/7btIoiBsd7lUY61AX4hKJrqQ9ACz4CSODJ4trRjmXnkSP3OA==</value>
|
||||||
|
</masterKey>
|
||||||
|
</descriptor>
|
||||||
|
</descriptor>
|
||||||
|
</key>
|
@ -11,6 +11,7 @@
|
|||||||
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
|
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
|
||||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||||
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
|
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
|
||||||
|
<GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||||
@ -60,9 +61,10 @@
|
|||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.12" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.12" />
|
||||||
<PackageReference Include="MiniExcel" Version="1.30.0" />
|
<PackageReference Include="MiniExcel" Version="1.30.0" />
|
||||||
<PackageReference Include="Quartz" Version="3.5.0" />
|
<PackageReference Include="Quartz" Version="3.5.0" />
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.3.45" />
|
|
||||||
<PackageReference Include="Quartz.Serialization.Json" Version="3.5.0" />
|
<PackageReference Include="Quartz.Serialization.Json" Version="3.5.0" />
|
||||||
|
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.1.3.45" />
|
||||||
<PackageReference Include="System.DirectoryServices.Protocols" Version="7.0.0" />
|
<PackageReference Include="System.DirectoryServices.Protocols" Version="7.0.0" />
|
||||||
|
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="5.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -54,7 +54,7 @@ namespace HT.Cloud.Web
|
|||||||
.ReviseSuperSysem()
|
.ReviseSuperSysem()
|
||||||
.AddEventBus()
|
.AddEventBus()
|
||||||
.AddRabbitMq()
|
.AddRabbitMq()
|
||||||
.AddWorkerService()
|
//.AddWorkerService()//23/11/2,注释,修复初始化报错
|
||||||
.AddSignalR(options =>
|
.AddSignalR(options =>
|
||||||
{
|
{
|
||||||
//客户端发保持连接请求到服务端最长间隔,默认30秒,改成4分钟,网页需跟着设置connection.keepAliveIntervalInMilliseconds = 12e4;即2分钟
|
//客户端发保持连接请求到服务端最长间隔,默认30秒,改成4分钟,网页需跟着设置connection.keepAliveIntervalInMilliseconds = 12e4;即2分钟
|
||||||
|
@ -572,6 +572,7 @@
|
|||||||
legendArr.push(StaticChartList[ci].Description);
|
legendArr.push(StaticChartList[ci].Description);
|
||||||
ySeries.push(
|
ySeries.push(
|
||||||
{
|
{
|
||||||
|
// symbol: "none",
|
||||||
name: StaticChartList[ci].Description,
|
name: StaticChartList[ci].Description,
|
||||||
type: 'line',
|
type: 'line',
|
||||||
data: yData[ci],
|
data: yData[ci],
|
||||||
@ -590,7 +591,7 @@
|
|||||||
},
|
},
|
||||||
smooth: true,
|
smooth: true,
|
||||||
symbol: 'circle',
|
symbol: 'circle',
|
||||||
symbolSize: 6,
|
symbolSize: 1,
|
||||||
showAllSymbol: true,
|
showAllSymbol: true,
|
||||||
color: colorArr[ci],
|
color: colorArr[ci],
|
||||||
}
|
}
|
||||||
@ -697,7 +698,8 @@
|
|||||||
// show: true,
|
// show: true,
|
||||||
// position: 'top'
|
// position: 'top'
|
||||||
//},
|
//},
|
||||||
type: 'value'
|
type: 'value',
|
||||||
|
scale: true
|
||||||
},
|
},
|
||||||
series:ySeries,
|
series:ySeries,
|
||||||
//series: [
|
//series: [
|
||||||
|
@ -165,6 +165,18 @@
|
|||||||
绑定数据仓库的数据库ID
|
绑定数据仓库的数据库ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewController">
|
||||||
|
<summary>
|
||||||
|
创 建:cdl
|
||||||
|
日 期:2023-02-23 11:10
|
||||||
|
描 述:历史趋势控制器类
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewController.groupDescription">
|
||||||
|
<summary>
|
||||||
|
绑定数据仓库的数据库ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.HistoryReportController.groupDescription">
|
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.HistoryReportController.groupDescription">
|
||||||
<summary>
|
<summary>
|
||||||
绑定数据仓库的数据库ID
|
绑定数据仓库的数据库ID
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
"LoginMultiple": false, // 是否允许一个账户在多处登录
|
"LoginMultiple": false, // 是否允许一个账户在多处登录
|
||||||
"AllowCorsSite": "http://localhost:8058", // 允许的其他站点访问Api
|
"AllowCorsSite": "http://localhost:8058", // 允许的其他站点访问Api
|
||||||
"DBProvider": "SqlServer", //SqlServer //Oracle
|
"DBProvider": "SqlServer", //SqlServer //Oracle
|
||||||
"DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbmDk32vhkYsxag9amyZ1OOMwPA3yWW1gKjVgKPpDBSgVaiansOQtPtF5IQDwQ7q12LOaKRfCsNZGg56LRoA5R2eybLLG8j/xLWDC8/X7aDMHvZ2G8SWZzlDTt8jTQulouSVBP7JtlWXsAj1B5NVUxvlqn5yJiaz89ISUyPp1+A/XQ==",
|
"DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij6YiQpV5DIw6JRzXXsYlzoJ+bUF4h97SyChJobnKFm1EOA4aBGj+/Aje1MD7G13GOXplGKNnRzOB6qvav/vGq4xLAOc1EyKCHAMDCgWSEpu5uXl7LYv8gGNRQzIjv6UkUBLzX1Jetj7Hf9iYws19sCoRXI/1Vm5bZIVwLQThEctF8imcaVDPhGNcPCH1kr+h5A==",
|
||||||
"DBCommandTimeout": 180, // 数据库超时时间,单位秒
|
"DBCommandTimeout": 180, // 数据库超时时间,单位秒
|
||||||
"CacheProvider": "Memory", // 缓存使用方式 Redis/Memory
|
"CacheProvider": "Memory", // 缓存使用方式 Redis/Memory
|
||||||
"RedisConnectionString": "127.0.0.1:6379", //docker部署 172.17.0.1
|
"RedisConnectionString": "127.0.0.1:6379", //docker部署 172.17.0.1
|
||||||
@ -34,7 +34,7 @@
|
|||||||
{
|
{
|
||||||
"DBNumber": "1",
|
"DBNumber": "1",
|
||||||
"DBProvider": "SqlServer", //MySql //Oracle
|
"DBProvider": "SqlServer", //MySql //Oracle
|
||||||
"DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbnYiY85KP1HOOhZ7C60SCx1TwEmcNLYzAsnfEdOBXU0nU0Oy8su8Qtkf/CPFKNyOJYTJKdUqu23gKYXItXANHKYm37ayRrKmUCNtdRkxoN9I6Y8N+yLiP1Qjk207DBIXR4vgChSgSPr9USeuNmLVsiBiUuDY+4KnQF8uHwQxMBvWg=="
|
"DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij6YiQpV5DIw6JRzXXsYlzoJ+bUF4h97SyChJobnKFm1EOA4aBGj+/Aje1MD7G13GOXplGKNnRzOB6qvav/vGq4xLAOc1EyKCHAMDCgWSEpu5uXl7LYv8gGNRQzIjv6UkUBLzX1Jetj7Hf9iYws19sCoRXI/1Vm5bZIVwLQThEctF8imcaVDPhGNcPCH1kr+h5A=="
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"RabbitMq": {
|
"RabbitMq": {
|
||||||
|
BIN
原ORM-SqlSugar版本纪安装类库.png
Normal file
BIN
原ORM-SqlSugar版本纪安装类库.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user