From 9311e36c81d007a6963fb02f9b00c98948063f11 Mon Sep 17 00:00:00 2001 From: "jay.chang" Date: Mon, 24 Feb 2025 14:41:47 +0800 Subject: [PATCH] =?UTF-8?q?[WebApi]=E4=BF=AE=E6=AD=A3=E6=B0=B4=E9=9B=BB?= =?UTF-8?q?=E5=A0=B1=E8=A1=A8=E5=8C=AF=E5=87=BACSV=E6=AC=84=E4=BD=8D?= =?UTF-8?q?=E9=8C=AF=E8=AA=A4=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApiControllers/TenantBillController.cs | 55 ++++--------------- 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/FrontendWebApi/ApiControllers/TenantBillController.cs b/FrontendWebApi/ApiControllers/TenantBillController.cs index 81dcf9a..cf00cc8 100644 --- a/FrontendWebApi/ApiControllers/TenantBillController.cs +++ b/FrontendWebApi/ApiControllers/TenantBillController.cs @@ -751,7 +751,6 @@ namespace FrontendWebApi.ApiControllers var fileDateName = DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss"); var waterMeterFileName = $"水電報表_水錶_{fileDateName}.csv"; var electricMeterFileName = $"水電報表_電錶_{fileDateName}.csv"; - var zipFileName = $"水電報表_{fileDateName}.zip"; try { @@ -790,7 +789,7 @@ namespace FrontendWebApi.ApiControllers // 判斷是否有資料 if (existMonth.Count == 0) { - var msg = new { Code = "0001", Msg = "還沒有選擇用戶,無法匯出檔案。" }; + var msg = new { Code = "0001", Msg = "時間段無資料或無設置用戶。" }; return StatusCode(400, msg); } else @@ -862,12 +861,6 @@ namespace FrontendWebApi.ApiControllers var waterMeterData = outputBillExcel.Where(x => x.device_name_tag == "W1" && x.building_tag == tb.building_tag).ToList(); var electricMeterData = outputBillExcel.Where(x => x.device_name_tag == "E4" && x.building_tag == tb.building_tag).ToList(); - // 檢查是否有水錶或電錶數據 - //if (waterMeterData.Count == 0 && electricMeterData.Count == 0) - //{ - // var msg = new { Code = "0002", Msg = "該棟沒有可匯出的水錶或電錶數據。" }; - // return StatusCode(400, msg); - //} if (tb.tableType == "elec" && electricMeterData.Count == 0) { @@ -885,11 +878,11 @@ namespace FrontendWebApi.ApiControllers string electricMeterCsv = null; if (waterMeterData.Count > 0) { - waterMeterCsv = GenerateCsv(waterMeterData); + waterMeterCsv = GenerateCsv(waterMeterData, "water"); } if (electricMeterData.Count > 0) { - electricMeterCsv = GenerateCsv(electricMeterData); + electricMeterCsv = GenerateCsv(electricMeterData, "elec"); } // 返回CSV文件 @@ -921,37 +914,6 @@ namespace FrontendWebApi.ApiControllers return StatusCode(400, msg); } - - - //// 創建ZIP檔案 - //using (var zipMemoryStream = new MemoryStream()) - //{ - // using (var archive = new ZipArchive(zipMemoryStream, ZipArchiveMode.Create, true)) - // { - // if (waterMeterData.Count > 0) - // { - // var waterEntry = archive.CreateEntry(waterMeterFileName); - // using (var entryStream = waterEntry.Open()) - // using (var streamWriter = new StreamWriter(entryStream, Encoding.UTF8)) - // { - // streamWriter.Write(waterMeterCsv); - // } - // } - - // if (electricMeterData.Count > 0) - // { - // var electricEntry = archive.CreateEntry(electricMeterFileName); - // using (var entryStream = electricEntry.Open()) - // using (var streamWriter = new StreamWriter(entryStream, Encoding.UTF8)) - // { - // streamWriter.Write(electricMeterCsv); - // } - // } - // } - - // zipMemoryStream.Seek(0, SeekOrigin.Begin); - // return File(zipMemoryStream.ToArray(), "application/zip", zipFileName); - //} } catch (Exception exception) { @@ -963,12 +925,19 @@ namespace FrontendWebApi.ApiControllers } - private string GenerateCsv(List data) + private string GenerateCsv(List data, string type) { StringBuilder csv = new StringBuilder(); // 添加CSV標題行 - csv.AppendLine("用戶,設備代碼,設備名稱,日期,用電單價(元/度),當日用電(kWh),電費(元),起訖時間"); + if (type == "elec") + { + csv.AppendLine("用戶,設備代碼,設備名稱,日期,用電單價(元/度),當日用電(kWh),電費(元),起訖時間"); + } + else if (type == "water") + { + csv.AppendLine("用戶,設備代碼,設備名稱,日期,用水單價(元/度),當日用水(m³),水費(元),起訖時間"); + } // 添加數據行 foreach (var item in data)