diff --git a/SolarPower/Controllers/StationReportController.cs b/SolarPower/Controllers/StationReportController.cs index cab003a..e44cf14 100644 --- a/SolarPower/Controllers/StationReportController.cs +++ b/SolarPower/Controllers/StationReportController.cs @@ -1116,7 +1116,7 @@ namespace SolarPower.Controllers { "小時發電量(kWh)", "小時發電量百分比(%)", - "小時平均日照度(W/㎡)", + "小時累積日照度(W/㎡)", "小時平均模組溫度(°C)" }; if (Formhead.Result.Data.ShowMoney == 1) @@ -1138,7 +1138,7 @@ namespace SolarPower.Controllers #region 顯示body //RowPosition = 1 RowPosition++; - var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = ""; var GeneratingCapacity = ""; + var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = ""; var GeneratingCapacity = ""; var AverageDailyProfit = ""; foreach (dynamic body in Formbody.Result.Data) { @@ -1157,6 +1157,7 @@ namespace SolarPower.Controllers onemoney = 0; } ntdone = Checknull(Math.Round(onemoney, 4).ToString()); + AverageDailyProfit = Checknull(Math.Round((Convert.ToDouble(ntd) / Convert.ToDouble(GeneratingCapacity)), 2).ToString()); row = sheet.CreateRow(RowPosition); cell = row.CreateCell(index); @@ -1215,7 +1216,7 @@ namespace SolarPower.Controllers index = 0; row = sheet.CreateRow(RowPosition); cell = row.CreateCell(index); - cell.SetCellValue("有效發電小時:"); + cell.SetCellValue("日均發電度數:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); cell.SetCellValue(!string.IsNullOrEmpty(kWhkwp) ? Convert.ToDouble(kWhkwp) : 0); @@ -1274,6 +1275,16 @@ namespace SolarPower.Controllers cell = row.CreateCell(1); cell.SetCellValue(!string.IsNullOrEmpty(ntdone) ? Convert.ToDouble(ntdone) : 0); cell.CellStyle = styleLine12; + RowPosition++; + + index = 0; + row = sheet.CreateRow(RowPosition); + cell = row.CreateCell(index); + cell.SetCellValue("日均獲利(NTD):"); + cell.CellStyle = styleLine12; + cell = row.CreateCell(1); + cell.SetCellValue(!string.IsNullOrEmpty(AverageDailyProfit) ? Convert.ToDouble(AverageDailyProfit) : 0); + cell.CellStyle = styleLine12; } @@ -1404,7 +1415,7 @@ namespace SolarPower.Controllers //cell.CellStyle = styleLine12; //index++; cell = row.CreateCell(index); - cell.SetCellValue("有效發電小時(日)"); + cell.SetCellValue("日均發電度數(日)"); cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); @@ -1434,6 +1445,10 @@ namespace SolarPower.Controllers cell.SetCellValue("月售電單價(NTD)"); cell.CellStyle = styleLine12; index++; + cell = row.CreateCell(index); + cell.SetCellValue("日均獲利(NTD)"); + cell.CellStyle = styleLine12; + index++; } cell = row.CreateCell(index); cell.SetCellValue("月售電天數"); @@ -1480,6 +1495,10 @@ namespace SolarPower.Controllers cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoneyone) / Useday, 4)); cell.CellStyle = styleLine12; index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) / Convert.ToDouble(monthGeneratingCapacity) / Useday, 2)); + cell.CellStyle = styleLine12; + index++; } cell = row.CreateCell(index); cell.SetCellValue(Useday); @@ -1682,7 +1701,6 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - //cell.SetCellValue(form.PowerstationType); switch (form.PowerstationType) { case 0: @@ -2072,6 +2090,7 @@ namespace SolarPower.Controllers ICell cell; double kwhkwp = 0; double kwp = 0; + double totalGeneratingCapacity = 0; CellRangeAddress region; List cityArrays = new List(); foreach (var form in Formbody.Result.Data) @@ -2089,12 +2108,43 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round(form.Kwh, 2)); + switch (form.PowerstationType) + { + case 0: + cell.SetCellValue("自建躉售"); + break; + case 1: + cell.SetCellValue("租建躉售"); + break; + case 2: + cell.SetCellValue("自發自用"); + break; + } cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round(form.AvgKWHKWP, 2)); + cell.SetCellValue(form.ElectricityMeterAt); + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(form.PowerRate, 2)); + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(form.TodayMoney / form.GeneratingCapacity / form.Days, 2));//日均獲利 + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(form.AvgKWHKWP, 2));//日均發電度數 + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(form.Kwh, 2));//發電量 cell.CellStyle = styleLine12; //index++; @@ -2148,6 +2198,7 @@ namespace SolarPower.Controllers kwp += form.Kwh; kwhkwp += form.AvgKWHKWP; + totalGeneratingCapacity += form.GeneratingCapacity; RowPosition++; CityArray cityinfo = new CityArray { @@ -2155,7 +2206,8 @@ namespace SolarPower.Controllers Count = 1, Kwh = form.Kwh, SolarHour = form.SolarHour, - Kwhkwp = form.AvgKWHKWP + Kwhkwp = form.AvgKWHKWP, + GeneratingCapacity = form.GeneratingCapacity }; if (cityArrays.Where(a => a.City == form.CityName).Count() > 0) { @@ -2164,6 +2216,7 @@ namespace SolarPower.Controllers city.Kwh += cityinfo.Kwh; city.SolarHour += cityinfo.SolarHour; city.Kwhkwp += cityinfo.Kwhkwp; + city.GeneratingCapacity += cityinfo.GeneratingCapacity; } else { @@ -2180,9 +2233,13 @@ namespace SolarPower.Controllers { "區域", "電站名稱", + "電站類型", + "掛錶日期", + "躉售費率", + "每kw日均獲利", + "日均發電度數", "發電量", - "有效發電小時", - "平均日照", + //"平均日照", "PR" }; if (Formhead.Result.Data.ShowMoney == 1) @@ -2219,7 +2276,17 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round((cityArray.Kwh / cityArray.Count), 2)); + cell.SetCellValue(Math.Round(cityArray.GeneratingCapacity, 2)); + cell.CellStyle = styleLine12; + region = new CellRangeAddress(cityRowPosition, cityRowPosition, index, index + 1); + sheet.AddMergedRegion(region); + index++; + cell = row.CreateCell(index); + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue(Math.Round(cityArray.Kwh, 3)); cell.CellStyle = styleLine12; region = new CellRangeAddress(cityRowPosition, cityRowPosition, index, index + 1); sheet.AddMergedRegion(region); @@ -2230,7 +2297,7 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round((cityArray.Kwhkwp / cityArray.Count), 2)); + cell.SetCellValue(Math.Round((cityArray.Kwh / cityArray.GeneratingCapacity), 2)); cell.CellStyle = styleLine12; region = new CellRangeAddress(cityRowPosition, cityRowPosition, index, index + 1); sheet.AddMergedRegion(region); @@ -2254,7 +2321,7 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue("平均發電量(kWp)"); + cell.SetCellValue("裝置容量"); cell.CellStyle = styleLine12; region = new CellRangeAddress(RowPosition, RowPosition, index, index + 1); sheet.AddMergedRegion(region); @@ -2264,7 +2331,17 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue("有效發電小時"); + cell.SetCellValue("總發電量"); + cell.CellStyle = styleLine12; + region = new CellRangeAddress(RowPosition, RowPosition, index, index + 1); + sheet.AddMergedRegion(region); + index++; + cell = row.CreateCell(index); + cell.CellStyle = styleLine12; + + index++; + cell = row.CreateCell(index); + cell.SetCellValue("日均發電度數"); cell.CellStyle = styleLine12; region = new CellRangeAddress(RowPosition, RowPosition, index, index + 1); sheet.AddMergedRegion(region); @@ -2332,7 +2409,7 @@ namespace SolarPower.Controllers index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round(kwhkwp / Formbody.Result.Data.Count, 2)); + cell.SetCellValue(Math.Round(kwp / totalGeneratingCapacity, 2)); cell.CellStyle = styleLine12; region = new CellRangeAddress(RowPosition, RowPosition, index, index + 1); sheet.AddMergedRegion(region);