237 lines
11 KiB
C#
237 lines
11 KiB
C#
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<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;
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
|
|
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 = _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();
|
|
}
|
|
|
|
|
|
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; }
|
|
}
|
|
}
|
|
}
|