2025-02-19 16:06:08 +08:00
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 ;
2025-10-17 09:15:31 +08:00
using Microsoft.AspNetCore.Components.Web ;
2025-02-19 16:06:08 +08:00
namespace HT.Cloud.Service.DevicesManage
{
public class RealTimeDeviceStateService : BaseService < TestDeviceMonitoringEntity > , IDenpendency
{
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string dataDBNumber = GlobalContext . SystemConfig . DataDBNumber ;
public RealTimeDeviceStateService ( ISqlSugarClient context ) : base ( context )
{
}
// public async Task<List<RealTimeIOGroupEntity>> GetIOGroup(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<RealTimeIOGroupEntity>($"SELECT * FROM HT_{driverName}_{groupName}_IOGROUP");
// 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)
// {
// 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");
// return list;
// }
//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 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 < string > GetRealDeviceTag ( string systemName )
{
//http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1
//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 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 ;
}
2025-10-17 09:15:31 +08:00
public async Task < string > GetRealTableData ( string grouptype )
{
//http://192.168.110.33:8120/DataLiveCache/GetLiveSystemAllData/systemName=Z1
//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 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 < HTDebugTag > ( ) ;
list = _context . AsTenant ( ) . QueryableWithAttr < HTDebugTag > ( ) . 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 < conditionValue > ( ) ;
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 ( ) ;
}
2025-02-19 16:06:08 +08:00
2025-10-17 09:15:31 +08:00
public async Task < string > GetRtData ( string systemName )
2025-02-19 16:06:08 +08:00
{
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 = _context . AsTenant ( ) . QueryableWithAttr < RtchartsEntity > ( ) . First ( ) . remotertdataserver + $"?groupName={groupName}" ;
var responseStr = RemoteHttpRequest . HttpGet ( remoteRtDataServer ) ;
JObject valueJson = JObject . Parse ( responseStr ) ;
return valueJson . ToString ( 0 ) ;
//var srcTagRtValues = new List<SrcTagRtValue>();
//var dt = new Dictionary<string, string>();
//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();
}
2025-10-17 09:15:31 +08:00
public class conditionValue
{
public string id { get ; set ; }
public string condition { get ; set ; }
public string isMet { get ; set ; }
public string status { get ; set ; }
}
2025-02-19 16:06:08 +08:00
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 ; }
}
}
}