[FE API] 未完成 更新報表標頭時間刷新
This commit is contained in:
parent
02db092954
commit
2e7a7eed41
@ -883,6 +883,44 @@ namespace FrontendWebApi.ApiControllers
|
|||||||
workbook = new XSSFWorkbook(templateStream);
|
workbook = new XSSFWorkbook(templateStream);
|
||||||
var sheet = workbook.GetSheetAt(0); // 這裡假設您要使用第一個工作表
|
var sheet = workbook.GetSheetAt(0); // 這裡假設您要使用第一個工作表
|
||||||
|
|
||||||
|
// 初始先填表格時間
|
||||||
|
int rowInit = 0;
|
||||||
|
int colInit = 0;
|
||||||
|
IRow row = sheet.GetRow(rowInit++) ?? sheet.CreateRow(rowInit++);
|
||||||
|
ICell cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
DateTime date = DateTime.ParseExact(input.startTime + "-01", "yyyy-MM-dd", null); // 2023-08
|
||||||
|
date = date.AddYears(-1911);
|
||||||
|
var start_year = date.ToString("yyy"); // 查詢年
|
||||||
|
var start_month = date.ToString("MM"); // 查詢月
|
||||||
|
cell.SetCellValue("明志科技大學" + start_year + "年" + start_month + "月份用電差異比較表");
|
||||||
|
|
||||||
|
row = sheet.GetRow(rowInit++) ?? sheet.CreateRow(rowInit++);
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
DateTime timeDay = date.AddMonths(1).AddDays(-1); // 用來記錄每個月的最後一天是幾月幾號
|
||||||
|
string timeRange = start_year + "." + start_month + ".01~" + timeDay.ToString("yyy.MM.dd");
|
||||||
|
cell.SetCellValue("電錶週期:" + timeRange);
|
||||||
|
|
||||||
|
row = sheet.GetRow(rowInit++) ?? sheet.CreateRow(rowInit++);
|
||||||
|
colInit = 3;
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
cell.SetCellValue("本月(A)\n" + start_year + "." + start_month);
|
||||||
|
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
DateTime previousMonth = date.AddMonths(-1);
|
||||||
|
string lastMonth = previousMonth.ToString("MM");
|
||||||
|
cell.SetCellValue("上月(B)\n" + start_year + "." + lastMonth);
|
||||||
|
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
cell.SetCellValue("上月差異(C)\n");
|
||||||
|
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
DateTime previousYear = date.AddYears(-1);
|
||||||
|
string lastYear = previousYear.ToString("yyy");
|
||||||
|
cell.SetCellValue("去年同期(D)\n" + lastYear + "." + start_month);
|
||||||
|
|
||||||
|
cell = row.GetCell(colInit++) ?? row.CreateCell(colInit++);
|
||||||
|
cell.SetCellValue("上年差異(E)\n");
|
||||||
|
|
||||||
// 設定要填入資料的位置(rowIndex 和 columnIndex)
|
// 設定要填入資料的位置(rowIndex 和 columnIndex)
|
||||||
int rowIndex = 4; // 假設要從第二列開始填入
|
int rowIndex = 4; // 假設要從第二列開始填入
|
||||||
int columnIndex = 1; // 假設第一欄是要填入的位置
|
int columnIndex = 1; // 假設第一欄是要填入的位置
|
||||||
@ -890,11 +928,11 @@ namespace FrontendWebApi.ApiControllers
|
|||||||
foreach (var r in result)
|
foreach (var r in result)
|
||||||
{
|
{
|
||||||
columnIndex = 1;
|
columnIndex = 1;
|
||||||
IRow row = sheet.GetRow(rowIndex) ?? sheet.CreateRow(rowIndex);
|
row = sheet.GetRow(rowIndex) ?? sheet.CreateRow(rowIndex);
|
||||||
|
|
||||||
string buildingName = r.building_name;
|
string buildingName = r.building_name;
|
||||||
string floorTag = r.floor_tag;
|
string floorTag = r.floor_tag;
|
||||||
ICell cell = row.GetCell(columnIndex++) ?? row.CreateCell(columnIndex++);
|
cell = row.GetCell(columnIndex++) ?? row.CreateCell(columnIndex++);
|
||||||
cell.SetCellValue(buildingName + floorTag);
|
cell.SetCellValue(buildingName + floorTag);
|
||||||
|
|
||||||
cell = row.GetCell(columnIndex++) ?? row.CreateCell(columnIndex++);
|
cell = row.GetCell(columnIndex++) ?? row.CreateCell(columnIndex++);
|
||||||
@ -909,24 +947,6 @@ namespace FrontendWebApi.ApiControllers
|
|||||||
|
|
||||||
rowIndex++;
|
rowIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// // 設定欲填入的值
|
|
||||||
// string buildingName = "Building A";
|
|
||||||
// string floorTag = "1F";
|
|
||||||
// string deviceFullName = "Device X";
|
|
||||||
// string unit = "kWh";
|
|
||||||
|
|
||||||
// // 填入資料
|
|
||||||
// IRow row = sheet.GetRow(rowIndex) ?? sheet.CreateRow(rowIndex);
|
|
||||||
// ICell cell = row.GetCell(columnIndex) ?? row.CreateCell(columnIndex);
|
|
||||||
// cell.SetCellValue(buildingName);
|
|
||||||
|
|
||||||
// // 同樣方式填入其他資料
|
|
||||||
// cell = row.GetCell(columnIndex + 1) ?? row.CreateCell(columnIndex + 1);
|
|
||||||
// cell.SetCellValue(floorTag);
|
|
||||||
|
|
||||||
// ...
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 8/24 修改到這裡囉 ---
|
// --- 8/24 修改到這裡囉 ---
|
||||||
@ -1080,12 +1100,6 @@ order by e.priority, a.priority";
|
|||||||
avg_rawdata = (double.Parse(x.searchM) - double.Parse(x.lastY)).ToString()
|
avg_rawdata = (double.Parse(x.searchM) - double.Parse(x.lastY)).ToString()
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
//HydroMeterRawDataOutput newData1 = new HydroMeterRawDataOutput
|
|
||||||
//{
|
|
||||||
// timeStamp = rawData.FirstOrDefault(x => x.timeStamp == searchTime),
|
|
||||||
// device_number = l.device_number,
|
|
||||||
// avg_rawdata
|
|
||||||
//};
|
|
||||||
|
|
||||||
l.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{l.device_number}'");
|
l.device_full_name = await backendRepository.GetOneAsync<string>($"select full_name from device where device_number = '{l.device_number}'");
|
||||||
l.building_name = await backendRepository.GetOneAsync<string>("select full_name from building where building_tag = @building_tag and deleted = 0",
|
l.building_name = await backendRepository.GetOneAsync<string>("select full_name from building where building_tag = @building_tag and deleted = 0",
|
||||||
@ -1095,71 +1109,6 @@ order by e.priority, a.priority";
|
|||||||
? (Math.Round(input.price.Value, 2)).ToString()
|
? (Math.Round(input.price.Value, 2)).ToString()
|
||||||
: Math.Round((await backendRepository.GetOneAsync<decimal>("select system_value from variable where system_type = 'ElectricPrice' and deleted = 0")), 2).ToString();
|
: Math.Round((await backendRepository.GetOneAsync<decimal>("select system_value from variable where system_type = 'ElectricPrice' and deleted = 0")), 2).ToString();
|
||||||
l.total_price = Math.Round((Decimal.Parse(l.total) * Decimal.Parse(l.price)), 2).ToString();
|
l.total_price = Math.Round((Decimal.Parse(l.total) * Decimal.Parse(l.price)), 2).ToString();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//l.building_name = l.building_name;
|
|
||||||
//l.total = l.rawData.Where(x => x.avg_rawdata != "NaN").Sum(x => decimal.Parse(x.avg_rawdata ?? "0", System.Globalization.NumberStyles.Float)).ToString();
|
|
||||||
|
|
||||||
//HydroMeterRawDataEachTotalOutput newData1 = new HydroMeterRawDataEachTotalOutput
|
|
||||||
//{
|
|
||||||
// building_name = l.building_name,
|
|
||||||
// device_number = l.device_number,
|
|
||||||
// searchMT = header_now,
|
|
||||||
// searchM = l.searchM,
|
|
||||||
// lastM = l.lastM,
|
|
||||||
// lastY = l.lastY,
|
|
||||||
// lastMT= header_lastM,
|
|
||||||
// lastYT = header_lastY
|
|
||||||
//};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//ResultData.Add(newData1);
|
|
||||||
//var lastYear = previousYear.ToString("yyyy-MM");
|
|
||||||
//var lastMonth = previousMonth.ToString("yyyy-MM");
|
|
||||||
//var searchTime = input.startTime; // 欲查詢的月份
|
|
||||||
|
|
||||||
// 找到符合 searchTime 和 lastMonth 條件的資料
|
|
||||||
//var searchTimeData = l.rawData.FirstOrDefault(x => x.timeStamp == searchTime);
|
|
||||||
//var lastMonthData = l.rawData.FirstOrDefault(x => x.timeStamp == lastMonth);
|
|
||||||
//var lastYearData = l.rawData.FirstOrDefault(x => x.timeStamp == lastYear);
|
|
||||||
|
|
||||||
//if (searchTimeData != null && lastMonthData != null && lastYearData != null)
|
|
||||||
//{
|
|
||||||
// // 將 avg_rawdata 字串轉換為 double 型別
|
|
||||||
// double searchTimeValue = Convert.ToDouble(searchTimeData.avg_rawdata);
|
|
||||||
// double lastMonthValue = Convert.ToDouble(lastMonthData.avg_rawdata);
|
|
||||||
// double lastYearValue = Convert.ToDouble(lastYearData.avg_rawdata);
|
|
||||||
|
|
||||||
// // 計算差值
|
|
||||||
// double month_diff = searchTimeValue - lastMonthValue;
|
|
||||||
// double year_diff = searchTimeValue - lastYearValue;
|
|
||||||
|
|
||||||
// // 創建新的 HydroMeterRawDataOutput
|
|
||||||
// HydroMeterRawDataOutput newData1 = new HydroMeterRawDataOutput
|
|
||||||
// {
|
|
||||||
// timeStamp = "last month different",
|
|
||||||
// device_number = searchTimeData.device_number,
|
|
||||||
// avg_rawdata = month_diff.ToString()
|
|
||||||
// };
|
|
||||||
|
|
||||||
// HydroMeterRawDataOutput newData2 = new HydroMeterRawDataOutput
|
|
||||||
// {
|
|
||||||
// timeStamp = "last year different",
|
|
||||||
// device_number = searchTimeData.device_number,
|
|
||||||
// avg_rawdata = year_diff.ToString()
|
|
||||||
// };
|
|
||||||
|
|
||||||
// // 將新資料加入到 l.rawData 中
|
|
||||||
// l.rawData.Add(newData1);
|
|
||||||
// l.rawData.Add(newData2);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
apiResult.Code = "0000";
|
apiResult.Code = "0000";
|
||||||
|
Loading…
Reference in New Issue
Block a user