Files
HTCloud/HT.Cloud.Service/ReportManage/MainPageService.cs

212 lines
8.3 KiB
C#
Raw Permalink Normal View History

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<RTMainPageEntity>, IDenpendency
{
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber;
public MainPageService(ISqlSugarClient context) : base(context)
{
}
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_{systemName}_MAINPAGE");
var remoteRtDataServer = _context.AsTenant().QueryableWithAttr<RtTechChartsEntity>().First().remotertdataserver + $"systemName={systemName}"; ;
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
JObject valueJson = JObject.Parse(responseStr);
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 async Task<string> GetRtChartData(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_{systemName}_MAINPAGE");
var dlist = list.Where(x => x.ElementIndex.Contains("C") && x.Hsig == "VP").ToList();
var rlist = new List<ChartDataFormat>();
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<RtTechChartsEntity>().First().remotertdataserver + $"systemName={systemName}";
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
JObject valueJson = JObject.Parse(responseStr);
2024-10-31 23:45:24 +08:00
if (item.ElementIndex.ToString() == "C3")
{
chartDataFormat.Value = (valueJson[item.TagName].ToString().ParseToFloat() * 0.84f).ToString("0.00");
}
else
{
chartDataFormat.Value = decimal.Parse(valueJson[item.TagName].ToString()).ToString("0.00");
}
//chartDataFormat.Value = valueJson[item.TagName].ToString();
chartDataFormat.RtTime = datetimeNow;
rlist.Add(chartDataFormat);
}
return rlist.ToJson();
}
public async Task<string> GetMainPageInit(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_{systemName}_MAINPAGE");
Dictionary<string,string> dict = new Dictionary<string, string>();
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<string> GetMainPageChartInit(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_{systemName}_MAINPAGE");
var dlist = list.Where(x=>x.ElementIndex.Contains("C")&&x.Hsig == "VP").ToList();
var rlist = new List<ChartDataFormat>();
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<RtTechChartsEntity>().First().remotertdataserver + $"systemName={systemName}"; ;
var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer);
JObject valueJson = JObject.Parse(responseStr);
2024-10-31 23:45:24 +08:00
if (item.ElementIndex.ToString() == "C3")
{
chartDataFormat.Value = (valueJson[item.TagName].ToString().ParseToFloat() * 0.84f).ToString("0.00");
}
else
{
chartDataFormat.Value = decimal.Parse(valueJson[item.TagName].ToString()).ToString("0.00");
}
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; }
}
}
}