This commit is contained in:
Kai 2022-01-17 16:35:45 +08:00
commit c7cd824346
9 changed files with 449 additions and 353 deletions

View File

@ -3256,7 +3256,7 @@ namespace SolarPower.Controllers
var sitecheck = await powerStationRepository.Check4table(powerStation.Code, powerStation.SiteDB); var sitecheck = await powerStationRepository.Check4table(powerStation.Code, powerStation.SiteDB);
if(powerStation.Code != sitecheck.Avg && sitecheck.Avg != null) if(powerStation.Code != sitecheck.Avg && sitecheck.Avg != null)
{ {
status.Add($"s{powerStation.Code}01_avg SITEID錯誤"); status.Add($"s{powerStation.Code}01_sensoravg SITEID錯誤");
} }
if (powerStation.Code != sitecheck.Inv_site && sitecheck.Inv_site != null) if (powerStation.Code != sitecheck.Inv_site && sitecheck.Inv_site != null)
{ {

View File

@ -266,7 +266,7 @@ namespace SolarPower.Controllers
#region body //RowPosition = 1 #region body //RowPosition = 1
RowPosition++; RowPosition++;
var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = ""; var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = "";var GeneratingCapacity = "";
foreach (dynamic body in Formbody.Result.Data) foreach (dynamic body in Formbody.Result.Data)
{ {
index = 0; index = 0;
@ -276,13 +276,14 @@ namespace SolarPower.Controllers
tkwh = Checknull(Math.Round(Convert.ToDouble(dbody["totKWH"]), 2).ToString()); tkwh = Checknull(Math.Round(Convert.ToDouble(dbody["totKWH"]), 2).ToString());
kWhkwp = Checknull(Math.Round(Convert.ToDouble(dbody["totKWHKWP"]), 2).ToString()); kWhkwp = Checknull(Math.Round(Convert.ToDouble(dbody["totKWHKWP"]), 2).ToString());
ntd = Checknull(Math.Round(Convert.ToDouble(dbody["totmoney"]), 2).ToString()); ntd = Checknull(Math.Round(Convert.ToDouble(dbody["totmoney"]), 2).ToString());
GeneratingCapacity = Checknull(Math.Round(Convert.ToDouble(dbody["GeneratingCapacity"]), 2).ToString());
double onemoney = Convert.ToDouble(ntd) / Convert.ToDouble(tkwh); double onemoney = Convert.ToDouble(ntd) / Convert.ToDouble(tkwh);
if (double.IsNaN(onemoney)) if (double.IsNaN(onemoney))
{ {
onemoney = 0; onemoney = 0;
} }
ntdone = Checknull(Math.Round(onemoney, 2).ToString()); ntdone = Checknull(Math.Round(onemoney, 4).ToString());
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); cell = row.CreateCell(index);
@ -328,20 +329,20 @@ namespace SolarPower.Controllers
#region //RowPosition = body + 2 #region //RowPosition = body + 2
RowPosition += 2;//空兩行 RowPosition += 2;//空兩行
index = 0; //index = 0;
row = sheet.CreateRow(RowPosition); //row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); //cell = row.CreateCell(index);
cell.SetCellValue("日照小時:"); //cell.SetCellValue("日照小時:");
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
cell = row.CreateCell(1); //cell = row.CreateCell(1);
cell.SetCellValue(Convert.ToDouble(thour)); //cell.SetCellValue(Convert.ToDouble(thour));
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
RowPosition++; //RowPosition++;
index = 0; index = 0;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("kWH/kWP:"); cell.SetCellValue("有效發電小時:");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
cell = row.CreateCell(1); cell = row.CreateCell(1);
cell.SetCellValue(Convert.ToDouble(kWhkwp)); cell.SetCellValue(Convert.ToDouble(kWhkwp));
@ -369,6 +370,15 @@ namespace SolarPower.Controllers
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
RowPosition++; RowPosition++;
index = 0;
row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index);
cell.SetCellValue("裝置容量:");
cell.CellStyle = styleLine12;
cell = row.CreateCell(1);
cell.SetCellValue(Convert.ToDouble(GeneratingCapacity));
cell.CellStyle = styleLine12;
RowPosition++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
@ -422,7 +432,7 @@ namespace SolarPower.Controllers
"日照小時(hr)", "日照小時(hr)",
"有效發電小時", "有效發電小時",
"PR%", "PR%",
"日平均日照度(W/㎡)", "累積日照量(W/㎡)",
"日平均模組溫度(°C)" "日平均模組溫度(°C)"
}; };
@ -443,6 +453,7 @@ namespace SolarPower.Controllers
#region body //RowPosition = 1 #region body //RowPosition = 1
RowPosition++; RowPosition++;
var avghour = "0"; var avgKWHKWP = "0"; var avgdayKWH = "0"; var monthKWH = "0"; var monthmoney = "0"; var monthmoneyone = "0"; var avghour = "0"; var avgKWHKWP = "0"; var avgdayKWH = "0"; var monthKWH = "0"; var monthmoney = "0"; var monthmoneyone = "0";
var monthGeneratingCapacity = "";
var check_hire = false; var check_hire = false;
var sitedb = ""; var sitedb = "";
foreach (dynamic body in Formbody.Result.Data) foreach (dynamic body in Formbody.Result.Data)
@ -456,6 +467,7 @@ namespace SolarPower.Controllers
monthKWH = dbody["monthKWH"] == null ? "0": dbody["monthKWH"].ToString(); monthKWH = dbody["monthKWH"] == null ? "0": dbody["monthKWH"].ToString();
monthmoney = dbody["monthmoney"] == null ? "0" : dbody["monthmoney"].ToString(); monthmoney = dbody["monthmoney"] == null ? "0" : dbody["monthmoney"].ToString();
monthmoneyone = (Convert.ToDouble(dbody["monthmoneyone"].ToString()) + Convert.ToDouble(monthmoneyone)).ToString(); monthmoneyone = (Convert.ToDouble(dbody["monthmoneyone"].ToString()) + Convert.ToDouble(monthmoneyone)).ToString();
monthGeneratingCapacity = Checknull(Math.Round(Convert.ToDouble(dbody["GeneratingCapacity"]), 2).ToString());
if (dbody["SolarType"].ToString() == "1" && Formhead.Result.Data.ShowMoney == 1)//檢驗是否為租用 if (dbody["SolarType"].ToString() == "1" && Formhead.Result.Data.ShowMoney == 1)//檢驗是否為租用
{ {
check_hire = true; check_hire = true;
@ -481,7 +493,7 @@ namespace SolarPower.Controllers
"tothour", "tothour",
"KWHKWP", "KWHKWP",
"PR", "PR",
"irradiance", "IrrDay",
"temperature" "temperature"
}; };
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
@ -513,12 +525,12 @@ namespace SolarPower.Controllers
var Useday = Formbody.Result.Data.Count; var Useday = Formbody.Result.Data.Count;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
//cell = row.CreateCell(index);
//cell.SetCellValue("日照平均(日)");
//cell.CellStyle = styleLine12;
//index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("日照平均(日)"); cell.SetCellValue("有效發電小時(日)");
cell.CellStyle = styleLine12;
index++;
cell = row.CreateCell(index);
cell.SetCellValue("平均有效發電小時(日)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
@ -529,8 +541,17 @@ namespace SolarPower.Controllers
cell.SetCellValue("發電量(kWh)(月)"); cell.SetCellValue("發電量(kWh)(月)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index);
cell.SetCellValue("裝置容量");
cell.CellStyle = styleLine12;
index++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
cell = row.CreateCell(index);
cell.SetCellValue("每度獲利");
cell.CellStyle = styleLine12;
index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("售電金額(NTD)(月)"); cell.SetCellValue("售電金額(NTD)(月)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
@ -550,10 +571,10 @@ namespace SolarPower.Controllers
RowPosition++; RowPosition++;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); //cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(avghour)/Useday,2)); //cell.SetCellValue(Math.Round(Convert.ToDouble(avghour)/Useday,2));
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
index++; //index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(avgKWHKWP) / Useday,2)); cell.SetCellValue(Math.Round(Convert.ToDouble(avgKWHKWP) / Useday,2));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
@ -566,14 +587,23 @@ namespace SolarPower.Controllers
cell.SetCellValue(Convert.ToDouble(monthKWH)); cell.SetCellValue(Convert.ToDouble(monthKWH));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index);
cell.SetCellValue(Convert.ToDouble(monthGeneratingCapacity));
cell.CellStyle = styleLine12;
index++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) / Convert.ToDouble(monthGeneratingCapacity), 3));
cell.CellStyle = styleLine12;
index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Convert.ToDouble(monthmoney)); cell.SetCellValue(Convert.ToDouble(monthmoney));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoneyone) / Useday, 2)); cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoneyone) / Useday, 4));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
} }
@ -1066,7 +1096,7 @@ namespace SolarPower.Controllers
#region body //RowPosition = 1 #region body //RowPosition = 1
RowPosition++; RowPosition++;
var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = ""; var thour = ""; var tpr = ""; var tkwh = ""; var kWhkwp = ""; var ntd = ""; var ntdone = ""; var GeneratingCapacity = "";
foreach (dynamic body in Formbody.Result.Data) foreach (dynamic body in Formbody.Result.Data)
{ {
index = 0; index = 0;
@ -1076,13 +1106,14 @@ namespace SolarPower.Controllers
tkwh = Checknull(Math.Round(Convert.ToDouble(dbody["totKWH"]), 2).ToString()); tkwh = Checknull(Math.Round(Convert.ToDouble(dbody["totKWH"]), 2).ToString());
kWhkwp = Checknull(Math.Round(Convert.ToDouble(dbody["totKWHKWP"]), 2).ToString()); kWhkwp = Checknull(Math.Round(Convert.ToDouble(dbody["totKWHKWP"]), 2).ToString());
ntd = Checknull(Math.Round(Convert.ToDouble(dbody["totmoney"]), 2).ToString()); ntd = Checknull(Math.Round(Convert.ToDouble(dbody["totmoney"]), 2).ToString());
GeneratingCapacity = Checknull(Math.Round(Convert.ToDouble(dbody["GeneratingCapacity"]), 2).ToString());
double onemoney = Convert.ToDouble(ntd) / Convert.ToDouble(tkwh); double onemoney = Convert.ToDouble(ntd) / Convert.ToDouble(tkwh);
if (double.IsNaN(onemoney)) if (double.IsNaN(onemoney))
{ {
onemoney = 0; onemoney = 0;
} }
ntdone = Checknull(Math.Round(onemoney, 2).ToString()); ntdone = Checknull(Math.Round(onemoney, 4).ToString());
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); cell = row.CreateCell(index);
@ -1128,15 +1159,15 @@ namespace SolarPower.Controllers
#region //RowPosition = body + 2 #region //RowPosition = body + 2
RowPosition += 2;//空兩行 RowPosition += 2;//空兩行
index = 0; //index = 0;
row = sheet.CreateRow(RowPosition); //row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); //cell = row.CreateCell(index);
cell.SetCellValue("日照小時:"); //cell.SetCellValue("日照小時:");
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
cell = row.CreateCell(1); //cell = row.CreateCell(1);
cell.SetCellValue(!string.IsNullOrEmpty(thour)? Convert.ToDouble(thour) : 0); //cell.SetCellValue(!string.IsNullOrEmpty(thour)? Convert.ToDouble(thour) : 0);
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
RowPosition++; //RowPosition++;
index = 0; index = 0;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
@ -1169,6 +1200,16 @@ namespace SolarPower.Controllers
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
RowPosition++; RowPosition++;
index = 0;
row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index);
cell.SetCellValue("裝置容量:");
cell.CellStyle = styleLine12;
cell = row.CreateCell(1);
cell.SetCellValue(Convert.ToDouble(GeneratingCapacity));
cell.CellStyle = styleLine12;
RowPosition++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
@ -1222,7 +1263,7 @@ namespace SolarPower.Controllers
"日照小時(hr)", "日照小時(hr)",
"有效發電小時", "有效發電小時",
"PR%", "PR%",
"日平均日照度(W/㎡)", "累積日照量(W/㎡)",
"日平均模組溫度(°C)" "日平均模組溫度(°C)"
}; };
@ -1243,6 +1284,7 @@ namespace SolarPower.Controllers
#region body //RowPosition = 1 #region body //RowPosition = 1
RowPosition++; RowPosition++;
var avghour = "0"; var avgKWHKWP = "0"; var avgdayKWH = "0"; var monthKWH = "0"; var monthmoney = "0"; var monthmoneyone = "0"; var avghour = "0"; var avgKWHKWP = "0"; var avgdayKWH = "0"; var monthKWH = "0"; var monthmoney = "0"; var monthmoneyone = "0";
var monthGeneratingCapacity = "";
var check_hire = false; var check_hire = false;
var sitedb = ""; var sitedb = "";
foreach (dynamic body in Formbody.Result.Data) foreach (dynamic body in Formbody.Result.Data)
@ -1256,6 +1298,7 @@ namespace SolarPower.Controllers
monthKWH = dbody["monthKWH"] == null ? "0" : dbody["monthKWH"].ToString(); monthKWH = dbody["monthKWH"] == null ? "0" : dbody["monthKWH"].ToString();
monthmoney = dbody["monthmoney"] == null ? "0" : dbody["monthmoney"].ToString(); monthmoney = dbody["monthmoney"] == null ? "0" : dbody["monthmoney"].ToString();
monthmoneyone = (Convert.ToDouble(dbody["monthmoneyone"].ToString()) + Convert.ToDouble(monthmoneyone)).ToString(); monthmoneyone = (Convert.ToDouble(dbody["monthmoneyone"].ToString()) + Convert.ToDouble(monthmoneyone)).ToString();
monthGeneratingCapacity = Checknull(Math.Round(Convert.ToDouble(dbody["GeneratingCapacity"]), 2).ToString());
if (dbody["SolarType"].ToString() == "1" && Formhead.Result.Data.ShowMoney == 1)//檢驗是否為租用 if (dbody["SolarType"].ToString() == "1" && Formhead.Result.Data.ShowMoney == 1)//檢驗是否為租用
{ {
check_hire = true; check_hire = true;
@ -1281,7 +1324,7 @@ namespace SolarPower.Controllers
"tothour", "tothour",
"KWHKWP", "KWHKWP",
"PR", "PR",
"irradiance", "IrrDay",
"temperature" "temperature"
}; };
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
@ -1313,24 +1356,33 @@ namespace SolarPower.Controllers
var Useday = Formbody.Result.Data.Count; var Useday = Formbody.Result.Data.Count;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
//cell = row.CreateCell(index);
//cell.SetCellValue("日日照小時平均");
//cell.CellStyle = styleLine12;
//index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("日日照小時平均"); cell.SetCellValue("有效發電小時(日)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("日kWH/kWP平均"); cell.SetCellValue("發電量平均(kWh)(日)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("發電量平均(kWh)"); cell.SetCellValue("發電量(kWh)(月)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("月發電量(kWh)"); cell.SetCellValue("裝置容量");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
cell = row.CreateCell(index);
cell.SetCellValue("每度獲利");
cell.CellStyle = styleLine12;
index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue("月售電金額(NTD)"); cell.SetCellValue("月售電金額(NTD)");
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
@ -1350,10 +1402,10 @@ namespace SolarPower.Controllers
RowPosition++; RowPosition++;
row = sheet.CreateRow(RowPosition); row = sheet.CreateRow(RowPosition);
cell = row.CreateCell(index); //cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(avghour) / Useday, 2)); //cell.SetCellValue(Math.Round(Convert.ToDouble(avghour) / Useday, 2));
cell.CellStyle = styleLine12; //cell.CellStyle = styleLine12;
index++; //index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(avgKWHKWP) / Useday, 2)); cell.SetCellValue(Math.Round(Convert.ToDouble(avgKWHKWP) / Useday, 2));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
@ -1366,14 +1418,23 @@ namespace SolarPower.Controllers
cell.SetCellValue(Convert.ToDouble(monthKWH)); cell.SetCellValue(Convert.ToDouble(monthKWH));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index);
cell.SetCellValue(Convert.ToDouble(monthGeneratingCapacity));
cell.CellStyle = styleLine12;
index++;
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
{ {
cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) / Convert.ToDouble(monthGeneratingCapacity), 3));
cell.CellStyle = styleLine12;
index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Convert.ToDouble(monthmoney)); cell.SetCellValue(Convert.ToDouble(monthmoney));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
cell = row.CreateCell(index); cell = row.CreateCell(index);
cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoneyone) / Useday, 2)); cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoneyone) / Useday, 4));
cell.CellStyle = styleLine12; cell.CellStyle = styleLine12;
index++; index++;
} }

