新兴铸管

This commit is contained in:
dell
2024-09-03 14:16:18 +08:00
parent aee89ebeb1
commit aa742f0036
18 changed files with 18658 additions and 1825 deletions

View File

@ -0,0 +1,56 @@
using System;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace HT.Cloud.Domain.SystemSecurity
{
/// <summary>
/// 创 建cdl
/// 日 期2024-01-04 10:56
/// 描 述IO模块实体类
/// </summary>
[SugarTable("HT_REALTIME_DEVNETWORK")]
public class RealTimeDevNetWorkEntity
{
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName="ID", ColumnDescription = "",ColumnDataType = "int",IsPrimaryKey = true)]
public int ID { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName= "DeviceID", ColumnDescription = "",ColumnDataType = "int", IsNullable = true)]
public int? DeviceID { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName= "DeviceIOGroupID", ColumnDescription = "",ColumnDataType = "int", IsNullable = true)]
public int? DeviceIOGroupID { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName= "DeviceName", ColumnDescription = "",ColumnDataType = "varchar(128)", IsNullable = true)]
public string DeviceName { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName= "DeviceIP", ColumnDescription = "",ColumnDataType = "varchar(128)", IsNullable = true)]
public string DeviceIP { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName= "DeviceNetWorkStatus", ColumnDescription = "",ColumnDataType = "varchar(128)", IsNullable = true)]
public string DeviceNetWorkStatus { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName = "DeviceDESCRIPTION", ColumnDescription = "", ColumnDataType = "varchar(128)", IsNullable = true)]
public string DeviceDESCRIPTION { get; set; }
/// <summary>
///
/// </summary>
[SugarColumn(ColumnName = "DeviceIncludeModel", ColumnDescription = "", ColumnDataType = "varchar(128)", IsNullable = true)]
public string DeviceIncludeModel { get; set; }
}
}

View File

@ -32,5 +32,10 @@ namespace HT.Cloud.Domain.SystemSecurity
/// </summary>
[SugarColumn(ColumnName="IODESCRIPTION", ColumnDescription = "IO功能名称",ColumnDataType = "varchar(128)", IsNullable = true)]
public string IODESCRIPTION { get; set; }
}
/// <summary>
/// IO功能名称
/// </summary>
[SugarColumn(ColumnName = "IOTagName", ColumnDescription = "IOTag", ColumnDataType = "varchar(128)", IsNullable = true)]
public string IOTagName { get; set; }
}
}

View File

@ -18,6 +18,7 @@ using Quartz;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using HT.Cloud.Domain.SystemSecurity;
using System.Net.NetworkInformation;
namespace HT.Cloud.Service.SystemSecurity
{
@ -41,8 +42,17 @@ namespace HT.Cloud.Service.SystemSecurity
return list;
}
public async Task<List<RealTimeIOGroupEntity>> GetIOGroup(string systemName, string iogroupid)
{
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<RealTimeIOGroupEntity>($"SELECT * FROM HT_{driverName}_{groupName}_IOGROUP_{iogroupid}");
return list;
public async Task<List<RealTimeIOInfoEntity>> GetIOInfo(string systemName)
}
public async Task<List<RealTimeIOInfoEntity>> GetIOInfo(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;
@ -50,19 +60,71 @@ namespace HT.Cloud.Service.SystemSecurity
var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery<RealTimeIOInfoEntity>($"SELECT * FROM HT_{driverName}_{groupName}_IOINFO");
return list;
}
public async Task<string> GetRtData()
public async Task<List<RealTimeIOInfoEntity>> GetIOInfo(string systemName, string iogroupid)
{
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<RealTimeIOInfoEntity>($"SELECT * FROM HT_{driverName}_{groupName}_IOINFO_{iogroupid}");
return list;
}
public async Task<List<RealTimeDevNetWorkEntity>> GetDevNetWork(string systemName)
{
//var groupName = _context.AsTenant().QueryableWithAttr<MetaGroupEntity>().Where(x => x.GroupDescription == systemName).First().GroupName;
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<RealTimeDevNetWorkEntity>($"SELECT * FROM HT_{driverName}_{groupName}_DEVNETWORK");
return list;
}
public async Task<List<RealTimeDevNetWorkEntity>> GetRealDevNetWork(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<RealTimeDevNetWorkEntity>($"SELECT * FROM HT_{driverName}_{groupName}_DEVNETWORK");
var listNT = new List<RealTimeDevNetWorkEntity>();
foreach (var dev in list)
{
var devNT = new RealTimeDevNetWorkEntity();
devNT = dev;
string message = "";
string address = devNT.DeviceIP;
Ping ping = new Ping();
try
{
PingReply pingReply = ping.Send(address,247);
if (pingReply.Status == IPStatus.Success)
{
devNT.DeviceNetWorkStatus = "True";
}
else
{
devNT.DeviceNetWorkStatus = "False";
}
}
catch (Exception e)
{
devNT.DeviceNetWorkStatus = "False";
}
listNT.Add(devNT);
}
return listNT;
}
public async Task<string> GetRtData(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}_MAINPAGE");
var remoteRtDataServer = " http://localhost:5276/TestIOApi/";
//var remoteRtDataServer = " http://localhost:5276/TestIOApi/";
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
var remoteRtDataServer = _context.AsTenant().QueryableWithAttr<RtchartsEntity>().First().remotertdataserver + $"?groupName={groupName}";
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
JObject valueJson = JObject.Parse(responseStr);

