From fd79ba4df2e916fd8459f98598ff741a04d56170 Mon Sep 17 00:00:00 2001 From: dev02 Date: Tue, 25 Jul 2023 17:49:51 +0800 Subject: [PATCH 01/13] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E6=AC=8A=E9=99=90=E9=A0=81?= =?UTF-8?q?=E9=9D=A2=E6=AC=8A=E9=99=90api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApiControllers/UserController.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/FrontendWebApi/ApiControllers/UserController.cs b/FrontendWebApi/ApiControllers/UserController.cs index 16b3b60..e129888 100644 --- a/FrontendWebApi/ApiControllers/UserController.cs +++ b/FrontendWebApi/ApiControllers/UserController.cs @@ -596,20 +596,23 @@ namespace FrontendWebApi.ApiControllers } else { + await backendRepository.ExecuteSql($"delete from role_auth where role_guid = '{post.SelectedRoleId}' and AuthCode like '%PF%'"); if (post.SaveCheckAuth.Count > 0) { foreach (var item in post.SaveCheckAuth) { #region 新增權限 - Dictionary roleAuth = new Dictionary(); - roleAuth = new Dictionary() - { - { "@role_guid", post.SelectedRoleId}, - { "@AuthCode", item}, - { "@created_by", myUser.userinfo_guid} - }; + { + Dictionary roleAuth = new Dictionary(); + roleAuth = new Dictionary() + { + { "@role_guid", post.SelectedRoleId}, + { "@AuthCode", item}, + { "@created_by", myUser.userinfo_guid} + }; - await backendRepository.AddOneByCustomTable(roleAuth, "role_auth"); + await backendRepository.AddOneByCustomTable(roleAuth, "role_auth"); + } #endregion } } From df95bf5827b46558a2937545ec9d729a581d3ccc Mon Sep 17 00:00:00 2001 From: dev02 Date: Wed, 26 Jul 2023 09:54:36 +0800 Subject: [PATCH 02/13] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8C=AF=E5=87=BA=E6=A2=9D=E4=BB=B6,=20=E8=AA=BF=E6=95=B4join?= =?UTF-8?q?=E5=95=8F=E9=A1=8C=20[=E5=89=8D=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=99=82=E9=96=93=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_operation.html | 7 +- .../ApiControllers/OperationController.cs | 350 +++++++++--------- .../excel/operation/保養記錄_2023-07-24.xlsx | Bin 0 -> 4705 bytes .../excel/operation/廠商資料_2023-07-24.xlsx | Bin 0 -> 4652 bytes .../excel/operation/維修_2023-07-24.xlsx | Bin 0 -> 5025 bytes 5 files changed, 184 insertions(+), 173 deletions(-) create mode 100644 FrontendWebApi/wwwroot/excel/operation/保養記錄_2023-07-24.xlsx create mode 100644 FrontendWebApi/wwwroot/excel/operation/廠商資料_2023-07-24.xlsx create mode 100644 FrontendWebApi/wwwroot/excel/operation/維修_2023-07-24.xlsx diff --git a/Frontend/_operation.html b/Frontend/_operation.html index 0e6f5e6..1a87b37 100644 --- a/Frontend/_operation.html +++ b/Frontend/_operation.html @@ -892,6 +892,7 @@ if (dateType == 'tdy') { pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate())), 'date')); + pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date')); $('#startdate').val(today); $('#startdate').data('val', today); $('#enddate').val(today); @@ -899,6 +900,7 @@ } else if (dateType == 'ytd') { pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date')); + pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 2)), 'date')); $('#startdate').val(ytd); $('#startdate').data('val', ytd); $('#enddate').val(ytd); @@ -916,7 +918,8 @@ $('#startdate').data('val', $('#startdate').val()); $('#enddate').data('val', $('#enddate').val()); } - + console.log("start :" + pageAct.startdate); + console.log("end :" + pageAct.enddate); refTable(); } } @@ -1001,7 +1004,7 @@ function exportExcel(e) { console.log("export", e) let url = baseApiUrl + "/operation/OpeExportExcel"; - + console.log() objSendData.Data = { work_type: pageAct.work_type, startdate: pageAct.startdate == undefined ? null : pageAct.startdate, diff --git a/FrontendWebApi/ApiControllers/OperationController.cs b/FrontendWebApi/ApiControllers/OperationController.cs index 70679ec..6f53423 100644 --- a/FrontendWebApi/ApiControllers/OperationController.cs +++ b/FrontendWebApi/ApiControllers/OperationController.cs @@ -389,184 +389,191 @@ namespace FrontendWebApi.ApiControllers } else if (ee.work_type == 1) { - var sqlString = $@"select opr.*, concat(d.device_floor_tag, ' ', d.device_last_name, ' ', d.device_serial_tag) as device_name, ui.full_name as user_full_name + var sqlString = $@"select opr.*, d.full_name as device_name, ui.full_name as user_full_name from operation_record opr left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1) - and d.device_building_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 2) and d.device_floor_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 5) + and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 1;"; - var sheet = workbook.CreateSheet("廠商資料"); - var operation_record = backendRepository.GetAllAsync(sqlString, null); - List operation_record_file = new List(); - - if (operation_record.Result.Count > 0) - { - foreach (var or in operation_record.Result) - { - sqlString = $@"select * from operation_record_file where record_id = @record_id"; - var param = new { @record_id = or.id }; - operation_record_file = backendRepository.GetAllAsync(sqlString, param).Result; - or.lorf = operation_record_file; - } - - int RowPosition = 0; - #region set cell - IRow row = sheet.CreateRow(RowPosition); - sheet.SetColumnWidth(0, 4 * 160 * 12); - sheet.SetColumnWidth(1, 4 * 160 * 12); - sheet.SetColumnWidth(2, 4 * 160 * 12); - sheet.SetColumnWidth(3, 4 * 160 * 12); - sheet.SetColumnWidth(4, 4 * 160 * 12); - sheet.SetColumnWidth(5, 4 * 160 * 12); - sheet.SetColumnWidth(6, 4 * 160 * 12); - sheet.SetColumnWidth(7, 4 * 160 * 12); - sheet.SetColumnWidth(8, 4 * 160 * 12); - sheet.SetColumnWidth(9, 4 * 160 * 12); - ICell cell = row.CreateCell(0); - cell.SetCellValue("項目"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(1); - cell.SetCellValue("位置"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(2); - cell.SetCellValue("表單號"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(3); - cell.SetCellValue("設備名稱"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(4); - cell.SetCellValue("狀態"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(5); - cell.SetCellValue("處理人員"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(6); - cell.SetCellValue("預計施工時間"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(7); - cell.SetCellValue("檔案上傳"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(8); - cell.SetCellValue("完成時間"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(9); - cell.SetCellValue("建立時間"); - cell.CellStyle = styleLine12; - #endregion - foreach (var or in operation_record.Result) - { - RowPosition += 1; - row = sheet.CreateRow(RowPosition); - for (var i = 0; i < 10; i++) - { - cell = row.CreateCell(i); - if (i == 0) - { - cell.SetCellValue(or.work_type_name); - } - if (i == 1) - { - cell.SetCellValue(or.location); - } - if (i == 2) - { - cell.SetCellValue(or.formId); - } - if (i == 3) - { - cell.SetCellValue(or.device_name); - } - if (i == 4) - { - cell.SetCellValue(or.status_name); - } - if (i == 5) - { - cell.SetCellValue(or.user_full_name); - } - if (i == 6) - { - cell.SetCellValue(or.start_time != null ? ((DateTime)or.start_time).ToString("yyyy/MM/dd HH:mm:dd") : null); - } - if (i == 7) - { - var imageNames = or.lorf.Count > 0 ? or.lorf.Select(x => x.save_file_name).ToList() : null; - if (imageNames != null) - { - //insert image process - var dy1 = 10; - var dx1 = 10; - - //image column - sheet.SetColumnWidth(i, 16 * imageNames.Count * 256); //width: picture width(16:100), image total, per character(256) - foreach (var ins in imageNames) - { - //image initial - var extName = ins.Split('.')[1].ToUpper().Equals("JPG") ? "PNG" : ins.Split('.')[1].ToUpper(); - var fullPath = Path.Combine(operationFileSaveAsPath, ins); - var img = Image.FromFile(fullPath); - - //compress image - decimal sizeRatio = ((decimal)img.Height / img.Width); - int thumbWidth = 100; - int thumbHeight = decimal.ToInt32(sizeRatio * thumbWidth); - var thumbStream = img.GetThumbnailImage(thumbWidth, thumbHeight, () => false, IntPtr.Zero); - var memoryStream = new MemoryStream(); - thumbStream.Save(memoryStream, ImageFormat.Jpeg); - - //setting pictureType enum - int format = 0; - var drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); - format = Convert.ToInt32(Enum.Parse(typeof(PictureType), extName)); - - //set picture size and location - if (format != 0) - { - var pictureIds = workbook.AddPicture(memoryStream.ToArray(), format); - XSSFClientAnchor anchor = new XSSFClientAnchor(XSSFShape.EMU_PER_PIXEL * dx1, XSSFShape.EMU_PER_PIXEL * dy1, 0, 0, i, j, 0, 0); - anchor.AnchorType = AnchorType.DontMoveAndResize; - var picture = (XSSFPicture)drawing.CreatePicture(anchor, pictureIds); - var size = picture.GetImageDimension(); - row.HeightInPoints = size.Height; - picture.Resize(); - - //add 105 each new pic - dx1 += 105; - } - } - } - - j++; - } - if (i == 8) - { - cell.SetCellValue(or.finish_time != null ? ((DateTime)or.finish_time).ToString("yyyy/MM/dd HH:mm:dd") : null); - } - if (i == 9) - { - cell.SetCellValue(or.Created_at); - } - - cell.CellStyle = style12; - } - } - } - } - else if (ee.work_type == 2) - { - var sqlString = $@"select opr.*, concat(d.device_floor_tag, ' ', d.device_last_name, ' ', d.device_serial_tag) as device_name, ui.full_name as user_full_name - from operation_record opr - left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1) - and d.device_building_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 2) and d.device_floor_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 5) - and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 - left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 2"; + where opr.deleted = 0 and opr.work_type = 1 and opr.created_at >= '{ee.startdate.ToString().Split("T")[0]}' and opr.created_at <= '{ee.enddate.ToString().Split("T")[0]}';"; var sheet = workbook.CreateSheet("廠商資料"); var operation_record = backendRepository.GetAllAsync(sqlString); List operation_record_file = new List(); - if (operation_record.Result.Count > 0) + if (operation_record.Result != null) + { + if (operation_record.Result.Count > 0) + { + foreach (var or in operation_record.Result) + { + sqlString = $@"select * from operation_record_file where record_id = @record_id"; + var param = new { @record_id = or.id }; + operation_record_file = backendRepository.GetAllAsync(sqlString, param).Result; + or.lorf = operation_record_file; + } + + int RowPosition = 0; + #region set cell + IRow row = sheet.CreateRow(RowPosition); + sheet.SetColumnWidth(0, 4 * 160 * 12); + sheet.SetColumnWidth(1, 4 * 160 * 12); + sheet.SetColumnWidth(2, 4 * 160 * 12); + sheet.SetColumnWidth(3, 4 * 160 * 12); + sheet.SetColumnWidth(4, 4 * 160 * 12); + sheet.SetColumnWidth(5, 4 * 160 * 12); + sheet.SetColumnWidth(6, 4 * 160 * 12); + sheet.SetColumnWidth(7, 4 * 160 * 12); + sheet.SetColumnWidth(8, 4 * 160 * 12); + sheet.SetColumnWidth(9, 4 * 160 * 12); + ICell cell = row.CreateCell(0); + cell.SetCellValue("項目"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(1); + cell.SetCellValue("位置"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(2); + cell.SetCellValue("表單號"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(3); + cell.SetCellValue("設備名稱"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(4); + cell.SetCellValue("狀態"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(5); + cell.SetCellValue("處理人員"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(6); + cell.SetCellValue("預計施工時間"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(7); + cell.SetCellValue("檔案上傳"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(8); + cell.SetCellValue("完成時間"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(9); + cell.SetCellValue("建立時間"); + cell.CellStyle = styleLine12; + #endregion + foreach (var or in operation_record.Result) + { + RowPosition += 1; + row = sheet.CreateRow(RowPosition); + for (var i = 0; i < 10; i++) + { + cell = row.CreateCell(i); + if (i == 0) + { + cell.SetCellValue(or.work_type_name); + } + if (i == 1) + { + cell.SetCellValue(or.location); + } + if (i == 2) + { + cell.SetCellValue(or.formId); + } + if (i == 3) + { + cell.SetCellValue(or.device_name); + } + if (i == 4) + { + cell.SetCellValue(or.status_name); + } + if (i == 5) + { + cell.SetCellValue(or.user_full_name); + } + if (i == 6) + { + cell.SetCellValue(or.start_time != null ? ((DateTime)or.start_time).ToString("yyyy/MM/dd HH:mm:dd") : null); + } + if (i == 7) + { + var imageNames = or.lorf.Count > 0 ? or.lorf.Where(x => x.ori_file_name.Contains("JPG") || x.ori_file_name.Contains("PNG")).Select(x => x.save_file_name).ToList() : null; + if (imageNames != null) + { + //insert image process + var dy1 = 10; + var dx1 = 10; + + //image column + sheet.SetColumnWidth(i, 16 * imageNames.Count * 256); //width: picture width(16:100), image total, per character(256) + foreach (var ins in imageNames) + { + //image initial + var extName = ins.Split('.')[1].ToUpper().Equals("JPG") ? "PNG" : ins.Split('.')[1].ToUpper(); + var fullPath = Path.Combine(operationFileSaveAsPath, ins); + var img = Image.FromFile(fullPath); + + //compress image + decimal sizeRatio = ((decimal)img.Height / img.Width); + int thumbWidth = 100; + int thumbHeight = decimal.ToInt32(sizeRatio * thumbWidth); + var thumbStream = img.GetThumbnailImage(thumbWidth, thumbHeight, () => false, IntPtr.Zero); + var memoryStream = new MemoryStream(); + thumbStream.Save(memoryStream, ImageFormat.Jpeg); + + //setting pictureType enum + int format = 0; + var drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); + format = Convert.ToInt32(Enum.Parse(typeof(PictureType), extName)); + + //set picture size and location + if (format != 0) + { + var pictureIds = workbook.AddPicture(memoryStream.ToArray(), format); + XSSFClientAnchor anchor = new XSSFClientAnchor(XSSFShape.EMU_PER_PIXEL * dx1, XSSFShape.EMU_PER_PIXEL * dy1, 0, 0, i, j, 0, 0); + anchor.AnchorType = AnchorType.DontMoveAndResize; + var picture = (XSSFPicture)drawing.CreatePicture(anchor, pictureIds); + var size = picture.GetImageDimension(); + row.HeightInPoints = size.Height; + picture.Resize(); + + //add 105 each new pic + dx1 += 105; + } + } + } + + j++; + } + if (i == 8) + { + cell.SetCellValue(or.finish_time != null ? ((DateTime)or.finish_time).ToString("yyyy/MM/dd HH:mm:dd") : null); + } + if (i == 9) + { + cell.SetCellValue(or.Created_at); + } + + cell.CellStyle = style12; + } + } + } + + } + } + else if (ee.work_type == 2) + { + var sqlString = $@"select opr.*, d.full_name as device_name, ui.full_name as user_full_name + from operation_record opr + left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1) + and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) + and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 + left join userinfo ui on opr.work_person_id = ui.userinfo_guid + where opr.deleted = 0 and opr.work_type = 2 and opr.created_at >= '{ee.startdate.ToString().Split("T")[0]}' and opr.created_at <= '{ee.enddate.ToString().Split("T")[0]}';"; + + var sheet = workbook.CreateSheet("廠商資料"); + var operation_record = backendRepository.GetAllAsync(sqlString); + List operation_record_file = new List(); + + if (operation_record.Result != null) + { + if (operation_record.Result.Count > 0) { foreach (var or in operation_record.Result) { @@ -667,7 +674,7 @@ namespace FrontendWebApi.ApiControllers } if (i == 8)//image { - var imageNames = or.lorf.Count > 0 ? or.lorf.Select(x => x.save_file_name).ToList() : null; + var imageNames = or.lorf.Count > 0 ? or.lorf.Where(x => x.ori_file_name.Contains("JPG") || x.ori_file_name.Contains("PNG")).Select(x => x.save_file_name).ToList() : null; if (imageNames != null) { //insert image process @@ -729,6 +736,7 @@ namespace FrontendWebApi.ApiControllers } } } + } } workbook.Write(fs); diff --git a/FrontendWebApi/wwwroot/excel/operation/保養記錄_2023-07-24.xlsx b/FrontendWebApi/wwwroot/excel/operation/保養記錄_2023-07-24.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..56e0ab784240c15d9b0d7db4f424eac2dd7e2ce2 GIT binary patch literal 4705 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 literal 0 HcmV?d00001 diff --git a/FrontendWebApi/wwwroot/excel/operation/廠商資料_2023-07-24.xlsx b/FrontendWebApi/wwwroot/excel/operation/廠商資料_2023-07-24.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3dad3c88c357f78d6c5526770e57b63cf0ee6e31 GIT binary patch literal 4652 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 literal 0 HcmV?d00001 diff --git a/FrontendWebApi/wwwroot/excel/operation/維修_2023-07-24.xlsx b/FrontendWebApi/wwwroot/excel/operation/維修_2023-07-24.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9f60db5de3e03485d320c497da966126c3827071 GIT binary patch literal 5025 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 C@_V)b literal 0 HcmV?d00001 From 120642b5c71fecd98286b679a5fc0e97e142f644 Mon Sep 17 00:00:00 2001 From: dev02 Date: Wed, 26 Jul 2023 13:41:02 +0800 Subject: [PATCH 03/13] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=99=82=E9=96=93=E6=A0=BC=E5=BC=8F,=20=E6=99=82=E9=96=93?= =?UTF-8?q?=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_historyData.html | 7 +++++-- Frontend/_operation.html | 28 +++++++++++++++------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Frontend/_historyData.html b/Frontend/_historyData.html index 76c8861..8d81d4e 100644 --- a/Frontend/_historyData.html +++ b/Frontend/_historyData.html @@ -438,6 +438,8 @@ else if (pageAct.dateType != "range") return; + pageAct.hisStartDate = start; + pageAct.hisEndDate = end; getData(formatDate(start, "date", true), formatDate(end, "date", true)); } @@ -506,8 +508,9 @@ 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.starttime = pageAct.hisStartDate; + v.endtime = pageAct.hisEndDate; v.dateType = pageAct.dateType; v.device_number = pageAct.deviceNumber; objSendData.Data = v; diff --git a/Frontend/_operation.html b/Frontend/_operation.html index 1a87b37..3389a83 100644 --- a/Frontend/_operation.html +++ b/Frontend/_operation.html @@ -636,7 +636,7 @@ { "targets": [7], "width": "6%", "sortable": true }, { "targets": [8], "width": "15%", "sortable": false }, { "targets": [9], "width": "6%", "sortable": false }, - { "targets": [10], "width": "8%", "sortable": false }, + { "targets": [10], "width": "8%", "sortable": true }, { "targets": [11], "width": "8%", "sortable": false }, ]; @@ -653,7 +653,7 @@ "title": "異常代號", "data": "error_code", render: (data) => { - return data?.split('-')[0] || ''; + return data?.split('-')[0] || '' == null ? '' : data?.split('-')[0] || ''; } }, { @@ -755,7 +755,8 @@ { "targets": [7], "width": "15%", "sortable": false }, { "targets": [8], "width": "6%", "sortable": false }, { "targets": [9], "width": "8%", "sortable": false }, - { "targets": [10], "width": "8%", "sortable": false }, + { "targets": [10], "width": "8%", "sortable": true }, + { "targets": [11], "width": "8%", "sortable": false }, ]; columns = [ @@ -771,7 +772,7 @@ "title": "異常代號", "data": "error_code", render: (data) => { - return data?.split('-')[0] || ''; + return data?.split('-')[0] || '' == null ? '' : data?.split('-')[0] || ''; } }, { @@ -860,6 +861,7 @@ } opeRecTable = new YourTeam.JqDataTables.getTableByAjax(ajaxObj, tag, null, columns, column_defs); + $(tag).DataTable().order([10, 'desc']); } function setType(wt) { @@ -881,6 +883,7 @@ pageAct.startdate = startdate; pageAct.enddate = enddate; + if ($('#startdate').val() > $('#enddate').val()) { $('#startdate').val($('#startdate').data('val')); $('#enddate').val($('#enddate').data('val')); @@ -891,22 +894,23 @@ let ytd = displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date').replaceAll('/', '-') if (dateType == 'tdy') { - pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate())), 'date')); - pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date')); + pageAct.startdate = displayDate(new Date(new Date().setDate(new Date().getDate() + 1)), 'datetime'); + pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() + 2)), 'date')); $('#startdate').val(today); $('#startdate').data('val', today); $('#enddate').val(today); $('#enddate').data('val', today); } else if (dateType == 'ytd') { - pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date')); - pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() - 2)), 'date')); + pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate())), 'date')); + pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() + 1)), 'date')); $('#startdate').val(ytd); $('#startdate').data('val', ytd); $('#enddate').val(ytd); $('#enddate').data('val', ytd); } else { + pageAct.enddate = new Date(displayDate(new Date(pageAct.enddate.valueOf()).setDate(pageAct.enddate.getDate() + 2), 'date')); $(`[onclick^=setDate]`).removeClass('btn-info'); $(`[onclick^=setDate]`).addClass('btn-secondary'); if ($('#startdate').val() == $('#enddate').val()) { @@ -918,8 +922,7 @@ $('#startdate').data('val', $('#startdate').val()); $('#enddate').data('val', $('#enddate').val()); } - console.log("start :" + pageAct.startdate); - console.log("end :" + pageAct.enddate); + refTable(); } } @@ -1002,15 +1005,14 @@ } function exportExcel(e) { - console.log("export", e) + let url = baseApiUrl + "/operation/OpeExportExcel"; - console.log() objSendData.Data = { work_type: pageAct.work_type, startdate: pageAct.startdate == undefined ? null : pageAct.startdate, enddate: pageAct.enddate == undefined ? null : pageAct.enddate, }; - console.log("data", objSendData.Data) + 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"); From 5e0c46d02739fde41c7ab70f9f7b8d47e2bf640b Mon Sep 17 00:00:00 2001 From: dev02 Date: Wed, 26 Jul 2023 16:52:26 +0800 Subject: [PATCH 04/13] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?router=20method=20[=E5=89=8D=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=81=8B=E7=B6=AD=E5=89=8D=E7=AB=AF=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_operation.html | 18 +++++++++--------- .../ApiControllers/UtilityController.cs | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Frontend/_operation.html b/Frontend/_operation.html index 3389a83..c605d4f 100644 --- a/Frontend/_operation.html +++ b/Frontend/_operation.html @@ -861,7 +861,6 @@ } opeRecTable = new YourTeam.JqDataTables.getTableByAjax(ajaxObj, tag, null, columns, column_defs); - $(tag).DataTable().order([10, 'desc']); } function setType(wt) { @@ -894,23 +893,23 @@ let ytd = displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'date').replaceAll('/', '-') if (dateType == 'tdy') { - pageAct.startdate = displayDate(new Date(new Date().setDate(new Date().getDate() + 1)), 'datetime'); - pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() + 2)), 'date')); + pageAct.startdate = displayDate(new Date(new Date().setDate(new Date().getDate())), 'datetime').toString().replaceAll("/", "-").split(" ")[0] + "T00:00:00"; + pageAct.enddate = displayDate(new Date(new Date().setDate(new Date().getDate())), 'datetime').toString().replaceAll("/", "-").split(" ")[0] + "T23:59:59"; $('#startdate').val(today); $('#startdate').data('val', today); $('#enddate').val(today); $('#enddate').data('val', today); } else if (dateType == 'ytd') { - pageAct.startdate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate())), 'date')); - pageAct.enddate = new Date(displayDate(new Date(new Date().setDate(new Date().getDate() + 1)), 'date')); + pageAct.startdate = displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'datetime').toString().replaceAll("/", "-").split(" ")[0] + "T00:00:00"; + pageAct.enddate = displayDate(new Date(new Date().setDate(new Date().getDate() - 1)), 'datetime').toString().replaceAll("/", "-").split(" ")[0] + "T23:59:59"; $('#startdate').val(ytd); $('#startdate').data('val', ytd); $('#enddate').val(ytd); $('#enddate').data('val', ytd); } else { - pageAct.enddate = new Date(displayDate(new Date(pageAct.enddate.valueOf()).setDate(pageAct.enddate.getDate() + 2), 'date')); + pageAct.enddate = displayDate(new Date(pageAct.enddate.valueOf()).setDate(pageAct.enddate.getDate()), 'date').toString().replaceAll("/", "-") + "T23:59:59"; $(`[onclick^=setDate]`).removeClass('btn-info'); $(`[onclick^=setDate]`).addClass('btn-secondary'); if ($('#startdate').val() == $('#enddate').val()) { @@ -1005,14 +1004,15 @@ } function exportExcel(e) { - + console.log("export", e) let url = baseApiUrl + "/operation/OpeExportExcel"; + objSendData.Data = { work_type: pageAct.work_type, startdate: pageAct.startdate == undefined ? null : pageAct.startdate, enddate: pageAct.enddate == undefined ? null : pageAct.enddate, }; - + console.log("data", objSendData.Data) 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"); @@ -1504,7 +1504,7 @@ $.each(res.data, function (i, v) { msg = v.msgText != null ? ($.trim(v.msgText.toString()).length > 0 ? v.msgText.split(':')[0] : '') : ''; - strHtml += ``; + strHtml += ``; }); if (res.count > 0) $(pageAct.work_type == '1' ? '#inpErrCode' : '#inpErrCode_2').html(strHtml); diff --git a/FrontendWebApi/ApiControllers/UtilityController.cs b/FrontendWebApi/ApiControllers/UtilityController.cs index 4eb46d2..f057de4 100644 --- a/FrontendWebApi/ApiControllers/UtilityController.cs +++ b/FrontendWebApi/ApiControllers/UtilityController.cs @@ -156,6 +156,7 @@ namespace FrontendWebApi.ApiControllers return apiResult; } + [HttpPost] public async Task>> isShowBuilding() { ApiResult apiResult = new ApiResult(jwt_str); From ade8b33e2e71029410a6b43b51df868f9af8f896 Mon Sep 17 00:00:00 2001 From: keke Date: Thu, 27 Jul 2023 17:51:31 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20kwh=5Fresult?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Quartz/Jobs/ArchiveElectricMeterDayJob.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs b/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs index 9842dad..cc860f5 100644 --- a/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs +++ b/BackendWorkerService/Quartz/Jobs/ArchiveElectricMeterDayJob.cs @@ -302,6 +302,7 @@ namespace BackendWorkerService.Quartz.Jobs `count_rawdata` int(11) NULL DEFAULT NULL, `min_rawdata` decimal(15, 3) NULL DEFAULT NULL, `max_rawdata` decimal(15, 3) NULL DEFAULT NULL, + `kwh_result` decimal(15, 3) NULL DEFAULT NULL, `avg_rawdata` decimal(15, 3) NULL DEFAULT NULL, `sum_rawdata` decimal(15, 3) NULL DEFAULT NULL, `is_complete` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '是否完成,0:未完成 1:完成', @@ -317,6 +318,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -335,6 +337,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -348,6 +351,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata, @avg_rawdata, @sum_rawdata, @is_complete, @@ -366,6 +370,7 @@ namespace BackendWorkerService.Quartz.Jobs [count_rawdata] [int] NULL, [min_rawdata] [decimal](15, 3) NULL, [max_rawdata] [decimal](15, 3) NULL, + [kwh_result] [decimal](15, 3) NULL, [avg_rawdata] [decimal](15, 3) NULL, [sum_rawdata] [decimal](15, 3) NULL, [is_complete] [tinyint] NULL, @@ -398,6 +403,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -418,6 +424,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -431,6 +438,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata @avg_rawdata, @sum_rawdata, @is_complete, @@ -778,11 +786,11 @@ namespace BackendWorkerService.Quartz.Jobs if (electricArchiveWeekRawDatas.Count() > 0) { var sql = $@" - UPDATE archive_electric_meter_week SET count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -802,6 +810,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -815,6 +824,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata, @avg_rawdata, @sum_rawdata, @is_complete, @@ -829,6 +839,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -849,6 +860,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -862,6 +874,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata, @avg_rawdata, @sum_rawdata, @is_complete, @@ -1163,6 +1176,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -1181,6 +1195,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -1194,6 +1209,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata, @avg_rawdata, @sum_rawdata, @is_complete, @@ -1207,6 +1223,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata = @count_rawdata, min_rawdata = @min_rawdata, max_rawdata = @max_rawdata, + kwh_result = @max_rawdata - @min_rawdata, avg_rawdata = @avg_rawdata, sum_rawdata = @sum_rawdata, is_complete = @is_complete, @@ -1227,6 +1244,7 @@ namespace BackendWorkerService.Quartz.Jobs count_rawdata, min_rawdata, max_rawdata, + kwh_result, avg_rawdata, sum_rawdata, is_complete, @@ -1240,6 +1258,7 @@ namespace BackendWorkerService.Quartz.Jobs @count_rawdata, @min_rawdata, @max_rawdata, + @max_rawdata - @min_rawdata, @avg_rawdata, @sum_rawdata, @is_complete, From 7b3d9fa532d3f61cda5495005215f362c6f1198e Mon Sep 17 00:00:00 2001 From: jiahao Date: Fri, 28 Jul 2023 16:09:56 +0800 Subject: [PATCH 06/13] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=20=E9=9B=BB=E9=8C=B6?= =?UTF-8?q?=E6=9F=A5=E8=A9=A2=E6=94=B9=E6=8A=93=20kwh=5Fresult=20=E6=AC=84?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FrontendWebApi/ApiControllers/HydroMeterController.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FrontendWebApi/ApiControllers/HydroMeterController.cs b/FrontendWebApi/ApiControllers/HydroMeterController.cs index 34b4c2c..f6302d6 100644 --- a/FrontendWebApi/ApiControllers/HydroMeterController.cs +++ b/FrontendWebApi/ApiControllers/HydroMeterController.cs @@ -98,10 +98,10 @@ namespace FrontendWebApi.ApiControllers if (input.tableType == "year") { sqlGroup = $@" group by year(start_timestamp), year(end_timestamp), device_number "; - sqlAvgRawData = " round(avg(avg_rawdata), 2) as avg_rawdata, year(start_timestamp) as start_timestamp, year(end_timestamp) as end_timestamp "; + sqlAvgRawData = " round(avg(kwh_result), 2) as avg_rawdata, year(start_timestamp) as start_timestamp, year(end_timestamp) as end_timestamp "; } else - sqlAvgRawData = " round(avg_rawdata, 2) as avg_rawdata, start_timestamp, end_timestamp "; + sqlAvgRawData = " round(kwh_result, 2) as avg_rawdata, start_timestamp, end_timestamp "; var table = input.tableType == "year" ? "archive_electric_meter_month" : "archive_electric_meter_" + input.tableType + (input.tableType == "day" ? "_" + dbDateName : ""); var schema = await backendRepository.GetOneAsync($"select system_value from variable where system_type = 'project_name'"); @@ -142,6 +142,7 @@ namespace FrontendWebApi.ApiControllers {sqlWhere} {sqlGroup} ) aemm on aemm.start_timestamp >= {aemmStaDate} and aemm.end_timestamp < {aemmEndDate} and aemm.device_number = fd.device_number order by fd.device_number, fd.date"; + Logger.LogInformation("SQL = " + sql + " startTime=" + startTime + " endTime=" + endTime + " building=" + input.building_tag + " floor_tag = " + input.floor_tag); var rawData = await backendRepository.GetAllAsync(sql, new { startTime = startTime, endtime = endTime, building_tag = input.building_tag, dateFormat = dateFormat }); From 6d7fe6c60e0e15e274b0525170489169455c5172 Mon Sep 17 00:00:00 2001 From: jiahao Date: Mon, 31 Jul 2023 11:57:43 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E5=89=8D=E7=AB=AF=20-=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8C=AF=E5=87=BA=E6=AA=94=E5=90=8D+YYYYMMDD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FrontendWebApi/ApiControllers/HydroMeterController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FrontendWebApi/ApiControllers/HydroMeterController.cs b/FrontendWebApi/ApiControllers/HydroMeterController.cs index f6302d6..e67160b 100644 --- a/FrontendWebApi/ApiControllers/HydroMeterController.cs +++ b/FrontendWebApi/ApiControllers/HydroMeterController.cs @@ -562,7 +562,7 @@ namespace FrontendWebApi.ApiControllers ms.Flush(); ms.Seek(0, SeekOrigin.Begin); Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition"); - return File(ms, "application/vnd.ms", "電表報表.xlsx"); + return File(ms, "application/vnd.ms", @$"電表報表{System.DateTime.Now.ToString("yyyyMMddHHmm")}.xlsx"); } [HttpPost] @@ -796,7 +796,7 @@ namespace FrontendWebApi.ApiControllers ms.Flush(); ms.Seek(0, SeekOrigin.Begin); Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition"); - return File(ms, "application/vnd.ms-excel", "電表報表.xlsx"); + return File(ms, "application/vnd.ms-excel", @$"電表報表{System.DateTime.Now.ToString("yyyyMMddHHmm")}.xlsx"); } public static int GetDayInMonth(string yearMonth) From 2a70a285e2a67eda4187b97e84bdca5b9cce2487 Mon Sep 17 00:00:00 2001 From: dev02 Date: Tue, 1 Aug 2023 18:29:25 +0800 Subject: [PATCH 08/13] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9F=A5=E8=A9=A2=E5=96=AE=E8=99=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_operation.html | 2 + .../ApiControllers/OperationController.cs | 60 +++++++++++-------- .../operation/維修_2023-07-31_2023-07-31.xlsx | 0 3 files changed, 36 insertions(+), 26 deletions(-) create mode 100644 FrontendWebApi/wwwroot/excel/operation/維修_2023-07-31_2023-07-31.xlsx diff --git a/Frontend/_operation.html b/Frontend/_operation.html index c605d4f..e58d435 100644 --- a/Frontend/_operation.html +++ b/Frontend/_operation.html @@ -946,6 +946,8 @@ function snSearch() { clearPageAct(); + pageAct.startdate = $('#startdate').val() + "T00:00:00"; + pageAct.enddate = $('#enddate').val() + "T23:59:59" pageAct.serial_number = $('#serial_number').val() || null; refTable(); } diff --git a/FrontendWebApi/ApiControllers/OperationController.cs b/FrontendWebApi/ApiControllers/OperationController.cs index 6f53423..a9acb76 100644 --- a/FrontendWebApi/ApiControllers/OperationController.cs +++ b/FrontendWebApi/ApiControllers/OperationController.cs @@ -351,35 +351,35 @@ namespace FrontendWebApi.ApiControllers cell = row.CreateCell(i); if (i == 0) { - cell.SetCellValue(of.system_key); + cell.SetCellValue(of.system_key ?? ""); } if (i == 1) { - cell.SetCellValue(of.name); + cell.SetCellValue(of.name ?? ""); } if (i == 2) { - cell.SetCellValue(of.contact_person); + cell.SetCellValue(of.contact_person ?? ""); } if (i == 3) { - cell.SetCellValue(of.phone); + cell.SetCellValue(of.phone ?? ""); } if (i == 4) { - cell.SetCellValue(of.email); + cell.SetCellValue(of.email ?? ""); } if (i == 5) { - cell.SetCellValue(of.tax_id_number); + cell.SetCellValue(of.tax_id_number ?? ""); } if (i == 6) { - cell.SetCellValue(of.remark); + cell.SetCellValue(of.remark ?? ""); } if (i == 7) { - cell.SetCellValue(of.Created_at); + cell.SetCellValue(of.Created_at ?? ""); } cell.CellStyle = style12; @@ -395,7 +395,7 @@ namespace FrontendWebApi.ApiControllers and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 1 and opr.created_at >= '{ee.startdate.ToString().Split("T")[0]}' and opr.created_at <= '{ee.enddate.ToString().Split("T")[0]}';"; + where opr.deleted = 0 and opr.work_type = 1 and opr.created_at >= '{ee.startdate}' and opr.created_at <= '{ee.enddate}';"; var sheet = workbook.CreateSheet("廠商資料"); var operation_record = backendRepository.GetAllAsync(sqlString); List operation_record_file = new List(); @@ -465,27 +465,27 @@ namespace FrontendWebApi.ApiControllers cell = row.CreateCell(i); if (i == 0) { - cell.SetCellValue(or.work_type_name); + cell.SetCellValue(or.work_type_name == "null" ? "" : or.work_type_name); } if (i == 1) { - cell.SetCellValue(or.location); + cell.SetCellValue(or.location == "null" ? "" : or.location); } if (i == 2) { - cell.SetCellValue(or.formId); + cell.SetCellValue(or.formId == "null" ? "" : or.formId); } if (i == 3) { - cell.SetCellValue(or.device_name); + cell.SetCellValue(or.device_name == "null" ? "" : or.device_name); } if (i == 4) { - cell.SetCellValue(or.status_name); + cell.SetCellValue(or.status_name == "null" ? "" : or.status_name); } if (i == 5) { - cell.SetCellValue(or.user_full_name); + cell.SetCellValue(or.user_full_name == "null" ? "" : or.user_full_name); } if (i == 6) { @@ -547,7 +547,7 @@ namespace FrontendWebApi.ApiControllers } if (i == 9) { - cell.SetCellValue(or.Created_at); + cell.SetCellValue(or.Created_at ?? ""); } cell.CellStyle = style12; @@ -559,13 +559,20 @@ namespace FrontendWebApi.ApiControllers } else if (ee.work_type == 2) { + + + + + + + var sqlString = $@"select opr.*, d.full_name as device_name, ui.full_name as user_full_name from operation_record opr left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1) and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 2 and opr.created_at >= '{ee.startdate.ToString().Split("T")[0]}' and opr.created_at <= '{ee.enddate.ToString().Split("T")[0]}';"; + where opr.deleted = 0 and opr.work_type = 2 and opr.created_at >= '{ee.startdate}' and opr.created_at <= '{ee.enddate}';"; var sheet = workbook.CreateSheet("廠商資料"); var operation_record = backendRepository.GetAllAsync(sqlString); @@ -576,7 +583,8 @@ namespace FrontendWebApi.ApiControllers if (operation_record.Result.Count > 0) { foreach (var or in operation_record.Result) - { + + sqlString = $@"select * from operation_record_file where record_id = @record_id"; var param = new { @record_id = or.id }; operation_record_file = backendRepository.GetAllAsync(sqlString, param).Result; @@ -641,32 +649,32 @@ namespace FrontendWebApi.ApiControllers cell = row.CreateCell(i); if (i == 0) { - cell.SetCellValue(or.work_type_name); + cell.SetCellValue(or.work_type_name == "null" ? "" : or.work_type_name); } if (i == 1) { - cell.SetCellValue(or.location); + cell.SetCellValue(or.location == "null" ? "" : or.location); } if (i == 2) { - cell.SetCellValue(or.error_code); + cell.SetCellValue(or.error_code == "null" ? "" : or.error_code); sheet.AutoSizeColumn(i); } if (i == 3) { - cell.SetCellValue(or.formId); + cell.SetCellValue(or.formId == "null" ? "" : or.formId); } if (i == 4) { - cell.SetCellValue(or.device_name); + cell.SetCellValue(or.device_name == "null" ? "" : or.device_name); } if (i == 5) { - cell.SetCellValue(or.status_name); + cell.SetCellValue(or.status_name == "null" ? "" : or.status_name); } if (i == 6) { - cell.SetCellValue(or.user_full_name); + cell.SetCellValue(or.user_full_name == "null" ? "" : or.user_full_name); } if (i == 7) { @@ -728,7 +736,7 @@ namespace FrontendWebApi.ApiControllers } if (i == 10) { - cell.SetCellValue(or.Created_at); + cell.SetCellValue(or.Created_at == "null" ? "" : or.Created_at); } cell.CellStyle = style12; diff --git a/FrontendWebApi/wwwroot/excel/operation/維修_2023-07-31_2023-07-31.xlsx b/FrontendWebApi/wwwroot/excel/operation/維修_2023-07-31_2023-07-31.xlsx new file mode 100644 index 0000000..e69de29 From fa8238ffc7fe9d68a33cd3242e767c2ad925b843 Mon Sep 17 00:00:00 2001 From: dev02 Date: Thu, 3 Aug 2023 11:08:23 +0800 Subject: [PATCH 09/13] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A2=9D=E4=BB=B6=E6=99=82=E9=96=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApiControllers/OperationController.cs | 307 +++++++++--------- 1 file changed, 150 insertions(+), 157 deletions(-) diff --git a/FrontendWebApi/ApiControllers/OperationController.cs b/FrontendWebApi/ApiControllers/OperationController.cs index a9acb76..92c14bd 100644 --- a/FrontendWebApi/ApiControllers/OperationController.cs +++ b/FrontendWebApi/ApiControllers/OperationController.cs @@ -395,7 +395,7 @@ namespace FrontendWebApi.ApiControllers and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 1 and opr.created_at >= '{ee.startdate}' and opr.created_at <= '{ee.enddate}';"; + where opr.deleted = 0 and opr.work_type = 1 and opr.created_at >= '{ee.startdate.ToString().Split("_")[0] + "T00:00:00"}' and opr.created_at <= '{ee.enddate.ToString().Split("_")[0] + "T23:59:59"}';"; var sheet = workbook.CreateSheet("廠商資料"); var operation_record = backendRepository.GetAllAsync(sqlString); List operation_record_file = new List(); @@ -559,20 +559,13 @@ namespace FrontendWebApi.ApiControllers } else if (ee.work_type == 2) { - - - - - - - var sqlString = $@"select opr.*, d.full_name as device_name, ui.full_name as user_full_name from operation_record opr left join device d on opr.fix_do_code = d.device_number and d.deleted = 0 and d.device_area_tag = SUBSTRING_INDEX(opr.fix_do_code, '_', 1) and d.device_building_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 2), '_', -1) and d.device_floor_tag = SUBSTRING_INDEX(SUBSTRING_INDEX(opr.fix_do_code, '_', 5), '_', -1) and d.device_system_tag = opr.device_system_category_layer2 and d.device_name_tag = opr.device_system_category_layer3 left join userinfo ui on opr.work_person_id = ui.userinfo_guid - where opr.deleted = 0 and opr.work_type = 2 and opr.created_at >= '{ee.startdate}' and opr.created_at <= '{ee.enddate}';"; + where opr.deleted = 0 and opr.work_type = 2 and opr.created_at >= '{ee.startdate.ToString().Split("_")[0] + "T00:00:00"}' and opr.created_at <= '{ee.enddate.ToString().Split("_")[0] + "T23:59:59"}';"; var sheet = workbook.CreateSheet("廠商資料"); var operation_record = backendRepository.GetAllAsync(sqlString); @@ -581,170 +574,170 @@ namespace FrontendWebApi.ApiControllers if (operation_record.Result != null) { if (operation_record.Result.Count > 0) - { - foreach (var or in operation_record.Result) - - - sqlString = $@"select * from operation_record_file where record_id = @record_id"; - var param = new { @record_id = or.id }; - operation_record_file = backendRepository.GetAllAsync(sqlString, param).Result; - or.lorf = operation_record_file; - } - - int RowPosition = 0; - #region set cell - IRow row = sheet.CreateRow(RowPosition); - sheet.SetColumnWidth(0, 4 * 160 * 12); - sheet.SetColumnWidth(1, 4 * 160 * 12); - sheet.SetColumnWidth(2, 4 * 160 * 12); - sheet.SetColumnWidth(3, 4 * 160 * 12); - sheet.SetColumnWidth(4, 4 * 160 * 12); - sheet.SetColumnWidth(5, 4 * 160 * 12); - sheet.SetColumnWidth(6, 4 * 160 * 12); - sheet.SetColumnWidth(7, 4 * 160 * 12); - sheet.SetColumnWidth(8, 4 * 160 * 12); - sheet.SetColumnWidth(9, 4 * 160 * 12); - sheet.SetColumnWidth(10, 4 * 160 * 12); - ICell cell = row.CreateCell(0); - cell.SetCellValue("項目"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(1); - cell.SetCellValue("位置"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(2); - cell.SetCellValue("異常代號"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(3); - cell.SetCellValue("表單號"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(4); - cell.SetCellValue("設備名稱"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(5); - cell.SetCellValue("狀態"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(6); - cell.SetCellValue("處理人員"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(7); - cell.SetCellValue("預計施工時間"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(8); - cell.SetCellValue("檔案上傳"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(9); - cell.SetCellValue("完成時間"); - cell.CellStyle = styleLine12; - cell = row.CreateCell(10); - cell.SetCellValue("建立時間"); - cell.CellStyle = styleLine12; - - #endregion - foreach (var or in operation_record.Result) { - RowPosition += 1; - row = sheet.CreateRow(RowPosition); - for (var i = 0; i < 11; i++)//column + foreach (var or in operation_record.Result) + { + + sqlString = $@"select * from operation_record_file where record_id = @record_id"; + var param = new { @record_id = or.id }; + operation_record_file = backendRepository.GetAllAsync(sqlString, param).Result; + or.lorf = operation_record_file; + } + + int RowPosition = 0; + #region set cell + IRow row = sheet.CreateRow(RowPosition); + sheet.SetColumnWidth(0, 4 * 160 * 12); + sheet.SetColumnWidth(1, 4 * 160 * 12); + sheet.SetColumnWidth(2, 4 * 160 * 12); + sheet.SetColumnWidth(3, 4 * 160 * 12); + sheet.SetColumnWidth(4, 4 * 160 * 12); + sheet.SetColumnWidth(5, 4 * 160 * 12); + sheet.SetColumnWidth(6, 4 * 160 * 12); + sheet.SetColumnWidth(7, 4 * 160 * 12); + sheet.SetColumnWidth(8, 4 * 160 * 12); + sheet.SetColumnWidth(9, 4 * 160 * 12); + sheet.SetColumnWidth(10, 4 * 160 * 12); + ICell cell = row.CreateCell(0); + cell.SetCellValue("項目"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(1); + cell.SetCellValue("位置"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(2); + cell.SetCellValue("異常代號"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(3); + cell.SetCellValue("表單號"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(4); + cell.SetCellValue("設備名稱"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(5); + cell.SetCellValue("狀態"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(6); + cell.SetCellValue("處理人員"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(7); + cell.SetCellValue("預計施工時間"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(8); + cell.SetCellValue("檔案上傳"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(9); + cell.SetCellValue("完成時間"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(10); + cell.SetCellValue("建立時間"); + cell.CellStyle = styleLine12; + + #endregion + foreach (var or in operation_record.Result) { - cell = row.CreateCell(i); - if (i == 0) + RowPosition += 1; + row = sheet.CreateRow(RowPosition); + for (var i = 0; i < 11; i++)//column { - cell.SetCellValue(or.work_type_name == "null" ? "" : or.work_type_name); - } - if (i == 1) - { - cell.SetCellValue(or.location == "null" ? "" : or.location); - } - if (i == 2) - { - cell.SetCellValue(or.error_code == "null" ? "" : or.error_code); - sheet.AutoSizeColumn(i); - } - if (i == 3) - { - cell.SetCellValue(or.formId == "null" ? "" : or.formId); - } - if (i == 4) - { - cell.SetCellValue(or.device_name == "null" ? "" : or.device_name); - } - if (i == 5) - { - cell.SetCellValue(or.status_name == "null" ? "" : or.status_name); - } - if (i == 6) - { - cell.SetCellValue(or.user_full_name == "null" ? "" : or.user_full_name); - } - if (i == 7) - { - cell.SetCellValue(or.start_time != null ? ((DateTime)or.start_time).ToString("yyyy/MM/dd HH:mm:ss") : null); - } - if (i == 8)//image - { - var imageNames = or.lorf.Count > 0 ? or.lorf.Where(x => x.ori_file_name.Contains("JPG") || x.ori_file_name.Contains("PNG")).Select(x => x.save_file_name).ToList() : null; - if (imageNames != null) + cell = row.CreateCell(i); + if (i == 0) { - //insert image process - var dy1 = 10; - var dx1 = 10; - - //image column - sheet.SetColumnWidth(i, 16 * imageNames.Count * 256); //width: picture width(16:100), image total, per character(256) - foreach (var ins in imageNames) + cell.SetCellValue(or.work_type_name == "null" ? "" : or.work_type_name); + } + if (i == 1) + { + cell.SetCellValue(or.location == "null" ? "" : or.location); + } + if (i == 2) + { + cell.SetCellValue(or.error_code == "null" ? "" : or.error_code); + sheet.AutoSizeColumn(i); + } + if (i == 3) + { + cell.SetCellValue(or.formId == "null" ? "" : or.formId); + } + if (i == 4) + { + cell.SetCellValue(or.device_name == "null" ? "" : or.device_name); + } + if (i == 5) + { + cell.SetCellValue(or.status_name == "null" ? "" : or.status_name); + } + if (i == 6) + { + cell.SetCellValue(or.user_full_name == "null" ? "" : or.user_full_name); + } + if (i == 7) + { + cell.SetCellValue(or.start_time != null ? ((DateTime)or.start_time).ToString("yyyy/MM/dd HH:mm:ss") : null); + } + if (i == 8)//image + { + var imageNames = or.lorf.Count > 0 ? or.lorf.Where(x => x.ori_file_name.Contains("JPG") || x.ori_file_name.Contains("PNG")).Select(x => x.save_file_name).ToList() : null; + if (imageNames != null) { - //image initial - var extName = ins.Split('.')[1].ToUpper().Equals("JPG") ? "PNG" : ins.Split('.')[1].ToUpper(); - var fullPath = Path.Combine(operationFileSaveAsPath, ins); - var img = Image.FromFile(fullPath); + //insert image process + var dy1 = 10; + var dx1 = 10; - //compress image - decimal sizeRatio = ((decimal)img.Height / img.Width); - int thumbWidth = 100; - int thumbHeight = decimal.ToInt32(sizeRatio * thumbWidth); - var thumbStream = img.GetThumbnailImage(thumbWidth, thumbHeight, () => false, IntPtr.Zero); - var memoryStream = new MemoryStream(); - thumbStream.Save(memoryStream, ImageFormat.Jpeg); - - //setting pictureType enum - int format = 0; - var drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); - format = Convert.ToInt32(Enum.Parse(typeof(PictureType), extName)); - - //set picture size and location - if (format != 0) + //image column + sheet.SetColumnWidth(i, 16 * imageNames.Count * 256); //width: picture width(16:100), image total, per character(256) + foreach (var ins in imageNames) { - var pictureIds = workbook.AddPicture(memoryStream.ToArray(), format); - XSSFClientAnchor anchor = new XSSFClientAnchor(XSSFShape.EMU_PER_PIXEL * dx1, XSSFShape.EMU_PER_PIXEL * dy1, 0, 0, i, j, 0, 0); - anchor.AnchorType = AnchorType.DontMoveAndResize; - var picture = (XSSFPicture)drawing.CreatePicture(anchor, pictureIds); - var size = picture.GetImageDimension(); - row.HeightInPoints = size.Height; - picture.Resize(); + //image initial + var extName = ins.Split('.')[1].ToUpper().Equals("JPG") ? "PNG" : ins.Split('.')[1].ToUpper(); + var fullPath = Path.Combine(operationFileSaveAsPath, ins); + var img = Image.FromFile(fullPath); - //add 105 each new pic - dx1 += 105; + //compress image + decimal sizeRatio = ((decimal)img.Height / img.Width); + int thumbWidth = 100; + int thumbHeight = decimal.ToInt32(sizeRatio * thumbWidth); + var thumbStream = img.GetThumbnailImage(thumbWidth, thumbHeight, () => false, IntPtr.Zero); + var memoryStream = new MemoryStream(); + thumbStream.Save(memoryStream, ImageFormat.Jpeg); + + //setting pictureType enum + int format = 0; + var drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); + format = Convert.ToInt32(Enum.Parse(typeof(PictureType), extName)); + + //set picture size and location + if (format != 0) + { + var pictureIds = workbook.AddPicture(memoryStream.ToArray(), format); + XSSFClientAnchor anchor = new XSSFClientAnchor(XSSFShape.EMU_PER_PIXEL * dx1, XSSFShape.EMU_PER_PIXEL * dy1, 0, 0, i, j, 0, 0); + anchor.AnchorType = AnchorType.DontMoveAndResize; + var picture = (XSSFPicture)drawing.CreatePicture(anchor, pictureIds); + var size = picture.GetImageDimension(); + row.HeightInPoints = size.Height; + picture.Resize(); + + //add 105 each new pic + dx1 += 105; + } } } + + j++; + } + if (i == 9) + { + cell.SetCellValue(or.finish_time != null ? ((DateTime)or.finish_time).ToString("yyyy/MM/dd HH:mm:ss") : null); + } + if (i == 10) + { + cell.SetCellValue(or.Created_at == "null" ? "" : or.Created_at); } - j++; - } - if (i == 9) - { - cell.SetCellValue(or.finish_time != null ? ((DateTime)or.finish_time).ToString("yyyy/MM/dd HH:mm:ss") : null); - } - if (i == 10) - { - cell.SetCellValue(or.Created_at == "null" ? "" : or.Created_at); - } - - cell.CellStyle = style12; + cell.CellStyle = style12; + } } } } - } } workbook.Write(fs); From 67a441b98b6c2127b95b4f9e45a3c3a0488f0c3d Mon Sep 17 00:00:00 2001 From: dev02 Date: Fri, 4 Aug 2023 12:01:56 +0800 Subject: [PATCH 10/13] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_alert.html | 13 +++++----- Frontend/_historyData.html | 51 +++++++++++--------------------------- Frontend/_operation.html | 8 +++--- 3 files changed, 25 insertions(+), 47 deletions(-) diff --git a/Frontend/_alert.html b/Frontend/_alert.html index 54c8da9..8406a1f 100644 --- a/Frontend/_alert.html +++ b/Frontend/_alert.html @@ -774,10 +774,11 @@ function getData(type = null) { dataAlarm = []; $(loadEle).Loading("start"); - let enddate = new Date(new Date().setDate(new Date(pageAct.alr_enddate).getDate() + 1)).getTime(); + let enddate = new Date(pageAct.alr_enddate + " 23:59:59").getTime(); + let startdate = new Date(pageAct.alr_startdate + " 00:00:00").getTime(); if (pageAct.SysType == "all") { - getAllDeviceAlarmByBaja(new Date(pageAct.alr_startdate).getTime(), enddate, pageAct.return, pageAct.confirm, callBackFromAllDeviceAlert); + getAllDeviceAlarmByBaja(startdate, enddate, pageAct.return, pageAct.confirm, callBackFromAllDeviceAlert); } else { let elem = $('input[type=checkbox][data-type=sub]:checked'); @@ -788,12 +789,12 @@ elem.each(function (i, v) { if (v?.id === "other") { console.log(v?.id) - getOtherAlarmByBaja(new Date(pageAct.alr_startdate).getTime(), enddate, pageAct.return, pageAct.confirm, stackData); + getOtherAlarmByBaja(startdate, enddate, pageAct.return, pageAct.confirm, stackData); } else { pageAct.selSysMain = $(v).parent().data('main'); pageAct.selSysSub = $(v).prop('id'); - getAlarmByBaja(new Date(pageAct.alr_startdate).getTime(), enddate, pageAct.return, pageAct.confirm, pageAct.selSysMain + "_" + pageAct.selSysSub + "_AlarmClass", stackData); + getAlarmByBaja(startdate, enddate, pageAct.return, pageAct.confirm, pageAct.selSysMain + "_" + pageAct.selSysSub + "_AlarmClass", stackData); } }); } @@ -875,7 +876,7 @@ { "title": "設備名稱", "data": "sourceName_zh", - "render" : function (data) { + "render": function (data) { return allDevices.find(d => d.device_number === data)?.full_name || "" } }, @@ -921,7 +922,7 @@ ]; historyTable = new YourTeam.JqDataTables.getTableByStatic(tag, data, columns, column_defs, null, null, null, null, "tpi"); - $('#alertTable').DataTable().order([ 5, 'desc']); + $('#alertTable').DataTable().order([5, 'desc']); $(loadEle).Loading("close"); } diff --git a/Frontend/_historyData.html b/Frontend/_historyData.html index 8d81d4e..3a1a282 100644 --- a/Frontend/_historyData.html +++ b/Frontend/_historyData.html @@ -284,19 +284,7 @@ $('#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)); + searchDate(); } } ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send(); @@ -306,8 +294,8 @@ $(loadEle).Loading("start"); var sdt = new Date(); var edt = new Date(new Date().setDate(sdt.getDate() + 1)); - start = start ?? sdt.toLocaleDateString(); - end = end ?? edt.toLocaleDateString(); + start = start + " 00:00:00" ?? sdt.toLocaleDateString(); + end = end + " 23:59:59" ?? edt.toLocaleDateString(); let sendData = { device_number: pageAct.deviceNumber, @@ -356,19 +344,7 @@ pageAct.devicePoiName = $(elem).text(); pageAct.deviceItem = deviceItem; - 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)); + searchDate(); } } @@ -387,10 +363,10 @@ $('#getmonth').css('display', 'none'); $('#his_startdate').val(date); - if (type == "today") - getData(formatDate(now, "date", true), formatDate(tmr, "date", true)); - else if (type == "ytd") - getData(formatDate(ytd, "date", true), formatDate(now, "date", true)); + if (type == "today") + getData(formatDate(now, "date", true), formatDate(now, "date", true)); + else if (type == "ytd") + getData(formatDate(ytd, "date", true), formatDate(ytd, "date", true)); else { $(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary'); $(`[onclick="setDateType('today', this)"]`).addClass('btn-info'); @@ -426,14 +402,15 @@ } function searchDate() { - let start = new Date($('#his_startdate').val()); - let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1)); + let start = new Date($('#his_startdate').val()); + let end = new Date($('#his_enddate input').val()); if (pageAct.dateType == "today" || pageAct.dateType == "day" || pageAct.dateType == "ytd") - end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 1)); + end = start; else if (pageAct.dateType == "month") { - start = new Date($('#getmonth').val()); - end = new Date(new Date(start.valueOf()).setDate(start.getDate() + 30)); + start = new Date($('#getmonth').val()); + end = new Date(start.valueOf()).setMonth(start.getMonth() + 1); + end = new Date(new Date(end).setDate(new Date(end).getDate() - 1)); } else if (pageAct.dateType != "range") return; diff --git a/Frontend/_operation.html b/Frontend/_operation.html index e58d435..2a4fbf9 100644 --- a/Frontend/_operation.html +++ b/Frontend/_operation.html @@ -1014,7 +1014,6 @@ startdate: pageAct.startdate == undefined ? null : pageAct.startdate, enddate: pageAct.enddate == undefined ? null : pageAct.enddate, }; - console.log("data", objSendData.Data) 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"); @@ -1314,8 +1313,8 @@ //fd.append("end_time", ($('#inpEndTime').val() || null) == null ? $('#inpEndTime').val() : new Date($('#inpEndTime').val()).toISOString()); //fd.append("work_time", ($('#inpWorTime').val() || null) == null ? $('#inpWorTime').val() : new Date($('#inpWorTime').val()).toISOString()); fd.append("finish_time", (parseInt($('#' + (pageAct.work_type == '1' ? 'inpStatus' : 'inpStatus_2') + ' [name=' + (pageAct.work_type == '1' ? 'inpSta' : 'inpSta_2') + ']:checked').data('value'))) == 1 ? new Date(Date.now()).toISOString() : null); - fd.append("notice", $(pageAct.work_type == "1" ? '#inpNotice' : '#inpNotice_2').val() || null); - fd.append("description", $(pageAct.work_type == "1" ? '#inpDescription' : '#inpDescription_2').val() || null); + fd.append("notice", $(pageAct.work_type == "1" ? '#inpNotice' : '#inpNotice_2').val() || ''); + fd.append("description", $(pageAct.work_type == "1" ? '#inpDescription' : '#inpDescription_2').val() || ''); //let sendData = { // location: $('#inpArea option:selected').text() + $('#inpBuilding option:selected').text() + $('#inpFloor option:selected').text(), @@ -1367,6 +1366,7 @@ clearOpeRecPageAct(); selUser(); selDevice(); + selOpeFir(); $('#ope_forImage').html(''); $('#ope_forFile').html(''); @@ -1404,7 +1404,7 @@ $(pageAct.work_type == "1" ? '#inpDescription' : '#inpDescription_2').val(res.data.description); let elemSel = $(pageAct.work_type == "1" ? '#inpFixDoCode' : '#inpFixDoCode_2').find('option:selected');; pageAct.number = elemSel.val(); - selOpeFir(); + ope_imgHtml = null; $.each(res.data.lorf, function (i, v) { From 088552a6bbe9d28a922d1cecbf597f1bb3c11752 Mon Sep 17 00:00:00 2001 From: keke Date: Fri, 4 Aug 2023 16:24:08 +0800 Subject: [PATCH 11/13] =?UTF-8?q?[=E5=BE=8C=E5=8F=B0]=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9F=A5=E8=A9=A2=20Niagara=20=E8=A8=AD=E5=82=99=E8=B3=87?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/NiagaraDataSynchronize/Index.cshtml | 155 +++++++++++++++++- 1 file changed, 154 insertions(+), 1 deletion(-) diff --git a/Backend/Views/NiagaraDataSynchronize/Index.cshtml b/Backend/Views/NiagaraDataSynchronize/Index.cshtml index 98cfe79..a9c1b6a 100644 --- a/Backend/Views/NiagaraDataSynchronize/Index.cshtml +++ b/Backend/Views/NiagaraDataSynchronize/Index.cshtml @@ -52,6 +52,13 @@
+
+
+
+
+
+
+ @@ -60,7 +67,7 @@ - +
point_name
@@ -79,6 +86,7 @@ var buildingId, building; var rawDataImportTable; var ds; + var dataInTable; var today = new Date(); var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate(); @@ -89,6 +97,9 @@ projectName(); rawDataImportTable = $("#niagara_data_table").DataTable({ + paging: false, + searching: false, + destroy: true, "columns": [ { "data": "value" @@ -131,6 +142,8 @@ var dateTime = date + ' ' + time; document.getElementById('loadDataText').innerText = "共 " + rel.data.length + " 筆資料 \n" + dateTime; } + dataInTable = data; + console.log("---", dataInTable); return data; } } @@ -253,5 +266,145 @@ } }, 'json'); } + + let buildingValue, systemMainId, systemMainValue, systemSubId, systemSubValue; + + document.querySelector(".building_select").addEventListener("click", (e) => { + buildingValue = e.target.dataset.value; + $(".building_select .btn-info.active").removeClass('btn-info active') + $(e.target).addClass('btn-info active'); + }) + document.querySelector(".systemSubType_select").addEventListener("click", (e) => { + systemSubId = e.target.dataset.value; + systemSubValue = e.target.dataset.systemValue; + $(".systemSubType_select .btn-info.active").removeClass('btn-info active') + $(e.target).addClass('btn-info active'); + }) + + $(function () { + // 產生所有棟別下拉式選單 + fetch("/BuildInfo/BuildInfoList", { + method: "POST" + }).then(res => res.json()).then(({ data }) => { + const buildingElement = document.querySelector(".building_select"); + + console.log(data); + let str = ""; + data.forEach(({ full_name, building_tag + }) => { + if (building_tag.includes("$3")) { + building_tag = building_tag.replace("$3", ""); + } + str += ``; + }) + buildingElement.innerHTML = str; + }); + + // 產生所有大類系統下拉式選單 + const systemMainTypeElement = document.querySelector(".systemMainType_select"); + let init_id = ''; + fetch("/SystemCategory/SystemMainList", { + method: "POST" + }).then(res => res.json()).then(({ data }) => { + //console.log(data); + init_id = data[0].id; + //console.log(init_id); + let str = ""; + data.forEach(({ id, system_key, system_value + }) => { + str += ``; + }) + systemMainTypeElement.innerHTML = str; + FetchSystenSubList(init_id); + }); + + // 產生所有小類系統下拉式選單 + systemMainTypeElement.addEventListener("click", (e) => { + systemMainId = e.target.dataset.value; + systemMainValue = e.target.dataset.systemValue; + $(".systemMainType_select .btn-info.active").removeClass('btn-info active') + $(e.target).addClass('btn-info active'); + //console.log(value); + + FetchSystenSubList(systemMainId); + }) + }); + + function FetchSystenSubList(id) { + var formData = new FormData(); + formData.append("id", parseInt(id)); + + fetch("/SystemCategory/SystemSubList", { + method: "POST", + body: formData + }).then(res => res.json()).then(({ data }) => { + const systemSubTypeElement = document.querySelector(".systemSubType_select"); + + //console.log(data); + let str = ""; + data.forEach(({ id, system_key, system_value + }) => { + str += ``; + }); + systemSubTypeElement.innerHTML = str; + }) + } + + // 查詢功能,查棟別跟大類 + const searchButton = document.querySelector("#search"); + searchButton.addEventListener("click", (e) => { + //const buildingValue = document.querySelector(".building_select").value; + //const systemMainId = document.querySelector(".systemMainType_select").value; + //const systemMainValue = document.querySelector(`option[value='${systemMainId}']`).getAttribute("data-system-value"); + //const systemSubId = document.querySelector(".systemSubType_select").value; + //const systemSubValue = document.querySelector(`option[value='${systemSubId}']`).getAttribute("data-system-value"); + + console.log("111", buildingValue, systemMainValue); + + const table_body = document.querySelector('.raw_data'); + let rawdata_table_body = ''; + let count = 1; + //dataInTable.forEach(({ tag_name, value, point_name + //}) => { + // console.log("111", buildingValue, systemMainValue, systemSubValue); + // console.log("222", tag_name.includes(`_${buildingValue}_`), tag_name.includes(`_${systemMainValue}_`), tag_name.includes(`_${systemSubValue}_`)); + // console.log("333", tag_name, value); + // console.log("444", rawdata_table_body); + + // if (tag_name.includes(`_${buildingValue}_`) && tag_name.includes(`_${systemMainValue}_`)) { + // console.log("333", tag_name, value); + // let odd_or_even = ''; + // if (count % 2 == 0) { + // odd_or_even = 'odd'; + // } else { + // odd_or_even = 'even'; + // } + + // rawdata_table_body += `${value}${tag_name}${point_name}`; + // } + + //}); + //table_body.innerHTML = rawdata_table_body; + let search_str = `_${buildingValue}_${systemMainValue}_${systemSubValue}_`; + console.log("$$$", search_str, dataInTable.filter(({ tag_name }) => tag_name.includes(search_str))) + $("#niagara_data_table").DataTable({ + paging: false, + searching: false, + destroy: true, + "columns": [ + { + "data": "value" + }, + { + "data": "tag_name" + }, + { + "data": "point_name" + }, + ], + data: dataInTable.filter(({ tag_name }) => tag_name.includes(search_str)) + }) + }) + } \ No newline at end of file From 2cd214f545ca7f2d9538933a06c54fe39dc5229f Mon Sep 17 00:00:00 2001 From: keke Date: Fri, 4 Aug 2023 17:11:47 +0800 Subject: [PATCH 12/13] =?UTF-8?q?[=E5=BE=8C=E7=AB=AF]=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=85=A8=E9=81=B8=E5=8A=9F=E8=83=BD=E5=8F=8A=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20paging=EF=BC=8C=E5=8F=AF=E4=BB=A5=E4=B8=80=E9=A0=81=E7=80=8F?= =?UTF-8?q?=E8=A6=BD=E5=8D=81=E7=AD=86=E8=B3=87=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/NiagaraDataSynchronize/Index.cshtml | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/Backend/Views/NiagaraDataSynchronize/Index.cshtml b/Backend/Views/NiagaraDataSynchronize/Index.cshtml index a9c1b6a..70fa8d6 100644 --- a/Backend/Views/NiagaraDataSynchronize/Index.cshtml +++ b/Backend/Views/NiagaraDataSynchronize/Index.cshtml @@ -59,6 +59,7 @@

+ @@ -97,7 +98,7 @@ projectName(); rawDataImportTable = $("#niagara_data_table").DataTable({ - paging: false, + //paging: false, searching: false, destroy: true, "columns": [ @@ -388,7 +389,7 @@ let search_str = `_${buildingValue}_${systemMainValue}_${systemSubValue}_`; console.log("$$$", search_str, dataInTable.filter(({ tag_name }) => tag_name.includes(search_str))) $("#niagara_data_table").DataTable({ - paging: false, + //paging: false, searching: false, destroy: true, "columns": [ @@ -406,5 +407,29 @@ }) }) + const noFilterButton = document.querySelector("#no_filter"); + noFilterButton.addEventListener("click", (e) => { + $(".building_select .btn-info.active").removeClass('btn-info active'); + $(".systemMainType_select .btn-info.active").removeClass('btn-info active'); + $(".systemSubType_select .btn-info.active").removeClass('btn-info active'); + $("#niagara_data_table").DataTable({ + //paging: false, + searching: false, + destroy: true, + "columns": [ + { + "data": "value" + }, + { + "data": "tag_name" + }, + { + "data": "point_name" + }, + ], + data: dataInTable + }) + }) + } \ No newline at end of file From cf230004501396be7950884fa6464f0fe1584486 Mon Sep 17 00:00:00 2001 From: keke Date: Wed, 9 Aug 2023 17:13:03 +0800 Subject: [PATCH 13/13] =?UTF-8?q?[=E5=BE=8C=E5=8F=B0]=20Niagara=20?= =?UTF-8?q?=E8=B3=87=E6=96=99=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD=E6=88=90?= =?UTF-8?q?=E5=8A=9F=20=E6=8A=8A=E8=B3=87=E6=96=99=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E7=B7=A8=E7=A2=BC=E5=85=A8=E9=83=A8=E6=94=B9=E6=88=90=20utf8mb?= =?UTF-8?q?4=5Funicode=5Fci=20=E5=B0=87=20ibms=5Fdome=5Fdome.import=5Fniag?= =?UTF-8?q?ara=5Ftag.niagara=5Ftags=20=E8=B7=9F=20ibms=5Fdome=5Fdome.devic?= =?UTF-8?q?e.device=5Fnumber=20=E6=94=B9=E6=88=90=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Backend/Controllers/NiagaraDataSynchronizeController.cs | 2 +- Backend/Views/NiagaraDataSynchronize/Index.cshtml | 5 ++++- .../Implement/NiagaraDataSynchronizeRepository.cs | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Backend/Controllers/NiagaraDataSynchronizeController.cs b/Backend/Controllers/NiagaraDataSynchronizeController.cs index 4153bc4..ed2451c 100644 --- a/Backend/Controllers/NiagaraDataSynchronizeController.cs +++ b/Backend/Controllers/NiagaraDataSynchronizeController.cs @@ -164,7 +164,7 @@ namespace Backend.Controllers var urlSlots = backendRepository.GetAllAsync("select obixSlot from building where deleted = 0").Result; //foreach(var us in urlSlots) //{ - var data = svc.obixHisQuery(obixApiConfig.ApiBase + "obix/config/Program/ObixQuery/query/", obixApiConfig.ApiBase + "obix/histories", "", + var data = svc.obixHisQuery_v2(obixApiConfig.ApiBase + "obix/config/Program/ObixQuery/query/", obixApiConfig.ApiBase + "obix/histories", "", obixApiConfig.UserName, obixApiConfig.Password); ds.AddRange(data); // } diff --git a/Backend/Views/NiagaraDataSynchronize/Index.cshtml b/Backend/Views/NiagaraDataSynchronize/Index.cshtml index 70fa8d6..48f6bdc 100644 --- a/Backend/Views/NiagaraDataSynchronize/Index.cshtml +++ b/Backend/Views/NiagaraDataSynchronize/Index.cshtml @@ -130,7 +130,10 @@ { v.value = v.value.replace("$3", ""); v.tag_name = v.tag_name.replace("$3", ""); - v.point_name = v.point_name.replace("$3", ""); + if (v.point_name != null) + { + v.point_name = v.point_name.replace("$3", ""); + } } }) //console.log(ds) diff --git a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs index 18cdf7b..4ee1e47 100644 --- a/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs +++ b/Repository/BackendRepository/Implement/NiagaraDataSynchronizeRepository.cs @@ -132,7 +132,7 @@ namespace Repository.BackendRepository.Implement where (device_system_tag <> 'S' and device_system_tag <> 'CWB'); update import_niagara_tag a join dic_system b - on a.device_name_tag COLLATE utf8mb4_general_ci = b.s2_code + on a.device_name_tag COLLATE utf8mb4_unicode_ci = b.s2_code COLLATE utf8mb4_unicode_ci set device_system_tag = b.s1_code -- tag 第二碼為小類(除了安全系統之外) where (device_system_tag <> 'S' and device_system_tag <> 'CWB'); -- 安全系統 第二段大類 第四段小類"); await conn.ExecuteAsync(sb.ToString());