Files
HTCloud/HT.Cloud.Service/SystemSecurity/RealTimeIOStateService.cs

140 lines
5.5 KiB
C#
Raw Normal View History

2023-12-20 15:51:03 +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;
2024-01-12 08:54:55 +08:00
using HT.Cloud.Domain.SystemSecurity;
2023-12-20 15:51:03 +08:00
namespace HT.Cloud.Service.SystemSecurity
{
2024-01-12 08:54:55 +08:00
public class RealTimeIOStateService : BaseService<RealTimeIOGroupEntity>, IDenpendency
2023-12-20 15:51:03 +08:00
{
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
2024-01-12 08:54:55 +08:00
public RealTimeIOStateService(ISqlSugarClient context) : base(context)
2023-12-20 15:51:03 +08:00
{
}
2024-01-12 08:54:55 +08:00
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<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<string> GetRtData()
2023-12-20 15:51:03 +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 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 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; }
}
}
}