View File

@ -541,7 +541,7 @@
showchart = async function () {
//(document.getElementById('echarts-records'), 'walden');
var myChart = echarts.init(document.getElementById('result'),'walden');
var myChart = echarts.init(document.getElementById('result'));
myChart.hideLoading();
myChart.showLoading();
@ -867,6 +867,7 @@
}
var option = {
theme: 'shine',
xAxis: {
name: '时间',
type: 'category',
@ -966,6 +967,7 @@
<body style="height:100%">
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
@* <script type="text/javascript" src="~/lib/theme/shine.js"></script> *@
@*<ul class="layui-tab-title">
<li class="layui-this" lay-id="TechCharts">重要数据趋势</li>
<li lay-id="MoreCharts">其他数据趋势</li>

View File

@ -88,7 +88,7 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData();
var data = _realTimeIOState.GetRtData(systemDescription);
return Content(data.Result);
}
}

View File

@ -88,7 +88,7 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData();
var data = _realTimeIOState.GetRtData(systemDescription);
return Content(data.Result);
}
}

View File

@ -88,7 +88,7 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData();
var data = _realTimeIOState.GetRtData(systemDescription);
return Content(data.Result);
}
}

View File

@ -32,24 +32,7 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
{
return await Task.Run(() =>
{
/*
* 一
* 1、安装java集成开发环境根据示例重构jimu报表的代码。
* 2、jimu报表的java环境继承到.Net中过于繁琐和前端功能较简单放弃使用jumu报表使用另一款.Net作为服务端的cell报表。
* 二
* 1、下载cell报表前端源码安装前端Vue3源码环境通过反编译补全功能代码和与后端的Api请求。
* 2、去除无用功能和界面只保留报表功能将所有原项目logo和名称标记替换为恒拓相关。
* 三
* 1、获取cellreport后端源码编辑源码库的静态资源下载补全项目引用的开源类库。
* 2、修改水印函数库文件将唯一不可修改的导出pdf水印替换为空或恒拓环保科技。
* 四
* 1、将前端和后端源码编译打包重构项目运行结构前后端集成为一个服务实力部署测试。
* 2、报表软件交给曲工进行报表编辑和运行测试同时进行debug调试。
* 五
* 1、将曲工编辑好的报表集成至管理平台。
* 2、比较JS自动绘图组件选择适合自动生成的组件进行io模块自动构建。
*/
//windows环境
var computer = ComputerHelper.GetComputerInfo();
var arm = computer.RAMRate;
var cpu = computer.CPURate;
@ -75,6 +58,13 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
return Content(listgroup.ToJson());
}
[HttpPost]
public async Task<ActionResult> GetRealIOGroupForId(string[] IOGroupid)
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription, IOGroupid[0]);
return Content(listgroup.ToJson());
}
[HttpGet]
public async Task<ActionResult> GetRealIOInfo()
{
@ -83,12 +73,36 @@ namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
return Content(listinfo.ToJson());
}
[HttpPost]
public async Task<ActionResult> GetRealIOInfoForId(string[] IOGroupid)
{
var listinfo = _realTimeIOState.GetIOInfo(systemDescription, IOGroupid[0]);
return Content(listinfo.ToJson());
}
[HttpGet]
public async Task<ActionResult> GetRealDevNetWork()
{
var listinfo = _realTimeIOState.GetRealDevNetWork(systemDescription);
return Content(listinfo.ToJson());
}
[HttpGet]
public async Task<ActionResult> GetDevNetWork()
{
var listinfo = _realTimeIOState.GetDevNetWork(systemDescription);
return Content(listinfo.ToJson());
}
[HttpGet]
public async Task<ActionResult> GetRealIOState()
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData();
//var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
//var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData(systemDescription);
return Content(data.Result);
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="dd8eb8fc-f638-45a4-a044-c3402c318748" version="1">
<creationDate>2024-08-13T06:29:44.369466Z</creationDate>
<activationDate>2024-08-13T06:29:44.1402872Z</activationDate>
<expirationDate>2024-11-11T06:29:44.1402872Z</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>KsRf49m4rQvK4WjUzfReQqrnpmA5UnP4zmAn7Vp0oH774U+MBUCNOC6B3Wlo/JD+jBH1lU1WSL2HWy36OTygyw==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

