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 Newtonsoft.Json; using HT.Cloud.Domain.SystemSecurity; using System.Net.NetworkInformation; using static System.Net.WebRequestMethods; using Microsoft.AspNetCore.Components.Web; namespace HT.Cloud.Service.DevicesManage { public class RealTimeDeviceStateService : BaseService, IDenpendency { /// /// 绑定数据仓库的数据库ID /// private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; public RealTimeDeviceStateService(ISqlSugarClient context) : base(context) { } // public async Task> GetIOGroup(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}_IOGROUP"); // return list; //} //public async Task> GetIOGroup(string systemName, string iogroupid) //{ // 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}_IOGROUP_{iogroupid}"); // return list; //} //public async Task> GetIOInfo(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}_IOINFO"); // return list; // } //public async Task> GetIOInfo(string systemName, string iogroupid) //{ // 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}_IOINFO_{iogroupid}"); // return list; //} //public async Task> GetDevNetWork(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}_DEVNETWORK"); // return list; //} public async Task GetRealDeviceTag(string systemName) { //http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1 //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 remoteRtDataServer = "http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1"; var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); return valueJson.ToString(0); var list = repository.IQueryable().ToJson();//.ToList(); return list; } public async Task GetRealTableData(string grouptype) { //http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1 //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 remoteRtDataServer = "http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1"; var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); var list = new List(); list = _context.AsTenant().QueryableWithAttr().Where(x=>x.GroType == $"{grouptype}_I").ToList(); var newlist = list.GroupBy(p => p.TagName) .Select(g => g.First()) .ToList(); //return newlist.ToJson(); var relist = new List(); var id = 0; foreach (var item in newlist) { var conditionvalue = new conditionValue(); conditionvalue.id = id.ToString(); conditionvalue.condition = item.Description.ToString(); conditionvalue.isMet = valueJson[item.TagName].ToString(); conditionvalue.status = conditionvalue.isMet; if (!conditionvalue.condition.Contains("条件信息") && !conditionvalue.condition.Contains("条件信息") && !conditionvalue.condition.Contains("条件信息")) { relist.Add(conditionvalue); id++; } } //return valueJson.ToString(0); //var list = repository.IQueryable().ToJson();//.ToList(); return relist.ToJson(); } 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 = " http://localhost:5276/TestIOApi/"; var remoteRtDataServer = _context.AsTenant().QueryableWithAttr().First().remotertdataserver + $"?groupName={groupName}"; var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); return valueJson.ToString(0); //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 class conditionValue { public string id { get; set; } public string condition { get; set; } public string isMet { get; set; } public string status { get; set; } } 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; } } } }