Skip to content

Commit

Permalink
added period type list automaticly adjustment logic in myems-web
Browse files Browse the repository at this point in the history
  • Loading branch information
nengyuanzhang committed Jul 18, 2024
2 parents 36c4a3b + 3bcb92a commit 653313c
Show file tree
Hide file tree
Showing 11 changed files with 535 additions and 214 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- added microgrid energy report
- added microgrid renevue report
- added microgrid carbon report
- added period type list automaticly adjustment logic in myems-web
### Changed
- updated tariff price to keep 5 decimal places in database and myems-admin
- updated tariff price to keep 5 decimal places in database and myems-admin
### Fixed
- aligned timestamps of parameters for microgrid details report
- aligned timestamps of parameters for energy storage power station details report
Expand Down
80 changes: 56 additions & 24 deletions myems-web/src/components/MyEMS/Space/SpaceCarbon.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,38 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
DateRange[1] = endOfDay(DateRange[1]);
}
setReportingPeriodDateRange([DateRange[0], DateRange[1]]);
const dateDifferenceInSeconds = moment(DateRange[1]).valueOf() / 1000 - moment(DateRange[0]).valueOf() / 1000;
if (periodType === 'hourly') {
if (dateDifferenceInSeconds > 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
} else if (dateDifferenceInSeconds > 6 * 30 * 24 * 60 * 60) {
// more than 6 months
setPeriodType('monthly');
document.getElementById('periodType').value = 'monthly';
} else if (dateDifferenceInSeconds > 30 * 24 * 60 * 60) {
// more than 30 days
setPeriodType('daily');
document.getElementById('periodType').value = 'daily';
}
} else if (periodType === 'daily') {
if (dateDifferenceInSeconds >= 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
} else if (dateDifferenceInSeconds >= 6 * 30 * 24 * 60 * 60) {
// more than 6 months
setPeriodType('monthly');
document.getElementById('periodType').value = 'monthly';
}
} else if (periodType === 'monthly') {
if (dateDifferenceInSeconds >= 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
}
}
if (comparisonType === 'year-over-year') {
setBasePeriodDateRange([
moment(DateRange[0])
Expand Down Expand Up @@ -353,21 +385,21 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
let isResponseOK = false;
fetch(
APIBaseURL +
'/reports/spacecarbon?' +
'spaceid=' +
selectedSpaceID +
'&periodtype=' +
periodType +
'&baseperiodstartdatetime=' +
(basePeriodDateRange[0] != null ? moment(basePeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&baseperiodenddatetime=' +
(basePeriodDateRange[1] != null ? moment(basePeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&reportingperiodstartdatetime=' +
moment(reportingPeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') +
'&reportingperiodenddatetime=' +
moment(reportingPeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') +
'&language=' +
language,
'/reports/spacecarbon?' +
'spaceid=' +
selectedSpaceID +
'&periodtype=' +
periodType +
'&baseperiodstartdatetime=' +
(basePeriodDateRange[0] != null ? moment(basePeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&baseperiodenddatetime=' +
(basePeriodDateRange[1] != null ? moment(basePeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&reportingperiodstartdatetime=' +
moment(reportingPeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') +
'&reportingperiodenddatetime=' +
moment(reportingPeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') +
'&language=' +
language,
{
method: 'GET',
headers: {
Expand Down Expand Up @@ -629,7 +661,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -642,7 +674,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'total',
text: t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -670,7 +702,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: t('Base Period') + ' - ' + currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -684,7 +716,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'basePeriodTotal',
text: t('Base Period') + ' - ' + t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -705,7 +737,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'b' + index,
text: t('Reporting Period') + ' - ' + currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -719,7 +751,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'reportingPeriodTotal',
text: t('Reporting Period') + ' - ' + t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -831,7 +863,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -844,7 +876,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'total',
text: t('Total') + ' (' + json['child_space']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -1033,7 +1065,7 @@ const SpaceCarbon = ({ setRedirect, setRedirectUrl, t }) => {
</Form>
</CardBody>
</Card>
<div style={{visibility: resultDataHidden ? 'hidden' : 'visible'}}>
<div style={{ visibility: resultDataHidden ? 'hidden' : 'visible' }}>
<div className="card-deck">
{cardSummaryList.map(cardSummaryItem => (
<CardSummary
Expand Down
80 changes: 56 additions & 24 deletions myems-web/src/components/MyEMS/Space/SpaceCost.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,38 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
DateRange[1] = endOfDay(DateRange[1]);
}
setReportingPeriodDateRange([DateRange[0], DateRange[1]]);
const dateDifferenceInSeconds = moment(DateRange[1]).valueOf() / 1000 - moment(DateRange[0]).valueOf() / 1000;
if (periodType === 'hourly') {
if (dateDifferenceInSeconds > 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
} else if (dateDifferenceInSeconds > 6 * 30 * 24 * 60 * 60) {
// more than 6 months
setPeriodType('monthly');
document.getElementById('periodType').value = 'monthly';
} else if (dateDifferenceInSeconds > 30 * 24 * 60 * 60) {
// more than 30 days
setPeriodType('daily');
document.getElementById('periodType').value = 'daily';
}
} else if (periodType === 'daily') {
if (dateDifferenceInSeconds >= 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
} else if (dateDifferenceInSeconds >= 6 * 30 * 24 * 60 * 60) {
// more than 6 months
setPeriodType('monthly');
document.getElementById('periodType').value = 'monthly';
}
} else if (periodType === 'monthly') {
if (dateDifferenceInSeconds >= 3 * 365 * 24 * 60 * 60) {
// more than 3 years
setPeriodType('yearly');
document.getElementById('periodType').value = 'yearly';
}
}
if (comparisonType === 'year-over-year') {
setBasePeriodDateRange([
moment(DateRange[0])
Expand Down Expand Up @@ -353,21 +385,21 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
let isResponseOK = false;
fetch(
APIBaseURL +
'/reports/spacecost?' +
'spaceid=' +
selectedSpaceID +
'&periodtype=' +
periodType +
'&baseperiodstartdatetime=' +
(basePeriodDateRange[0] != null ? moment(basePeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&baseperiodenddatetime=' +
(basePeriodDateRange[1] != null ? moment(basePeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&reportingperiodstartdatetime=' +
moment(reportingPeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') +
'&reportingperiodenddatetime=' +
moment(reportingPeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') +
'&language=' +
language,
'/reports/spacecost?' +
'spaceid=' +
selectedSpaceID +
'&periodtype=' +
periodType +
'&baseperiodstartdatetime=' +
(basePeriodDateRange[0] != null ? moment(basePeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&baseperiodenddatetime=' +
(basePeriodDateRange[1] != null ? moment(basePeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') : '') +
'&reportingperiodstartdatetime=' +
moment(reportingPeriodDateRange[0]).format('YYYY-MM-DDTHH:mm:ss') +
'&reportingperiodenddatetime=' +
moment(reportingPeriodDateRange[1]).format('YYYY-MM-DDTHH:mm:ss') +
'&language=' +
language,
{
method: 'GET',
headers: {
Expand Down Expand Up @@ -628,7 +660,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -641,7 +673,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'total',
text: t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -669,7 +701,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: t('Base Period') + ' - ' + currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -683,7 +715,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'basePeriodTotal',
text: t('Base Period') + ' - ' + t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -704,7 +736,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'b' + index,
text: t('Reporting Period') + ' - ' + currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -718,7 +750,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'reportingPeriodTotal',
text: t('Reporting Period') + ' - ' + t('Total') + ' (' + json['reporting_period']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -830,7 +862,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'a' + index,
text: currentValue + ' (' + unit + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand All @@ -843,7 +875,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
dataField: 'total',
text: t('Total') + ' (' + json['child_space']['total_unit'] + ')',
sort: true,
formatter: function(decimalValue) {
formatter: function (decimalValue) {
if (typeof decimalValue === 'number') {
return decimalValue.toFixed(2);
} else {
Expand Down Expand Up @@ -1032,7 +1064,7 @@ const SpaceCost = ({ setRedirect, setRedirectUrl, t }) => {
</Form>
</CardBody>
</Card>
<div style={{visibility: resultDataHidden ? 'hidden' : 'visible'}}>
<div style={{ visibility: resultDataHidden ? 'hidden' : 'visible' }}>
<div className="card-deck">
{cardSummaryList.map(cardSummaryItem => (
<CardSummary
Expand Down
Loading

0 comments on commit 653313c

Please sign in to comment.