@ -11,7 +11,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.HistoryChartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.HistoryChartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -23,7 +23,7 @@
描 述:实时趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.RtchartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.RtchartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -35,7 +35,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiHistoryChartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiHistoryChartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -47,7 +47,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiHistoryTechChartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiHistoryTechChartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -59,7 +59,7 @@
描 述:实时趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiRtchartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiRtchartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -71,7 +71,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiRtTechChartsController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ChartsManage.Controllers.PenMeiRtTechChartsController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -160,7 +160,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -172,7 +172,7 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -184,17 +184,17 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewNewController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.PenMeiHistoryAlarmNewNewController.systemDescription">
<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.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.MainPageController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.MainPageController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
@ -206,22 +206,42 @@
描 述:历史趋势控制器类
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.MetaTagAlarmController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.MetaTagAlarmController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.RtReportController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.ReportManage.Controllers.RtReportController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.PenMeiReportManage.Controllers.PenMeiHistoryReportController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.PenMeiReportManage.Controllers.PenMeiHistoryReportController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.PenMeiReportManage.Controllers.RtReportController.groupDescription">
<member name="F:HT.Cloud.Web.Areas.PenMeiReportManage.Controllers.RtReportController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.SystemSecurity.Controllers.PenMeiJMReportController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.SystemSecurity.Controllers.PenMeiJMReportNewController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.SystemSecurity.Controllers.PenMeiNetWorkStateController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>
</member>
<member name="F:HT.Cloud.Web.Areas.SystemSecurity.Controllers.PenMeiNetWorkStateNewController.systemDescription">
<summary>
绑定数据仓库的数据库ID
</summary>

BIN
HT.Cloud.Web/wwwroot.rar Normal file

Binary file not shown.

View File

@ -430,9 +430,9 @@ layui.define(["jquery", "layer"], function (exports) {
'<ul>\n' + bgColorHtml + '</ul>\n' +
'</div>\n' +
'<div class="more-menu-list">\n' +
'<a class="more-menu-item" href="https://gitee.com/qian_wei_hong/WaterCloud/wikis/pages" target="_blank"><i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 开发文档</a>\n' +
'<a class="more-menu-item" href="https://gitee.com/qian_wei_hong/WaterCloud" target="_blank"><i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> 开源地址</a>\n' +
'<a class="more-menu-item" href="http://www.watercloud.vip/" target="_blank"><i class="layui-icon layui-icon-theme"></i> 演示地址</a>\n' +
//'<a class="more-menu-item" href="https://gitee.com/qian_wei_hong/WaterCloud/wikis/pages" target="_blank"><i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 开发文档</a>\n' +
//'<a class="more-menu-item" href="https://gitee.com/qian_wei_hong/WaterCloud" target="_blank"><i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> 开源地址</a>\n' +
//'<a class="more-menu-item" href="http://www.watercloud.vip/" target="_blank"><i class="layui-icon layui-icon-theme"></i> 演示地址</a>\n' +
'</div>' +
'</div>';
layer.open({