View File

@ -56,46 +56,35 @@ namespace SolarPower.Repository.Implement
case 0: case 0:
sql += @$" sql += @$"
SET @sql = NULL; SET @sql = NULL;
SELECT SELECT
GROUP_CONCAT(DISTINCT GROUP_CONCAT( 'a.inv_',RIGHT(v.InverterId, 2)) INTO @sql
CONCAT('max(case when INVERTERID = ''', INVERTERID, ''' then a.KWH end) ''inv_', right(INVERTERID, 2), '''') from v_company_inv v
) INTO @sql LEFT JOIN power_station p ON p.Code = left(inverterid, 9)
FROM inverter_history_hour where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') = '{post.Time}'; WHERE p.Id = {post.PowerStation} AND v.enabled = 1 ;
SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m-%d %H'') report_date, ', @sql,
', b.KWH hourKWH, round((b.KWH / (SELECT MAX(TODAYKWH) FROM power_station_history_hour WHERE DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}'' and powerstationid = {post.PowerStation}))*100,2) ''hourKWHp'', d.irradiance ''irradiance'', d.Temperature ''temperature'',
b.money ''hourmoney'', c.TODAYKWH ''totKWH'', c.KWHKWP ''totKWHKWP'', c.money ''totmoney'', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(b.PR, 2) as pr
FROM inverter_history_hour a left join
( # inv
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d %H:%i'') report_date, siteid, sitetype, round(KWH, 2) KWH,
round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP, round(PR, 2) PR, round(money, 2) money
from power_station_history_hour
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) b on a.powerStationid = b.powerStationid and DATE_FORMAT(a.`TIMESTAMP`,''%Y-%m-%d %H:%i'') = b.report_date
left join
( # day
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, sitetype, round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP
, round(PR, 2) PR, round(money, 2) money , round(SOLARHOUR, 2) SOLARHOUR
from power_station_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) c on a.powerStationid = c.powerStationid and DATE_FORMAT(a.`TIMESTAMP`,''%Y-%m-%d'') = c.report_date
left join
(
select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d %H:00'')report_date, irradiance, Temperature
from sensor_history_hour
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d %H:00'') = d.report_date
join
(
select id, name stationName, powerRate from power_station where id = {post.PowerStation}
)z on a.powerstationid = z.id
where DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}''
GROUP BY DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d %H:%i'')
order by DATE_FORMAT(a.`TIMESTAMP`,''%Y-%m-%d %H:%i'') ');
#select @sql as 'mySelect'; # SET @sql = CONCAT('SELECT DATE_FORMAT(a.report_date,''%m-%d %H'') report_date, ', @SQL,
PREPARE stmt FROM @sql; ', a.hourKWH hourKWH, a.hourKWHp ''hourKWHp'', a.irradiance ''irradiance'', a.Temperature ''temperature'',
EXECUTE stmt; a.hourmoney ''hourmoney'', c.TODAYKWH ''totKWH'', c.KWHKWP ''totKWHKWP'', c.money ''totmoney'', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(a.PR, 2) as pr,GeneratingCapacity
DEALLOCATE PREPARE stmt;"; FROM report_invday a
left join
( # day
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, sitetype, round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP
, round(PR, 2) PR, round(money, 2) money , round(SOLARHOUR, 2) SOLARHOUR
from power_station_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) c on a.PowerStationID = c.powerStationid and DATE_FORMAT(a.`report_date`,''%Y-%m-%d'') = c.report_date
join
(
select id, name stationName, powerRate,GeneratingCapacity from power_station where id = {post.PowerStation}
)z on a.PowerStationID = z.id
where DATE_FORMAT(a.report_date,''%Y-%m-%d'') = ''{post.Time}'' and a.PowerStationID = {post.PowerStation}
GROUP BY DATE_FORMAT(a.report_date,''%Y-%m-%d %H:%i'')
order by DATE_FORMAT(a.report_date,''%Y-%m-%d %H:%i'') ');
#select @sql as 'mySelect'; #
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;";
break; break;
case 1: case 1:
if(post.SearchType == 2) if(post.SearchType == 2)
@ -108,9 +97,9 @@ namespace SolarPower.Repository.Implement
) INTO @sql ) INTO @sql
FROM inverter_history_day where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m') = '{post.Time}'; FROM inverter_history_day where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m') = '{post.Time}';
SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m/%d'') report_date, ', @sql, SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m/%d'') report_date, ', @sql,
',b.TODAYKWH ''dayKWH'', round((b.TODAYKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', b.PR, ',b.TODAYKWH ''dayKWH'', round((b.TODAYKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', b.PR,z.GeneratingCapacity,
d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'', d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'',
c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB,d.IrrDay
FROM inverter_history_day a left join FROM inverter_history_day a left join
( # inv ( # inv
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, siteid, sitetype, #, round(KWH, 2) KWH, select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, siteid, sitetype, #, round(KWH, 2) KWH,
@ -127,13 +116,13 @@ namespace SolarPower.Repository.Implement
) c on a.powerStationid = c.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m'') = c.report_date ) c on a.powerStationid = c.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m'') = c.report_date
left join left join
( (
select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'')report_date, irradiance, Temperature select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'')report_date, irradiance, Temperature ,IrrDay
from sensor_history_day from sensor_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m'') = ''{post.Time}'' where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m'') = ''{post.Time}''
) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') = d.report_date ) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') = d.report_date
join join
( (
select id, name stationName, powerRate,SolarType,SiteDB from power_station where id = {post.PowerStation} select id, name stationName, powerRate,SolarType,SiteDB,GeneratingCapacity from power_station where id = {post.PowerStation}
)z on a.powerstationid = z.id )z on a.powerstationid = z.id
where DATE_FORMAT(a.TIMESTAMP,''%Y-%m'') = ''{post.Time}'' where DATE_FORMAT(a.TIMESTAMP,''%Y-%m'') = ''{post.Time}''
GROUP BY DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') GROUP BY DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'')
@ -155,9 +144,9 @@ namespace SolarPower.Repository.Implement
) INTO @sql ) INTO @sql
FROM inverter_history_day where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') BETWEEN '{times[0]}' AND '{times[1]}'; FROM inverter_history_day where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') BETWEEN '{times[0]}' AND '{times[1]}';
SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m/%d'') report_date, ', @sql, SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m/%d'') report_date, ', @sql,
',b.TODAYKWH ''dayKWH'', round((b.TODAYKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', b.PR, ',b.TODAYKWH ''dayKWH'', round((b.TODAYKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', b.PR,GeneratingCapacity,
d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'', d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'',
c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB ,d.IrrDay
FROM inverter_history_day a left join FROM inverter_history_day a left join
( # inv ( # inv
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, siteid, sitetype, #, round(KWH, 2) KWH, select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, siteid, sitetype, #, round(KWH, 2) KWH,
@ -176,13 +165,13 @@ namespace SolarPower.Repository.Implement
) c on a.powerStationid = c.powerStationid ) c on a.powerStationid = c.powerStationid
left join left join
( (
select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'')report_date, irradiance, Temperature select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'')report_date, irradiance, Temperature ,IrrDay
from sensor_history_day from sensor_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') BETWEEN ''{times[0]}'' AND ''{times[1]}'' where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') BETWEEN ''{times[0]}'' AND ''{times[1]}''
) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') = d.report_date ) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') = d.report_date
join join
( (
select id, name stationName, powerRate, SolarType, SiteDB from power_station where id = {post.PowerStation} select id, name stationName, powerRate, SolarType, SiteDB,GeneratingCapacity from power_station where id = {post.PowerStation}
)z on a.powerstationid = z.id )z on a.powerstationid = z.id
where DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') BETWEEN ''{times[0]}'' AND ''{times[1]}'' where DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') BETWEEN ''{times[0]}'' AND ''{times[1]}''
GROUP BY DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') GROUP BY DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'')
@ -204,7 +193,7 @@ namespace SolarPower.Repository.Implement
) INTO @sql ) INTO @sql
FROM inverter_history_month where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y') = '{post.Time}'; FROM inverter_history_month where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y') = '{post.Time}';
SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%Y/%m'') report_date, ', @sql, SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%Y/%m'') report_date, ', @sql,
',b.todayKWH ''dayKWH'', round((b.todayKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', c.PR, ',b.todayKWH ''dayKWH'', round((b.todayKWH / c.monthKWH)*100,2) ''dayKWHp'', b.SOLARHOUR ''tothour'', b.KWHKWP ''KWHKWP'', b.PR,
d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'', d.irradiance ''irradiance'', d.Temperature ''temperature'', b.money ''soldmoney'',
c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB c.monthKWH ''monthKWH'', c.money ''monthmoney'', stationName, powerRate ''monthmoneyone'',SolarType,SiteDB
FROM inverter_history_month a left join FROM inverter_history_month a left join
@ -431,47 +420,36 @@ namespace SolarPower.Repository.Implement
{ {
case 0: case 0:
sql = @$" sql = @$"
SET @sql = NULL; SET @sql = NULL;
SELECT SELECT
GROUP_CONCAT(DISTINCT GROUP_CONCAT( 'a.inv_',RIGHT(v.InverterId, 2)) INTO @sql
CONCAT('max(case when INVERTERID = ''', INVERTERID, ''' then a.KWH end) ''inv_', right(INVERTERID, 2), '''') from v_company_inv v
) INTO @sql LEFT JOIN power_station p ON p.Code = left(inverterid, 9)
FROM inverter_history_hour where powerstationId = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') = '{post.Time}'; WHERE p.Id = {post.PowerStation} AND v.enabled = 1 ;
SET @sql = CONCAT('SELECT DATE_FORMAT(a.TIMESTAMP,''%m-%d %H'') report_date, ', @sql,
', b.KWH hourKWH, round((b.KWH / (SELECT MAX(TODAYKWH) FROM power_station_history_hour WHERE DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}'' and powerstationid = {post.PowerStation}))*100,2) ''hourKWHp'', d.irradiance ''irradiance'', d.Temperature ''temperature'',
b.money ''hourmoney'', c.TODAYKWH ''totKWH'', c.KWHKWP ''totKWHKWP'', c.money ''totmoney'', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(b.PR, 2) as pr
FROM inverter_history_hour a left join
( # inv
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d %H:%i'') report_date, siteid, sitetype, round(KWH, 2) KWH,
round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP, round(PR, 2) PR, round(money, 2) money
from power_station_history_hour
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) b on a.powerStationid = b.powerStationid and DATE_FORMAT(a.`TIMESTAMP`,''%Y-%m-%d %H:%i'') = b.report_date
left join
( # day
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, sitetype, round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP
, round(PR, 2) PR, round(money, 2) money , round(SOLARHOUR, 2) SOLARHOUR
from power_station_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}''
) c on a.powerStationid = c.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d'') = c.report_date
left join
(
select powerStationID, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d %H:%i'')report_date, irradiance, Temperature
from sensor_history_hour
where powerstationid = {post.PowerStation} and DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}''
) d on a.powerStationid = d.powerStationid and DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d %H:%i'') = d.report_date
join
(
select id, name stationName, powerRate from power_station where id = {post.PowerStation}
)z on a.powerstationid = z.id
where DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') = ''{post.Time}''
GROUP BY DATE_FORMAT(TIMESTAMP,''%Y-%m-%d %H:%i'')
order by DATE_FORMAT(a.TIMESTAMP,''%Y-%m-%d %H:%i'') ');
select @sql as 'mySelect'; # SET @sql = CONCAT('SELECT DATE_FORMAT(a.report_date,''%m-%d %H'') report_date, ', @SQL,
#PREPARE stmt FROM @sql; ', a.hourKWH hourKWH, a.hourKWHp ''hourKWHp'', a.irradiance ''irradiance'', a.Temperature ''temperature'',
#EXECUTE stmt; a.hourmoney ''hourmoney'', c.TODAYKWH ''totKWH'', c.KWHKWP ''totKWHKWP'', c.money ''totmoney'', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(a.PR, 2) as pr,GeneratingCapacity
#DEALLOCATE PREPARE stmt;"; FROM report_invday a
left join
( # day
select powerStationid, DATE_FORMAT(TIMESTAMP,''%Y-%m-%d'') report_date, sitetype, round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP
, round(PR, 2) PR, round(money, 2) money , round(SOLARHOUR, 2) SOLARHOUR
from power_station_history_day
where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,''%Y-%m-%d'') = ''{post.Time}''
) c on a.PowerStationID = c.powerStationid and DATE_FORMAT(a.`report_date`,''%Y-%m-%d'') = c.report_date
join
(
select id, name stationName, powerRate,GeneratingCapacity from power_station where id = {post.PowerStation}
)z on a.PowerStationID = z.id
where DATE_FORMAT(a.report_date,''%Y-%m-%d'') = ''{post.Time}'' and
GROUP BY DATE_FORMAT(a.report_date,''%Y-%m-%d %H:%i'')
order by DATE_FORMAT(a.report_date,''%Y-%m-%d %H:%i'') ');
select @sql as 'mySelect'; #
#PREPARE stmt FROM @sql;
#EXECUTE stmt;
#DEALLOCATE PREPARE stmt;";
break; break;
case 1: case 1:
if (post.SearchType == 2) if (post.SearchType == 2)

