[後端] 排程修改錯誤log部分, 修改歷史資料匯出
[前端] 修改baja.js, 修改歷史資料程序
This commit is contained in:
parent
949b9407af
commit
3e8daf7759
@ -1360,6 +1360,8 @@ namespace BackendWorkerService.Quartz.Jobs
|
||||
private List<Dictionary<string, object>> ArrangeRawData(DeviceNumberPoint deviceNumberPoint, JObject jsonResult)
|
||||
{
|
||||
List<Dictionary<string, object>> arrangeRawDatas = new List<Dictionary<string, object>>();
|
||||
try
|
||||
{
|
||||
var histories = jsonResult["obj"]["list"];
|
||||
var rawdateCount = Convert.ToInt32(jsonResult["obj"]["int"]["@val"].ToString());
|
||||
|
||||
@ -1511,5 +1513,10 @@ namespace BackendWorkerService.Quartz.Jobs
|
||||
|
||||
return arrangeRawDatas;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return arrangeRawDatas;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -70,6 +70,7 @@
|
||||
|
||||
<script>
|
||||
var historyTable = null;
|
||||
hisFirst = true;
|
||||
$(function () {
|
||||
initList();
|
||||
|
||||
@ -250,24 +251,40 @@
|
||||
pageAct.deviceItem = val.points;
|
||||
pageAct.devicePoiName = val.full_name + ' ' + val.points;
|
||||
pageAct.deviceComName = val.parent_path;
|
||||
getData();
|
||||
} else {
|
||||
strHtml += `<button onClick="setValue(null, null, '${val.points}', this)" type="button" class="btn btn-secondary waves-effect waves-themed">${val.full_name || val.points}</button>`;
|
||||
}
|
||||
});
|
||||
|
||||
$('#devPointsList').html(strHtml);
|
||||
|
||||
if (!hisFirst) {
|
||||
let start = new Date($('#his_startdate').val());
|
||||
let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
|
||||
|
||||
if (pageAct.dateType == "today" || pageAct.dateType == "day" || pageAct.dateType == "ytd")
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 1));
|
||||
else if (pageAct.dateType == "month") {
|
||||
start = new Date($('#getmonth').val());
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 30));
|
||||
}
|
||||
else if (pageAct.dateType != "range")
|
||||
return;
|
||||
|
||||
getData(formatDate(start, "date", true), formatDate(end, "date", true));
|
||||
}
|
||||
}
|
||||
ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
|
||||
}
|
||||
|
||||
|
||||
function getData(start = null, end = null) {
|
||||
$(loadEle).Loading("start");
|
||||
var sdt = new Date();
|
||||
var edt = new Date(new Date().setDate(sdt.getDate() + 1));
|
||||
$(loadEle).Loading("start");
|
||||
start = start ?? sdt.toLocaleDateString();
|
||||
end = end ?? edt.toLocaleDateString();
|
||||
callBackFromHistory()
|
||||
// callBackFromHistory();
|
||||
getHistoryDataByBaja(pageAct.deviceNumber + "_" + pageAct.deviceItem,
|
||||
new Date(start).getTime(),
|
||||
new Date(end).getTime(),
|
||||
@ -277,21 +294,18 @@
|
||||
}
|
||||
|
||||
function callBackFromHistory(res = '{"count":0,"data":[]}') {
|
||||
// console.log("@H1",res)
|
||||
res = JSON.parse(res);
|
||||
// console.log("@history",res.data)
|
||||
loadTable(res.data);
|
||||
if (historyTable != null) {
|
||||
let t = $('#historyTable').dataTable();
|
||||
|
||||
t.fnClearTable();
|
||||
if (res.data.length > 0)
|
||||
t.fnAddData(res.data);
|
||||
}
|
||||
$(loadEle).Loading("close");
|
||||
}
|
||||
|
||||
function setValue(deviceNumber, deviceName, deviceItem, elem) {
|
||||
hisFirst = false;
|
||||
btnSelCss(elem);
|
||||
|
||||
if ((deviceNumber != null && deviceNumber != undefined) && (deviceName != null && deviceName != undefined)) {
|
||||
@ -302,7 +316,20 @@
|
||||
else if (deviceItem != null && deviceItem != undefined) {
|
||||
pageAct.devicePoiName = $(elem).text();
|
||||
pageAct.deviceItem = deviceItem;
|
||||
getData();
|
||||
|
||||
let start = new Date($('#his_startdate').val());
|
||||
let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
|
||||
|
||||
if (pageAct.dateType == "today" || pageAct.dateType == "day" || pageAct.dateType == "ytd")
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 1));
|
||||
else if (pageAct.dateType == "month") {
|
||||
start = new Date($('#getmonth').val());
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 30));
|
||||
}
|
||||
else if (pageAct.dateType != "range")
|
||||
return;
|
||||
|
||||
getData(formatDate(start, "date", true), formatDate(end, "date", true));
|
||||
}
|
||||
}
|
||||
|
||||
@ -364,10 +391,10 @@
|
||||
let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
|
||||
|
||||
if (pageAct.dateType == "today" || pageAct.dateType == "day" || pageAct.dateType == "ytd")
|
||||
end = new Date(new Date().setDate(start.getDate() + 1));
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 1));
|
||||
else if (pageAct.dateType == "month") {
|
||||
start = new Date($('#getmonth').val());
|
||||
end = new Date(new Date().setDate(start.getDate() + 30));
|
||||
end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 30));
|
||||
}
|
||||
else if (pageAct.dateType != "range")
|
||||
return;
|
||||
@ -390,7 +417,6 @@
|
||||
function loadTable(data) {
|
||||
if (data) {
|
||||
$.each(data, function (i, v) {
|
||||
// console.log("loadTable",pageAct.devicePoiName.split(" ")[0])
|
||||
v.type = pageAct.devicePoiName.split(" ")[0];
|
||||
});
|
||||
|
||||
@ -425,7 +451,6 @@
|
||||
"title": "紀錄時間",
|
||||
"data": "timestamp",
|
||||
"render": function (data) {
|
||||
// console.log(data)
|
||||
return displayDate(data, "datetime");
|
||||
}
|
||||
}
|
||||
@ -438,19 +463,38 @@
|
||||
|
||||
function exportExcel() {
|
||||
$(loadEle).Loading("start");
|
||||
let url = baseApiUrl + "/History/OpeExportExcel";
|
||||
objSendData.Data = $('#historyTable').dataTable().fnGetData();
|
||||
|
||||
$.each(objSendData.Data, function (i, v) {
|
||||
let token = cookies.get("JWT-Authorization");
|
||||
let url = baseApiUrl + "/api/ExportHistory";
|
||||
let v = {};
|
||||
v.starttime = (pageAct.dateType == "month" ? new Date($('#getmonth').val()) : new Date($('#his_startdate').val()));
|
||||
v.endtime = $('#his_enddate input').val() === "" ? null : new Date($('#his_enddate input').val());
|
||||
v.dateType = pageAct.dateType;
|
||||
});
|
||||
ytAjax = new YourTeam.Ajax(url, objSendData, function (rel) {
|
||||
if (rel.code == "0000") {
|
||||
location.href = baseApiUrl + "/api/df?path=" + rel.data.split('/')[0] + "&fileName=" + rel.data.split('/')[1] + "&token=" + cookies.get("JWT-Authorization");
|
||||
objSendData.Data = v;
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: url,
|
||||
data: JSON.stringify(objSendData.Data),
|
||||
aysnc: true,
|
||||
headers: {
|
||||
Authorization: "Bearer " + token,
|
||||
},
|
||||
contentType: "application/json; charset=utf-8",
|
||||
xhrFields: {
|
||||
responseType: "blob", // to avoid binary data being mangled on charset conversion
|
||||
},
|
||||
success: function (rel, text, xhr) {
|
||||
if (rel) {
|
||||
downloadByBlob(xhr, rel);
|
||||
}
|
||||
}, null, "POST").send();
|
||||
$(loadEle).Loading("close");
|
||||
},
|
||||
error: function () {
|
||||
$(loadEle).Loading("close");
|
||||
},
|
||||
complete: (xhr) => {
|
||||
setLoading(false);
|
||||
},
|
||||
});
|
||||
}
|
||||
</script>
|
@ -57,6 +57,7 @@ function getHistoryDataByBaja(devicePath, startDate_millisecond, endDate_millise
|
||||
_index++;
|
||||
},
|
||||
after: function () {
|
||||
$(loadEle).Loading("close");
|
||||
_result={count: _index, data: _ss}
|
||||
// _result += '{' + '"count": ' + _index + ', "data":[';
|
||||
// _result += _ss;
|
||||
@ -73,6 +74,7 @@ function getHistoryDataByBaja(devicePath, startDate_millisecond, endDate_millise
|
||||
})
|
||||
.catch(()=>{
|
||||
console.log("error");
|
||||
$(loadEle).Loading("close");
|
||||
// const res = JSON.stringify({count:0, data:[]})
|
||||
callback()
|
||||
});
|
||||
|
@ -58,18 +58,11 @@ namespace FrontendWebApi.ApiControllers
|
||||
return apiResult;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
IWorkbook workbook = new XSSFWorkbook();
|
||||
var fileDateName = lhe.FirstOrDefault().dateType == "month" ? lhe.FirstOrDefault().starttime.ToString("yyyy-MM") : lhe.FirstOrDefault().endtime == null ? lhe.FirstOrDefault().starttime.ToString("yyyy-MM-dd") : lhe.FirstOrDefault().starttime.ToString("yyyy-MM-dd") + "_" + ((DateTime)lhe.FirstOrDefault().endtime).ToString("yyyy-MM-dd");
|
||||
var fileName = "歷史資料_"+fileDateName+".xlsx";
|
||||
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "excel", "history");
|
||||
|
||||
if (!System.IO.Directory.Exists(filePath))
|
||||
System.IO.Directory.CreateDirectory(filePath);
|
||||
|
||||
using (var fs = new FileStream(Path.Combine(filePath, fileName), FileMode.Create, FileAccess.Write))
|
||||
try
|
||||
{
|
||||
IWorkbook workbook = new XSSFWorkbook();
|
||||
#region excel設定
|
||||
IFont font12 = workbook.CreateFont();
|
||||
font12.FontName = "新細明體";
|
||||
@ -163,12 +156,6 @@ namespace FrontendWebApi.ApiControllers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
workbook.Write(fs);
|
||||
}
|
||||
|
||||
apiResult.Code = "0000";
|
||||
apiResult.Data = "history/" + fileName;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
@ -177,7 +164,16 @@ namespace FrontendWebApi.ApiControllers
|
||||
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
||||
return Ok(apiResult);
|
||||
}
|
||||
return Ok(apiResult);
|
||||
|
||||
var ms = new NpoiMemoryStream
|
||||
{
|
||||
AllowClose = false
|
||||
};
|
||||
workbook.Write(ms);
|
||||
ms.Flush();
|
||||
ms.Seek(0, SeekOrigin.Begin);
|
||||
Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");
|
||||
return File(ms, "application/vnd.ms-excel", fileName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
Loading…
Reference in New Issue
Block a user