Files
HTCloud/HT.Cloud.Web/Areas/ReportManage/Controllers/HistoryReportController.cs

160 lines
7.2 KiB
C#

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; }
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string groupDescription = GlobalContext.SystemConfig.GroupDescription;
[HttpGet]
public async Task<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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<ActionResult> 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; }
}
}
}