View File

@ -2426,6 +2426,7 @@
function getTable() function getTable()
{ {
$('#all').hide();
if (historyRange == "") if (historyRange == "")
{ {
var today = new Date(); var today = new Date();
@ -2793,6 +2794,7 @@
'<td>' + tempALL.toFixed(2) + '</td>' + '<td>' + tempALL.toFixed(2) + '</td>' +
'</tr>'); '</tr>');
} }
$('#all').show();
}) })
} }

View File

@ -50,48 +50,49 @@
</div> </div>
<div id="all">
<div class="row mb-5">
<div class="card p-3 w-100">
<h5 class="font-weight-bold mb-3 pl-5 pb-3">總結</h5>
<table class="table m-0">
<thead>
<tr>
<th>時間</th>
<th>發電量(kWh)</th>
<th>有效日照時數</th>
<th>日照度(kWh/m2)</th>
<th>PR(%)</th>
<th>溫度(℃)</th>
</tr>
</thead>
<tbody id="HistoryTotalTable">
</tbody>
</table>
</div>
</div>
<div id="history-kWh-convas-div">
<canvas id="history-kWh"></canvas>
</div>
<div class="row mb-5"> <div class="row mb-5">
<div class="card p-3 w-100"> <div class="card p-3 w-100">
<h5 class="font-weight-bold mb-3 pl-5 pb-3">總結</h5> <h5 class="font-weight-bold mb-3 pl-5 pb-3">詳細資訊</h5>
<table class="table m-0"> <table class="table m-0">
<thead> <thead>
<tr> <tr>
<th>時間</th> <th>時間</th>
<th>發電量(kWh)</th> <th>發電量(kWh)</th>
<th>有效日照時數</th> <th>有效發電小時</th>
<th>日照度(kWh/m2)</th> <th>日照度(W/m2)</th>
<th>PR(%)</th> <th>PR(%)</th>
<th>溫度(℃)</th> <th>溫度(℃)</th>
</tr> </tr>
</thead> </thead>
<tbody id="HistoryTotalTable"> <tbody id="HistoryDetailTable">
</tbody> </tbody>
</table> </table>
</div>
</div> </div>
</div> </div>
<div id="history-kWh-convas-div">
<canvas id="history-kWh"></canvas>
</div>
<div class="row mb-5">
<div class="card p-3 w-100">
<h5 class="font-weight-bold mb-3 pl-5 pb-3">詳細資訊</h5>
<table class="table m-0">
<thead>
<tr>
<th>時間</th>
<th>發電量(kWh)</th>
<th>有效日照時數</th>
<th>日照度(kWh/m2)</th>
<th>PR(%)</th>
<th>溫度(℃)</th>
</tr>
</thead>
<tbody id="HistoryDetailTable">
</tbody>
</table>
</div>
</div>

