using System; using System.Linq; using System.Threading.Tasks; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using HT.Cloud.Code; using HT.Cloud.Domain.ChartsManage; using HT.Cloud.Service; using Microsoft.AspNetCore.Authorization; using HT.Cloud.Service.ChartsManage; using HT.Cloud.Service.ReportManage; using Serenity.Services; using HT.Cloud.Domain.DevicesManage; using SqlSugar; namespace HT.Cloud.Web.Areas.ReportManage.Controllers { /// /// 创 建:cdl /// 日 期:2023-02-23 11:10 /// 描 述:历史趋势控制器类 /// [Area("PenMeiReportManage")] [HandlerLogin(needLogin: false)] [HandlerAuthorize(needAuth: false)] public class PenMeiHistoryAlarmNewNewController : BaseController { public HistoryAlarmService _historyAlarmService { get;set;} /// /// 绑定数据仓库的数据库ID /// private string systemDescription = GlobalContext.SystemConfig.SystemDescription; [HttpGet] public async Task GetDriverGroupList() { var data = await _historyAlarmService.GetDriverGroupList(); return Content(data); } [HttpGet] public async Task GetAllSubsystemTag() { var data = await _historyAlarmService.GetAllSubsystemTag(systemDescription); return Content(data); } [HttpPost] public async Task GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName) { var data = await _historyAlarmService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmRecord(Alarm_Params charts_Params) { short TagID = short.Parse(charts_Params.TagID); var StartTime = Gettime(charts_Params.StartTime); var EndTime = Gettime(charts_Params.EndTime); var data = await _historyAlarmService.GetAlarmRecord(TagID, StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmRecordQuick(Alarm_Quick_Params alarm_Quick_Params) { var Alarmtype = alarm_Quick_Params.Alarmtype; var StartTime = Gettime(alarm_Quick_Params.StartTime); var EndTime = Gettime(alarm_Quick_Params.EndTime); var data = await _historyAlarmService.GetAlarmRecordQuick(Alarmtype, StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmRecordQuickDesc(Alarm_Quick_Desc_Params alarm_Quick_Desc_Params) { var hhour = alarm_Quick_Desc_Params.Hhour; var data = await _historyAlarmService.GetAlarmRecordQuickDesc(hhour, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmHistory(Alarm_History_Params alarm_History_Params) { var StartTime = Gettime(alarm_History_Params.StartTime); var EndTime = Gettime(alarm_History_Params.EndTime); var data = await _historyAlarmService.GetAlarmHistory(StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmSubSystem(SubSystem_Params subSystem_Params) { var AlarmName = subSystem_Params.AlarmName; var data = await _historyAlarmService.GetAlarmSubSystem(AlarmName,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 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")); } [HttpPost] public async Task GetAlarmACC(Alarm_ACC_Params alarm_ACC_Params) { var StartTime = Gettime(alarm_ACC_Params.StartTime); var EndTime = Gettime(alarm_ACC_Params.EndTime); var data = await _historyAlarmService.GetAlarm_ACC(StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmHistogram(Alarm_Histogram_Params alarm_Histogram_Params) { var StartTime = Gettime_(alarm_Histogram_Params.StartTime); var EndTime = Gettime_(alarm_Histogram_Params.EndTime); var data = await _historyAlarmService.GetAlarm_Histogram(StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmPie(Alarm_Pie_Params alarm_Pie_Params) { var StartTime = Gettime(alarm_Pie_Params.StartTime); var EndTime = Gettime(alarm_Pie_Params.EndTime); var data = await _historyAlarmService.GetAlarm_Pie(StartTime, EndTime, systemDescription); return Content(data); } [HttpPost] public async Task GetAlarmRecordForTagName(Alarm_ParamsForTagName charts_Params) { string Description = charts_Params.Description; var StartTime = Gettime(charts_Params.StartTime); var EndTime = Gettime(charts_Params.EndTime); var data = await _historyAlarmService.GetAlarmRecordForTagName(Description, StartTime, EndTime, systemDescription); return Content(data); } public async Task GetAlarm_CS(Alarm_CS alarm_CS) { var StartTime = Gettime_(alarm_CS.StartTime); var EndTime = Gettime_(alarm_CS.EndTime); var data = await _historyAlarmService.GetAlarm_CS(StartTime, EndTime, systemDescription); return Content(data); } public async Task GetAlarm_Ztime(Alarm_Ztime alarm_Ztime) { var StartTime = Gettime_(alarm_Ztime.StartTime); var EndTime = Gettime_(alarm_Ztime.EndTime); var data = await _historyAlarmService.GetAlarm_Ztime(StartTime, EndTime, systemDescription); return Content(data); } /* * 一 * 1、重绘管理系统所有趋势曲线,曲线的数据点上不在绘制图形圆点。 * 2、实时趋势开放拖动和JS代码添加可向前加载数据集的动态方法。 * 二 * 1、后台服务在获取实时趋势初始化数据时进行向前的数据获取,为初始数据集添加一段历史数据。 * 2、参加公司组织的拍摄技术培训。 * 三 * 1、使用异步和函数回调来执行历史数据查询,在实时数据获取后进行时间戳对其,避免出现重复时间和漏掉时间。 * 2、报警分析柱图优化,单日柱状图从堆叠图修改为平铺柱状图。 * 四 * 1、柱状图添加工具条,可支持堆叠图、平铺图、折线图切换显示,并支持下载功能。 * 2、添加图表联动功能,增加柱状图和饼图的点击事件,在柱状区域或饼状区域内点击可跳转至该报警信息的详细查询。 * 五 * 1、 * 2、整理管理系统以前相关的设计、宣传素材,编写管理系统演示用ppt。 */ //public class SubAllTagReturn //{ // //x.TagID, x.Description, x.Units // public short TagID { get; set; } // public string Description { get; set; } // public string Units { get; set; } //} //public class SubsysytemNameList //{ // public string Lable { get; set; } // public string Value { get; set; } //} public class ChartSubsysytemName { public string SubsysytemName { get; set; } } //public class HDATETIMEVALUE //{ // public String HDATETIME { get; set; } // public decimal VALUE { get; set; } //} //public class ChartData //{ // public decimal value { get; set; } // public String name { get; set; } //} public class SubSystem_Params { public string AlarmName { get; set; } } public class Alarm_Params { public string TagID { get; set; } public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_ParamsForTagName { public string Description { get; set; } public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_Quick_Params { public string Alarmtype { get; set; } public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_Quick_Desc_Params { public string Hhour { get; set; } } public class Alarm_History_Params { public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_ACC_Params { public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_Histogram_Params { public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_Pie_Params { public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_CS { public string StartTime { get; set; } public string EndTime { get; set; } } public class Alarm_Ztime { public string StartTime { get; set; } public string EndTime { get; set; } } } }