diff --git a/HT.Cloud.Domain/Entity/ReportManage/Ht_Sys_TimeZoneEntity.cs b/HT.Cloud.Domain/Entity/ReportManage/Ht_Sys_TimeZoneEntity.cs new file mode 100644 index 0000000..112e971 --- /dev/null +++ b/HT.Cloud.Domain/Entity/ReportManage/Ht_Sys_TimeZoneEntity.cs @@ -0,0 +1,43 @@ +using System; +using System.ComponentModel.DataAnnotations; +using SqlSugar; + +namespace HT.Cloud.Domain.ReportManage +{ + /// + /// 创 建:cdl + /// 日 期:2023-04-26 14:43 + /// 描 述:历史信息表实体类 + /// + [SugarTable("HT_SYS_TIMEZONET")] + [TenantAttribute("1")] + public class Ht_Sys_TimeZoneEntity + { + /// + /// + /// + [SugarColumn(ColumnName="Id", ColumnDescription = "",ColumnDataType = "int",IsPrimaryKey = true)] + public int Id { get; set; } + /// + /// + /// + [SugarColumn(ColumnName= "TimeZoneType", ColumnDescription = "",ColumnDataType = "nvarchar(128)")] + public string TimeZoneType { get; set; } + /// + /// + /// + [SugarColumn(ColumnName= "TimeZoneStart", ColumnDescription = "",ColumnDataType = "nvarchar(16)")] + public string TimeZoneStart { get; set; } + /// + /// + /// + [SugarColumn(ColumnName= "TimeZoneEnd", ColumnDescription = "",ColumnDataType = "nvarchar(16)")] + public string TimeZoneEnd { get; set; } + /// + /// + /// + [SugarColumn(ColumnName= "Description", ColumnDescription = "",ColumnDataType = "nvarchar(128)")] + public string Description { get; set; } + + } +} diff --git a/HT.Cloud.Service/ReportManage/HistoryEleTimeZoneService.cs b/HT.Cloud.Service/ReportManage/HistoryEleTimeZoneService.cs new file mode 100644 index 0000000..cf0e3ba --- /dev/null +++ b/HT.Cloud.Service/ReportManage/HistoryEleTimeZoneService.cs @@ -0,0 +1,391 @@ +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; +using System.Security.Cryptography; +using System.Threading; +using System.Data; +using iTextSharp.text; +using Serenity.Data; +using Quartz; +using static iTextSharp.text.pdf.XfaForm; +using HT.Cloud.Domain.Entity.ReportManage; + +namespace HT.Cloud.Service.ReportManage +{ + public class HistoryEleTimeZoneService : BaseService, IDenpendency + { + /// + /// 绑定数据仓库的数据库ID + /// + private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; + + public HistoryEleTimeZoneService(ISqlSugarClient context) : base(context) + { + } + + public async Task GetDriverGroupList() + { + var list_group = _context.AsTenant().QueryableWithAttr().ToList(); + return list_group.ToJson(); + } + + 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.AsTenant().GetConnection(dataDBNumber).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; + } + /// + /// sql获取count + /// + /// + /// + /// + /// + public async Task GetReportNewInitPara(string startdt, string enddt, int timeinterval) + { + + SugarParameter[] sqlParameters ={ + new SugarParameter("@startdt",startdt), + new SugarParameter("@enddt",enddt), + new SugarParameter("@timeinterval",timeinterval) + }; + var dt_Counts = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL_COUNT", sqlParameters); + int counts = dt_Counts.Rows[0][0].ToInt(); + return counts; + } + /// + /// 代码计算count + /// + /// + /// + /// + /// + public async Task GetReportNewInitParaInCode(long startdt, long enddt, int timeinterval) + { + + var startS = startdt / 1000; + var endS = enddt / 1000; + var counts = ((endS - startS) / timeinterval) + 1; + return counts; + } + public async Task GetReportNewAsync(string page, string limit, string Startdt, string Enddt, string Timeinterval, string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + //SugarParameter[] sqlParameters ={ + // new SugarParameter("@startdt",Startdt), + // new SugarParameter("@enddt",Enddt), + // new SugarParameter("@timeinterval",Timeinterval) + //}; + //var dt_Counts = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL_COUNT", sqlParameters); + //int counts = dt_Counts.Rows[0][0].ToInt(); + string msg = ""; + int code = 0; + SugarParameter[] sqlReportParameters ={ + new SugarParameter("@startdt",Startdt), + new SugarParameter("@enddt",Enddt), + new SugarParameter("@groupname",groupName), + new SugarParameter("@timeinterval",Timeinterval), + new SugarParameter("@hpage",page.ToInt()), + new SugarParameter("@hlimit",limit.ToInt()) + }; + var Report = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_PAGE", sqlReportParameters); + + var jsonResult = JsonConvert.SerializeObject(Report); + + + var result = new + { + code = code, + msg = msg, + //count = counts, + data = jsonResult + }; + string serJson = JsonConvert.SerializeObject(result); + + + return serJson; + + } + 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.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL", sqlParameters); + Report.TableName = "Report"; + + //return JsonConvert.SerializeObject(Report); + return Report; + + } + public async Task GetReportFirstHead(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORT"); + //var list = _context.AsTenant().QueryableWithAttr().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(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORT"); + 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 async Task GetReportDownLoad(DateTime startTime, DateTime endTime ,int interval, string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORTPATH"); + var f3dpath = list.First().ReportPath; + + var listSub = TimeInOneDay(startTime, endTime); + + var pathroot = Directory.GetCurrentDirectory(); + string fileurl = "报表 " + startTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "至" + endTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "(" + "时间间隔" + interval.ToString() + "秒" + ")" + "_" + DateTime.Now.ToString("yyyy年MM月dd日 HH.mm.ss") + "导出" + ".xlsx"; + //var fileurl = $"电子报表2023_01_03_11_19_53.xlsx"; + var path = pathroot + "\\wwwroot\\report\\" + fileurl;//{StartTime}-{EndTime} + var path3d = @f3dpath + fileurl; + var sheets = new Dictionary(); + var sheets3D = new Dictionary(); + try + { + for (int i = 0; i < listSub.Count; i++) + { + var item = listSub[i]; + var fstartTime = item.starttime; + var fendTime = item.endtime; + + SugarParameter[] sqlParameters ={ + new SugarParameter("@enddt", fendTime.ToString("yyyy-MM-dd HH:mm:ss")), + new SugarParameter("@groupname", groupName), + new SugarParameter("@startdt", fstartTime.ToString("yyyy-MM-dd HH:mm:ss")), + new SugarParameter("@timeinterval",interval) + }; + var reader = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataReader("Query_Report_YL_CHN", sqlParameters); + + //string conn = _context.CurrentConnectionConfig.ConnectionString; //"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); + // SqlCommand command = new SqlCommand("dbo.Query_Report_YL_CHN", sqlConnection); + // command.CommandType = CommandType.StoredProcedure; + + //command.Parameters.Add(new SqlParameter("@enddt", fendTime.ToString("yyyy-MM-dd HH:mm:ss"))); + //command.Parameters.Add(new SqlParameter("@groupname", groupName)); + //command.Parameters.Add(new SqlParameter("@startdt", fstartTime.ToString("yyyy-MM-dd HH:mm:ss"))); + //command.Parameters.Add(new SqlParameter("@timeinterval", interval)); + + // command.CommandTimeout = 999999; + // sqlConnection.Open(); + // var reader = command.ExecuteReader(); + + + + //var pathroot = Directory.GetCurrentDirectory(); + //string fileurl = "报表_" + startTime.ToString("yyyy_MM_dd_HH_mm_ss")+"至"+ endTime.ToString("yyyy_MM_dd_HH_mm_ss")+"("+"时间间隔"+interval.ToString()+"秒"+")"+"_"+DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")+"导出" + ".xlsx"; + ////var fileurl = $"电子报表2023_01_03_11_19_53.xlsx"; + //var path = pathroot + "\\wwwroot\\report\\" + fileurl;//{StartTime}-{EndTime} + + var sheetName = fstartTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "至" + fendTime.ToString("HH.mm.ss"); + + //MiniExcel.SaveAs(path, reader, true, sheetName, ExcelType.XLSX, null, false); + + sheets.Add(sheetName, reader); + sheets3D.Add(sheetName, reader); + //sqlConnection.Close(); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + try + { + //var sheets3d = new Dictionary(sheets.ToDictionary(pair => pair.Key, pair => pair.Value)); + + + //await Task.Delay(1000); + MiniExcel.SaveAs(path, sheets); + + File.Copy(path, path3d, true); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + //await Task.WhenAll(taskCloud, task3D); + //bool a = true; + ////MiniExcel.SaveAs(path, reader); + //while (a) + //{ + // Thread.Sleep(1000); + //} + return fileurl.ToJson(); + } + /// + /// 处理分段,截头去尾还需添加 + /// + /// + /// + /// + public List TimeInOneDay(DateTime startTime, DateTime endTime) + { + var hour = startTime.Hour; + var minute = startTime.Minute; + var second = startTime.Second; + var oneendtime = new DateTime(startTime.Year,startTime.Month,startTime.Day,23,59,59); + var twostarttime = startTime.AddHours(0 - hour).AddMinutes(0 - minute).AddSeconds(0 - second).AddDays(1); + var twoendtime = new DateTime( twostarttime.Year, twostarttime.Month,twostarttime.Day,23,59,59); + + List ListTime = new List(); + + int day = (endTime - startTime).Days; + + for (int i = 0; i <= day; i++) + { + TimeMDL temptime = new TimeMDL(); + if (i == 0) + { + + temptime.starttime = startTime; + temptime.endtime = oneendtime; + ListTime.Add(temptime); + } + else + { + temptime.starttime = twostarttime; + temptime.endtime = twoendtime; + twostarttime = twostarttime.AddDays(1); + twoendtime = twoendtime.AddDays(1); + ListTime.Add(temptime); + } + } + + //list在处理 第一行和最后一行 + //ListTime[0].starttime = startTime; + ListTime[ListTime.Count-1].endtime = endTime; + + return ListTime; + } + public class TimeMDL + { + public DateTime starttime { get; set; } + public DateTime endtime { get; set; } + } + public class SecondHead + { + public string HSYS { get; set;} + public List Head { get; set;} + public List Title { get; set; } + } + + + + public async Task GetTimeZoneData(long startTime, long endTime, string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_WINTER_TIMEZONE"); + + return "".ToString(); + + + } + + } +} diff --git a/HT.Cloud.Service/ReportManage/HistoryReportOutPut.cs b/HT.Cloud.Service/ReportManage/HistoryReportOutPut.cs new file mode 100644 index 0000000..1dafc34 --- /dev/null +++ b/HT.Cloud.Service/ReportManage/HistoryReportOutPut.cs @@ -0,0 +1,376 @@ +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; +using System.Security.Cryptography; +using System.Threading; +using System.Data; +using iTextSharp.text; +using Serenity.Data; +using Quartz; +using static iTextSharp.text.pdf.XfaForm; +using HT.Cloud.Domain.Entity.ReportManage; + +namespace HT.Cloud.Service.ReportManage +{ + public class HistoryOutPutService : BaseService, IDenpendency + { + /// + /// 绑定数据仓库的数据库ID + /// + private string dataDBNumber = GlobalContext.SystemConfig.DataDBNumber; + + public HistoryOutPutService(ISqlSugarClient context) : base(context) + { + } + + public async Task GetDriverGroupList() + { + var list_group = _context.AsTenant().QueryableWithAttr().ToList(); + return list_group.ToJson(); + } + + 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.AsTenant().GetConnection(dataDBNumber).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; + } + /// + /// sql获取count + /// + /// + /// + /// + /// + public async Task GetReportNewInitPara(string startdt, string enddt, int timeinterval) + { + + SugarParameter[] sqlParameters ={ + new SugarParameter("@startdt",startdt), + new SugarParameter("@enddt",enddt), + new SugarParameter("@timeinterval",timeinterval) + }; + var dt_Counts = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL_COUNT", sqlParameters); + int counts = dt_Counts.Rows[0][0].ToInt(); + return counts; + } + /// + /// 代码计算count + /// + /// + /// + /// + /// + public async Task GetReportNewInitParaInCode(long startdt, long enddt, int timeinterval) + { + + var startS = startdt / 1000; + var endS = enddt / 1000; + var counts = ((endS - startS) / timeinterval) + 1; + return counts; + } + public async Task GetReportNewAsync(string page, string limit, string Startdt, string Enddt, string Timeinterval, string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + //SugarParameter[] sqlParameters ={ + // new SugarParameter("@startdt",Startdt), + // new SugarParameter("@enddt",Enddt), + // new SugarParameter("@timeinterval",Timeinterval) + //}; + //var dt_Counts = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL_COUNT", sqlParameters); + //int counts = dt_Counts.Rows[0][0].ToInt(); + string msg = ""; + int code = 0; + SugarParameter[] sqlReportParameters ={ + new SugarParameter("@startdt",Startdt), + new SugarParameter("@enddt",Enddt), + new SugarParameter("@groupname",groupName), + new SugarParameter("@timeinterval",Timeinterval), + new SugarParameter("@hpage",page.ToInt()), + new SugarParameter("@hlimit",limit.ToInt()) + }; + var Report = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_PAGE", sqlReportParameters); + + var jsonResult = JsonConvert.SerializeObject(Report); + + + var result = new + { + code = code, + msg = msg, + //count = counts, + data = jsonResult + }; + string serJson = JsonConvert.SerializeObject(result); + + + return serJson; + + } + 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.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataTable("Query_Report_YL", sqlParameters); + Report.TableName = "Report"; + + //return JsonConvert.SerializeObject(Report); + return Report; + + } + public async Task GetReportFirstHead(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORT"); + //var list = _context.AsTenant().QueryableWithAttr().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(string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORT"); + 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 async Task GetReportDownLoad(DateTime startTime, DateTime endTime ,int interval, string systemName) + { + var groupName = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().GroupName; + var driverId = _context.AsTenant().QueryableWithAttr().Where(x => x.GroupDescription == systemName).First().DriverID; + var driverName = _context.AsTenant().QueryableWithAttr().Where(x => x.DriverID == driverId).First().DriverName; + var list = _context.AsTenant().GetConnection(dataDBNumber).Ado.SqlQuery($"SELECT * FROM HT_{driverName}_{groupName}_REPORTPATH"); + var f3dpath = list.First().ReportPath; + + var listSub = TimeInOneDay(startTime, endTime); + + var pathroot = Directory.GetCurrentDirectory(); + string fileurl = "报表 " + startTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "至" + endTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "(" + "时间间隔" + interval.ToString() + "秒" + ")" + "_" + DateTime.Now.ToString("yyyy年MM月dd日 HH.mm.ss") + "导出" + ".xlsx"; + //var fileurl = $"电子报表2023_01_03_11_19_53.xlsx"; + var path = pathroot + "\\wwwroot\\report\\" + fileurl;//{StartTime}-{EndTime} + var path3d = @f3dpath + fileurl; + var sheets = new Dictionary(); + var sheets3D = new Dictionary(); + try + { + for (int i = 0; i < listSub.Count; i++) + { + var item = listSub[i]; + var fstartTime = item.starttime; + var fendTime = item.endtime; + + SugarParameter[] sqlParameters ={ + new SugarParameter("@enddt", fendTime.ToString("yyyy-MM-dd HH:mm:ss")), + new SugarParameter("@groupname", groupName), + new SugarParameter("@startdt", fstartTime.ToString("yyyy-MM-dd HH:mm:ss")), + new SugarParameter("@timeinterval",interval) + }; + var reader = _context.AsTenant().GetConnection(dataDBNumber).Ado.UseStoredProcedure().GetDataReader("Query_Report_YL_CHN", sqlParameters); + + //string conn = _context.CurrentConnectionConfig.ConnectionString; //"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); + // SqlCommand command = new SqlCommand("dbo.Query_Report_YL_CHN", sqlConnection); + // command.CommandType = CommandType.StoredProcedure; + + //command.Parameters.Add(new SqlParameter("@enddt", fendTime.ToString("yyyy-MM-dd HH:mm:ss"))); + //command.Parameters.Add(new SqlParameter("@groupname", groupName)); + //command.Parameters.Add(new SqlParameter("@startdt", fstartTime.ToString("yyyy-MM-dd HH:mm:ss"))); + //command.Parameters.Add(new SqlParameter("@timeinterval", interval)); + + // command.CommandTimeout = 999999; + // sqlConnection.Open(); + // var reader = command.ExecuteReader(); + + + + //var pathroot = Directory.GetCurrentDirectory(); + //string fileurl = "报表_" + startTime.ToString("yyyy_MM_dd_HH_mm_ss")+"至"+ endTime.ToString("yyyy_MM_dd_HH_mm_ss")+"("+"时间间隔"+interval.ToString()+"秒"+")"+"_"+DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")+"导出" + ".xlsx"; + ////var fileurl = $"电子报表2023_01_03_11_19_53.xlsx"; + //var path = pathroot + "\\wwwroot\\report\\" + fileurl;//{StartTime}-{EndTime} + + var sheetName = fstartTime.ToString("yyyy年MM月dd日 HH.mm.ss") + "至" + fendTime.ToString("HH.mm.ss"); + + //MiniExcel.SaveAs(path, reader, true, sheetName, ExcelType.XLSX, null, false); + + sheets.Add(sheetName, reader); + sheets3D.Add(sheetName, reader); + //sqlConnection.Close(); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + try + { + //var sheets3d = new Dictionary(sheets.ToDictionary(pair => pair.Key, pair => pair.Value)); + + + //await Task.Delay(1000); + MiniExcel.SaveAs(path, sheets); + + File.Copy(path, path3d, true); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + //await Task.WhenAll(taskCloud, task3D); + //bool a = true; + ////MiniExcel.SaveAs(path, reader); + //while (a) + //{ + // Thread.Sleep(1000); + //} + return fileurl.ToJson(); + } + /// + /// 处理分段,截头去尾还需添加 + /// + /// + /// + /// + public List TimeInOneDay(DateTime startTime, DateTime endTime) + { + var hour = startTime.Hour; + var minute = startTime.Minute; + var second = startTime.Second; + var oneendtime = new DateTime(startTime.Year,startTime.Month,startTime.Day,23,59,59); + var twostarttime = startTime.AddHours(0 - hour).AddMinutes(0 - minute).AddSeconds(0 - second).AddDays(1); + var twoendtime = new DateTime( twostarttime.Year, twostarttime.Month,twostarttime.Day,23,59,59); + + List ListTime = new List(); + + int day = (endTime - startTime).Days; + + for (int i = 0; i <= day; i++) + { + TimeMDL temptime = new TimeMDL(); + if (i == 0) + { + + temptime.starttime = startTime; + temptime.endtime = oneendtime; + ListTime.Add(temptime); + } + else + { + temptime.starttime = twostarttime; + temptime.endtime = twoendtime; + twostarttime = twostarttime.AddDays(1); + twoendtime = twoendtime.AddDays(1); + ListTime.Add(temptime); + } + } + + //list在处理 第一行和最后一行 + //ListTime[0].starttime = startTime; + ListTime[ListTime.Count-1].endtime = endTime; + + return ListTime; + } + public class TimeMDL + { + public DateTime starttime { get; set; } + public DateTime endtime { get; set; } + } + public class SecondHead + { + public string HSYS { get; set;} + public List Head { get; set;} + public List Title { get; set; } + } + } +} diff --git a/HT.Cloud.Service/ReportManage/MainPageService.cs b/HT.Cloud.Service/ReportManage/MainPageService.cs index a3b5944..65eb481 100644 --- a/HT.Cloud.Service/ReportManage/MainPageService.cs +++ b/HT.Cloud.Service/ReportManage/MainPageService.cs @@ -116,8 +116,15 @@ namespace HT.Cloud.Service.ReportManage var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); - - chartDataFormat.Value = valueJson[item.TagName].ToString(); + 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; @@ -170,8 +177,14 @@ namespace HT.Cloud.Service.ReportManage var responseStr = RemoteHttpRequest.HttpGet(remoteRtDataServer); JObject valueJson = JObject.Parse(responseStr); - - chartDataFormat.Value = valueJson[item.TagName].ToString(); + 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; diff --git a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml index a88933d..78e81bf 100644 --- a/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml +++ b/HT.Cloud.Web/Areas/PenMeiChartsManage/Views/PenMeiHistoryCharts/Index.cshtml @@ -585,7 +585,7 @@ //第一条Y轴是否显示轴线 const oneAxisLineShow = true; //其他Y轴是否显示轴线 - const otherAxisLineShow = true; + const otherAxisLineShow = false; showchart = async function () { //(document.getElementById('echarts-records'), 'walden'); diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryEleTimeZoneController.cs b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryEleTimeZoneController.cs new file mode 100644 index 0000000..590d15a --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryEleTimeZoneController.cs @@ -0,0 +1,185 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using HT.Cloud.Service.ChartsManage; +using HT.Cloud.Service.ReportManage; +using Newtonsoft.Json; +using System.Diagnostics.Metrics; +using System.Text; +using static System.Net.Mime.MediaTypeNames; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Http; +using Microsoft.CodeAnalysis; +using HT.Cloud.Code; +using SqlSugar; + +namespace HT.Cloud.Web.Areas.PenMeiReportManage.Controllers +{ + [Area("PenMeiReportManage")] + [HandlerLogin(needLogin: false)] + [HandlerAuthorize(needAuth: false)] + public class PenMeiHistoryEleTimeZoneController : BaseController + { + public HistoryEleTimeZoneService _historyEleTimeZoneService { get; set; } + /// + /// 绑定数据仓库的数据库ID + /// + private string systemDescription = GlobalContext.SystemConfig.SystemDescription; + [HttpGet] + public async Task GetDriverGroupList() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + + var data = await _historyEleTimeZoneService.GetDriverGroupList(); + return Content(data); + } + + [HttpPost] + public async Task GetReport(Reportparam reportparam) + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var StartTime = Gettime( reportparam.StartTime.ToString()); + var EndTime = Gettime( reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var data = await _historyEleTimeZoneService.GetReportFileName(StartTime, EndTime, Interval); + return Content(data); + } + [HttpPost] + public async Task GetReportNew(Reportparam reportparam) + { + var t1 = DateTime.Now; + //var ob = JsonConvert.SerializeObject(reportparam); + var t2 = DateTime.Now; + Console.WriteLine($"第1次序列化,花费时间:{(t2 - t1).TotalMilliseconds}"); + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var StartTime = Gettime(reportparam.StartTime.ToString()); + var EndTime = Gettime(reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var t5 = DateTime.Now; + var data = await _historyEleTimeZoneService.GetReportNew(StartTime, EndTime, Interval); + var t6 = DateTime.Now; + Console.WriteLine($"调用service,花费时间:{(t6 - t5).TotalMilliseconds}"); + var t3 = DateTime.Now; + var con = JsonConvert.SerializeObject(data); + var t4 = DateTime.Now; + Console.WriteLine($"第2次序列化,花费时间:{(t4 - t3).TotalMilliseconds}"); + return Content(con, "text/html; charset=utf-8"); + //return Content(con); + } + [HttpPost] + public async Task GetReportNewInitPara(Reportparam reportparam) + { + ////sql获取count + //var StartTime = Gettime(reportparam.StartTime.ToString()); + //var EndTime = Gettime(reportparam.EndTime.ToString()); + //var Interval = int.Parse(reportparam.Interval); + //var data = await _historyReportService.GetReportNewInitPara(StartTime, EndTime, Interval); + //var con = JsonConvert.SerializeObject(data); + //return Content(con); + + //代码理论count + var StartTime = long.Parse(reportparam.StartTime.ToString()); + var EndTime = long.Parse(reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var data = await _historyEleTimeZoneService.GetReportNewInitParaInCode(StartTime, EndTime, Interval); + var con = JsonConvert.SerializeObject(data); + return Content(con); + } + [IgnoreAntiforgeryToken] + public async Task GetReportNewPage(string page, string limit,string StartTime,string EndTime, string Interval) + { + //string page = Request.Query["page"].ToString(); + //string limit = Request.Query["limit"].ToString(); + //var page = Gettime(asyncparam.page.ToString()); + //var limit = Gettime(asyncparam.limit.ToString()); + var startTime = Gettime(StartTime); + var endTime = Gettime(EndTime); + var data = await _historyEleTimeZoneService.GetReportNewAsync(page, limit, startTime, endTime, Interval, systemDescription); + //var con = JsonConvert.SerializeObject(data); + return Content(data); + } + [HttpGet] + public async Task GetReportFirstHead() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var data = await _historyEleTimeZoneService.GetReportFirstHead(systemDescription); + return Content(data); + } + [HttpGet] + public async Task GetReportSecondHead() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var data = await _historyEleTimeZoneService.GetReportSecondHead(systemDescription); + return Content(data); + } + [HttpPost] + public async Task GetReportDownLoad(DownLoadparam downLoadparam) + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + DateTime StartTime = start.AddMilliseconds(downLoadparam.StartTime).ToLocalTime(); + DateTime EndTime = start.AddMilliseconds(downLoadparam.EndTime).ToLocalTime(); + int Interval = int.Parse(downLoadparam.Interval.ToString()); + var data = await _historyEleTimeZoneService.GetReportDownLoad(StartTime, EndTime, Interval, systemDescription); + return Content(data); + } + public string Gettime(string longtime) + { + long jsTimeStamp =long.Parse( longtime); + System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 + DateTime dt = startTime.AddMilliseconds(jsTimeStamp); + return (dt.ToString("yyyy/MM/dd HH:mm:ss")); + } + + + + + public async Task GetTimeZoneData(Reportparam reportparam) + { + ////sql获取count + //var StartTime = Gettime(reportparam.StartTime.ToString()); + //var EndTime = Gettime(reportparam.EndTime.ToString()); + //var Interval = int.Parse(reportparam.Interval); + //var data = await _historyReportService.GetReportNewInitPara(StartTime, EndTime, Interval); + //var con = JsonConvert.SerializeObject(data); + //return Content(con); + + var dtStart = DateTime.Parse(reportparam.StartTime.ToString()); + var dtEnd = DateTime.Parse(reportparam.EndTime.ToString()); + + + //代码理论count + var StartTime = ((DateTimeOffset)dtStart).ToUnixTimeSeconds(); //long.Parse(reportparam.StartTime.ToString()); + var EndTime = ((DateTimeOffset)dtEnd).ToUnixTimeSeconds(); //long.Parse(reportparam.EndTime.ToString()); + var data = await _historyEleTimeZoneService.GetTimeZoneData(StartTime, EndTime,systemDescription); + var con = JsonConvert.SerializeObject(data); + return Content(con); + } + + + + public class Reportparam + { + public string StartTime { get; set; } + public string EndTime { get; set; } + public string Interval { get; set; } + } + public class DownLoadparam + { + public long StartTime { get; set; } + public long EndTime { get; set; } + public string Interval { get; set; } + } + public class Asyncparam + { + public string page { get; set; } + public string limit { get; set; } + } + } +} diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryOutPutController.cs b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryOutPutController.cs new file mode 100644 index 0000000..72bc81c --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Controllers/PenMeiHistoryOutPutController.cs @@ -0,0 +1,157 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using HT.Cloud.Service.ChartsManage; +using HT.Cloud.Service.ReportManage; +using Newtonsoft.Json; +using System.Diagnostics.Metrics; +using System.Text; +using static System.Net.Mime.MediaTypeNames; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Http; +using Microsoft.CodeAnalysis; +using HT.Cloud.Code; + +namespace HT.Cloud.Web.Areas.PenMeiReportManage.Controllers +{ + [Area("PenMeiReportManage")] + [HandlerLogin(needLogin: false)] + [HandlerAuthorize(needAuth: false)] + public class PenMeiHistoryOutPutController : BaseController + { + public HistoryOutPutService _historyOutPutService { get; set; } + /// + /// 绑定数据仓库的数据库ID + /// + private string systemDescription = GlobalContext.SystemConfig.SystemDescription; + [HttpGet] + public async Task GetDriverGroupList() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + + var data = await _historyOutPutService.GetDriverGroupList(); + return Content(data); + } + + [HttpPost] + public async Task GetReport(Reportparam reportparam) + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var StartTime = Gettime( reportparam.StartTime.ToString()); + var EndTime = Gettime( reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var data = await _historyOutPutService.GetReportFileName(StartTime, EndTime, Interval); + return Content(data); + } + [HttpPost] + public async Task GetReportNew(Reportparam reportparam) + { + var t1 = DateTime.Now; + //var ob = JsonConvert.SerializeObject(reportparam); + var t2 = DateTime.Now; + Console.WriteLine($"第1次序列化,花费时间:{(t2 - t1).TotalMilliseconds}"); + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var StartTime = Gettime(reportparam.StartTime.ToString()); + var EndTime = Gettime(reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var t5 = DateTime.Now; + var data = await _historyOutPutService.GetReportNew(StartTime, EndTime, Interval); + var t6 = DateTime.Now; + Console.WriteLine($"调用service,花费时间:{(t6 - t5).TotalMilliseconds}"); + var t3 = DateTime.Now; + var con = JsonConvert.SerializeObject(data); + var t4 = DateTime.Now; + Console.WriteLine($"第2次序列化,花费时间:{(t4 - t3).TotalMilliseconds}"); + return Content(con, "text/html; charset=utf-8"); + //return Content(con); + } + [HttpPost] + public async Task GetReportNewInitPara(Reportparam reportparam) + { + ////sql获取count + //var StartTime = Gettime(reportparam.StartTime.ToString()); + //var EndTime = Gettime(reportparam.EndTime.ToString()); + //var Interval = int.Parse(reportparam.Interval); + //var data = await _historyReportService.GetReportNewInitPara(StartTime, EndTime, Interval); + //var con = JsonConvert.SerializeObject(data); + //return Content(con); + + //代码理论count + var StartTime = long.Parse(reportparam.StartTime.ToString()); + var EndTime = long.Parse(reportparam.EndTime.ToString()); + var Interval = int.Parse(reportparam.Interval); + var data = await _historyOutPutService.GetReportNewInitParaInCode(StartTime, EndTime, Interval); + var con = JsonConvert.SerializeObject(data); + return Content(con); + } + [IgnoreAntiforgeryToken] + public async Task GetReportNewPage(string page, string limit,string StartTime,string EndTime, string Interval) + { + //string page = Request.Query["page"].ToString(); + //string limit = Request.Query["limit"].ToString(); + //var page = Gettime(asyncparam.page.ToString()); + //var limit = Gettime(asyncparam.limit.ToString()); + var startTime = Gettime(StartTime); + var endTime = Gettime(EndTime); + var data = await _historyOutPutService.GetReportNewAsync(page, limit, startTime, endTime, Interval, systemDescription); + //var con = JsonConvert.SerializeObject(data); + return Content(data); + } + [HttpGet] + public async Task GetReportFirstHead() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var data = await _historyOutPutService.GetReportFirstHead(systemDescription); + return Content(data); + } + [HttpGet] + public async Task GetReportSecondHead() + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + var data = await _historyOutPutService.GetReportSecondHead(systemDescription); + return Content(data); + } + [HttpPost] + public async Task GetReportDownLoad(DownLoadparam downLoadparam) + { + //var StartTime = reportparam.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); + //var EndTime = reportparam.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); + DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + DateTime StartTime = start.AddMilliseconds(downLoadparam.StartTime).ToLocalTime(); + DateTime EndTime = start.AddMilliseconds(downLoadparam.EndTime).ToLocalTime(); + int Interval = int.Parse(downLoadparam.Interval.ToString()); + var data = await _historyOutPutService.GetReportDownLoad(StartTime, EndTime, Interval, systemDescription); + return Content(data); + } + public string Gettime(string longtime) + { + long jsTimeStamp =long.Parse( longtime); + System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 + DateTime dt = startTime.AddMilliseconds(jsTimeStamp); + return (dt.ToString("yyyy/MM/dd HH:mm:ss")); + } + + public class Reportparam + { + public string StartTime { get; set; } + public string EndTime { get; set; } + public string Interval { get; set; } + } + public class DownLoadparam + { + public long StartTime { get; set; } + public long EndTime { get; set; } + public string Interval { get; set; } + } + public class Asyncparam + { + public string page { get; set; } + public string limit { get; set; } + } + } +} diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index.cshtml new file mode 100644 index 0000000..d0e8f30 --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index.cshtml @@ -0,0 +1,965 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + + + + @* 6/12 *@ + + + + + + + + @* *@ + @* 6/12 *@ + + + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index_blue.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index_blue.cshtml new file mode 100644 index 0000000..aca319b --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryEleTimeZone/Index_blue.cshtml @@ -0,0 +1,1580 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index.cshtml new file mode 100644 index 0000000..b85d2eb --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index.cshtml @@ -0,0 +1,1494 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + + + + @* 6/12 *@ + + + + + + + + @* *@ + @* 6/12 *@ + + + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index_blue.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index_blue.cshtml new file mode 100644 index 0000000..aca319b --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut - 复制/Index_blue.cshtml @@ -0,0 +1,1580 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index.cshtml new file mode 100644 index 0000000..a275def --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index.cshtml @@ -0,0 +1,1717 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + + + + @* 6/12 *@ + + + + + + + + + + @* *@ + @* 6/12 *@ + + + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index_blue.cshtml b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index_blue.cshtml new file mode 100644 index 0000000..aca319b --- /dev/null +++ b/HT.Cloud.Web/Areas/PenMeiReportManage/Views/PenMeiHistoryOutPut/Index_blue.cshtml @@ -0,0 +1,1580 @@ +@{ + ViewBag.Title = "Index"; + Layout = "~/Views/Shared/_Index.cshtml"; +} + + + + + + + + + 表单设计器代码 + + + + + + + + + + + + + + + @* + + + 选择系统: + + + + + + + + *@ + + + + 开始时间: + + + + + + + + + + 结束时间: + + + + + + + + + + 快捷节点: + + + + + + 快速选择周期 + + + 今日 + + + 昨日 + + + 本周 + + + 上周 + + + 本月 + + + 上月 + + + + + + + + + + 时间间隔: + + + + + 1秒钟 + + + 10秒钟 + + + 30秒钟 + + + 1分钟 + + + 5分钟 + + + 10分钟 + + + 30分钟 + + + 1小时 + + + + + + + + + + + + 确定 + + + + + + + + + + + + + 下载 + + + + + + + + @**@ + @* + + *@ + + + @**@ + + @**@ + +@* + *@ + + + + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Views/Home/Default.cshtml b/HT.Cloud.Web/Views/Home/Default.cshtml index 5ff2e01..2c91caa 100644 --- a/HT.Cloud.Web/Views/Home/Default.cshtml +++ b/HT.Cloud.Web/Views/Home/Default.cshtml @@ -634,6 +634,33 @@ legend: { data: legendArr }, + toolbox: { + feature: { + myTool1: { + show: true, + title: '显示数据', + icon: 'path d="M698.71 301.02c-60.96-46.64-122.59-69.073-186.71-69.073S386.25 254.38 325.29 301.02c-60.699 46.44-120.173 116.59-177.696 210.747 57.534 94.323 117.022 164.595 177.732 211.115 60.956 46.707 122.573 69.17 186.674 69.17 64.1 0 125.718-22.463 186.674-69.17 60.71-46.52 120.198-116.792 177.732-211.115-57.523-94.157-116.997-164.307-177.696-210.747zM512 864c-161.102 0-307.306-112.03-438.613-336.088a31.959 31.959 0 0 1 0.01-32.338C204.702 271.858 350.903 160 512 160c161.097 0 307.298 111.858 438.603 335.574a31.959 31.959 0 0 1 0.01 32.338C819.306 751.971 673.102 864 512 864z m0-128c-123.712 0-224-100.288-224-224s100.288-224 224-224 224 100.288 224 224-100.288 224-224 224z"', + onclick: function (charts) { + // var myChart = echarts.init(document.getElementById('echarts-records')); + var option = charts.option; + for (var i = 0; i < option.series.length; i++) { + option.series[i].label.show = true; + } + } + }, + myTool2: { + show: true, + title: '隐藏数据', + icon: 'path d="M359.854 561.713l-48.99 48.991C296.222 580.926 288 547.424 288 512c0-123.712 100.288-224 224-224 35.423 0 68.926 8.223 98.704 22.863l-48.99 48.991C545.864 354.681 529.154 352 512 352c-88.366 0-160 71.634-160 160 0 17.155 2.68 33.865 7.854 49.713z m303.99-100.342l48.89-48.89C727.626 442.46 736 476.253 736 512c0 123.712-100.288 224-224 224-35.747 0-69.538-8.374-99.52-23.266l48.89-48.89C477.49 669.214 494.515 672 512 672c88.366 0 160-71.634 160-160 0-17.486-2.785-34.51-8.156-50.63z m-402.7 201.719L210.222 714c-46.578-49.479-91.533-111.148-134.865-185.008a31.977 31.977 0 0 1 0-32.363C206.63 272.876 352.794 161 513.851 161c66.582 0 130.619 19.12 192.11 57.361l-52.539 52.529c-45.606-25.502-91.813-37.929-139.571-37.929-64.104 0-125.719 22.438-186.663 69.085-60.68 46.446-120.136 116.6-177.64 210.764 36.426 59.648 73.68 109.734 111.595 150.28z m503.674-301.18l50.92-50.91c46.578 49.479 91.533 111.148 134.866 185.008a31.977 31.977 0 0 1 0 32.363C819.332 752.124 673.168 864 512.11 864c-66.582 0-130.62-19.12-192.111-57.361l52.54-52.529c45.606 25.502 91.813 37.929 139.57 37.929 64.105 0 125.72-22.438 186.664-69.085 60.68-46.446 120.136-116.6 177.64-210.764-36.426-59.648-73.68-109.734-111.596-150.28z"', + onclick: function (charts) { + var option = charts.option; + for (var i = 0; i < option.series.length; i++) { + option.series[i].label.show = false; + } + } + } + } + }, //legend:legendArr, xAxis: { type: 'category', diff --git a/HT.Cloud.Web/WaterCloud.Web.xml b/HT.Cloud.Web/WaterCloud.Web.xml index def84f9..a8947fa 100644 --- a/HT.Cloud.Web/WaterCloud.Web.xml +++ b/HT.Cloud.Web/WaterCloud.Web.xml @@ -228,6 +228,16 @@ 绑定数据仓库的数据库ID + + + 绑定数据仓库的数据库ID + + + + + 绑定数据仓库的数据库ID + + 绑定数据仓库的数据库ID diff --git a/HT.Cloud.Web/wwwroot/images/不可见.png b/HT.Cloud.Web/wwwroot/images/不可见.png new file mode 100644 index 0000000..fef280d Binary files /dev/null and b/HT.Cloud.Web/wwwroot/images/不可见.png differ diff --git a/HT.Cloud.Web/wwwroot/images/查看.png b/HT.Cloud.Web/wwwroot/images/查看.png new file mode 100644 index 0000000..f4ebb58 Binary files /dev/null and b/HT.Cloud.Web/wwwroot/images/查看.png differ