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 Quartz; namespace HT.Cloud.Web.Areas.ReportManage.Controllers { [Area("ReportManage")] public class HistoryReportController : BaseController { public HistoryReportService _historyReportService { get; set; } /// /// 绑定数据仓库的数据库ID /// private string groupDescription = GlobalContext.SystemConfig.GroupDescription; [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 _historyReportService.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 _historyReportService.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 _historyReportService.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 _historyReportService.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 systemName = "制粉系统"; var startTime = Gettime(StartTime); var endTime = Gettime(EndTime); var data = await _historyReportService.GetReportNewAsync(page, limit, startTime, endTime, Interval, systemName); //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 systemName = "制粉系统"; var data = await _historyReportService.GetReportFirstHead(systemName); 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 systemName = "制粉系统"; var data = await _historyReportService.GetReportSecondHead(systemName); 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 _historyReportService.GetReportDownLoad(StartTime, EndTime, Interval); 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; } } } }