View File

@ -228,67 +228,71 @@
</div> </div>
</div> </div>
<div class="row mb-5"> <div id="all">
<div class="col-xl-12"> <div class="row mb-5">
<div class="card p-3 w-100" id="overviewtable"> <div class="col-xl-12">
<table class="table m-0"> <div class="card p-3 w-100" id="overviewtable">
<thead id="tothead"> <table class="table m-0">
</thead> <thead id="tothead">
<tbody id="totbody"> </thead>
</tbody> <tbody id="totbody">
</table> </tbody>
</div> </table>
</div> </div>
</div> </div>
<div class="row mb-5"> </div>
<div class="col-xl-12"> <div class="row mb-5">
<div class="card p-3 w-100" id="hiretable" style="overflow-x:auto"> <div class="col-xl-12">
<table class="table m-0"> <div class="card p-3 w-100" id="hiretable" style="overflow-x:auto">
<thead id="HireTableHead"> <table class="table m-0">
<tr> <thead id="HireTableHead">
<th>出租人</th> <tr>
<th>租金比例</th> <th>出租人</th>
<th>租金金額(未稅)</th> <th>租金比例</th>
<th>租金金額(含稅)</th> <th>租金金額(未稅)</th>
</tr> <th>租金金額(含稅)</th>
</thead> </tr>
<tbody id="HireTableBody"> </thead>
</tbody> <tbody id="HireTableBody">
</table> </tbody>
</div> </table>
</div> </div>
</div> </div>
<div class="row mb-5"> </div>
<div class="col-xl-12"> <div class="row mb-5">
<div class="card p-3 w-100 " id="maxtable" style="overflow-x:auto"> <div class="col-xl-12">
<table class="table m-0"> <div class="card p-3 w-100 " id="maxtable" style="overflow-x:auto">
<thead> <table class="table m-0">
<tr> <thead>
<th>縣市</th> <tr>
<th>平均發電量(kWp)</th> <th>縣市</th>
<th>有效發電小時</th> <th>平均發電量(kWp)</th>
</tr> <th>有效發電小時</th>
</thead> </tr>
<tbody id="maxtableBody"> </thead>
</tbody> <tbody id="maxtableBody">
</table> </tbody>
</div> </table>
</div> </div>
</div> </div>
<div class="row mb-5"> </div>
<div class="col-xl-12"> <div class="row mb-5">
<div class="card p-3 w-100" id="detailtable" style="overflow-x:auto"> <div class="col-xl-12">
<table class="table m-0"> <div class="card p-3 w-100" id="detailtable" style="overflow-x:auto">
<thead id="TableHead"> <table class="table m-0">
</thead> <thead id="TableHead">
<tbody id="TableBody"> </thead>
</tbody> <tbody id="TableBody">
</table> </tbody>
</table>
</div>
</div> </div>
</div> </div>
</div> </div>
</main> </main>
</div> </div>
</div> </div>
@ -785,7 +789,7 @@
str += "<th>日照小時(hr)</th>"; str += "<th>日照小時(hr)</th>";
str += "<th>有效發電小時</th>"; str += "<th>有效發電小時</th>";
str += "<th>PR%</th>"; str += "<th>PR%</th>";
str += "<th>日<br />平均<br />日照度<br />(W/㎡)</th>"; str += "<th>累積日照量(W/㎡)</th>";
str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>"; str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>";
if (rel.data.showMoney == 1) { if (rel.data.showMoney == 1) {
str += "<th>日<br />售電金額<br />(NTD)</th>"; str += "<th>日<br />售電金額<br />(NTD)</th>";
@ -840,9 +844,11 @@
$(e).removeClass("btn-primary").addClass("btn-success"); $(e).removeClass("btn-primary").addClass("btn-success");
button = e; button = e;
$('#all').hide();
$('#hiretable').hide(); $('#hiretable').hide();
$('#maxtable').hide(); $('#maxtable').hide();
tablehand(form); tablehand(form);
} }
@ -913,6 +919,7 @@
var ntd = 0; var ntd = 0;
var ntdone = 0; var ntdone = 0;
var sta = ""; var sta = "";
var GeneratingCapacity = 0;
$.each(rel.data, function (index, inverter) { $.each(rel.data, function (index, inverter) {
sta += "<tr>"; sta += "<tr>";
sta += "<td>" + inverter.report_date + "</td>"; sta += "<td>" + inverter.report_date + "</td>";
@ -928,7 +935,7 @@
sta += "<td>" + Number(inverter.irradiance) + "</td>"; sta += "<td>" + Number(inverter.irradiance) + "</td>";
sta += "<td>" + Number(inverter.temperature) + "</td>"; sta += "<td>" + Number(inverter.temperature) + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
sta += "<td>" + Math.round(Number(inverter.hourmoney)) + "</td>"; sta += "<td>" + toThousands(Math.round(Number(inverter.hourmoney))) + "</td>";
} }
sta += "</tr>"; sta += "</tr>";
thour = inverter.tothour ? inverter.tothour.toFixed(2) : 0; thour = inverter.tothour ? inverter.tothour.toFixed(2) : 0;
@ -936,13 +943,15 @@
tkwh = inverter.totKWH ? inverter.totKWH.toFixed(2) : 0; tkwh = inverter.totKWH ? inverter.totKWH.toFixed(2) : 0;
kWhkwp = inverter.totKWHKWP ? inverter.totKWHKWP.toFixed(2) : 0; kWhkwp = inverter.totKWHKWP ? inverter.totKWHKWP.toFixed(2) : 0;
ntd = inverter.totmoney ? Math.round(inverter.totmoney) : 0; ntd = inverter.totmoney ? Math.round(inverter.totmoney) : 0;
ntdone = inverter.totmoney / inverter.totKWH ? Math.round(inverter.totmoney / inverter.totKWH) : 0; ntdone = inverter.totmoney / inverter.totKWH ? Math.round(inverter.totmoney / inverter.totKWH * 10000) / 10000 : 0;
GeneratingCapacity = inverter.GeneratingCapacity;
}) })
var stc = "<tr>"; var stc = "<tr>";
stc += "<th>" + '日照小時' + "</th>"; /* stc += "<th>" + '日照小時' + "</th>";*/
stc += "<th>" + '有效發電小時' + "</th>"; stc += "<th>" + '有效發電小時' + "</th>";
stc += "<th>" + 'PR%' + "</th>"; stc += "<th>" + 'PR%' + "</th>";
stc += "<th>" + '日發電量(kWh)' + "</th>"; stc += "<th>" + '日發電量(kWh)' + "</th>";
stc += "<th>" + '裝置容量' + "</th>";
if (showmoney == 1) { if (showmoney == 1) {
stc += "<th>" + '日售電金額(NTD)' + "</th>"; stc += "<th>" + '日售電金額(NTD)' + "</th>";
stc += "<th>" + '日售電單價(NTD)' + "</th>"; stc += "<th>" + '日售電單價(NTD)' + "</th>";
@ -951,13 +960,14 @@
var stb = "<tr>"; var stb = "<tr>";
stb += "<td>" + thour + "</td>"; /* stb += "<td>" + thour + "</td>";*/
stb += "<td>" + kWhkwp + "</td>"; stb += "<td>" + kWhkwp + "</td>";
stb += "<td>" + tpr + "</td>"; stb += "<td>" + tpr + "</td>";
stb += "<td>" + tkwh + "</td>"; stb += "<td>" + tkwh + "</td>";
stb += "<td>" + GeneratingCapacity + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
stb += "<td>" + Math.round(ntd) + "</td>"; stb += "<td>" + toThousands(Math.round(ntd)) + "</td>";
stb += "<td>" + Math.round(ntdone) + "</td>"; stb += "<td>" + Math.round(ntdone * 10000) / 10000 + "</td>";
} }
stb += "</tr>"; stb += "</tr>";
@ -979,6 +989,7 @@
var sta = ""; var sta = "";
var check_hire = false; var check_hire = false;
var sitedb = ""; var sitedb = "";
var GeneratingCapacity = 0;
$.each(rel.data, function (index, inverter) { $.each(rel.data, function (index, inverter) {
sta += "<tr>"; sta += "<tr>";
sta += "<td>" + inverter.report_date + "</td>"; sta += "<td>" + inverter.report_date + "</td>";
@ -994,10 +1005,10 @@
sta += "<td>" + inverter.tothour + "</td>"; sta += "<td>" + inverter.tothour + "</td>";
sta += "<td>" + inverter.KWHKWP + "</td>"; sta += "<td>" + inverter.KWHKWP + "</td>";
sta += "<td>" + ((inverter.PR == null) ? 0 : inverter.PR.toFixed(2)) + "</td>"; sta += "<td>" + ((inverter.PR == null) ? 0 : inverter.PR.toFixed(2)) + "</td>";
sta += "<td>" + inverter.irradiance + "</td>"; sta += "<td>" + ((inverter.IrrDay == null) ? 0 : inverter.IrrDay) + "</td>";
sta += "<td>" + inverter.temperature + "</td>"; sta += "<td>" + inverter.temperature + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
sta += "<td>" + Math.round(inverter.soldmoney) + "</td>"; sta += "<td>" + toThousands(Math.round(inverter.soldmoney)) + "</td>";
} }
sta += "</tr>"; sta += "</tr>";
avghour += inverter.tothour ? inverter.tothour : 0; avghour += inverter.tothour ? inverter.tothour : 0;
@ -1011,17 +1022,20 @@
check_hire = true; check_hire = true;
sitedb = inverter.SiteDB sitedb = inverter.SiteDB
} }
GeneratingCapacity = inverter.GeneratingCapacity;
}) })
monthday = rel.data.length; monthday = rel.data.length;
var stc = "<tr>"; var stc = "<tr>";
stc += "<th>" + '日照平均(日)' + "</th>"; /*stc += "<th>" + '日照平均(日)' + "</th>";*/
stc += "<th>" + '有效發電小時(日)' + "</th>"; stc += "<th>" + '有效發電小時(日)' + "</th>";
stc += "<th>" + '發電量平均(kWh)(日)' + "</th>"; stc += "<th>" + '發電量平均(kWh)(日)' + "</th>";
stc += "<th>" + '發電量(kWh)(月)' + "</th>"; stc += "<th>" + '發電量(kWh)(月)' + "</th>";
stc += "<th>" + '裝置容量' + "</th>";
if (showmoney == 1) { if (showmoney == 1) {
stc += "<th>" + '每度獲利' + "</th>";
stc += "<th>" + '售電金額(NTD)(月)' + "</th>"; stc += "<th>" + '售電金額(NTD)(月)' + "</th>";
stc += "<th>" + '售電單價(NTD)(月)' + "</th>"; stc += "<th>" + '售電單價(NTD)(月)' + "</th>";
} }
@ -1042,13 +1056,16 @@
stb += "</tr>"; stb += "</tr>";
} }
else { else {
stb += "<td>" + (avghour / monthday).toFixed(2) + "</td>"; /*stb += "<td>" + (avghour / monthday).toFixed(2) + "</td>";*/
stb += "<td>" + (avgKWHKWP / monthday).toFixed(2) + "</td>"; stb += "<td>" + (avgKWHKWP / monthday).toFixed(2) + "</td>";
stb += "<td>" + (avgdayKWH / monthday).toFixed(2) + "</td>"; stb += "<td>" + (avgdayKWH / monthday).toFixed(2) + "</td>";
stb += "<td>" + monthKWH + "</td>"; stb += "<td>" + monthKWH + "</td>";
stb += "<td>" + GeneratingCapacity + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
stb += "<td>" + Math.round(monthmoney) + "</td>"; stb += "<td>" + (monthmoney / GeneratingCapacity).toFixed(3) + "</td>";
stb += "<td>" + Math.round(monthmoneyone / monthday) + "</td>"; stb += "<td>" + toThousands(Math.round(monthmoney)) + "</td>";
stb += "<td>" + Math.round(monthmoneyone / monthday*10000)/10000 + "</td>";
} }
stb += "<td>" + monthday + "</td>"; stb += "<td>" + monthday + "</td>";
stb += "</tr>"; stb += "</tr>";
@ -1071,8 +1088,8 @@
std += "<tr>"; std += "<tr>";
std += "<td>" + value.landowner + "</td>"; std += "<td>" + value.landowner + "</td>";
std += "<td>" + value.leaseRate + "%" + "</td>"; std += "<td>" + value.leaseRate + "%" + "</td>";
std += "<td>" + Math.round(monthmoney * value.leaseRate / 100) + "</td>"; std += "<td>" + toThousands(Math.round(monthmoney * value.leaseRate / 100)) + "</td>";
std += "<td>" + Math.round(monthmoney * value.leaseRate / 100 * 1.05) + "</td>"; std += "<td>" + toThousands(Math.round(monthmoney * value.leaseRate / 100 * 1.05)) + "</td>";
std += "</tr>"; std += "</tr>";
}) })
$('#HireTableBody').append(std); $('#HireTableBody').append(std);
@ -1117,7 +1134,7 @@
sta += "<td>" + inverter.irradiance + "</td>"; sta += "<td>" + inverter.irradiance + "</td>";
sta += "<td>" + inverter.temperature + "</td>"; sta += "<td>" + inverter.temperature + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
sta += "<td>" + Math.round(inverter.soldmoney) + "</td>"; sta += "<td>" + toThousands(Math.round(inverter.soldmoney)) + "</td>";
} }
sta += "</tr>"; sta += "</tr>";
avghour += inverter.tothour ? inverter.tothour : 0; avghour += inverter.tothour ? inverter.tothour : 0;
@ -1167,8 +1184,8 @@
stb += "<td>" + (avgdayKWH / monthday).toFixed(2) + "</td>"; stb += "<td>" + (avgdayKWH / monthday).toFixed(2) + "</td>";
stb += "<td>" + monthKWH + "</td>"; stb += "<td>" + monthKWH + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
stb += "<td>" + Math.round(monthmoney) + "</td>"; stb += "<td>" + toThousands(Math.round(monthmoney)) + "</td>";
stb += "<td>" + Math.round(monthmoneyone / monthday) + "</td>"; stb += "<td>" + Math.round(monthmoneyone / monthday*10000)/10000 + "</td>";
} }
stb += "<td>" + monthday + "</td>"; stb += "<td>" + monthday + "</td>";
stb += "</tr>"; stb += "</tr>";
@ -1191,8 +1208,8 @@
std += "<tr>"; std += "<tr>";
std += "<td>" + value.landowner + "</td>"; std += "<td>" + value.landowner + "</td>";
std += "<td>" + value.leaseRate + "%" + "</td>"; std += "<td>" + value.leaseRate + "%" + "</td>";
std += "<td>" + Math.round(monthmoney * value.leaseRate / 100) + "</td>"; std += "<td>" + toThousands(Math.round(monthmoney * value.leaseRate / 100)) + "</td>";
std += "<td>" + Math.round(monthmoney * value.leaseRate / 100 * 1.05) + "</td>"; std += "<td>" + toThousands(Math.round(monthmoney * value.leaseRate / 100 * 1.05)) + "</td>";
std += "</tr>"; std += "</tr>";
}) })
$('#HireTableBody').append(std); $('#HireTableBody').append(std);
@ -1212,6 +1229,7 @@
$('#overviewtable').show(); $('#overviewtable').show();
$('#detailtable').show(); $('#detailtable').show();
$('#all').show();
nowform = form; nowform = form;
}, 'json'); }, 'json');
} }
@ -1267,11 +1285,11 @@
PowerStation: selecterd_invert PowerStation: selecterd_invert
} }
var url = "/StationReport/GetMaxForm"; var url = "/StationReport/GetMaxForm";
var StrInfoBody; var StrInfoBody = "";
var CityArray = []; var CityArray = [];
var CityInfoBody; var CityInfoBody = "";
var TotalHead; var TotalHead = "";
var TotalBody; var TotalBody = "";
var kwhkwp = 0; var kwhkwp = 0;
var kwp = 0; var kwp = 0;
$.post(url, send_data, function (rel) { $.post(url, send_data, function (rel) {
@ -1347,11 +1365,12 @@
StrInfoBody += "<td>" + data.avgIrradiance.toFixed(2) + "</td>"; StrInfoBody += "<td>" + data.avgIrradiance.toFixed(2) + "</td>";
StrInfoBody += "<td>" + data.avgPR.toFixed(2) + "</td>"; StrInfoBody += "<td>" + data.avgPR.toFixed(2) + "</td>";
if (showmoney == 1) { if (showmoney == 1) {
StrInfoBody += "<td>" + Math.round(data.todayMoney) + "</td>";
StrInfoBody += "<td>" + Math.round(data.todayMoney * hirerate * 0.01)+ "</td>"; StrInfoBody += "<td>" + toThousands(Math.round(data.todayMoney)) + "</td>";
StrInfoBody += "<td>" + Math.round(data.todayMoney) + "</td>"; StrInfoBody += "<td>" + toThousands(Math.round(data.todayMoney * hirerate * 0.01))+ "</td>";
StrInfoBody += "<td>" + toThousands(Math.round(data.todayMoney)) + "</td>";
} }
@ -1408,6 +1427,7 @@
$('#detailtable').show(); $('#detailtable').show();
nowform = 2; nowform = 2;
$('#all').show();
}) })
} }
@ -1436,5 +1456,22 @@
return hirerate; return hirerate;
} }
function toThousands(num) {
var num = (num || 0).toString(), result = '';
var last = "";
if (num.indexOf('.') != -1) {
var nn = num.split('.');
num = nn[0];
last = "." + nn[1];
}
while (num.length > 3) {
result = ',' + num.slice(-3) + result;
num = num.slice(0, num.length - 3);
}
if (num) { result = num + result + last; }
return result;
}
</script> </script>
} }

