暂存修改

This commit is contained in:
dell
2024-10-31 23:45:24 +08:00
parent 4a1f0c348b
commit b684f2501e
17 changed files with 10123 additions and 5 deletions

View File

@ -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; }
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string systemDescription = GlobalContext.SystemConfig.SystemDescription;
[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 _historyEleTimeZoneService.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 _historyEleTimeZoneService.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 _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<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 _historyEleTimeZoneService.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 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<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 data = await _historyEleTimeZoneService.GetReportFirstHead(systemDescription);
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 data = await _historyEleTimeZoneService.GetReportSecondHead(systemDescription);
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 _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<ActionResult> 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; }
}
}
}

View File

@ -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; }
/// <summary>
/// 绑定数据仓库的数据库ID
/// </summary>
private string systemDescription = GlobalContext.SystemConfig.SystemDescription;
[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 _historyOutPutService.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 _historyOutPutService.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 _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<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 _historyOutPutService.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 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<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 data = await _historyOutPutService.GetReportFirstHead(systemDescription);
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 data = await _historyOutPutService.GetReportSecondHead(systemDescription);
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 _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; }
}
}
}

View File

@ -0,0 +1,965 @@
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
<script>
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>
表单设计器代码
</title>
<style type="text/css">
.mytable .layui-table-cell {
height: auto;
overflow: visible;
text-overflow: inherit;
white-space: normal;
}
</style>
<style>
.layui-table-cell {
font-size:14px;
padding:0 5px;
height:auto;
overflow:visible;
text-overflow:inherit;
white-space:normal;
word-break: break-all;
}
</style>
<link rel="stylesheet" href="~/lib/layui/css/layui.css" />
<link rel="stylesheet" href="~/js/lay-module/formDesigner/formDesigner.css" />
<link rel="stylesheet" href="~/js/lay-module/cron/cron.css" />
<link rel="stylesheet" href="~/js/lay-module/labelGeneration/labelGeneration.css" />
<link rel="stylesheet" href="~/js/lay-module/formDesigner/formPreview.css" />
</head>
<body>
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
<div id="workerdiv" style="margin: 10px 5px;">
<form class="layui-form" style="height:30px;" id="formPreviewForm">
<div id="grid_2" class="layui-form-item layui-row grid active" data-id="grid_2"
data-tag="grid" data-index="0" style="height:100%">
@*<div class="layui-col-md2 widget-col-list column2" data-index="3" data-parentindex="0">
<div id="select_Group" class="layui-form-item active" data-id="select_4" data-tag="select"
data-index="0">
<label class="layui-form-label layui-form-required" style="width: 100px;">
选择系统:
</label>
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 110px">
<select name="selectGroup" lay-verify="required" id="selectGroup">
</select>
</div>
</div>
</div>*@
<div class="layui-col-md3 widget-col-list column0" data-index="0" data-parentindex="0">
<div id="ReStartTime" class="layui-form-item active" data-id="ReStartTime"
data-tag="date" data-index="0">
<label class="layui-form-label layui-form-required" style="width: 110px;">
开始时间:
</label>
<div class="layui-input-block" style="width:calc(100% - 150px);margin-left: 110px;">
<input id="dateReStartTime" name="ndateReStartTime" lay-verify="required"
class="layui-input icon-date widget-date " style="line-height: 40px;">
</div>
</div>
</div>
<div class="layui-col-md3 widget-col-list column1" data-index="1" data-parentindex="0">
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
data-tag="date" data-index="0">
<label class="layui-form-label layui-form-required" style="width: 110px;">
结束时间:
</label>
<div class="layui-input-block" style="width:calc(100% - 150px);margin-left: 110px;">
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
style="line-height: 40px;">
</div>
</div>
</div>
<div class="layui-col-md2 widget-col-list column2" data-index="2" data-parentindex="0">
<div id="select_10" class="layui-form-item active" data-id="select_4" data-tag="select"
data-index="0">
<label class="layui-form-label layui-form-required" style="width: 110px;">
快捷节点:
</label>
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 110px">
<select name="selectquick" lay-filter="quickTime" lay-verify="required" id="selectQuick">
<option value="def" selected="">
快速选择周期
</option>
<option value="toDay">
今日
</option>
<option value="yesterDay">
昨日
</option>
<option value="thisWeek">
本周
</option>
<option value="lastWeek">
上周
</option>
<option value="thisMonth">
本月
</option>
<option value="lastMonth">
上月
</option>
</select>
</div>
</div>
</div>
<div class="layui-col-md2 widget-col-list column2" data-index="3" data-parentindex="0">
<div id="select_4" class="layui-form-item active" data-id="select_4" data-tag="select"
data-index="0">
<label class="layui-form-label layui-form-required" style="width: 110px;">
时间间隔:
</label>
<div class="layui-input-block layui-form" lay-filter="select_4" style="margin-left: 110px">
<select name="selectint" lay-verify="required" id="selectIntervalt">
<option value="onesec">
1秒钟
</option>
<option value="tensec">
10秒钟
</option>
<option value="thirtysec">
30秒钟
</option>
<option value="onemin" selected="">
1分钟
</option>
<option value="fivemin">
5分钟
</option>
<option value="tenmin">
10分钟
</option>
<option value="thirtymin">
30分钟
</option>
<option value="onehour">
1小时
</option>
</select>
</div>
</div>
</div>
<div class="layui-col-md1 widget-col-list column3" data-index="4" data-parentindex="0">
<div id="bottom_5" class="layui-form-item active" data-id="bottom_5" data-tag="bottom"
data-index="0">
<div class="layui-input-block" style="margin-left: 0px;">
<button id="btn_search" type="button" class="layui-btn custom-zc" ; onclick="GetReportViewNew()">
<i class="layui-icon ">
</i>
确定
</button>
</div>
</div>
</div>
<div class="layui-col-md1 widget-col-list column4" data-index="5" data-parentindex="0">
<div id="btn_download" class="layui-form-item active" data-id="bottom_6" data-tag="bottom"
data-index="0">
<div class="layui-input-block" style="margin-left: 0px;">
<button id="bottom_6bottom" type="button" class="layui-btn custom-zc" ; onclick="exports()">
<i class="layui-icon ">
</i>
下载
</button>
</div>
</div>
</div>
</div>
</form>
@*<form class="layui-form" style="height:100%;width:100%;" id="tablepanel">*@
@*<div class="layui-panel" id="gridpanel" style="height:100%;width:100%;overflow:scroll;">
<div id="result" style="height:100%;width:100%;"></div>
</div>*@
<layui-container>
<div class="layui-row" style="height:100%">
<div class="layui-col-xs3">
<div id="result" style="height:100%;width:100%;overflow:scroll;">
</div>
@* <div class="grid-demo grid-demo-bg1">6/12</div> *@
</div>
<div class="layui-col-xs9" style="height:100%">
<form class="layui-form" style="height:calc(100vh - 55px);width:100%" id="tablepanel">
<div class="layui-panel" id="gridpanel" style="width:100%;height: 100%;margin-bottom: 10px; ">
<div id="chartdiv" class="echart" style="width: 100%; height: 100% "></div>
</div>
</form>
@* <div id="chartdiv" class="echart" style="height:100%;width:100%;"></div> *@
@* <div class="grid-demo">6/12</div> *@
</div>
</div>
</layui-container>
@*</form>*@
</div>
@*<script type="text/javascript" src="~/lib/layui/layui.js">
</script>*@
<script type="text/javascript" src="~/js/Sortable/Sortable.js">
</script>
@* <script type="text/javascript" src="~/js/lay-module/iceEditor/iceEditor.js">
</script>
<script type="text/javascript" src="~/js/config.js?v=100">
</script>*@
<script type="text/javascript" src="~/lib/xlsx/dist/xlsx.full.min.js">
</script>
<script type="text/javascript" src="~/lib/notify/notify_stand.js">
</script>
<script>
layui.use(["table", "layer", "laytpl", "element", "form", "slider", "laydate", "rate", "colorpicker", "carousel", "upload", "formField", "numberInput", "iconPicker", "cron", "labelGeneration"],
function () {
var $ = layui.jquery,
table = layui.table,
layer = layui.layer,
laytpl = layui.laytpl,
setter = layui.cache,
element = layui.element,
slider = layui.slider,
laydate = layui.laydate,
rate = layui.rate,
colorpicker = layui.colorpicker,
carousel = layui.carousel,
form = layui.form,
upload = layui.upload,
formField = layui.formField,
hint = layui.hint,
numberInput = layui.numberInput,
iconPicker = layui.iconPicker,
cron = layui.cron,
labelGeneration = layui.labelGeneration;
form.on('select(quickTime)', function (data) {
var selectValue = data.value;
function getFormatDate(date) {
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
month = (month < 10) ? '0' + month : month;
day = (day < 10) ? '0' + day : day;
hour = (hour < 10) ? '0' + hour : hour;
minutes = (minutes < 10) ? '0' + minutes : minutes;
seconds = (seconds < 10) ? '0' + seconds : seconds;
let currentDate = year + "-" + month + "-" + day
+ " " + hour + ":" + minutes + ":" + seconds;
return currentDate;
}
/**
* 获取今日零点时间戳
* returns {number}
*/
function todayStartTimestamp() {
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
return timestamp
}
/**
* 获取昨日开始、结束时间戳
* param num
* returns {number[昨日开始时间戳, 昨日结束时间戳]}
*/
function yesterdayTimestamp(num = 1) {
const MillisecondsADay = 24 * 60 * 60 * num
// 今日零点时间戳
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
// 昨日开始时间戳
const yesterdayStartTime = timestamp - MillisecondsADay
// 昨日结束时间戳
const yesterdayEndTime = timestamp - 1
return [yesterdayStartTime, yesterdayEndTime]
}
/**
* 本周开始时间戳
* returns {number}
*/
function weekStartTimestamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
// 今日零点时间戳
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
const weekDay = new Date().getDay() === 0 ? (7 - 1) : (new Date().getDay() - 1)
const weekTimeStamp = timestamp - MillisecondsADay * weekDay
return weekTimeStamp
}
/**
* 上周开始、结束时间戳
* returns {number[上周开始时间戳, 上周结束时间戳]}
*/
function lastWeekTimetamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
// 今日零点时间戳
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
const weekDay = new Date().getDay() === 0 ? (7 - 1) : (new Date().getDay() - 1)
// 本周开始时间戳
const weekTimeStamp = timestamp - MillisecondsADay * weekDay
// 上周开始时间戳
const lastWeekStart = weekTimeStamp - MillisecondsADay * 7
// 上周结束时间戳
const lastWeekEnd = weekTimeStamp - 1
return [lastWeekStart, lastWeekEnd]
}
/**
* 当月开始时间戳
* returns {number}
*/
function monthStartTimestamp() {
const date = new Date()
date.setDate(1)
date.setHours(0, 0, 0, 0)
const timeStamp = date.getTime() / 1000
return timeStamp
}
/**
* 获取上月开始、结束时间戳
* returns {number[上月开始时间戳,上月结束时间戳]}
*/
function lastMonthTimetamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
const date = new Date()
date.setDate(1)
date.setHours(0, 0, 0, 0)
// 当月开始时间戳
const timeStamp = date.getTime() / 1000
// 上个月的天数
const days = lastMonthDats()
// 上月开始时间戳
const lastMonthStart = timeStamp - (MillisecondsADay * days)
// 上月结束时间戳
const lastMonthEnd = timeStamp - 1
return [lastMonthStart, lastMonthEnd]
}
/**
* 上月天数
* returns {number}
*/
function lastMonthDats() {
const date = new Date()
const year = date.getFullYear()
// 上个月月份
let month = (date.getMonth() + 1) - 1 // 0-11 表示 1月-12月
// 0 表示12月
month = month || 12
// 30天的月份
const arr30 = [4, 6, 9, 11]
// 31天的月份
const arr31 = [1, 3, 5, 7, 8, 10, 12]
if (arr30.indexOf(month) !== -1) {
// 上个月是 30 天
return 30
} else if (arr31.indexOf(month) !== -1) {
// 上个月是 31 天
return 31
} else {
// 2月
if (isRunYear(year)) {
return 29
} else {
return 28
}
}
}
/**
* 是否为闰年
* param year
* returns {boolean}
*/
function isRunYear(year) {
// 条件:能被4整除并且不能被100整除或者被400整除的
let flag = false
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
flag = true
}
return flag
}
var laydate = layui.laydate;
if(selectValue == "toDay"){
var toDayStartDate = todayStartTimestamp();
var timef1 = getFormatDate(new Date(toDayStartDate * 1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef1,
});
});
var timef2 = getFormatDate(new Date(Date.now()));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else if(selectValue == "yesterDay"){
var yesterDayDate = yesterdayTimestamp(1);
var timef1 = getFormatDate(new Date(yesterDayDate[0] * 1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef1,
});
});
var timef2 = getFormatDate(new Date(yesterDayDate[1] * 1000));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else if (selectValue == "thisWeek"){
var weekStartDate = weekStartTimestamp();
var timef1 = getFormatDate(new Date(weekStartDate*1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef1,
});
});
var timef2 = getFormatDate(new Date(Date.now()));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else if(selectValue == "lastWeek"){
var lastWeekDate = lastWeekTimetamp();
var timef1 = getFormatDate(new Date(lastWeekDate[0] * 1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef1,
});
});
var timef2 = getFormatDate(new Date(lastWeekDate[1] * 1000));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else if(selectValue == "thisMonth"){
var monthStartDate = monthStartTimestamp();
var timef = getFormatDate(new Date(monthStartDate * 1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef,
});
});
var timef2 = getFormatDate(new Date(Date.now()));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else if(selectValue == "lastMonth"){
//lastMonthTimetamp()
var lastMonthDate = lastMonthTimetamp();
var timef1 = getFormatDate(new Date(lastMonthDate[0] * 1000));
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef1,
});
});
var timef2 = getFormatDate(new Date(lastMonthDate[1] * 1000));
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: timef2,
});
});
}else {}
});
});
wcLoading.close();
//$.ajax({
// url: "/PenMeiReportManage/PenMeiHistoryReport/GetDriverGroupList",
// type: "GET",
// success: function (redata) {
// debugger;
// var groupResult = JSON.parse(redata);
// debugger;
// $.each(groupResult,function(index,item){
// $('#selectGroup').append(new Option(item.GroupDescription,item.GroupName));
// });
// debugger;
// }
//});
//debugger;
var starttime = new Date(new Date().setHours(0, 0, 0, 0));
var starttimeString = starttime.getFullYear() + "-" + parseInt(starttime.getMonth() + 1) + "-" + starttime.getDate() + " " + (starttime.getHours()) + ":" + starttime.getMinutes() + ":" + starttime.getSeconds();
var endtime = new Date();
endtime.setDate(endtime.getDate())
var endtimeString = endtime.getFullYear() + "-" + parseInt(endtime.getMonth() + 1) + "-" + endtime.getDate() + " " + (endtime.getHours()) + ":" + endtime.getMinutes() + ":" + endtime.getSeconds();
function getFormatDateone(date) {
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
month = (month < 10) ? '0' + month : month;
day = (day < 10) ? '0' + day : day;
hour = (hour < 10) ? '0' + hour : hour;
minutes = (minutes < 10) ? '0' + minutes : minutes;
seconds = (seconds < 10) ? '0' + seconds : seconds;
let currentDate = year + "-" + month + "-" + day
+ " " + hour + ":" + minutes + ":" + seconds;
return currentDate;
}
layui.use('laydate', function () {
var laydate = layui.laydate;
lay('#dateReStartTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: getFormatDateone(starttime),
});
});
lay('#dateReEndTime').each(function () {
laydate.render({
elem: this,
trigger: 'click',
format: "yyyy-MM-dd HH:mm:ss",
//value: "2023-02-23 13:56:25",
value: getFormatDateone(endtime),
});
});
});
//layui.form.on('select(quickTime)',function(data1){
// var selectQuick = data1.value;
// debugger;
//});
var starttime = new Date(new Date().setHours(0, 0, 0, 0));
var starttimeString = starttime.getFullYear() + "-" + parseInt(starttime.getMonth() + 1) + "-" + starttime.getDate() + " " + (starttime.getHours()) + ":" + starttime.getMinutes() + ":" + starttime.getSeconds();
var endtime = new Date();
endtime.setDate(endtime.getDate())
var endtimeString = endtime.getFullYear() + "-" + parseInt(endtime.getMonth() + 1) + "-" + endtime.getDate() + " " + (endtime.getHours()) + ":" + endtime.getMinutes() + ":" + endtime.getSeconds();
debugger;
//
function getFormatDate(date) {
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
month = (month < 10) ? '0' + month : month;
day = (day < 10) ? '0' + day : day;
hour = (hour < 10) ? '0' + hour : hour;
minutes = (minutes < 10) ? '0' + minutes : minutes;
seconds = (seconds < 10) ? '0' + seconds : seconds;
let currentDate = year + "-" + month + "-" + day
+ " " + hour + ":" + minutes + ":" + seconds;
return currentDate;
}
//loadinghelper
var filepath = "";
// 文件普通操作
var handler = {};
//right_content
var rootpath = window.location.host;
//在页面未加载完毕之前显示的loading Html自定义内容
var _LoadingHtml = '<div id="loadingDiv" style="display: none; "><div id="over" style=" position: absolute;top: 0;left: 0; width: 100%;height: 100%; background-color: #f5f5f5;opacity:0.5;z-index: 1000;"></div><div id="layout" style="position: absolute;top: 40%; left: 40%;width: 20%; height: 20%; z-index: 1001;text-align:center;"><img src="//'+ rootpath +'/images/loading.gif" /></div></div>';
//呈现loading效果
document.getElementById("workerdiv").innerHTML += _LoadingHtml;
//移除loading效果
function completeLoading() {
document.getElementById("loadingDiv").style.display = "none";
}
//展示loading效果
function showLoading() {
document.getElementById("loadingDiv").style.display = "block";
}
function del() {
var delDiv = document.getElementById("_layer_"); delDiv.parentNode.removeChild(delDiv);
}
async function downloadreport() {
window.open(filepath);
}
var DownLaodPara;
async function GetReportViewNew() {
debugger;
showLoading();
var datetimestart = $('#dateReStartTime')[0].value;
var datetimeend = $('#dateReEndTime')[0].value;
//var groupname = $('[name="selectGroup"]')[0].value;
debugger;
//showLoading();
var datapa = {
"StartTime": Date.parse(new Date(datetimestart)), "EndTime": Date.parse(new Date(datetimeend))
};
await $.ajax({
url: "/PenMeiReportManage/PenMeiHistoryEleTimeZone/GetTimeZoneData",
type: "POST",
//dataType: "json",
//async: false,
data: datapa,
success: function (redata) {
result = redata;
debugger;
}
});
var table = layui.table;
// 已知数据渲染
var inst = table.render({
elem: '#result',
cols: [[ //标题栏
{ field: 'TIME', title: '时段', width: 180 },
{ field: 'GMJ', title: '给煤机给煤量', width: 100 },
{ field: 'OUT', title: '实际煤粉产量', width: 100 },
]],
data: [{ // 赋值已知数据
"TIME": "2024-10-16 0点",
"GMJ": "61.12",
"OUT": "51.34",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "63.15",
"OUT": "53.47",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "66.01",
"OUT": "55.45",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "66.28",
"OUT": "55.68",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "66.87",
"OUT": "57.85",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "64.58",
"OUT": "54.25",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "64.01",
"OUT": "53.76",
}, {
"TIME": "2024-10-16 0点",
"GMJ": "59.67",
"OUT": "50.12",
}],
//skin: 'line', // 表格风格
//even: true,
page: false, // 是否显示分页
limits: [5, 10, 15],
limit: 10 // 每页默认显示的数量
});
debugger;
// var echarts = require('echarts');
var myChart = echarts.init(document.getElementById('chartdiv'));
// var chartDom = document.getElementById('chartdiv');
// var myChart = echarts.init(chartDom);
var option;
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
toolbox: {
feature: {
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
legend: {
data: ['实际煤粉产量', '给煤机煤量']
},
// grid: {
// top:"10px",
// left: "10px",
// right:"10px",
// bottom: "10px",
// },
xAxis: [
{
type: 'category',
data: [
'2024-10-16 0点',
'2024-10-16 01点',
'2024-10-16 02点',
'2024-10-16 03点',
'2024-10-16 04点',
'2024-10-16 05点',
'2024-10-16 06点',
'2024-10-16 07点'
],
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '煤量',
min: 0,
max: 80,
interval: 50,
axisLabel: {
formatter: '{value} t/h'
}
}
],
series: [
{
name: '实际煤粉产量',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + ' ml';
}
},
data: [51.34, 53.47, 55.45, 55.68, 57.85, 54.25, 53.76, 50.12]
},
{
name: '给煤机煤量',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + ' ml';
}
},
data: [61.12, 63.65, 66.01, 66.28, 66.87, 64.58, 64.01, 59.67]
}
]
};
// option && myChart.setOption(option);
myChart.hideLoading();
myChart.setOption(JSON.parse(JSON.stringify(option)));
completeLoading();
};
async function exports() {
notify.info("服务器导出数据,稍后弹出下载文件,可先浏览报表", "vcenter");
await $.ajax({
url: "/PenMeiReportManage/PenMeiHistoryReport/GetReportDownLoad",
type: "POST",
//dataType: "json",
//async: false,
data: DownLaodPara,
success:function (downRes) {
notify.success("导出报表数据完成,请查看浏览器或下载目录查看报表文件", "vcenter");
var ddfileName = JSON.parse(downRes);
var fileNewDownloadUrl = "/report/" + ddfileName;
//location.origin = fileNewDownloadUrl;
//filepath = location.origin + fileNewDownloadUrl;
window.open(location.origin + fileNewDownloadUrl);
}
});
}
/**
* 本周开始时间戳
* returns {number}
*/
function weekStartTimestamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
// 今日零点时间戳
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
const weekDay = new Date().getDay() === 0 ? (7 - 1) : (new Date().getDay() - 1)
const weekTimeStamp = timestamp - MillisecondsADay * weekDay
return weekTimeStamp
}
/**
* 上周开始、结束时间戳
* returns {number[上周开始时间戳, 上周结束时间戳]}
*/
function lastWeekTimetamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
// 今日零点时间戳
const timestamp = Math.floor(new Date(new Date().setHours(0, 0, 0, 0)).getTime() / 1000)
const weekDay = new Date().getDay() === 0 ? (7 - 1) : (new Date().getDay() - 1)
// 本周开始时间戳
const weekTimeStamp = timestamp - MillisecondsADay * weekDay
// 上周开始时间戳
const lastWeekStart = weekTimeStamp - MillisecondsADay * 7
// 上周结束时间戳
const lastWeekEnd = weekTimeStamp - 1
return [lastWeekStart, lastWeekEnd]
}
/**
* 当月开始时间戳
* returns {number}
*/
function monthStartTimestamp() {
const date = new Date()
date.setDate(1)
date.setHours(0, 0, 0, 0)
const timeStamp = date.getTime() / 1000
return timeStamp
}
/**
* 获取上月开始、结束时间戳
* returns {number[上月开始时间戳,上月结束时间戳]}
*/
function lastMonthTimetamp() {
// 一天的秒数
const MillisecondsADay = 24 * 60 * 60
const date = new Date()
date.setDate(1)
date.setHours(0, 0, 0, 0)
// 当月开始时间戳
const timeStamp = date.getTime() / 1000
// 上个月的天数
const days = lastMonthDats()
// 上月开始时间戳
const lastMonthStart = timeStamp - (MillisecondsADay * days)
// 上月结束时间戳
const lastMonthEnd = timeStamp - 1
return [lastMonthStart, lastMonthEnd]
}
/**
* 上月天数
* returns {number}
*/
function lastMonthDats() {
const date = new Date()
const year = date.getFullYear()
// 上个月月份
let month = (date.getMonth() + 1) - 1 // 0-11 表示 1月-12月
// 0 表示12月
month = month || 12
// 30天的月份
const arr30 = [4, 6, 9, 11]
// 31天的月份
const arr31 = [1, 3, 5, 7, 8, 10, 12]
if (arr30.indexOf(month) !== -1) {
// 上个月是 30 天
return 30
} else if (arr31.indexOf(month) !== -1) {
// 上个月是 31 天
return 31
} else {
// 2月
if (isRunYear(year)) {
return 29
} else {
return 28
}
}
}
/**
* 是否为闰年
* param year
* returns {boolean}
*/
function isRunYear(year) {
// 条件:能被4整除并且不能被100整除或者被400整除的
let flag = false
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
flag = true
}
return flag
}
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff