diff --git a/HT.Cloud.Code/Model/SystemConfig.cs b/HT.Cloud.Code/Model/SystemConfig.cs index 9facdbb..85ecee5 100644 --- a/HT.Cloud.Code/Model/SystemConfig.cs +++ b/HT.Cloud.Code/Model/SystemConfig.cs @@ -9,6 +9,11 @@ namespace HT.Cloud.Code.Model /// public bool Demo { get; set; } + /// + /// 系统备注 + /// + public string GroupDescription { get; set; } + /// /// 是否是调试模式 /// @@ -25,7 +30,7 @@ namespace HT.Cloud.Code.Model public string AllowCorsSite { get; set; } public string DBProvider { get; set; } - public string DBConnectionString { get; set; } + public string DBConnectionString{ get; set; } public int DBCommandTimeout { get; set; } public string CacheProvider { get; set; } diff --git a/HT.Cloud.Code/Security/AESKeyEncrypt.cs b/HT.Cloud.Code/Security/AESKeyEncrypt.cs new file mode 100644 index 0000000..f090f60 --- /dev/null +++ b/HT.Cloud.Code/Security/AESKeyEncrypt.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace HT.Cloud.Code +{ + public static class AESKeyEncrypt + { + #region 加解密方法二(Sha256和Sha512) + /// + /// Creates a SHA256 hash of the specified input. + /// + /// The input. + /// A hash + public static string Sha256(this string input) + { + if (String.IsNullOrEmpty(input)) return string.Empty; + using (var sha = SHA256.Create()) + { + var bytes = Encoding.UTF8.GetBytes(input); + var hash = sha.ComputeHash(bytes); + return Convert.ToBase64String(hash); + } + } + /// + /// Creates a SHA256 hash of the specified input. + /// + /// The input. + /// A hash. + public static byte[] Sha256(this byte[] input) + { + if (input == null) + { + return null; + } + using (var sha = SHA256.Create()) + { + return sha.ComputeHash(input); + } + } + /// + /// Creates a SHA512 hash of the specified input. + /// + /// The input. + /// A hash + public static string Sha512(this string input) + { + if (string.IsNullOrEmpty(input)) return string.Empty; + using (var sha = SHA512.Create()) + { + var bytes = Encoding.UTF8.GetBytes(input); + var hash = sha.ComputeHash(bytes); + return Convert.ToBase64String(hash); + } + } + #endregion + + #region 加密解密法一 + //默认密钥向量 + private static byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; + + /// + /// DES加密字符串 + /// + /// 待加密的字符串 + /// 加密密钥,要求为16位 + /// 加密成功返回加密后的字符串,失败返回源串 + + public static string EncryptDES(string encryptString, string encryptKey = "HT87688588DB3037") + { + try + { + byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 16)); + byte[] rgbIV = Keys; + byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); + var DCSP = Aes.Create(); + MemoryStream mStream = new MemoryStream(); + CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); + cStream.Write(inputByteArray, 0, inputByteArray.Length); + cStream.FlushFinalBlock(); + return Convert.ToBase64String(mStream.ToArray()); + } + catch (Exception ex) + { + return ex.Message + encryptString; + } + + } + + /// + /// DES解密字符串 + /// + /// 待解密的字符串 + /// 解密密钥,要求为16位,和加密密钥相同 + /// 解密成功返回解密后的字符串,失败返源串 + + public static string DecryptDES(string decryptString, string decryptKey = "HT87688588DB3037") + { + try + { + byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 16)); + byte[] rgbIV = Keys; + byte[] inputByteArray = Convert.FromBase64String(decryptString); + var DCSP = Aes.Create(); + MemoryStream mStream = new MemoryStream(); + CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); + Byte[] inputByteArrays = new byte[inputByteArray.Length]; + cStream.Write(inputByteArray, 0, inputByteArray.Length); + cStream.FlushFinalBlock(); + return Encoding.UTF8.GetString(mStream.ToArray()); + } + catch (Exception ex) + { + return ex.Message + decryptString; + } + + } + #endregion + } +} diff --git a/HT.Cloud.Data/DBContext/DBContexHelper.cs b/HT.Cloud.Data/DBContext/DBContexHelper.cs index dfde571..4bd4f64 100644 --- a/HT.Cloud.Data/DBContext/DBContexHelper.cs +++ b/HT.Cloud.Data/DBContext/DBContexHelper.cs @@ -8,7 +8,7 @@ namespace HT.Cloud.DataBase public class DBContexHelper { private static string defaultDbType = GlobalContext.SystemConfig.DBProvider; - private static string defaultDbConnectionString = GlobalContext.SystemConfig.DBConnectionString; + private static string defaultDbConnectionString = AESKeyEncrypt.DecryptDES(GlobalContext.SystemConfig.DBConnectionString); public static ConnectionConfig Contex(string ConnectStr = "", string providerName = "") { diff --git a/HT.Cloud.Data/Extensions/DbHelper.cs b/HT.Cloud.Data/Extensions/DbHelper.cs index 92ac651..4705834 100644 --- a/HT.Cloud.Data/Extensions/DbHelper.cs +++ b/HT.Cloud.Data/Extensions/DbHelper.cs @@ -15,7 +15,7 @@ namespace HT.Cloud.DataBase.Extensions { public class DbHelper { - private static string connstring = GlobalContext.SystemConfig.DBConnectionString; + private static string connstring = AESKeyEncrypt.DecryptDES(GlobalContext.SystemConfig.DBConnectionString); private static string dbType = GlobalContext.SystemConfig.DBProvider; public static int ExecuteSqlCommand(string database, string backupPath) diff --git a/HT.Cloud.Domain/Entity/ReportManage/RTMainPageEntity.cs b/HT.Cloud.Domain/Entity/ReportManage/RTMainPageEntity.cs new file mode 100644 index 0000000..58cb803 --- /dev/null +++ b/HT.Cloud.Domain/Entity/ReportManage/RTMainPageEntity.cs @@ -0,0 +1,55 @@ +using System; +using System.ComponentModel.DataAnnotations; +using SqlSugar; + +namespace HT.Cloud.Domain.ReportManage +{ + /// + /// 创 建:cdl + /// 日 期:2023-03-30 14:52 + /// 描 述:实时报表SQL转换实体类 + /// + [SugarTable("HT_REALTIME_MAINPAGE")] + [TenantAttribute("1")] + public class RTMainPageEntity + { + + + /// + /// + /// + [SugarColumn(ColumnName = "ID", ColumnDescription = "", ColumnDataType = "int(10)")] + public int Id { get; set; } + /// + /// 元素在主页位置 + /// + [SugarColumn(ColumnName = "ElementIndex", ColumnDescription = "", ColumnDataType = "int(50)", IsNullable = true)] + public string ElementIndex { get; set; } + /// + /// 变量名称 + /// + [SugarColumn(ColumnName = "TagName", ColumnDescription = "", ColumnDataType = "int(128)", IsNullable = true)] + public string TagName { get; set; } + /// + /// 显示名称 + /// + [SugarColumn(ColumnName = "Description", ColumnDescription = "", ColumnDataType = "int(128)", IsNullable = true)] + public string Description { get; set; } + /// + /// 内容 + /// + [SugarColumn(ColumnName = "HREQ", ColumnDescription = "", ColumnDataType = "int(50)", IsNullable = true)] + public string Hreq { get; set; } + /// + /// 表达式 + /// + [SugarColumn(ColumnName = "HSIG", ColumnDescription = "", ColumnDataType = "int(50)", IsNullable = true)] + public string Hsig { get; set; } + /// + /// 单位 + /// + [SugarColumn(ColumnName = "Units", ColumnDescription = "", ColumnDataType = "int(64)", IsNullable = true)] + public string Units { get; set; } + + } +} diff --git a/HT.Cloud.Service/ChartsManage/RtchartsService.cs b/HT.Cloud.Service/ChartsManage/RtchartsService.cs index 26cba3f..11d96fa 100644 --- a/HT.Cloud.Service/ChartsManage/RtchartsService.cs +++ b/HT.Cloud.Service/ChartsManage/RtchartsService.cs @@ -32,10 +32,11 @@ namespace HT.Cloud.Service.ChartsManage var list_group = _context.AsTenant().QueryableWithAttr().ToList(); return list_group.ToJson(); } - public async Task GetAllSubsystemTag() + public async Task GetAllSubsystemTag(string groupDescription) { List subsystems = new List(); - var grouped = _context.AsTenant().QueryableWithAttr().ToList(); + var groupId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == groupDescription).First().GroupID; + var grouped = _context.AsTenant().QueryableWithAttr().ToList().Where(x => x.GroupID == groupId); List list_name_two = grouped.Select(t => t.Subsystem).GroupBy(c => c).Select(c => c.First()).ToList(); int i = 0; foreach (var Meta_Tag in list_name_two) @@ -46,11 +47,12 @@ namespace HT.Cloud.Service.ChartsManage return subsystems.ToJson(); } - public async Task GetSubsystemAllTag(string subsysytemName) + public async Task GetSubsystemAllTag(string subsysytemName, string groupDescription) { var subsysname = subsysytemName; - var response = _context.AsTenant().QueryableWithAttr().Where(x => x.Subsystem == subsysname).Select(x => new { x.TagID, x.Description, x.Units }).ToList(); + var groupId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == groupDescription).First().GroupID; + var response = _context.AsTenant().QueryableWithAttr().Where(x => x.Subsystem == subsysname && x.GroupID == groupId).Select(x => new { x.TagID, x.Description, x.Units }).ToList(); var reList = new List(); foreach (var subsystem in response) { @@ -66,12 +68,13 @@ namespace HT.Cloud.Service.ChartsManage return reList.ToJson(); } - public async Task GetChartsTagValueInit(string[] charts_TagIDs) + public async Task GetChartsTagValueInit(string[] charts_TagIDs, string systemName) { var tagName_list = new List(); var result_list = new List>(); + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; foreach (string tagIDTxt in charts_TagIDs) { @@ -80,7 +83,7 @@ namespace HT.Cloud.Service.ChartsManage tagName_list.Add(TagName); result_list.Add(new List()); } - var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver; + var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver + $"?groupName={groupName}"; for (int i = 0; i < 3; i++) { var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); @@ -113,12 +116,13 @@ namespace HT.Cloud.Service.ChartsManage return result_list.ToJson(); } - public async Task GetChartsTagValue(string[] charts_TagIDs) + public async Task GetChartsTagValue(string[] charts_TagIDs, string systemName) { var tagName_list = new List(); var result_list = new List>(); + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; foreach (string tagIDTxt in charts_TagIDs) { @@ -128,7 +132,7 @@ namespace HT.Cloud.Service.ChartsManage result_list.Add(new List()); } - var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver; + var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver + $"?groupName={groupName}"; var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); diff --git a/HT.Cloud.Service/Infrastructure/DBInitialize.cs b/HT.Cloud.Service/Infrastructure/DBInitialize.cs index b40fde8..be2f082 100644 --- a/HT.Cloud.Service/Infrastructure/DBInitialize.cs +++ b/HT.Cloud.Service/Infrastructure/DBInitialize.cs @@ -28,7 +28,7 @@ namespace HT.Cloud.Service { list = new List(); var data = GlobalContext.SystemConfig; - var defaultConfig = DBContexHelper.Contex(data.DBConnectionString, data.DBProvider); + var defaultConfig = DBContexHelper.Contex(AESKeyEncrypt.DecryptDES(data.DBConnectionString), data.DBProvider); defaultConfig.ConfigId = "0"; list.Add(defaultConfig); try @@ -53,7 +53,7 @@ namespace HT.Cloud.Service //扩展数据库 foreach (var item in data.SqlConfig) { - var config = DBContexHelper.Contex(item.DBConnectionString, item.DBProvider); + var config = DBContexHelper.Contex(AESKeyEncrypt.DecryptDES(item.DBConnectionString), item.DBProvider); config.ConfigId = item.DBNumber; if (list.Any(a => a.ConfigId == config.ConfigId)) { diff --git a/HT.Cloud.Service/Infrastructure/ServiceSetup.cs b/HT.Cloud.Service/Infrastructure/ServiceSetup.cs index 51dff72..af20496 100644 --- a/HT.Cloud.Service/Infrastructure/ServiceSetup.cs +++ b/HT.Cloud.Service/Infrastructure/ServiceSetup.cs @@ -152,7 +152,7 @@ namespace HT.Cloud.Service ["quartz.jobStore.dataSource"] = "myDS", // 配置数据源名称 ["quartz.jobStore.tablePrefix"] = "QRTZ_", // quartz所使用的表,在当前数据库中的表前缀 ["quartz.jobStore.driverDelegateType"] = "Quartz.Impl.AdoJobStore.MySQLDelegate, Quartz", // 配置AdoJobStore使用的DriverDelegate - ["quartz.dataSource.myDS.connectionString"] = GlobalContext.SystemConfig.DBConnectionString, // 配置数据库连接字符串,自己处理好连接字符串,我这里就直接这么写了 + ["quartz.dataSource.myDS.connectionString"] = AESKeyEncrypt.DecryptDES(GlobalContext.SystemConfig.DBConnectionString), // 配置数据库连接字符串,自己处理好连接字符串,我这里就直接这么写了 ["quartz.dataSource.myDS.provider"] = "mysql-custom", // 配置数据库提供程序(这里是自定义的,定义的代码在上面) ["quartz.jobStore.lockHandler.type"] = "Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz", ["quartz.serializer.type"] = "json", diff --git a/HT.Cloud.Service/ReportManage/MainPageService.cs b/HT.Cloud.Service/ReportManage/MainPageService.cs new file mode 100644 index 0000000..a3b5944 --- /dev/null +++ b/HT.Cloud.Service/ReportManage/MainPageService.cs @@ -0,0 +1,198 @@ +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; + +namespace HT.Cloud.Service.ReportManage +{ + public class MainPageService : BaseService, IDenpendency + { + /// + /// 绑定数据仓库的数据库ID + /// + private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; + + public MainPageService(ISqlSugarClient context) : base(context) + { + } + + public async Task GetRtData(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_MAINPAGE"); + + var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver + $"?groupName={groupName}"; + + var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); + + JObject valueJson = JObject.Parse(responseStr); + + var srcTagRtValues = new List(); + var dt = new Dictionary(); + foreach (var src in list) + { + string elementIndex = src.ElementIndex.ToString(); + string Description = src.Description.ToString(); + string TagName = src.TagName.ToString(); + string srcValue = valueJson[TagName].ToString(); + string hSig = src.Hsig.ToString(); + string Value = ""; + if (hSig == "SS") + { + if (srcValue == "True") + Value = "开启"; + else + Value = "停止"; + } + else if (hSig == "OC") + { + if (srcValue == "True") + Value = "开"; + else + Value = "关"; + } + else if (hSig == "VP") + { + Value = Convert.ToDouble(srcValue).ToString("f2"); + } + else if (hSig == "PE") + { + Value = srcValue + "%"; + } + else if (hSig == "YN") + { + if (srcValue == "True") + Value = "是"; + else + Value = "否"; + } + else if (hSig == "AM") + { + if (srcValue == "True") + Value = "自动"; + else + Value = "手动"; + } + dt.Add(elementIndex, Value); + } + return dt.ToJson(); + } + + public async Task GetRtChartData(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_MAINPAGE"); + var dlist = list.Where(x => x.ElementIndex.Contains("C") && x.Hsig == "VP").ToList(); + var rlist = new List(); + + var datetimeNow = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); + + foreach (var item in dlist) + { + var chartDataFormat = new ChartDataFormat(); + chartDataFormat.TagName = item.TagName; + chartDataFormat.Description = item.Description + $"({item.Units})"; + + var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver + $"?groupName={groupName}"; + + var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); + + JObject valueJson = JObject.Parse(responseStr); + + chartDataFormat.Value = valueJson[item.TagName].ToString(); + + chartDataFormat.RtTime = datetimeNow; + + rlist.Add(chartDataFormat); + } + return rlist.ToJson(); + } + + public async Task GetMainPageInit(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_MAINPAGE"); + Dictionary dict = new Dictionary(); + foreach (var item in list) + { + if (item.Hsig == "VP") + { + dict.Add(item.ElementIndex + "_Title", item.Description + "(" + item.Units + ")"); + } + else + { + dict.Add(item.ElementIndex + "_Title", item.Description); + } + } + return dict.ToJson(); + } + + + public async Task GetMainPageChartInit(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_MAINPAGE"); + var dlist = list.Where(x=>x.ElementIndex.Contains("C")&&x.Hsig == "VP").ToList(); + var rlist = new List(); + + var datetimeNow = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); + + foreach (var item in dlist) + { + var chartDataFormat = new ChartDataFormat(); + chartDataFormat.TagName = item.TagName; + chartDataFormat.Description = item.Description + $"({item.Units})"; + + var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver+ $"?groupName={groupName}"; + + var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); + + JObject valueJson = JObject.Parse(responseStr); + + chartDataFormat.Value = valueJson[item.TagName].ToString(); + + chartDataFormat.RtTime = datetimeNow; + + rlist.Add(chartDataFormat); + } + return rlist.ToJson(); + } + + public class ChartDataFormat + { + public string TagName { get; set; } + public string Description { get; set; } + public string Value { get; set; } + public string RtTime { get; set; } + } + + public class SrcTagRtValue + { + public string TagName {get;set;} + public string Description { get; set; } + public string Value { get; set; } + } + } +} diff --git a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs index 228b092..f10f22f 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs +++ b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs @@ -23,7 +23,10 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers public class HistoryChartsController : BaseController { public HistoryChartsService _historyChartsService { get;set;} - + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; [HttpGet] diff --git a/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs b/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs index 23b65f6..e6926f5 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs +++ b/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs @@ -20,8 +20,11 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers public class RtchartsController : BaseController { public RtchartsService _rtchartsService { get;set;} - - [HttpGet] + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] public async Task GetDriverGroupList() { var data = await _rtchartsService.GetDriverGroupList(); @@ -31,28 +34,28 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers [HttpGet] public async Task GetAllSubsystemTag() { - var data = await _rtchartsService.GetAllSubsystemTag(); + var data = await _rtchartsService.GetAllSubsystemTag(groupDescription); return Content(data); } [HttpPost] public async Task GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) { - var data = await _rtchartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName); + var data = await _rtchartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, groupDescription); return Content(data); } [HttpPost] public async Task GetChartsTagValueInit(string[] charts_TagIDs) { - var data = await _rtchartsService.GetChartsTagValueInit(charts_TagIDs); + var data = await _rtchartsService.GetChartsTagValueInit(charts_TagIDs, groupDescription); return Content(data); } [HttpPost] public async Task GetChartsTagValue(string[] charts_TagIDs) { - var data = await _rtchartsService.GetChartsTagValue(charts_TagIDs); + var data = await _rtchartsService.GetChartsTagValue(charts_TagIDs, groupDescription); return Content(data); } diff --git a/HT.Cloud.Web/Areas/ChartsManage/Views/Rtcharts/Index.cshtml b/HT.Cloud.Web/Areas/ChartsManage/Views/Rtcharts/Index.cshtml index c6d72d7..85790ed 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Views/Rtcharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/ChartsManage/Views/Rtcharts/Index.cshtml @@ -459,8 +459,8 @@ @*
    *@
    -
    -
    + @*
    +
    *@
    + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpPost] public async Task GetAllTagList(ChartTagType chartTagType) { var systemName = "喷煤系统"; diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtchartsController.cs b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtchartsController.cs index 8cf9286..059e17c 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtchartsController.cs +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Controllers/PenMeiRtchartsController.cs @@ -20,8 +20,11 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers public class PenMeiRtchartsController : BaseController { public RtchartsService _rtchartsService { get;set;} - - [HttpGet] + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] public async Task GetDriverGroupList() { var data = await _rtchartsService.GetDriverGroupList(); @@ -31,28 +34,28 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers [HttpGet] public async Task GetAllSubsystemTag() { - var data = await _rtchartsService.GetAllSubsystemTag(); + var data = await _rtchartsService.GetAllSubsystemTag(groupDescription); return Content(data); } [HttpPost] public async Task GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) { - var data = await _rtchartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName); + var data = await _rtchartsService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, groupDescription); return Content(data); } [HttpPost] public async Task GetChartsTagValueInit(string[] charts_TagIDs) { - var data = await _rtchartsService.GetChartsTagValueInit(charts_TagIDs); + var data = await _rtchartsService.GetChartsTagValueInit(charts_TagIDs, groupDescription); return Content(data); } [HttpPost] public async Task GetChartsTagValue(string[] charts_TagIDs) { - var data = await _rtchartsService.GetChartsTagValue(charts_TagIDs); + var data = await _rtchartsService.GetChartsTagValue(charts_TagIDs, groupDescription); return Content(data); } diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtcharts/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtcharts/Index.cshtml index c6d72d7..85790ed 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtcharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiRtcharts/Index.cshtml @@ -459,8 +459,8 @@ @*
      *@
      -
      -
      + @*
      +
      *@
      + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] public async Task GetRtData() { var data = await _rtReportService.GetRtSubsysTagValue(); diff --git a/HT.Cloud.Web/Areas/ReportManage/Controllers/HistoryReportController.cs b/HT.Cloud.Web/Areas/ReportManage/Controllers/HistoryReportController.cs index abd8cd8..4bc15f9 100644 --- a/HT.Cloud.Web/Areas/ReportManage/Controllers/HistoryReportController.cs +++ b/HT.Cloud.Web/Areas/ReportManage/Controllers/HistoryReportController.cs @@ -19,8 +19,11 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers public class HistoryReportController : BaseController { public HistoryReportService _historyReportService { get; set; } - - [HttpGet] + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] public async Task GetDriverGroupList() { //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); diff --git a/HT.Cloud.Web/Areas/ReportManage/Controllers/MainPageControl.cs b/HT.Cloud.Web/Areas/ReportManage/Controllers/MainPageControl.cs new file mode 100644 index 0000000..3de989a --- /dev/null +++ b/HT.Cloud.Web/Areas/ReportManage/Controllers/MainPageControl.cs @@ -0,0 +1,49 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using HT.Cloud.Service.ChartsManage; +using HT.Cloud.Service.ReportManage; +using HT.Cloud.Code; + +namespace HT.Cloud.Web.Areas.ReportManage.Controllers +{ + [Area("ReportManage")] + public class MainPageController : BaseController + { + public MainPageService _mainPageService { get; set; } + + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + + [HttpGet] + public async Task GetMainPageInit() + { + var data = await _mainPageService.GetMainPageInit(groupDescription); + return Content(data); + } + + [HttpGet] + public async Task GetMainPageChartInit() + { + var data = await _mainPageService.GetMainPageChartInit(groupDescription); + return Content(data); + } + + [HttpGet] + public async Task GetRtData() + { + var data = await _mainPageService.GetRtData(groupDescription); + return Content(data); + } + + [HttpGet] + public async Task GetRtChartData() + { + var data = await _mainPageService.GetRtChartData(groupDescription); + return Content(data); + } + + } +} diff --git a/HT.Cloud.Web/Areas/ReportManage/Controllers/MetaTagAlarmController.cs b/HT.Cloud.Web/Areas/ReportManage/Controllers/MetaTagAlarmController.cs index 79207ec..3d76c7b 100644 --- a/HT.Cloud.Web/Areas/ReportManage/Controllers/MetaTagAlarmController.cs +++ b/HT.Cloud.Web/Areas/ReportManage/Controllers/MetaTagAlarmController.cs @@ -22,7 +22,10 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers public class MetaTagAlarmController : BaseController { public MetaTagAlarmService _metaTagAlarmService { get;set;} - + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; [HttpGet] public async Task GetDriverGroupList() { diff --git a/HT.Cloud.Web/Areas/ReportManage/Controllers/RtReportController.cs b/HT.Cloud.Web/Areas/ReportManage/Controllers/RtReportController.cs index 89aec98..33a4ef5 100644 --- a/HT.Cloud.Web/Areas/ReportManage/Controllers/RtReportController.cs +++ b/HT.Cloud.Web/Areas/ReportManage/Controllers/RtReportController.cs @@ -3,6 +3,7 @@ using System; using System.Threading.Tasks; using HT.Cloud.Service.ChartsManage; using HT.Cloud.Service.ReportManage; +using HT.Cloud.Code; namespace HT.Cloud.Web.Areas.ReportManage.Controllers { @@ -10,8 +11,11 @@ namespace HT.Cloud.Web.Areas.ReportManage.Controllers public class RtReportController : BaseController { public RtReportService _rtReportService { get; set; } - - [HttpGet] + /// + /// 绑定数据仓库的数据库ID + /// + private string groupDescription = GlobalContext.SystemConfig.GroupDescription; + [HttpGet] public async Task GetRtData() { var data = await _rtReportService.GetRtSubsysTagValue(); diff --git a/HT.Cloud.Web/Areas/SystemSecurity/Views/ServerMonitoring/Index.cshtml b/HT.Cloud.Web/Areas/SystemSecurity/Views/ServerMonitoring/Index.cshtml index 61f80a5..f05d9c6 100644 --- a/HT.Cloud.Web/Areas/SystemSecurity/Views/ServerMonitoring/Index.cshtml +++ b/HT.Cloud.Web/Areas/SystemSecurity/Views/ServerMonitoring/Index.cshtml @@ -356,7 +356,6 @@
      -
      .NET信息
      diff --git a/HT.Cloud.Web/HT.Cloud.Web.csproj b/HT.Cloud.Web/HT.Cloud.Web.csproj index 09d962c..7297a75 100644 --- a/HT.Cloud.Web/HT.Cloud.Web.csproj +++ b/HT.Cloud.Web/HT.Cloud.Web.csproj @@ -8,7 +8,9 @@ True WaterCloud.Web.xml false - false + false + false + true diff --git a/HT.Cloud.Web/Views/Home/Default.cshtml b/HT.Cloud.Web/Views/Home/Default.cshtml index 4d97535..98b2dcd 100644 --- a/HT.Cloud.Web/Views/Home/Default.cshtml +++ b/HT.Cloud.Web/Views/Home/Default.cshtml @@ -172,18 +172,6 @@
      - @*
      -
      - -
      -
      - -
      -
      -
      -
      *@
      设备状态
      @@ -194,12 +182,10 @@
      - @*实时*@ -
      给煤量T
      +
      -

      - +

      @@ -208,12 +194,10 @@
      - @*实时*@ -
      煤气流量m³/h
      +
      -

      - +

      @@ -222,12 +206,10 @@
      - @*实时*@ -
      助燃风流量m³/h
      +
      -

      - +

      @@ -236,12 +218,10 @@
      - @*实时*@ -
      废气流量m³/h
      +
      -

      - +

      @@ -250,12 +230,10 @@
      - @*实时*@ -
      入口温度℃
      +
      -

      - +

      @@ -264,12 +242,10 @@
      - @*实时*@ -
      出口温度℃
      +
      -

      - +

      @@ -278,12 +254,10 @@
      - @*实时*@ -
      磨机压差-Pa
      +
      -

      - +

      @@ -292,12 +266,10 @@
      - @*实时*@ -
      炉膛温度℃
      +
      -

      - +

      @@ -309,7 +281,7 @@
      -
      给煤量统计
      +
      生产统计
      @@ -317,9 +289,7 @@
      -
      -
      运行状态
      @@ -330,12 +300,10 @@
      - @*实时*@ -
      系统模式
      +
      -

      - +

      @@ -344,12 +312,10 @@
      - @*实时*@ -
      给煤机
      +
      -

      - +

      @@ -358,12 +324,10 @@
      - @*实时*@ -
      磨机
      +
      -

      - +

      @@ -372,12 +336,10 @@
      - @*实时*@ -
      主风机
      +
      -

      - +

      @@ -386,12 +348,10 @@
      - @*实时*@ -
      高温风机
      +
      -

      - +

      @@ -400,12 +360,10 @@
      - @*实时*@ -
      助燃风机
      +
      -

      - +

      @@ -414,25 +372,10 @@
      - @*实时*@ -
      收粉器
      +
      -

      - -
      -
      -
      -
      - @*
      -
      -
      -
      -
      低压泵(1#)
      -
      -
      -

      - +

      @@ -441,170 +384,19 @@
      -
      低压泵(2#)
      +
      -

      - +

      -
      -
      -
      -
      -
      高压泵(1#)
      -
      -
      -

      - -
      -
      -
      -
      -
      -
      -
      -
      -
      高压泵(2#)
      -
      -
      -

      - -
      -
      -
      -
      *@ -
      -
      -
      -
      - @*实时*@ -
      液压站
      -
      -
      -

      - -
      -
      -
      -
      - @*
      -
      -
      -
      -
      木屑分离器(1#)
      -
      -
      -

      - -
      -
      -
      -
      -
      -
      -
      -
      -
      木屑分离器(2#)
      -
      -
      -

      - -
      -
      -
      -
      -
      -
      -
      -
      -
      叶轮给料机(1#)
      -
      -
      -

      - -
      -
      -
      -
      -
      -
      -
      -
      -
      叶轮给料机(2#)
      -
      -
      -

      - -
      -
      -
      -
      *@ - - - -
      - - @*
      -
      系统公告
      -
      -
      -
      - -
      -
      版本信息
      -
      - - - - - - - - - - - - - - - - - - - - - - - -
      框架名称 - WaterCloud -
      当前版本@HT.Cloud.Code.GlobalContext.GetVersion()
      主要特色零门槛 / 响应式 / 清爽 / 极简
      Gitee -
      - star - fork -
      -
      -
      -
      - -
      -
      作者心语
      -
      -

      本模板前端基于layuimini,后端对各种框架进行融合而实现。

      -

      开发文档地址:WaterCloud文档

      -

      技术交流QQ群(1065447456):watercloud(加群请备注)

      -

      喜欢此模板的可以给我的Gitee加个Star支持一下

      -
      -
      *@ -
      @@ -619,117 +411,117 @@ // quickModuleInfo(); // loadInfo(); //}); + + + //记录信息 更改为赋值实时数据初始值 loadInfo = async function () { $.ajax({ - url: "/ReportManage/RtReport/GetRtData", + url: "/ReportManage/MainPage/GetRtData", Type: "Get", success: function (redata) { var data = JSON.parse(redata); - $('#HT_YQL_TT').html(data.HT_YQL_TT); - $('#HT_YQL_MQ_QT').html(data.HT_YQL_MQ_QT); - $('#HT_YQL_KQ_QT').html(data.HT_YQL_KQ_QT); - $('#HT_YQL_FQ_QT').html(data.HT_YQL_FQ_QT); - $('#HT_MMJ_RK_TT').html(data.HT_MMJ_RK_TT); - $('#HT_MMJ_CK_TT').html(data.HT_MMJ_CK_TT); - $('#HT_MMJ_PT_SUB').html(data.HT_MMJ_PT_SUB); - $('#HT_GMJ_VP').html(data.HT_GMJ_VP); - // - $('#HT_SYS_AUTO').html(data.HT_SYS_AUTO); - //$('#HT_RHZ_DYB1_STATE_RUN').html(data.HT_RHZ_DYB1_STATE_RUN); - //$('#HT_RHZ_DYB2_STATE_RUN').html(data.HT_RHZ_DYB2_STATE_RUN); - //$('#HT_RHZ_GYB1_STATE_RUN').html(data.HT_RHZ_GYB1_STATE_RUN); - //$('#HT_RHZ_GYB2_STATE_RUN').html(data.HT_RHZ_GYB2_STATE_RUN); - $('#HT_YYRH_SYS_RUN').html(data.HT_YYRH_SYS_RUN); - //$('#HT_GMJ_FLQ1_STATE_RUN').html(data.HT_GMJ_FLQ1_STATE_RUN); - //$('#HT_GMJ_FLQ2_STATE_RUN').html(data.HT_GMJ_FLQ2_STATE_RUN); - //$('#HT_GMJ_GLJ1_STATE_RUN').html(data.HT_GMJ_GLJ1_STATE_RUN); - //$('#HT_GMJ_GLJ2_STATE_RUN').html(data.HT_GMJ_GLJ2_STATE_RUN); - $('#HT_SF_SYS_RUN').html(data.HT_SF_SYS_RUN); - $('#HT_PFFJ_STATE_RUN').html(data.HT_PFFJ_STATE_RUN); - $('#HT_YQL_GWFJ_STATE_RUN').html(data.HT_YQL_GWFJ_STATE_RUN); - $('#HT_YQL_ZRFJ_STATE_RUN').html(data.HT_YQL_ZRFJ_STATE_RUN); - $('#HT_MMJ_STATE_RUN').html(data.HT_MMJ_STATE_RUN); - $('#HT_GMJ_STATE_RUN').html(data.HT_GMJ_STATE_RUN); + $('#T1').html(data.T1); + $('#T2').html(data.T2); + $('#T3').html(data.T3); + $('#T4').html(data.T4); + $('#B1').html(data.B1); + $('#B2').html(data.B2); + $('#B3').html(data.B3); + $('#B4').html(data.B4); + $('#S1').html(data.S1); + $('#S2').html(data.S2); + $('#S3').html(data.S3); + $('#S4').html(data.S4); + $('#S5').html(data.S5); + $('#S6').html(data.S6); + $('#S7').html(data.S7); + $('#S8').html(data.S8); + + + //var myChart = echarts.init(document.getElementById('echarts-records')); + //var option = myChart.getOption(); + //let xData = data.RtTime; + //let yData = data.HT_GMJ_VP; + ////option.series[0].data.push(yData); + //if (option.xAxis[0].data.length > 34) { + // option.xAxis[0].data.shift(); + // option.series[0].data.shift(); + + //} + //option.xAxis[0].data.push(xData); + //option.series[0].data.push(yData); + + + //myChart.setOption(option); + } + }); + $.ajax({ + url: "/ReportManage/MainPage/GetRtChartData", + Type: "Get", + success: function (redata) { + var data = JSON.parse(redata); + + var myChart = echarts.init(document.getElementById('echarts-records')); var option = myChart.getOption(); - let xData = data.RtTime; - let yData = data.HT_GMJ_VP; + //let xData = data.RtTime; + //let yData = data.HT_GMJ_VP; //option.series[0].data.push(yData); if (option.xAxis[0].data.length > 34) { option.xAxis[0].data.shift(); option.series[0].data.shift(); } - option.xAxis[0].data.push(xData); - option.series[0].data.push(yData); - + //option.xAxis[0].data.push(xData); + //option.series[0].data.push(yData); + + + + + option.xAxis[0].data.push(data[0].RtTime); + //var yData = []; + for (var i = 0; i < data.length; i++) { + option.series[i].data.push(data[i].Value) + } + myChart.setOption(option); } }); } - ////公告 - //noticeInfo = function () { - // $.ajax({ - // url: "/ClientsData/GetNoticeInfo?v=" + new Date().Format("yyyy-MM-dd hh:mm:ss"), - // dataType: "json", - // success: function (data) { - // var noticeHtml = ''; - // for (var i = 0; i < data.length; i++) { - // noticeHtml += '
      '; - // noticeHtml += '
      ' + data[i].F_Title + '
      '; - // noticeHtml += '
      ' + new Date(data[i].F_CreatorTime).Format("yyyy-MM-dd hh:mm") + '
      '; - // noticeHtml += '
      '; - // noticeHtml += '
      ';
      -        //                var str = data[i].F_Content;
      -        //                noticeHtml += str;
      -        //                noticeHtml += '
      '; - // } - // $('.layui-watercloud-notice').empty(); - // $('.layui-watercloud-notice').html(noticeHtml); - // } - // }); - //} - ////快捷入口 - //quickModuleInfo = function () { - // $.ajax({ - // url: "/ClientsData/GetQuickModule?v=" + new Date().Format("yyyy-MM-dd hh:mm:ss"), - // dataType: "json", - // success: function (data) { - // var qiuckHtml = ''; - // for (var i = 0; i < data.length; i++) { - // qiuckHtml += ''; - // } - // $('.layuimini-qiuck').empty(); - // $('.layuimini-qiuck').html(qiuckHtml); - // } - // }); - //} + layui.use(['layer', 'miniTab', 'common'], function () { var $ = layui.jquery, layer = layui.layer, miniTab = layui.miniTab, common = layui.common; + + var StaticChartList = new Array(); + const CHARTSRGB = ["#8B2252", "#C65911", "#0000EE", "#00F5FF", "#00E5EE", "#27408B", "#FFD700", "#7FFFD4", "#B22222", "#EE7621", "#00C5CD", "#A0522D", "#1E90FF", "#00868B", "#8B4513", "#8B3A3A", "#CD6600", "#CD853F", "#EE7942" + , "#D2691E", "#8B008B", "#FFEC8B", "#8B4513", "#CDC673", "#EEEE00", "#FFA500", "#FFD966"]; + //获取并初始化界面标题 $(function () { $.ajax({ - url: "/ReportManage/RtReport/GetRtData", + url: "/ReportManage/MainPage/GetMainPageInit", Type: "Get", success: function (redata) { var dataInit = JSON.parse(redata); - loadChart(dataInit.RtTime, dataInit.HT_GMJ_VP); + loadInitTile(dataInit); + } + }); + }); + + $(function () { + $.ajax({ + url: "/ReportManage/MainPage/GetMainPageChartInit", + Type: "Get", + success: function (redata) { + var dataInit = JSON.parse(redata); + StaticChartList = dataInit; + loadChart(StaticChartList); + //loadChart(dataInit.RtTime, dataInit.HT_GMJ_VP); } }); }); @@ -739,39 +531,78 @@ //noticeInfo(); //quickModuleInfo(); }, 1000); //指定1秒刷新一次 - /** - * 查看公告信息 - **/ - //$('body').on('click', '.layuimini-notice', function () { - // var title = $(this).children('.layuimini-notice-title').text(), - // noticeTime = $(this).children('.layuimini-notice-extra').text(), - // content = $(this).children('.layuimini-notice-content').html(); - // var html = '
      \n' + - // '

      ' + title + '

      \n' + - // '
      ' + content + '
      \n' + - // '
      \n'; - // parent.layer.open({ - // type: 1, - // title: '系统公告' + '' + noticeTime + '', - // area: '300px;', - // shade: 0.8, - // id: 'layuimini-notice', - // btn: ['确定'], - // btnAlign: 'c', - // moveType: 1, - // content: html - // }); - //}); - + + function loadInitTile(Tdata) { + $('#T1_Title').html(Tdata.T1_Title); + $('#T2_Title').html(Tdata.T2_Title); + $('#T3_Title').html(Tdata.T3_Title); + $('#T4_Title').html(Tdata.T4_Title); + $('#B1_Title').html(Tdata.B1_Title); + $('#B2_Title').html(Tdata.B2_Title); + $('#B3_Title').html(Tdata.B3_Title); + $('#B4_Title').html(Tdata.B4_Title); + $('#S1_Title').html(Tdata.S1_Title); + $('#S2_Title').html(Tdata.S2_Title); + $('#S3_Title').html(Tdata.S3_Title); + $('#S4_Title').html(Tdata.S4_Title); + $('#S5_Title').html(Tdata.S5_Title); + $('#S6_Title').html(Tdata.S6_Title); + $('#S7_Title').html(Tdata.S7_Title); + $('#S8_Title').html(Tdata.S8_Title); + } /** * 报表功能 */ - function loadChart(sxdata,sydata) { - var myChart = echarts.init(document.getElementById('echarts-records')); + function loadChart(dataInit) { var xData = []; + xData.push(dataInit[0].RtTime); var yData = []; - xData.push(sxdata); - yData.push(sydata); + for (var i = 0; i < dataInit.length ; i++) + { + var yAxisdata = []; + yAxisdata.push(dataInit[i].Value) + yData.push(yAxisdata); + } + var legendArr = []; + var colorArr = []; + var ySeries = []; + for (var ci = 0; ci < yData.length; ci++) + { + colorArr.push(CHARTSRGB[ci]) + legendArr.push(StaticChartList[ci].Description); + ySeries.push( + { + name: StaticChartList[ci].Description, + type: 'line', + data: yData[ci], + lineStyle: { + normal: { + width: 2 + } + }, + label: { + show: true, // 在折线拐点上显示数据 + position: 'bottom', + textStyle: { + color: 'black', + fontSize: 10 + } + }, + smooth: true, + symbol: 'circle', + symbolSize: 6, + showAllSymbol: true, + color: colorArr[ci], + } + ) + + } + + var myChart = echarts.init(document.getElementById('echarts-records')); + //var xData = []; + //var yData = []; + //xData.push(sxdata); + //yData.push(sydata); //var cpuData = []; //common.ajax({ // url: "/SystemSecurity/ServerMonitoring/GetServerData", @@ -797,8 +628,9 @@ trigger: 'axis' }, legend: { - data: ['给煤量(T)'] + data: legendArr }, + //legend:legendArr, xAxis: { type: 'category', boundaryGap: false, @@ -829,7 +661,7 @@ }, }, yAxis: { - name: '给煤量(T)', + name: '', nameLocation: 'center', axisTick: { show:true, @@ -867,31 +699,32 @@ //}, type: 'value' }, - series: [ - { - name: '给煤量(T)', type: 'line', - data: yData, - lineStyle: { - normal: { - width: 2 - } - }, - label: { - show: true, // 在折线拐点上显示数据 - position:'bottom', - textStyle:{ - color:'black', - fontSize:10 - } - }, - smooth: true, - symbol: 'circle', - symbolSize: 6, - showAllSymbol: true, - color: '#EE6666', - }, + series:ySeries, + //series: [ + // { + // name: '给煤量(T)', type: 'line', + // data: yData, + // lineStyle: { + // normal: { + // width: 2 + // } + // }, + // label: { + // show: true, // 在折线拐点上显示数据 + // position:'bottom', + // textStyle:{ + // color:'black', + // fontSize:10 + // } + // }, + // smooth: true, + // symbol: 'circle', + // symbolSize: 6, + // showAllSymbol: true, + // color: '#EE6666', + // }, - ] + //] }; myChart.setOption(option); // echarts 窗口缩放自适应 diff --git a/HT.Cloud.Web/WaterCloud.Web.xml b/HT.Cloud.Web/WaterCloud.Web.xml index 92aaa6c..f3f3fab 100644 --- a/HT.Cloud.Web/WaterCloud.Web.xml +++ b/HT.Cloud.Web/WaterCloud.Web.xml @@ -11,6 +11,11 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -18,6 +23,11 @@ 描 述:实时趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -25,6 +35,11 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -32,6 +47,11 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -39,6 +59,11 @@ 描 述:实时趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -46,6 +71,11 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + 创 建:超级管理员 @@ -130,6 +160,21 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + 创 建:cdl @@ -137,6 +182,26 @@ 描 述:历史趋势控制器类 + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + 创 建:超级管理员 diff --git a/HT.Cloud.Web/appsettings.json b/HT.Cloud.Web/appsettings.json index 99849f4..d1fe1cf 100644 --- a/HT.Cloud.Web/appsettings.json +++ b/HT.Cloud.Web/appsettings.json @@ -8,11 +8,12 @@ } }, "SystemConfig": { + "GroupDescription": "喷煤系统", //系统备注 "Demo": false, // 是否是演示模式 账号admin 密码0000 "LoginMultiple": false, // 是否允许一个账户在多处登录 "AllowCorsSite": "http://localhost:8058", // 允许的其他站点访问Api "DBProvider": "SqlServer", //SqlServer //Oracle - "DBConnectionString": "Data Source=192.168.110.32;Initial Catalog=HTCLOUD_PM01;User Id= sa;Password= Sa1qaz;Integrated Security=False;Encrypt=True;TrustServerCertificate=True;", + "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbmDk32vhkYsxag9amyZ1OOMwPA3yWW1gKjVgKPpDBSgVaiansOQtPtF5IQDwQ7q12LOaKRfCsNZGg56LRoA5R2eybLLG8j/xLWDC8/X7aDMHvZ2G8SWZzlDTt8jTQulouSVBP7JtlWXsAj1B5NVUxvlqn5yJiaz89ISUyPp1+A/XQ==", "DBCommandTimeout": 180, // 数据库超时时间,单位秒 "CacheProvider": "Memory", // 缓存使用方式 Redis/Memory "RedisConnectionString": "127.0.0.1:6379", //docker部署 172.17.0.1 @@ -33,7 +34,7 @@ { "DBNumber": "1", "DBProvider": "SqlServer", //MySql //Oracle - "DBConnectionString": "Data Source=192.168.110.32;Initial Catalog=HTSCADA202308;User Id= sa;Password= Sa1qaz;Integrated Security=False;Encrypt=True;TrustServerCertificate=True;" + "DBConnectionString": "Zk48ARnbLq1Lk+lzxvCij/8Pt/tnmDwn+rE3IgYGjbnYiY85KP1HOOhZ7C60SCx1TwEmcNLYzAsnfEdOBXU0nU0Oy8su8Qtkf/CPFKNyOJYTJKdUqu23gKYXItXANHKYm37ayRrKmUCNtdRkxoN9I6Y8N+yLiP1Qjk207DBIXR4vgChSgSPr9USeuNmLVsiBiUuDY+4KnQF8uHwQxMBvWg==" } ], "RabbitMq": { diff --git a/HT.Cloud.Web/wwwroot/report/报表 2023年08月31日 00.00.00至2023年08月31日 13.54.30(时间间隔60秒)_2023年08月31日 13.54.40导出.xlsx b/HT.Cloud.Web/wwwroot/report/报表 2023年08月31日 00.00.00至2023年08月31日 13.54.30(时间间隔60秒)_2023年08月31日 13.54.40导出.xlsx new file mode 100644 index 0000000..c56f4cd Binary files /dev/null and b/HT.Cloud.Web/wwwroot/report/报表 2023年08月31日 00.00.00至2023年08月31日 13.54.30(时间间隔60秒)_2023年08月31日 13.54.40导出.xlsx differ