View File

@ -185,63 +185,73 @@ namespace solarApp.Service
_logger.LogInformation("【ProcInvSvc】開始執行[{0}]在{1}逆變器15min補償", _siteID, _date1); _logger.LogInformation("【ProcInvSvc】開始執行[{0}]在{1}逆變器15min補償", _siteID, _date1);
} }
sql = @" sql = @$"DROP TABLE IF EXISTS del_Inv_day_" + _powerStationID + @"_s1;
CREATE TABLE del_Inv_day_" + _powerStationID + @"_s1
select * from " + _siteDB + ".s" + _siteID01 + @"_inv a
WHERE left(crdTime, 10) = @date1;
# 2. add index
ALTER TABLE del_Inv_day_" + _powerStationID + @"_s1 ADD INDEX `temp_index` (crdTime, inverterid);";
int ct = conn.Execute(sql, new { date1 = _date1 });
sql = @"
INSERT INTO solar_master.inverter_history_15min( PowerStationId, TIMESTAMP, INVERTERID, KWH, TODAYKWH, KWHKWP) INSERT INTO solar_master.inverter_history_15min( PowerStationId, TIMESTAMP, INVERTERID, KWH, TODAYKWH, KWHKWP)
select PowerStationId, reportdate, a.inverterid, KWH, TODAYKWH, (kwh/(capacity/4)) kwpkwp from select PowerStationId, reportdate, a.inverterid, KWH, TODAYKWH, (kwh/(capacity/4)) kwpkwp from
( (
select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':00:00')reportdate, inverterid, select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':00:00')reportdate, inverterid,
(sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
from " + _siteDB + ".s" + _siteID01 + @"_inv from del_Inv_day_" + _powerStationID + @"_s1
where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '00' and '10' where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '00' and '10'
group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
union union
select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':15:00')reportdate, inverterid, select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':15:00')reportdate, inverterid,
(sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
from " + _siteDB + ".s" + _siteID01 + @"_inv from del_Inv_day_" + _powerStationID + @"_s1
where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '15' and '25' where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '15' and '25'
group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
union union
select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':30:00')reportdate, inverterid, select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':30:00')reportdate, inverterid,
(sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
from " + _siteDB + ".s" + _siteID01 + @"_inv from del_Inv_day_" + _powerStationID + @"_s1
where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '30' and '40' where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '30' and '40'
group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
union union
select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':45:00')reportdate, inverterid, select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':45:00')reportdate, inverterid,
(sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
from " + _siteDB + ".s" + _siteID01 + @"_inv from del_Inv_day_" + _powerStationID + @"_s1
where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '45' and '55' where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '45' and '55'
group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
) a join " + _siteDB + @".inverter b on a.inverterid = b.inverterid"; ) a join " + _siteDB + @".inverter b on a.inverterid = b.inverterid";
// sql = @" //sql = @"
// INSERT INTO solar_master.inverter_history_15min( PowerStationId, TIMESTAMP, INVERTERID, KWH, TODAYKWH, KWHKWP) // INSERT INTO solar_master.inverter_history_15min( PowerStationId, TIMESTAMP, INVERTERID, KWH, TODAYKWH, KWHKWP)
// select PowerStationId, reportdate, a.inverterid, KWH, TODAYKWH, (kwh/(capacity/4)) kwpkwp from // select PowerStationId, reportdate, a.inverterid, KWH, TODAYKWH, (kwh/(capacity/4)) kwpkwp from
// ( // (
//select @PowerStationId PowerStationId,CONCAT(left(CrdTime, 13), '%Y-%m-%d %H'), ':00:00')reportdate, inverterid, // select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':00:00')reportdate, inverterid,
// (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH // (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
// from " + _siteDB + ".s" + _siteID01 + @"_inv // from " + _siteDB + ".s" + _siteID01 + @"_inv
// where left(CrdTime, 10) = @date1 and CONCAT(left(CrdTime, 13), '%Y-%m-%d %H:%i') , 2) between '00' and '10' // where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '00' and '10'
// group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid // group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
// union // union
// select @PowerStationId PowerStationId, CONCAT(left(CrdTime, 13), ':15:00')reportdate, inverterid, // select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':15:00')reportdate, inverterid,
// (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH // (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
// from " + _siteDB + ".s" + _siteID01 + @"_inv // from " + _siteDB + ".s" + _siteID01 + @"_inv
// where left(CrdTime, 10) = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '15' and '25' // where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '15' and '25'
// group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid // group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
// union // union
// select @PowerStationId PowerStationId, CONCAT(left(CrdTime, 13), ':30:00')reportdate, inverterid, // select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':30:00')reportdate, inverterid,
// (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH // (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
// from " + _siteDB + ".s" + _siteID01 + @"_inv // from " + _siteDB + ".s" + _siteID01 + @"_inv
// where left(CrdTime, 10) = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '30' and '40' // where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '30' and '40'
// group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid // group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
// union // union
// select @PowerStationId PowerStationId, CONCAT(left(CrdTime, 13), ':45:00')reportdate, inverterid, // select @PowerStationId PowerStationId, CONCAT(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H'), ':45:00')reportdate, inverterid,
// (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH // (sum(WH)/1000) KWH, max(TODAYKWH) TODAYKWH
// from " + _siteDB + ".s" + _siteID01 + @"_inv // from " + _siteDB + ".s" + _siteID01 + @"_inv
// where left(CrdTime, 10) = @date1 and MINUTE(CrdTime) between '45' and '55' // where FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d') = @date1 and right(FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H:%i') , 2) between '45' and '55'
// group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid // group by FROM_UNIXTIME(`TIMESTAMP`/1000,'%Y-%m-%d %H') , inverterid
// ) a join " + _siteDB + @".inverter b on a.inverterid = b.inverterid"; // ) a join " + _siteDB + @".inverter b on a.inverterid = b.inverterid";
var ds = conn.Execute(sql, new { date1 = _date1, PowerStationID = _powerStationID }); var ds = conn.Execute(sql, new { date1 = _date1, PowerStationID = _powerStationID });
@ -310,59 +320,58 @@ namespace solarApp.Service
// order by a.INVERTERID, a.reportDate;"; // order by a.INVERTERID, a.reportDate;";
//int ct = conn.Execute(sql, new { date1 = _date1, PowerStationID = _powerStationID }); //int ct = conn.Execute(sql, new { date1 = _date1, PowerStationID = _powerStationID });
sql = @$"DROP TEMPORARY TABLE IF EXISTS Inv_day_"+ _powerStationID + @"_s1; sql = @$"DROP TEMPORARY TABLE IF EXISTS Inv_day_" + _powerStationID + @"_s2;
CREATE TEMPORARY TABLE Inv_day_" + _powerStationID + @"_s1 CREATE TEMPORARY TABLE Inv_day_" + _powerStationID + @"_s2
select * from " + _siteDB + ".s" + _siteID01 + @"_inv a SELECT " + _powerStationID + @" powerStationID, a.INVERTERID, a.reportDate,a.AC1V, a.AC1A, a.AC1W, a.AC1F, a.AC1WH, a.AC2V, a.AC2A, a.AC2W, a.AC2F, a.AC2WH,
WHERE left(crdTime, 10) = @date1; a.AC3V, a.AC3A, a.AC3W, a.AC3F, a.AC3WH, a.DC1V, a.DC1A, a.DC1W, a.DC1WH, a.DC2V, a.DC2A, a.DC2W, a.DC2WH, a.DC3V, a.DC3A, a.DC3W,
# 2. add index a.DC3WH, a.DC4V, a.DC4A, a.DC4W, a.DC4WH, a.DC5V, a.DC5A, a.DC5W, a.DC5WH,
ALTER TABLE Inv_day_" + _powerStationID + @"_s1 ADD INDEX `temp_index` (crdTime, inverterid);"; a.RA1, a.RA2, a.RA3, a.RA4, a.RA5, a.KWH, a.TODAYKWH, a.TOTALKWH,
int ct = conn.Execute(sql, new { date1 = _date1}); IFNULL(Irradiance, 0) irr, 0 as PR, ((DC1W + DC2W + DC3W + DC4W + DC5W) / 1000) DCKW, ((AC1W + AC2W + AC3W) / 1000) ACKW, (a.KWH / i.Capacity) AS KWHKWP
from
(-- KWH
SELECT concat(left(crdTime, 13), ':00:00') reportDate, INVERTERID,
AVG(AC1V) AS AC1V, AVG(AC1A) AS AC1A, round(SUM(AC1W), 5) AS AC1W, AVG(AC1F) AS AC1F, SUM(AC1WH) AS AC1WH, AVG(AC2V) AS AC2V,
AVG(AC2A) AS AC2A, round(SUM(AC2W), 5) AS AC2W, AVG(AC2F) AS AC2F, SUM(AC2WH) AS AC2WH, AVG(AC3V) AS AC3V, AVG(AC3A) AS AC3A,
round(SUM(AC3W), 5) AS AC3W, AVG(AC3F) AS AC3F, SUM(AC3WH) AS AC3WH, AVG(DC1V) AS DC1V, AVG(DC1A) AS DC1A, SUM(DC1W) AS DC1W,
SUM(DC1WH) AS DC1WH, AVG(DC2V) AS DC2V, AVG(DC2A) AS DC2A, SUM(DC2W) AS DC2W, SUM(DC2WH) AS DC2WH, AVG(DC3V) AS DC3V,
AVG(DC3A) AS DC3A, AVG(DC3W) AS DC3W, AVG(DC3WH) AS DC3WH, AVG(DC4V) AS DC4V, AVG(DC4A) AS DC4A, SUM(DC4W) AS DC4W,
SUM(DC4WH) AS DC4WH, AVG(DC5V) AS DC5V, AVG(DC5A) AS DC5A, SUM(DC5W) AS DC5W, SUM(DC5WH) AS DC5WH,
AVG(RA1) AS RA1, AVG(RA2) AS RA2, AVG(RA3) AS RA3,
AVG(RA4) AS RA4, AVG(RA5) AS RA5, MAX(TODAYKWH) AS TODAYKWH, MAX(TOTALKWH) AS TOTALKWH, (SUM(WH) / 1000) AS KWH
FROM del_Inv_day_" + _powerStationID + @"_s1
GROUP BY left(crdTime, 13), INVERTERID
) a
--
LEFT JOIN " + _siteDB + @".inverter i ON a.INVERTERID = i.InverterId
-- -------------------- -
left join(
select concat(DATE_FORMAT(`TIMESTAMP`, '%Y-%m-%d %H'), ':00:00') AS reportDate, Irradiance
from sensor_history_hour
where powerstationID = " + _powerStationID + @" and DATE_FORMAT(`TIMESTAMP`, '%Y-%m-%d') = @date1
)irr on a.reportDate = irr.reportDate; ";
int ct = conn.Execute(sql, new { date1 = _date1 });
sql = @$"DROP TEMPORARY TABLE IF EXISTS Inv_day_" + _powerStationID + @"_s2;
CREATE TEMPORARY TABLE Inv_day_" + _powerStationID + @"_s2
SELECT " + _powerStationID + @" powerStationID, a.INVERTERID, a.reportDate,a.AC1V, a.AC1A, a.AC1W, a.AC1F, a.AC1WH, a.AC2V, a.AC2A, a.AC2W, a.AC2F, a.AC2WH, //# 3. insert ans
a.AC3V, a.AC3A, a.AC3W, a.AC3F, a.AC3WH, a.DC1V, a.DC1A, a.DC1W, a.DC1WH, a.DC2V, a.DC2A, a.DC2W, a.DC2WH, a.DC3V, a.DC3A, a.DC3W, sql = @$"
a.DC3WH, a.DC4V, a.DC4A, a.DC4W, a.DC4WH, a.DC5V, a.DC5A, a.DC5W, a.DC5WH, INSERT INTO solar_master.inverter_history_hour(`powerStationID`, `INVERTERID`, `TIMESTAMP`, `AC1V`, `AC1A`, `AC1W`, `AC1F`, `AC1WH`, `AC2V`, `AC2A`, `AC2W`, `AC2F`, `AC2WH`, `AC3V`, `AC3A`, `AC3W`, `AC3F`, `AC3WH`, `DC1V`, `DC1A`, `DC1W`, `DC1WH`, `DC2V`, `DC2A`, `DC2W`, `DC2WH`, `DC3V`, `DC3A`, `DC3W`, `DC3WH`, `DC4V`, `DC4A`, `DC4W`, `DC4WH`, `DC5V`, `DC5A`, `DC5W`, `DC5WH`, `RA1`, `RA2`, `RA3`, `RA4`, `RA5`, `KWH`, `TODAYKWH`, `TOTALKWH`, `Irradiance`, `PR`, `DCKW`, `ACKW`, `KWHKWP`)
a.RA1, a.RA2, a.RA3, a.RA4, a.RA5, a.KWH, a.TODAYKWH, a.TOTALKWH, select `powerStationID`, a.`INVERTERID`, a.`reportDate`, `AC1V`, `AC1A`, `AC1W`, `AC1F`, `AC1WH`, `AC2V`, `AC2A`, `AC2W`, `AC2F`, `AC2WH`, `AC3V`, `AC3A`, `AC3W`, `AC3F`, `AC3WH`, `DC1V`, `DC1A`, `DC1W`, `DC1WH`, `DC2V`, `DC2A`, `DC2W`, `DC2WH`, `DC3V`, `DC3A`, `DC3W`, `DC3WH`, `DC4V`, `DC4A`, `DC4W`, `DC4WH`, `DC5V`, `DC5A`, `DC5W`, `DC5WH`, `RA1`, `RA2`, `RA3`, `RA4`, `RA5`, `KWH`, `TODAYKWH`, `TOTALKWH`, `irr`, inv_pr.`PR`, `DCKW`, `ACKW`, `KWHKWP`
IFNULL(Irradiance, 0) irr, 0 as PR, ((DC1W + DC2W + DC3W + DC4W + DC5W) / 1000) DCKW, ((AC1W + AC2W + AC3W) / 1000) ACKW, (a.KWH / i.Capacity) AS KWHKWP from Inv_day_" + _powerStationID + @"_s2 a left JOIN( -- PR
from SELECT concat(left(crdTime, 13), ':00:00') AS reportDate, inv.INVERTERID, inv.PR
(-- KWH FROM del_Inv_day_" + _powerStationID + @"_s1 inv
SELECT concat(left(crdTime, 13), ':00:00') reportDate, INVERTERID, WHERE minute(crdtime) = '55'
AVG(AC1V) AS AC1V, AVG(AC1A) AS AC1A, round(SUM(AC1W), 5) AS AC1W, AVG(AC1F) AS AC1F, SUM(AC1WH) AS AC1WH, AVG(AC2V) AS AC2V, GROUP BY left(crdTime, 13), inv.INVERTERID
AVG(AC2A) AS AC2A, round(SUM(AC2W), 5) AS AC2W, AVG(AC2F) AS AC2F, SUM(AC2WH) AS AC2WH, AVG(AC3V) AS AC3V, AVG(AC3A) AS AC3A, ) inv_pr
round(SUM(AC3W), 5) AS AC3W, AVG(AC3F) AS AC3F, SUM(AC3WH) AS AC3WH, AVG(DC1V) AS DC1V, AVG(DC1A) AS DC1A, SUM(DC1W) AS DC1W, ON a.reportDate = inv_pr.reportDate AND a.INVERTERID = inv_pr.INVERTERID;";
SUM(DC1WH) AS DC1WH, AVG(DC2V) AS DC2V, AVG(DC2A) AS DC2A, SUM(DC2W) AS DC2W, SUM(DC2WH) AS DC2WH, AVG(DC3V) AS DC3V, ct = conn.Execute(sql, new { date1 = _date1 });
AVG(DC3A) AS DC3A, AVG(DC3W) AS DC3W, AVG(DC3WH) AS DC3WH, AVG(DC4V) AS DC4V, AVG(DC4A) AS DC4A, SUM(DC4W) AS DC4W, if (_logger != null)
SUM(DC4WH) AS DC4WH, AVG(DC5V) AS DC5V, AVG(DC5A) AS DC5A, SUM(DC5W) AS DC5W, SUM(DC5WH) AS DC5WH, _logger.LogInformation("【ProcInvSvc】執行完成[{0}]在{1}逆變器hour補償", _siteID, _date1);
AVG(RA1) AS RA1, AVG(RA2) AS RA2, AVG(RA3) AS RA3,
AVG(RA4) AS RA4, AVG(RA5) AS RA5, MAX(TODAYKWH) AS TODAYKWH, MAX(TOTALKWH) AS TOTALKWH, (SUM(WH) / 1000) AS KWH ss = @$"DROP TABLE IF EXISTS del_Inv_day_" + _powerStationID + @"_s1; ";
FROM Inv_day_" + _powerStationID + @"_s1 conn.Execute(ss);
GROUP BY left(crdTime, 13), INVERTERID
) a
--
LEFT JOIN " + _siteDB + @".inverter i ON a.INVERTERID = i.InverterId
-- -------------------- -
left join(
select concat(DATE_FORMAT(`TIMESTAMP`, '%Y-%m-%d %H'), ':00:00') AS reportDate, Irradiance
from sensor_history_hour
where powerstationID = " + _powerStationID + @" and DATE_FORMAT(`TIMESTAMP`, '%Y-%m-%d') = @date1
)irr on a.reportDate = irr.reportDate; ";
ct = conn.Execute(sql, new { date1 = _date1 });
//# 3. insert ans
sql = @$"
INSERT INTO solar_master.inverter_history_hour(`powerStationID`, `INVERTERID`, `TIMESTAMP`, `AC1V`, `AC1A`, `AC1W`, `AC1F`, `AC1WH`, `AC2V`, `AC2A`, `AC2W`, `AC2F`, `AC2WH`, `AC3V`, `AC3A`, `AC3W`, `AC3F`, `AC3WH`, `DC1V`, `DC1A`, `DC1W`, `DC1WH`, `DC2V`, `DC2A`, `DC2W`, `DC2WH`, `DC3V`, `DC3A`, `DC3W`, `DC3WH`, `DC4V`, `DC4A`, `DC4W`, `DC4WH`, `DC5V`, `DC5A`, `DC5W`, `DC5WH`, `RA1`, `RA2`, `RA3`, `RA4`, `RA5`, `KWH`, `TODAYKWH`, `TOTALKWH`, `Irradiance`, `PR`, `DCKW`, `ACKW`, `KWHKWP`)
select `powerStationID`, a.`INVERTERID`, a.`reportDate`, `AC1V`, `AC1A`, `AC1W`, `AC1F`, `AC1WH`, `AC2V`, `AC2A`, `AC2W`, `AC2F`, `AC2WH`, `AC3V`, `AC3A`, `AC3W`, `AC3F`, `AC3WH`, `DC1V`, `DC1A`, `DC1W`, `DC1WH`, `DC2V`, `DC2A`, `DC2W`, `DC2WH`, `DC3V`, `DC3A`, `DC3W`, `DC3WH`, `DC4V`, `DC4A`, `DC4W`, `DC4WH`, `DC5V`, `DC5A`, `DC5W`, `DC5WH`, `RA1`, `RA2`, `RA3`, `RA4`, `RA5`, `KWH`, `TODAYKWH`, `TOTALKWH`, `irr`, inv_pr.`PR`, `DCKW`, `ACKW`, `KWHKWP`
from Inv_day_" + _powerStationID + @"_s2 a left JOIN( -- PR
SELECT concat(left(crdTime, 13), ':00:00') AS reportDate, inv.INVERTERID, inv.PR
FROM Inv_day_" + _powerStationID + @"_s1 inv
WHERE minute(crdtime) = '55'
GROUP BY left(crdTime, 13), inv.INVERTERID
) inv_pr
ON a.reportDate = inv_pr.reportDate AND a.INVERTERID = inv_pr.INVERTERID;";
ct = conn.Execute(sql, new { date1 = _date1 });
if (_logger != null)
_logger.LogInformation("【ProcInvSvc】執行完成[{0}]在{1}逆變器hour補償", _siteID, _date1);
} }
catch (Exception ex) catch (Exception ex)
{ {
if (_logger != null) if (_logger != null)
@ -538,6 +547,7 @@ ALTER TABLE `temp_invDay{_powerStationID}_s1` ADD INDEX `temp_indexs1` (report_d
#endregion #endregion
#region inv_no01 #region inv_no01
string inv01 = _siteID01 + "0001";
sql = @$" sql = @$"
insert report_invday(`report_date`, `PowerStationID`, inv_01, `hourKWH`, `hourKWHp`, `irradiance`, `temperature`, `hourmoney`, `pr`, createTime) insert report_invday(`report_date`, `PowerStationID`, inv_01, `hourKWH`, `hourKWHp`, `irradiance`, `temperature`, `hourmoney`, `pr`, createTime)
select a.report_date, a.powerstationId , ifnull(round(a.kwh, 6), 0) inv_01, ifnull(b.KWH, 0) hourKWH, select a.report_date, a.powerstationId , ifnull(round(a.kwh, 6), 0) inv_01, ifnull(b.KWH, 0) hourKWH,
@ -545,7 +555,7 @@ select a.report_date, a.powerstationId , ifnull(round(a.kwh, 6), 0) inv_01, ifn
WHERE DATE_FORMAT(TIMESTAMP,'%Y-%m-%d') = '{_date1}' and powerstationid = {_powerStationID} ))*100,2) WHERE DATE_FORMAT(TIMESTAMP,'%Y-%m-%d') = '{_date1}' and powerstationid = {_powerStationID} ))*100,2)
, 0) 'hourKWHp', ifnull(d.irradiance, 0) 'irradiance', ifnull(d.Temperature, 0) 'temperature', , 0) 'hourKWHp', ifnull(d.irradiance, 0) 'irradiance', ifnull(d.Temperature, 0) 'temperature',
ifnull(b.money, 0) 'hourmoney', ifnull(round(b.PR, 2), 0) as pr, now() createTime ifnull(b.money, 0) 'hourmoney', ifnull(round(b.PR, 2), 0) as pr, now() createTime
from temp_invDay{_powerStationID}_s1 a left join from temp_invDay{_powerStationID}_s1 a join
( # inv ( # inv
select powerStationid, `TIMESTAMP` report_date, siteid, sitetype, round(KWH, 2) KWH, select powerStationid, `TIMESTAMP` report_date, siteid, sitetype, round(KWH, 2) KWH,
round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP, round(PR, 2) PR, round(money, 2) money round(TODAYKWH, 2) TODAYKWH,round(KWHKWP, 2) KWHKWP, round(PR, 2) PR, round(money, 2) money
@ -559,7 +569,7 @@ from temp_invDay{_powerStationID}_s1 a left join
from sensor_history_hour from sensor_history_hour
where powerstationid = {_powerStationID} and left(`TIMESTAMP`,10) = '{_date1}' where powerstationid = {_powerStationID} and left(`TIMESTAMP`,10) = '{_date1}'
) d on a.powerStationid = d.powerStationid and a.`report_date` = d.report_date ) d on a.powerStationid = d.powerStationid and a.`report_date` = d.report_date
where right(a.inverterid, 4) = '0001' where a.inverterid = '{inv01}' # right(a.inverterid, 4) = '0001'
GROUP BY left(a.report_date, 13) GROUP BY left(a.report_date, 13)
order by a.report_date ;"; order by a.report_date ;";
conn.Execute(sql); conn.Execute(sql);

View File

@ -242,7 +242,7 @@ namespace solarApp.Service
select a.powerstationID, a.reportdate, ifnull(b.Irradiance, 0) irrAvg, a.Temperature, a.envTemperature, a.humidity, a.Vane, a.Dust, a.WingDirection, a.irrDay from select a.powerstationID, a.reportdate, ifnull(b.Irradiance, 0) irrAvg, a.Temperature, a.envTemperature, a.humidity, a.Vane, a.Dust, a.WingDirection, a.irrDay from
( (
select powerStationID , concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d'), ' 00:00') reportdate, round(avg(Temperature), 6) Temperature, select powerStationID , concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d'), ' 00:00') reportdate, round(avg(Temperature), 6) Temperature,
envTemperature, humidity, Vane, Dust, WingDirection, irrDay envTemperature, humidity, Vane, Dust, avg(WingDirection) WingDirection, max(irrDay) irrDay
from solar_master.sensor_history_hour from solar_master.sensor_history_hour
where powerstationID = @powerstationID and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') = @date1 where powerstationID = @powerstationID and DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') = @date1
group by DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') group by DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d')
@ -266,7 +266,7 @@ namespace solarApp.Service
select a.powerstationID, a.reportdate, ifnull(b.Irradiance, 0) irrAvg, a.Temperature, a.envTemperature, a.humidity, a.Vane, a.Dust, WingDirection, irrDay from select a.powerstationID, a.reportdate, ifnull(b.Irradiance, 0) irrAvg, a.Temperature, a.envTemperature, a.humidity, a.Vane, a.Dust, WingDirection, irrDay from
( (
select powerStationID , concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m'), '-01 00:00') reportdate, round(avg(Temperature), 6) Temperature, select powerStationID , concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m'), '-01 00:00') reportdate, round(avg(Temperature), 6) Temperature,
envTemperature, humidity, Vane, Dust, WingDirection, irrDay avg(envTemperature) envTemperature, avg(humidity) humidity, avg(Vane) Vane, avg(Dust) Dust, avg(WingDirection) WingDirection, max(irrDay) irrDay
from solar_master.sensor_history_day from solar_master.sensor_history_day
where powerstationID = @powerstationID and DATE_FORMAT(`TIMESTAMP`,'%Y-%m') = @date1 where powerstationID = @powerstationID and DATE_FORMAT(`TIMESTAMP`,'%Y-%m') = @date1
group by DATE_FORMAT(`TIMESTAMP`,'%Y-%m') group by DATE_FORMAT(`TIMESTAMP`,'%Y-%m')

