[WebApi]修正水電報表匯出CSV欄位錯誤問題

This commit is contained in:
張家睿 2025-02-24 14:41:47 +08:00
parent bfe4c01caa
commit 9311e36c81

View File

@ -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<OutputBillExcel> data)
private string GenerateCsv(List<OutputBillExcel> 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)