diff --git a/HT.Cloud.Domain/Entity/DevicesManage/MetaGroupEntity.cs b/HT.Cloud.Domain/Entity/DevicesManage/MetaGroupEntity.cs index 992934b..0d08898 100644 --- a/HT.Cloud.Domain/Entity/DevicesManage/MetaGroupEntity.cs +++ b/HT.Cloud.Domain/Entity/DevicesManage/MetaGroupEntity.cs @@ -47,5 +47,15 @@ namespace HT.Cloud.Domain.DevicesManage /// [SugarColumn(ColumnName="IsConsecutive", ColumnDescription = "",ColumnDataType = "bit(1)")] public bool IsConsecutive { get; set; } + /// + /// + /// + [SugarColumn(ColumnName = "GroupDescription", ColumnDescription = "", ColumnDataType = "nvarchar(128)", IsNullable = true)] + public string GroupDescription { get; set; } + /// + /// Group类型 + /// + [SugarColumn(ColumnName = "GroupType", ColumnDescription = "", ColumnDataType = "int(10)", IsNullable = true)] + public int? GroupType { get; set; } } } diff --git a/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs b/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs index b82ff70..e5c9f43 100644 --- a/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs +++ b/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs @@ -92,5 +92,20 @@ namespace HT.Cloud.Domain.DevicesManage /// [SugarColumn(ColumnName="WriteAddress", ColumnDescription = "",ColumnDataType = "varchar(64)", IsNullable = true)] public string WriteAddress { get; set; } + /// + /// + /// + [SugarColumn(ColumnName = "SysType", ColumnDescription = "", ColumnDataType = "varchar(32)", IsNullable = true)] + public string SysType { get; set; } + /// + /// + /// + [SugarColumn(ColumnName = "SysAddress", ColumnDescription = "", ColumnDataType = "varchar(64)", IsNullable = true)] + public string SysAddress { get; set; } + /// + /// + /// + [SugarColumn(ColumnName = "IFloatPlaces", ColumnDescription = "", ColumnDataType = "tinyint(3)", IsNullable = true)] + public short IFloatPlaces { get; set; } } } diff --git a/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs b/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs index d22eae7..25f818f 100644 --- a/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs +++ b/HT.Cloud.Service/ChartsManage/HistoryChartsService.cs @@ -24,6 +24,12 @@ namespace HT.Cloud.Service.ChartsManage { } + public async Task GetDriverGroupList() + { + var list_group = _context.Queryable().ToList(); + return list_group.ToJson(); + } + public async Task GetAllSubsystemTag() { List subsystems = new List(); diff --git a/HT.Cloud.Service/ChartsManage/RtchartsService.cs b/HT.Cloud.Service/ChartsManage/RtchartsService.cs index 89d421b..5991373 100644 --- a/HT.Cloud.Service/ChartsManage/RtchartsService.cs +++ b/HT.Cloud.Service/ChartsManage/RtchartsService.cs @@ -22,8 +22,12 @@ namespace HT.Cloud.Service.ChartsManage public RtchartsService(ISqlSugarClient context) : base(context) { } - - public async Task GetAllSubsystemTag() + public async Task GetDriverGroupList() + { + var list_group = _context.Queryable().ToList(); + return list_group.ToJson(); + } + public async Task GetAllSubsystemTag() { List subsystems = new List(); var grouped = _context.Queryable().ToList(); diff --git a/HT.Cloud.Service/DevicesManage/MetaTagService.cs b/HT.Cloud.Service/DevicesManage/MetaTagService.cs index 296672c..6e59419 100644 --- a/HT.Cloud.Service/DevicesManage/MetaTagService.cs +++ b/HT.Cloud.Service/DevicesManage/MetaTagService.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Text.RegularExpressions; using System.Threading.Tasks; using HT.Cloud.Code; using HT.Cloud.Domain.DevicesManage; @@ -150,6 +151,55 @@ namespace HT.Cloud.Service.DevicesManage return tree_MetaTagRedata.ToJson(); } + public async Task ImportExcelToTableData(List metaTags) + { + var reList = new List(); + + var listMetaTag = metaTags; + var treeListMetaTag = new List(); + foreach (var item in listMetaTag) + { + + var tree_MetaTag = PCAutoCopy(item); + treeListMetaTag.Add(tree_MetaTag); + } + + + var listArray = treeListMetaTag.GroupBy(x => x.Subsystem).ToList(); + + int gi = 1; + foreach (var item in listArray) + { + var f_MetaTagEntity = new Tree_MetaTagEntity + { + TreeId = gi, + F_TreeId = 0, + + Address = item.First().Address, + Subsystem = item.First().Subsystem, + TagID = gi, + }; + reList.Add(f_MetaTagEntity); + foreach (var entity in item) + { + entity.F_TreeId = gi; + entity.TreeId = entity.TagID; + entity.Address = ""; + reList.Add(entity); + } + gi++; + } + + var tree_MetaTagRedata = new Tree_MetaTagRedata + { + code = 0, + msg = "", + count = reList.Count, + data = reList + }; + + return tree_MetaTagRedata.ToJson(); + } public class MetaTagRedata { public int code { get;set; } diff --git a/HT.Cloud.Service/ReportManage/HistoryReportService.cs b/HT.Cloud.Service/ReportManage/HistoryReportService.cs index afc03ed..8d8cb11 100644 --- a/HT.Cloud.Service/ReportManage/HistoryReportService.cs +++ b/HT.Cloud.Service/ReportManage/HistoryReportService.cs @@ -15,15 +15,28 @@ 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; namespace HT.Cloud.Service.ReportManage { public class HistoryReportService : BaseService, IDenpendency { + //private string Startdt = ""; + //private string Enddt = ""; + //private int Timeinterval = 0; public HistoryReportService(ISqlSugarClient context) : base(context) { } - + + public async Task GetDriverGroupList() + { + var list_group = _context.Queryable().ToList(); + return list_group.ToJson(); + } + public async Task GetReportFileName(string startdt, string enddt, int timeinterval) { //SqlParameter[] sqlParameters = @@ -82,7 +95,77 @@ namespace HT.Cloud.Service.ReportManage //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.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 GroupName) + { + //SugarParameter[] sqlParameters ={ + // new SugarParameter("@startdt",Startdt), + // new SugarParameter("@enddt",Enddt), + // new SugarParameter("@timeinterval",Timeinterval) + //}; + //var dt_Counts = _context.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.Ado.UseStoredProcedure().GetDataTable("Query_Report_YL_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 ={ @@ -128,6 +211,118 @@ namespace HT.Cloud.Service.ReportManage return relist.ToJson(); //return Report.ToJson(); } + + public async Task GetReportDownLoad(DateTime startTime, DateTime endTime ,int interval) + { + + + 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 sheets = new Dictionary(); + + try + { + for (int i = 0; i < listSub.Count; i++) + { + var item = listSub[i]; + var fstartTime = item.starttime; + var fendTime = item.endtime; + 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("@startdt", fstartTime.ToString("yyyy/MM/dd HH:mm:ss"))); + command.Parameters.Add(new SqlParameter("@enddt", fendTime.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); + + //sqlConnection.Close(); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + MiniExcel.SaveAs(path, sheets); + //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;} diff --git a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs index f7f7821..8192239 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs +++ b/HT.Cloud.Web/Areas/ChartsManage/Controllers/HistoryChartsController.cs @@ -23,6 +23,16 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers { public HistoryChartsService _historyChartsService { get;set;} + [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 _historyChartsService.GetDriverGroupList(); + return Content(data); + } + [HttpGet] public async Task GetAllSubsystemTag() { diff --git a/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs b/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs index 006266d..23b65f6 100644 --- a/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs +++ b/HT.Cloud.Web/Areas/ChartsManage/Controllers/RtchartsController.cs @@ -21,7 +21,14 @@ namespace HT.Cloud.Web.Areas.ChartsManage.Controllers { public RtchartsService _rtchartsService { get;set;} - [HttpGet] + [HttpGet] + public async Task GetDriverGroupList() + { + var data = await _rtchartsService.GetDriverGroupList(); + return Content(data); + } + + [HttpGet] public async Task GetAllSubsystemTag() { var data = await _rtchartsService.GetAllSubsystemTag(); diff --git a/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs b/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs index 2466fa3..fe0eba0 100644 --- a/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs +++ b/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs @@ -9,6 +9,9 @@ using HT.Cloud.Service; using Microsoft.AspNetCore.Authorization; using HT.Cloud.Service.DevicesManage; using System.Text.RegularExpressions; +using HT.Cloud.Domain.DevicesManage; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; namespace HT.Cloud.Web.Areas.DevicesManage.Controllers { @@ -73,6 +76,57 @@ namespace HT.Cloud.Web.Areas.DevicesManage.Controllers var data = await _metaTagService.GetGroupVarTreeTable(groupIId); return Content(data); } + [HttpPost] + public async Task ImportExcelToTableData(string[] groupId) + { + //var data = await _metaTagService.ImportExcelToTableData(metaTags); + var list = JsonConvert.DeserializeObject>(groupId[0].Remove(0, 17).Remove(groupId[0].Length - 17 - 2, 2)); + + + list.Remove(list[0]); + List metaTags = new List(); + foreach (var item in list) + { + try + { + MetaTagEntity metaTag = new MetaTagEntity(); + metaTag.TagID = int.Parse(item.TagID); + metaTag.TagName = item.TagName; + metaTag.DataType = short.Parse(item.TagID); + metaTag.DataSize = int.Parse(item.DataSize); + metaTag.Address = item.Address; + metaTag.GroupID = int.Parse(item.GroupID); + metaTag.IsActive = true; + metaTag.Archive = true; + metaTag.DefaultValue = item.DefaultValue; + metaTag.Description = item.Description; + metaTag.Maximum = float.Parse(item.Maximum); + metaTag.Minimum = float.Parse(item.Minimum); + metaTag.Cycle = int.Parse(item.Cycle); + metaTag.Subsystem = item.Subsystem; + metaTag.Units = item.Units; + metaTag.WriteAddress = item.WriteAddress; + metaTag.SysType = item.SysType; + metaTag.SysAddress = item.SysAddress; + if (item.IFloatPlaces == "") + { + metaTag.IFloatPlaces = 0; + } + else + { + metaTag.IFloatPlaces = short.Parse(item.IFloatPlaces); + } + metaTags.Add(metaTag); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + + } + var data = await _metaTagService.ImportExcelToTableData(metaTags); + return Content(data); + } [HttpPost] public async Task SaveArgument(string driverId, string name, string value) { @@ -80,5 +134,32 @@ namespace HT.Cloud.Web.Areas.DevicesManage.Controllers return Content(data); } - } + public class Meta_Tag + { + public string TagID { get; set; } + + public string TagName { get; set; } + + public string DataType { get; set; } + + public string DataSize { get; set; } + public string Address { get; set; } + public string GroupID { get; set; } + public string IsActive { get; set; } + public string Archive { get; set; } + public string DefaultValue { get; set; } + public string Description { get; set; } + public string Maximum { get; set; } + public string Minimum { get; set; } + public string Cycle { get; set; } + public string Subsystem { get; set; } + public string Units { get; set; } + public string WriteAddress { get; set; } + public string SysType { get; set; } + public string SysAddress { get; set; } + public string IFloatPlaces { get; set; } + } + + + } } diff --git a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml index 8857620..4bf2528 100644 --- a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml +++ b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml @@ -8,9 +8,9 @@ padding-right: 0px; } + @* - + *@ + + + + + + + + + @*动画特效*@ +@*
*@ +
+ +
+ + + + \ No newline at end of file diff --git a/HT.Cloud.Web/Views/Shared/_Index1.cshtml b/HT.Cloud.Web/Views/Shared/_Index1.cshtml new file mode 100644 index 0000000..49a5d11 --- /dev/null +++ b/HT.Cloud.Web/Views/Shared/_Index1.cshtml @@ -0,0 +1,28 @@ + + + + + @ViewBag.Title + + + + + + + + + + + + + + + + + + + + @RenderBody() + @Html.AntiForgeryToken() + + diff --git a/HTCloud_SourceCode_0.9.9.rar b/HTCloud_SourceCode_0.9.9.rar deleted file mode 100644 index 33fa769..0000000 Binary files a/HTCloud_SourceCode_0.9.9.rar and /dev/null differ