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 System.Reflection.PortableExecutable; using Newtonsoft.Json; using HT.Cloud.Code; using HT.Cloud.Domain.DevicesManage; using System.Text.RegularExpressions; using Org.BouncyCastle.Asn1.X509; namespace HT.Cloud.Service.ReportManage { public class HistoryReportService : BaseService, IDenpendency { public HistoryReportService(ISqlSugarClient context) : base(context) { } public async Task 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() { ["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 result = new Result(); //result.data = fileurl; return fileurl; } public async Task 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 GetReportFirstHead() { var list = _context.Queryable().ToList(); List list_name_two = list.Select(t => t.HSYS).GroupBy(c => c).Select(c => c.First()).ToList(); return list_name_two.ToJson(); } public async Task GetReportSecondHead() { var list = _context.Queryable().ToList(); List list_name_two = list.Select(t => t.HSYS).GroupBy(c => c).Select(c => c.First()).ToList(); var relist = new List(); 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(); var listTitleString = new List(); 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 Head { get; set;} public List Title { get; set; } } } }