首页添加设备状态和设备变量状态图表展示

This commit is contained in:
dd 2022-03-13 23:01:11 +08:00
parent e447489694
commit 34ecac1029
7 changed files with 79 additions and 1 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -10,6 +10,8 @@ using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Plugin;
using PluginInterface;
using WalkingTec.Mvvm.Core;
using WalkingTec.Mvvm.Core.Auth;
using WalkingTec.Mvvm.Core.Extensions;
@ -19,6 +21,11 @@ namespace IoTGateway.Controllers
{
public class HomeController : BaseController
{
private readonly DeviceService _deviceService;
public HomeController(DeviceService deviceService)
{
_deviceService = deviceService;
}
[AllRights]
public IActionResult Index()
{
@ -39,6 +46,61 @@ namespace IoTGateway.Controllers
return PartialView();
}
public IActionResult GetDeviceChart()
{
var data = new List<ChartData>();
data.Add(new ChartData
{
Value = _deviceService.DeviceThreads.Where(x => !x.Device.AutoStart).Count(),
Category = "停止",
Series = "Device"
});
data.Add(new ChartData
{
Value = _deviceService.DeviceThreads.Where(x => x.Device.AutoStart && x.Driver.IsConnected).Count(),
Category = "运行",
Series = "Device",
});
data.Add(new ChartData
{
Value = _deviceService.DeviceThreads.Where(x => x.Device.AutoStart && !x.Driver.IsConnected).Count(),
Category = "异常",
Series = "Device"
});
var rv = data.ToChartData();
return Json(rv);
}
public IActionResult GetDeviceVariableChart()
{
var data = new List<ChartData>();
foreach (var deviceThread in _deviceService.DeviceThreads.OrderBy(x => x.Device.DeviceName))
{
data.Add(new ChartData
{
Category = deviceThread.Device.DeviceName,
Value = deviceThread.DeviceValues.Where(x => x.Value.StatusType != VaribaleStatusTypeEnum.Good).Count(),
Series = "Others"
});
data.Add(new ChartData
{
Category = deviceThread.Device.DeviceName,
Value = deviceThread.DeviceValues.Where(x => x.Value.StatusType == VaribaleStatusTypeEnum.Good).Count(),
Series = "Good"
});
}
var rv = data.ToChartData();
return Json(rv);
}
public IActionResult GetActionChart()
{
var areas = GlobaInfo.AllModule.Select(x => x.Area).Distinct();

View File

@ -55,6 +55,22 @@
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">设备状态</div>
<div class="layui-card-body">
<wt:chart is-horizontal="true" show-legend="true" show-tooltip="true" type="Pie" height="300" trigger-url="/Home/GetDeviceChart" />
</div>
</div>
</div>
<div class="layui-col-md8">
<div class="layui-card">
<div class="layui-card-header">设备变量状态</div>
<div class="layui-card-body">
<wt:chart show-legend="false" show-tooltip="true" type="Bar" height="300" trigger-url="/Home/GetDeviceVariableChart" />
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">

View File

@ -93,7 +93,7 @@ namespace Plugin
foreach (var kv in payload.Values)
{
//更新到UAService
_uaNodeManager.UpdateNode($"{device.Parent.DeviceName}.{device.DeviceName}.{kv.Key}", kv.Value);
_uaNodeManager?.UpdateNode($"{device.Parent.DeviceName}.{device.DeviceName}.{kv.Key}", kv.Value);
}
}