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

139 lines
5.2 KiB
C#
Raw Normal View History

2023-03-03 16:07:50 +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;
2023-04-27 15:02:45 +08:00
using System.Reflection.PortableExecutable;
using Newtonsoft.Json;
using HT.Cloud.Code;
using HT.Cloud.Domain.DevicesManage;
using System.Text.RegularExpressions;
using Org.BouncyCastle.Asn1.X509;
2023-03-03 16:07:50 +08:00
namespace HT.Cloud.Service.ReportManage
{
public class HistoryReportService : BaseService<HistoryReportEntity>, IDenpendency
{
public HistoryReportService(ISqlSugarClient context) : base(context)
{
}
public async Task<string> GetReportFileName(string startdt, string enddt, int timeinterval)
{
//SqlParameter[] sqlParameters =
//{
// new SqlParameter("@startdt",startdt),
// new SqlParameter("@enddt",enddt),
// new SqlParameter("@timeinterval",timeinterval)
//};
////*
//string conn = db.Database.GetConnectionString(); //"Data Source=192.168.110.32;Initial Catalog=SCADA;User Id= sa;Password= Sa1qaz;Integrated Security=False;Encrypt=True;TrustServerCertificate=True;";
//SqlConnection sqlConnection = new SqlConnection(conn);
//var ds = sqlConnection.SqlQueryex("Query_Report_YL", sqlParameters);
//*
//var ds = db.SqlQuery("Query_Report_Period", sqlParameters);///
SugarParameter[] sqlParameters ={
new SugarParameter("@startdt",startdt),
new SugarParameter("@enddt",enddt),
new SugarParameter("@timeinterval",timeinterval)
};
var Report = _context.Ado.UseStoredProcedure().GetDataTable("Query_Report_YL", sqlParameters);
Report.TableName = "Report";
var value = new Dictionary<string, object>()
{
["title"] = "Report",
["Report"] = Report,
};
//var pathroot = "";
//var Isdebug = Configuration["Isdebug"];
//if (Isdebug.Equals("yes"))
//{
// pathroot = Directory.GetCurrentDirectory();
//}
//else
//{
// pathroot = AppContext.BaseDirectory;
//}
var pathroot = Directory.GetCurrentDirectory();
var templatePath = pathroot + "\\wwwroot\\report\\" + "报表预设模板" + ".xlsx";
string fileurl = "Report" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
//var fileurl = $"电子报表2023_01_03_11_19_53.xlsx";
var path = pathroot + "\\wwwroot\\report\\" + fileurl;//{StartTime}-{EndTime}
MiniExcel.SaveAsByTemplate(path: path, templatePath: templatePath, value: value);
////await Task.Delay(1);
//Result<string> result = new Result<string>();
//result.data = fileurl;
return fileurl;
}
2023-04-27 15:02:45 +08:00
public async Task<object> GetReportNew(string startdt, string enddt, int timeinterval)
{
SugarParameter[] sqlParameters ={
new SugarParameter("@startdt",startdt),
new SugarParameter("@enddt",enddt),
new SugarParameter("@timeinterval",timeinterval)
};
var Report = _context.Ado.UseStoredProcedure().GetDataTable("Query_Report_YL", sqlParameters);
Report.TableName = "Report";
//return JsonConvert.SerializeObject(Report);
return Report;
}
public async Task<string> GetReportFirstHead()
{
var list = _context.Queryable<Ht_History_ReportEntity>().ToList();
List<string> list_name_two = list.Select(t => t.HSYS).GroupBy(c => c).Select(c => c.First()).ToList();
return list_name_two.ToJson();
}
public async Task<string> GetReportSecondHead()
{
var list = _context.Queryable<Ht_History_ReportEntity>().ToList();
List<string> list_name_two = list.Select(t => t.HSYS).GroupBy(c => c).Select(c => c.First()).ToList();
var relist = new List<SecondHead>();
foreach(var t in list_name_two)
{
var secondHead = new SecondHead();
secondHead.HSYS = t;
var listHead = list.Where(x=> x.HSYS == t).ToList();
var listHeadString = new List<string>();
var listTitleString = new List<string>();
foreach(var h in listHead)
{
listHeadString.Add(h.HPRO.ToString());
listTitleString.Add(h.HVAR.ToString());
}
secondHead.Head = listHeadString;
secondHead.Title = listTitleString;
relist.Add(secondHead);
}
return relist.ToJson();
//return Report.ToJson();
}
public class SecondHead
{
public string HSYS { get; set;}
public List<string> Head { get; set;}
public List<string> Title { get; set; }
}
2023-03-03 16:07:50 +08:00
}
}