View File

@ -195,7 +195,7 @@ namespace solarApp.Service
sql = @" INSERT INTO solar_master.power_station_history_day( PowerStationId, `TIMESTAMP`, SITEID, SITETYPE, TODAYKWH, TOTALKWH, KWHKWP, sql = @" INSERT INTO solar_master.power_station_history_day( PowerStationId, `TIMESTAMP`, SITEID, SITETYPE, TODAYKWH, TOTALKWH, KWHKWP,
PR, MP, SOLARHOUR, MONEY, TOTALMONEY, CARBON, TOTALCARBON) PR, MP, SOLARHOUR, MONEY, TOTALMONEY, CARBON, TOTALCARBON)
select b.id PowerStationId, a.reportdate, b.siteID, a.siteType, a.TODAYKWH, a.TOTALKWH, a.KWHKWP, a.PR, a.MP, a.SOLARHOUR, select b.id PowerStationId, a.reportdate, b.siteID, a.siteType, a.TODAYKWH, a.TOTALKWH, a.KWHKWP, a1.PR, a.MP, a.SOLARHOUR,
/*CASE /*CASE
WHEN b.SolarType = 1 THEN a.KWH * PowerRate * c.LeaseRate WHEN b.SolarType = 1 THEN a.KWH * PowerRate * c.LeaseRate
ELSE a.KWH * PowerRate ELSE a.KWH * PowerRate
@ -211,11 +211,18 @@ namespace solarApp.Service
( (
select concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d'), ' 00:00:00') reportdate, siteid, siteType, round((sum(KWH)), 6) KWH, select concat(DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d'), ' 00:00:00') reportdate, siteid, siteType, round((sum(KWH)), 6) KWH,
round((max(TODAYKWH)), 6) TODAYKWH, round((max(TOTALKWH)), 6) TOTALKWH, round((max(KWHKWP)), 6) KWHKWP, round((max(TODAYKWH)), 6) TODAYKWH, round((max(TOTALKWH)), 6) TOTALKWH, round((max(KWHKWP)), 6) KWHKWP,
round((max(PR)), 6) PR, round((max(MP)), 6) as MP, round((max(SOLARHOUR)), 6) SOLARHOUR #round((max(PR)), 6) PR,
round((max(MP)), 6) as MP, round((max(SOLARHOUR)), 6) SOLARHOUR
from solar_master.power_station_history_hour a from solar_master.power_station_history_hour a
where SITEID = @siteID and DATE_FORMAT(a.`TIMESTAMP`,'%Y-%m-%d') = @date1 where SITEID = @siteID and DATE_FORMAT(a.`TIMESTAMP`,'%Y-%m-%d') = @date1
group by a.siteid, DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d') group by a.siteid, DATE_FORMAT(`TIMESTAMP`,'%Y-%m-%d')
)a join )a join
(
select id, SITEID, round(PR, 4) PR
from solar_master.power_station_history_hour a
where SITEID = @siteID and DATE_FORMAT(a.`TIMESTAMP`,'%Y-%m-%d') = @date1
order by 1 desc limit 1
)a1 on a.siteID = a1.siteID join
( (
select id, `code` siteID, PowerRate, (select `value` from solar_master.`variable` where `name` = 'CarbonRate') as CarbonRate, SolarType select id, `code` siteID, PowerRate, (select `value` from solar_master.`variable` where `name` = 'CarbonRate') as CarbonRate, SolarType
from solar_master.power_station from solar_master.power_station