From 60c37b7a2fcb6c77c4a8ff5ffbf5d05571c389d3 Mon Sep 17 00:00:00 2001 From: tianlinzhong <673359306@qq.com> Date: Thu, 30 Dec 2021 22:02:49 +0800 Subject: [PATCH] Added Energy Input & Output Values to Detailed Data of CombinedEquipment Efficiency Report --- .../combinedequipmentefficiency.py | 159 +++++++++++++++++- .../reports/combinedequipmentefficiency.py | 72 +++++++- .../CombinedEquipmentEfficiency.js | 104 +++++++++++- 3 files changed, 324 insertions(+), 11 deletions(-) diff --git a/myems-api/excelexporters/combinedequipmentefficiency.py b/myems-api/excelexporters/combinedequipmentefficiency.py index cd2cc8c6..c879346e 100644 --- a/myems-api/excelexporters/combinedequipmentefficiency.py +++ b/myems-api/excelexporters/combinedequipmentefficiency.py @@ -78,7 +78,7 @@ def generate_excel(report, ws.column_dimensions['B'].width = 25.0 - for i in range(ord('C'), ord('L')): + for i in range(ord('C'), ord('R')): ws.column_dimensions[chr(i)].width = 15.0 # Font @@ -188,6 +188,26 @@ def generate_excel(report, col = chr(ord(col) + 1) + ws[col + str(current_row_number)].fill = table_fill + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = \ + reporting_period_data['names'][i] + '-' + reporting_period_data['numerator_names'][i] + " (" + \ + reporting_period_data['numerator_units'][i] + ")" + + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].fill = table_fill + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = \ + reporting_period_data['names'][i] + '-' + reporting_period_data['denominator_names'][i] + " (" + \ + reporting_period_data['denominator_units'][i] + ")" + + col = chr(ord(col) + 1) + current_row_number += 1 ws['B' + str(current_row_number)].font = title_font @@ -205,6 +225,20 @@ def generate_excel(report, col = chr(ord(col) + 1) + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['numerator_cumulations'][i], 2) + + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['denominator_cumulations'][i], 2) + + col = chr(ord(col) + 1) + current_row_number += 1 ws['B' + str(current_row_number)].font = title_font @@ -224,6 +258,24 @@ def generate_excel(report, col = chr(ord(col) + 1) + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = str( + round(reporting_period_data['increment_rates_num'][i] * 100, 2)) + '%' \ + if reporting_period_data['increment_rates_num'][i] is not None else '-' + + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = str( + round(reporting_period_data['increment_rates_den'][i] * 100, 2)) + '%' \ + if reporting_period_data['increment_rates_den'][i] is not None else '-' + + col = chr(ord(col) + 1) + current_row_number += 2 #################################################################################################################### @@ -264,6 +316,8 @@ def generate_excel(report, if has_values_data and has_timestamps_data: ca_len = len(reporting_period_data['names']) + de_len = len(reporting_period_data['denominator_names']) + nu_len = len(reporting_period_data['numerator_names']) time = reporting_period_data['timestamps'][0] ws['B' + str(current_row_number)].font = title_font @@ -273,7 +327,7 @@ def generate_excel(report, chart_start_row_number = current_row_number - current_row_number += ca_len * 6 + 1 + current_row_number += ca_len * 6 + de_len * 6 + nu_len * 6 + 1 if has_parameters_names_and_timestamps_and_values_data: current_sheet_parameters_row_number = current_row_number @@ -305,6 +359,25 @@ def generate_excel(report, reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + ")" col = chr(ord(col) + 1) + ws[col + str(current_row_number)].fill = table_fill + ws[col + str(current_row_number)].font = title_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = \ + reporting_period_data['names'][i] + '-' + reporting_period_data['numerator_names'][i] + " (" + \ + reporting_period_data['numerator_units'][i] + ")" + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].fill = table_fill + ws[col + str(current_row_number)].font = name_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = \ + reporting_period_data['names'][i] + '-' + reporting_period_data['denominator_names'][i] + " (" + \ + reporting_period_data['denominator_units'][i] + ")" + + col = chr(ord(col) + 1) + current_row_number += 1 for i in range(0, len(time)): @@ -322,6 +395,20 @@ def generate_excel(report, if reporting_period_data['values'][j][i] is not None else 0.00 col = chr(ord(col) + 1) + ws[col + str(current_row_number)].font = title_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['numerator_values'][j][i], 2) \ + if reporting_period_data['numerator_values'][j][i] is not None else 0.00 + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].font = title_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['denominator_values'][j][i], 2) \ + if reporting_period_data['denominator_values'][j][i] is not None else 0.00 + col = chr(ord(col) + 1) + current_row_number += 1 table_end_row_number = current_row_number - 1 @@ -340,6 +427,18 @@ def generate_excel(report, ws[col + str(current_row_number)] = round(reporting_period_data['cumulations'][i], 2) col = chr(ord(col) + 1) + ws[col + str(current_row_number)].font = title_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['numerator_cumulations'][i], 2) + col = chr(ord(col) + 1) + + ws[col + str(current_row_number)].font = title_font + ws[col + str(current_row_number)].alignment = c_c_alignment + ws[col + str(current_row_number)].border = f_border + ws[col + str(current_row_number)] = round(reporting_period_data['denominator_cumulations'][i], 2) + col = chr(ord(col) + 1) + current_row_number += 2 format_time_width_number = 1.0 @@ -363,12 +462,13 @@ def generate_excel(report, min_len_number = 5 min_width_number = 11.5 + i_num = 0 for i in range(0, ca_len): line = LineChart() line.title = 'Reporting Period Cumulative Efficiency - ' + \ reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + ")" labels = Reference(ws, min_col=2, min_row=table_start_row_number + 1, max_row=table_end_row_number) - line_data = Reference(ws, min_col=3 + i, min_row=table_start_row_number, max_row=table_end_row_number) + line_data = Reference(ws, min_col=3 + i_num, min_row=table_start_row_number, max_row=table_end_row_number) line.add_data(line_data, titles_from_data=True) line.set_categories(labels) line_data = line.series[0] @@ -388,6 +488,59 @@ def generate_excel(report, chart_start_row_number += 6 ws.add_chart(line, chart_cell) + i_num += 1 + line = LineChart() + line.title = 'Reporting Period Cumulative Efficiency - ' + \ + reporting_period_data['names'][i] + '-' + reporting_period_data['numerator_names'][i] + " (" + \ + reporting_period_data['numerator_units'][i] + ")" + labels = Reference(ws, min_col=2, min_row=table_start_row_number + 1, max_row=table_end_row_number) + line_data = Reference(ws, min_col=3 + i_num, min_row=table_start_row_number, max_row=table_end_row_number) + line.add_data(line_data, titles_from_data=True) + line.set_categories(labels) + line_data = line.series[0] + line_data.marker.symbol = "circle" + line_data.smooth = True + line.x_axis.crosses = 'min' + line.height = 8.25 + line.width = format_time_width_number * len(time) if len(time) > min_len_number else min_width_number + if line.width > 24: + line.width = 24 + line.dLbls = DataLabelList() + line.dLbls.dLblPos = 't' + line.dLbls.showVal = True + line.dLbls.showPercent = False + chart_col = 'B' + chart_cell = chart_col + str(chart_start_row_number) + chart_start_row_number += 6 + ws.add_chart(line, chart_cell) + + i_num += 1 + line = LineChart() + line.title = 'Reporting Period Cumulative Efficiency - ' + \ + reporting_period_data['names'][i] + '-' +reporting_period_data['denominator_names'][i] + " (" + \ + reporting_period_data['denominator_units'][i] + ")" + labels = Reference(ws, min_col=2, min_row=table_start_row_number + 1, max_row=table_end_row_number) + line_data = Reference(ws, min_col=3 + i_num, min_row=table_start_row_number, max_row=table_end_row_number) + line.add_data(line_data, titles_from_data=True) + line.set_categories(labels) + line_data = line.series[0] + line_data.marker.symbol = "circle" + line_data.smooth = True + line.x_axis.crosses = 'min' + line.height = 8.25 + line.width = format_time_width_number * len(time) if len(time) > min_len_number else min_width_number + if line.width > 24: + line.width = 24 + line.dLbls = DataLabelList() + line.dLbls.dLblPos = 't' + line.dLbls.showVal = True + line.dLbls.showPercent = False + chart_col = 'B' + chart_cell = chart_col + str(chart_start_row_number) + chart_start_row_number += 6 + ws.add_chart(line, chart_cell) + i_num += 1 + ################################################################################################################ has_associated_equipment_flag = True diff --git a/myems-api/reports/combinedequipmentefficiency.py b/myems-api/reports/combinedequipmentefficiency.py index 92646576..9da8340d 100644 --- a/myems-api/reports/combinedequipmentefficiency.py +++ b/myems-api/reports/combinedequipmentefficiency.py @@ -303,7 +303,7 @@ class Reporting: offline_meter_dict[row[1]] = {'id': row[0], 'unit': row[2]} # get all virtual meters virtual_meter_dict = dict() - query = (" SELECT m.id, m.uuid, ec.unit_of_measure " + query = (" SELECT m.id, m.uuid, ec.unit_of_measure, ec.name" " FROM tbl_virtual_meters m, tbl_energy_categories ec " " WHERE m.energy_category_id = ec.id ") cursor_system.execute(query) @@ -311,32 +311,38 @@ class Reporting: if rows_virtual_meters is not None and len(rows_virtual_meters) > 0: for row in rows_virtual_meters: - virtual_meter_dict[row[1]] = {'id': row[0], 'unit': row[2]} + virtual_meter_dict[row[1]] = {'id': row[0], 'unit': row[2], 'name': row[3]} if fraction_list is not None and len(fraction_list) > 0: for fraction in fraction_list: if fraction['numerator_meter_uuid'] in offline_meter_dict: + fraction['numerator_meter_name'] = offline_meter_dict[fraction['numerator_meter_uuid']]['name'] fraction['numerator_meter_id'] = offline_meter_dict[fraction['numerator_meter_uuid']]['id'] fraction['numerator_meter_unit'] = offline_meter_dict[fraction['numerator_meter_uuid']]['unit'] fraction['numerator_meter_type'] = 'offline_meter' elif fraction['numerator_meter_uuid'] in virtual_meter_dict: + fraction['numerator_meter_name'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['name'] fraction['numerator_meter_id'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['id'] fraction['numerator_meter_unit'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['unit'] fraction['numerator_meter_type'] = 'virtual_meter' elif fraction['numerator_meter_uuid'] in meter_dict: + fraction['numerator_meter_name'] = meter_dict[fraction['numerator_meter_uuid']]['name'] fraction['numerator_meter_id'] = meter_dict[fraction['numerator_meter_uuid']]['id'] fraction['numerator_meter_unit'] = meter_dict[fraction['numerator_meter_uuid']]['unit'] fraction['numerator_meter_type'] = 'meter' if fraction['denominator_meter_uuid'] in offline_meter_dict: + fraction['denominator_meter_name'] = offline_meter_dict[fraction['denominator_meter_uuid']]['name'] fraction['denominator_meter_id'] = offline_meter_dict[fraction['denominator_meter_uuid']]['id'] fraction['denominator_meter_unit'] = offline_meter_dict[fraction['denominator_meter_uuid']]['unit'] fraction['denominator_meter_type'] = 'offline_meter' elif fraction['denominator_meter_uuid'] in virtual_meter_dict: + fraction['denominator_meter_name'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['name'] fraction['denominator_meter_id'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['id'] fraction['denominator_meter_unit'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['unit'] fraction['denominator_meter_type'] = 'virtual_meter' elif fraction['denominator_meter_uuid'] in meter_dict: + fraction['denominator_meter_name'] = meter_dict[fraction['denominator_meter_uuid']]['name'] fraction['denominator_meter_id'] = meter_dict[fraction['denominator_meter_uuid']]['id'] fraction['denominator_meter_unit'] = meter_dict[fraction['denominator_meter_uuid']]['unit'] fraction['denominator_meter_type'] = 'meter' @@ -494,6 +500,12 @@ class Reporting: reporting[fraction['id']]['name'] = fraction['name'] reporting[fraction['id']]['unit'] = fraction['numerator_meter_unit'] + '/' + \ fraction['denominator_meter_unit'] + + reporting[fraction['id']]['numerator_name'] = fraction['numerator_meter_name'] + reporting[fraction['id']]['numerator_unit'] = fraction['numerator_meter_unit'] + reporting[fraction['id']]['denominator_name'] = fraction['denominator_meter_name'] + reporting[fraction['id']]['denominator_unit'] = fraction['denominator_meter_unit'] + reporting[fraction['id']]['numerator_timestamps'] = list() reporting[fraction['id']]['numerator_values'] = list() reporting[fraction['id']]['numerator_cumulation'] = Decimal(0.0) @@ -752,10 +764,30 @@ class Reporting: result['reporting_period_efficiency'] = dict() result['reporting_period_efficiency']['names'] = list() result['reporting_period_efficiency']['units'] = list() + + result['reporting_period_efficiency']['numerator_names'] = list() + result['reporting_period_efficiency']['numerator_units'] = list() + result['reporting_period_efficiency']['denominator_names'] = list() + result['reporting_period_efficiency']['denominator_units'] = list() + result['reporting_period_efficiency']['timestamps'] = list() result['reporting_period_efficiency']['values'] = list() + + result['reporting_period_efficiency']['numerator_timestamps'] = list() + result['reporting_period_efficiency']['numerator_values'] = list() + result['reporting_period_efficiency']['denominator_timestamps'] = list() + result['reporting_period_efficiency']['denominator_values'] = list() + result['reporting_period_efficiency']['cumulations'] = list() + + result['reporting_period_efficiency']['numerator_cumulations'] = list() + result['reporting_period_efficiency']['denominator_cumulations'] = list() + result['reporting_period_efficiency']['increment_rates'] = list() + + result['reporting_period_efficiency']['increment_rates_num'] = list() + result['reporting_period_efficiency']['increment_rates_den'] = list() + if fraction_list is not None and len(fraction_list) > 0: for fraction in fraction_list: result['base_period_efficiency']['timestamps'].append(base[fraction['id']]['timestamps']) @@ -763,13 +795,49 @@ class Reporting: result['base_period_efficiency']['cumulations'].append(base[fraction['id']]['cumulation']) result['reporting_period_efficiency']['names'].append(reporting[fraction['id']]['name']) result['reporting_period_efficiency']['units'].append(reporting[fraction['id']]['unit']) + + result['reporting_period_efficiency']['numerator_names'].append( + reporting[fraction['id']]['numerator_name']) + result['reporting_period_efficiency']['numerator_units'].append( + reporting[fraction['id']]['numerator_unit']) + result['reporting_period_efficiency']['denominator_names'].append( + reporting[fraction['id']]['denominator_name']) + result['reporting_period_efficiency']['denominator_units'].append( + reporting[fraction['id']]['denominator_unit']) + result['reporting_period_efficiency']['timestamps'].append(reporting[fraction['id']]['timestamps']) result['reporting_period_efficiency']['values'].append(reporting[fraction['id']]['values']) + + result['reporting_period_efficiency']['numerator_timestamps'].append( + reporting[fraction['id']]['numerator_timestamps']) + result['reporting_period_efficiency']['numerator_values'].append( + reporting[fraction['id']]['numerator_values']) + result['reporting_period_efficiency']['denominator_timestamps'].append( + reporting[fraction['id']]['denominator_timestamps']) + result['reporting_period_efficiency']['denominator_values'].append( + reporting[fraction['id']]['denominator_values']) + result['reporting_period_efficiency']['cumulations'].append(reporting[fraction['id']]['cumulation']) + + result['reporting_period_efficiency']['numerator_cumulations'].append( + reporting[fraction['id']]['numerator_cumulation']) + result['reporting_period_efficiency']['denominator_cumulations'].append( + reporting[fraction['id']]['denominator_cumulation']) + result['reporting_period_efficiency']['increment_rates'].append( (reporting[fraction['id']]['cumulation'] - base[fraction['id']]['cumulation']) / base[fraction['id']]['cumulation'] if base[fraction['id']]['cumulation'] > Decimal(0.0) else None) + result['reporting_period_efficiency']['increment_rates_num'].append( + (reporting[fraction['id']]['numerator_cumulation'] - base[fraction['id']]['numerator_cumulation']) / + base[fraction['id']]['numerator_cumulation'] if base[fraction['id']]['numerator_cumulation'] > + Decimal(0.0) else None) + result['reporting_period_efficiency']['increment_rates_den'].append( + (reporting[fraction['id']]['denominator_cumulation'] - + base[fraction['id']]['denominator_cumulation']) / + base[fraction['id']]['denominator_cumulation'] if base[fraction['id']]['denominator_cumulation'] > + Decimal(0.0) else None) + result['parameters'] = { "names": parameters_data['names'], "timestamps": parameters_data['timestamps'], diff --git a/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEfficiency.js b/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEfficiency.js index 3fb7bc1d..8db9e513 100644 --- a/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEfficiency.js +++ b/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEfficiency.js @@ -336,6 +336,16 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { cardSummaryItem['unit'] = json['reporting_period_efficiency']['units'][index]; cardSummaryItem['cumulation'] = json['reporting_period_efficiency']['cumulations'][index]; cardSummaryItem['increment_rate'] = parseFloat(json['reporting_period_efficiency']['increment_rates'][index] * 100).toFixed(2) + "%"; + + cardSummaryItem['numerator_name'] = json['reporting_period_efficiency']['numerator_names'][index]; + cardSummaryItem['numerator_unit'] = json['reporting_period_efficiency']['numerator_units'][index]; + cardSummaryItem['numerator_cumulation'] = json['reporting_period_efficiency']['numerator_cumulations'][index]; + cardSummaryItem['increment_rates_num'] = parseFloat(json['reporting_period_efficiency']['increment_rates_num'][index] * 100).toFixed(2) + "%"; + + cardSummaryItem['denominator_name'] = json['reporting_period_efficiency']['denominator_names'][index]; + cardSummaryItem['denominator_unit'] = json['reporting_period_efficiency']['denominator_units'][index]; + cardSummaryItem['denominator_cumulation'] = json['reporting_period_efficiency']['denominator_cumulations'][index]; + cardSummaryItem['increment_rates_den'] = parseFloat(json['reporting_period_efficiency']['increment_rates_den'][index] * 100).toFixed(2) + "%"; cardSummaryArray.push(cardSummaryItem); }); setCardSummaryList(cardSummaryArray); @@ -344,12 +354,24 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { json['reporting_period_efficiency']['timestamps'].forEach((currentValue, index) => { timestamps['a' + index] = currentValue; }); + json['reporting_period_efficiency']['numerator_timestamps'].forEach((currentValue, index) => { + timestamps['b' + index] = currentValue; + }); + json['reporting_period_efficiency']['denominator_timestamps'].forEach((currentValue, index) => { + timestamps['c' + index] = currentValue; + }); setCombinedEquipmentLineChartLabels(timestamps); let values = {} json['reporting_period_efficiency']['values'].forEach((currentValue, index) => { values['a' + index] = currentValue; }); + json['reporting_period_efficiency']['numerator_values'].forEach((currentValue, index) => { + values['b' + index] = currentValue; + }); + json['reporting_period_efficiency']['denominator_values'].forEach((currentValue, index) => { + values['c' + index] = currentValue; + }); setCombinedEquipmentLineChartData(values); let names = Array(); @@ -357,6 +379,16 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { let unit = json['reporting_period_efficiency']['units'][index]; names.push({ 'value': 'a' + index, 'label': currentValue + ' (' + unit + ')'}); }); + json['reporting_period_efficiency']['numerator_names'].forEach((currentValue, index) => { + let unit = json['reporting_period_efficiency']['numerator_units'][index]; + let name = json['reporting_period_efficiency']['names'][index]; + names.push({ 'value': 'b' + index, 'label': name + '-' + currentValue + ' (' + unit + ')'}); + }); + json['reporting_period_efficiency']['denominator_names'].forEach((currentValue, index) => { + let unit = json['reporting_period_efficiency']['denominator_units'][index]; + let name = json['reporting_period_efficiency']['names'][index]; + names.push({ 'value': 'c' + index, 'label': name + '-' + currentValue + ' (' + unit + ')'}); + }); setCombinedEquipmentLineChartOptions(names); timestamps = {} @@ -394,6 +426,20 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { detailed_value['a' + parameterIndex] = null; }; }); + json['reporting_period_efficiency']['numerator_values'].forEach((currentValue, parameterIndex) => { + if (json['reporting_period_efficiency']['numerator_values'][parameterIndex][timestampIndex] != null) { + detailed_value['b' + parameterIndex] = json['reporting_period_efficiency']['numerator_values'][parameterIndex][timestampIndex]; + } else { + detailed_value['b' + parameterIndex] = null; + }; + }); + json['reporting_period_efficiency']['denominator_values'].forEach((currentValue, parameterIndex) => { + if (json['reporting_period_efficiency']['denominator_values'][parameterIndex][timestampIndex] != null) { + detailed_value['c' + parameterIndex] = json['reporting_period_efficiency']['denominator_values'][parameterIndex][timestampIndex]; + } else { + detailed_value['c' + parameterIndex] = null; + }; + }); detailed_value_list.push(detailed_value); }); @@ -405,6 +451,13 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { json['reporting_period_efficiency']['cumulations'].forEach((currentValue, index) => { detailed_value['a' + index] = currentValue; }); + json['reporting_period_efficiency']['numerator_cumulations'].forEach((currentValue, index) => { + detailed_value['b' + index] = currentValue; + }); + json['reporting_period_efficiency']['denominator_cumulations'].forEach((currentValue, index) => { + detailed_value['c' + index] = currentValue; + }); + detailed_value_list.push(detailed_value); setDetailedDataTableData(detailed_value_list); @@ -416,6 +469,10 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { }) json['reporting_period_efficiency']['names'].forEach((currentValue, index) => { let unit = json['reporting_period_efficiency']['units'][index]; + let numerator_name = json['reporting_period_efficiency']['numerator_names'][index]; + let numerator_unit = json['reporting_period_efficiency']['numerator_units'][index]; + let denominator_name = json['reporting_period_efficiency']['denominator_names'][index]; + let denominator_unit = json['reporting_period_efficiency']['denominator_units'][index]; detailed_column_list.push({ dataField: 'a' + index, text: currentValue + ' (' + unit + ')', @@ -428,6 +485,30 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { } } }) + detailed_column_list.push({ + dataField: 'b' + index, + text: currentValue + '-' + numerator_name + ' (' + numerator_unit + ')', + sort: true, + formatter: function (decimalValue) { + if (decimalValue !== null) { + return decimalValue.toFixed(2); + } else { + return null; + } + } + }) + detailed_column_list.push({ + dataField: 'c' + index, + text: currentValue + '-' + denominator_name + ' (' + denominator_unit + ')', + sort: true, + formatter: function (decimalValue) { + if (decimalValue !== null) { + return decimalValue.toFixed(2); + } else { + return null; + } + } + }) }); setDetailedDataTableColumns(detailed_column_list); @@ -646,17 +727,28 @@ const CombinedEquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => { -