Added Energy Input & Output Values to Detailed Data of Equipment Efficiency Repor
parent
a248df9006
commit
8803fc4559
|
@ -168,6 +168,8 @@ def generate_excel(report,
|
||||||
current_row_number += 1
|
current_row_number += 1
|
||||||
|
|
||||||
category = reporting_period_data['names']
|
category = reporting_period_data['names']
|
||||||
|
numerator_names = reporting_period_data['numerator_names']
|
||||||
|
denominator_names = reporting_period_data['denominator_names']
|
||||||
ca_len = len(category)
|
ca_len = len(category)
|
||||||
|
|
||||||
ws.row_dimensions[current_row_number].height = 80
|
ws.row_dimensions[current_row_number].height = 80
|
||||||
|
@ -186,6 +188,29 @@ def generate_excel(report,
|
||||||
|
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
nu_len = len(numerator_names)
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
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['numerator_names'][i] + " (" + reporting_period_data['numerator_units'][i] + ")"
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
de_len = len(denominator_names)
|
||||||
|
for i in range(0, de_len):
|
||||||
|
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['denominator_names'][i] + " (" + \
|
||||||
|
reporting_period_data['denominator_units'][i] + ")"
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
current_row_number += 1
|
current_row_number += 1
|
||||||
|
|
||||||
ws['B' + str(current_row_number)].font = title_font
|
ws['B' + str(current_row_number)].font = title_font
|
||||||
|
@ -203,6 +228,22 @@ def generate_excel(report,
|
||||||
|
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
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_cumulation'][i], 2)
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, de_len):
|
||||||
|
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_cumulation'][i], 2)
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
current_row_number += 1
|
current_row_number += 1
|
||||||
|
|
||||||
ws['B' + str(current_row_number)].font = title_font
|
ws['B' + str(current_row_number)].font = title_font
|
||||||
|
@ -222,6 +263,25 @@ def generate_excel(report,
|
||||||
|
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
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)
|
||||||
|
|
||||||
|
for i in range(0, de_len):
|
||||||
|
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
|
current_row_number += 2
|
||||||
|
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
|
@ -262,6 +322,8 @@ def generate_excel(report,
|
||||||
|
|
||||||
if has_values_data and has_timestamps_data:
|
if has_values_data and has_timestamps_data:
|
||||||
ca_len = len(reporting_period_data['names'])
|
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]
|
time = reporting_period_data['timestamps'][0]
|
||||||
|
|
||||||
ws['B' + str(current_row_number)].font = title_font
|
ws['B' + str(current_row_number)].font = title_font
|
||||||
|
@ -271,7 +333,7 @@ def generate_excel(report,
|
||||||
|
|
||||||
chart_start_row_number = current_row_number
|
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:
|
if has_parameters_names_and_timestamps_and_values_data:
|
||||||
current_sheet_parameters_row_number = current_row_number
|
current_sheet_parameters_row_number = current_row_number
|
||||||
|
@ -303,6 +365,26 @@ def generate_excel(report,
|
||||||
reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + ")"
|
reporting_period_data['names'][i] + " (" + reporting_period_data['units'][i] + ")"
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
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['numerator_names'][i] + " (" + reporting_period_data['numerator_units'][i] + ")"
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, de_len):
|
||||||
|
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['denominator_names'][i] + " (" + \
|
||||||
|
reporting_period_data['denominator_units'][i] + ")"
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
current_row_number += 1
|
current_row_number += 1
|
||||||
|
|
||||||
for i in range(0, len(time)):
|
for i in range(0, len(time)):
|
||||||
|
@ -320,6 +402,22 @@ def generate_excel(report,
|
||||||
if reporting_period_data['values'][j][i] is not None else 0.00
|
if reporting_period_data['values'][j][i] is not None else 0.00
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for j in range(0, nu_len):
|
||||||
|
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)
|
||||||
|
|
||||||
|
for j in range(0, de_len):
|
||||||
|
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
|
current_row_number += 1
|
||||||
|
|
||||||
table_end_row_number = current_row_number - 1
|
table_end_row_number = current_row_number - 1
|
||||||
|
@ -338,6 +436,22 @@ def generate_excel(report,
|
||||||
ws[col + str(current_row_number)] = round(reporting_period_data['cumulations'][i], 2)
|
ws[col + str(current_row_number)] = round(reporting_period_data['cumulations'][i], 2)
|
||||||
col = chr(ord(col) + 1)
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
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_cumulation'][i], 2)
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
|
for i in range(0, de_len):
|
||||||
|
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_cumulation'][i], 2)
|
||||||
|
|
||||||
|
col = chr(ord(col) + 1)
|
||||||
|
|
||||||
current_row_number += 2
|
current_row_number += 2
|
||||||
|
|
||||||
format_time_width_number = 1.0
|
format_time_width_number = 1.0
|
||||||
|
@ -386,6 +500,58 @@ def generate_excel(report,
|
||||||
chart_start_row_number += 6
|
chart_start_row_number += 6
|
||||||
ws.add_chart(line, chart_cell)
|
ws.add_chart(line, chart_cell)
|
||||||
|
|
||||||
|
for i in range(0, nu_len):
|
||||||
|
line = LineChart()
|
||||||
|
line.title = 'Reporting Period Cumulative Efficiency - ' + \
|
||||||
|
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, 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)
|
||||||
|
|
||||||
|
for i in range(0, de_len):
|
||||||
|
line = LineChart()
|
||||||
|
line.title = 'Reporting Period Cumulative Efficiency - ' + \
|
||||||
|
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, 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)
|
||||||
|
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
|
|
||||||
if has_parameters_names_and_timestamps_and_values_data:
|
if has_parameters_names_and_timestamps_and_values_data:
|
||||||
|
|
|
@ -195,7 +195,7 @@ class Reporting:
|
||||||
################################################################################################################
|
################################################################################################################
|
||||||
# get all meters
|
# get all meters
|
||||||
meter_dict = dict()
|
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_meters m, tbl_energy_categories ec "
|
" FROM tbl_meters m, tbl_energy_categories ec "
|
||||||
" WHERE m.energy_category_id = ec.id ")
|
" WHERE m.energy_category_id = ec.id ")
|
||||||
cursor_system.execute(query)
|
cursor_system.execute(query)
|
||||||
|
@ -203,10 +203,10 @@ class Reporting:
|
||||||
|
|
||||||
if rows_meters is not None and len(rows_meters) > 0:
|
if rows_meters is not None and len(rows_meters) > 0:
|
||||||
for row in rows_meters:
|
for row in rows_meters:
|
||||||
meter_dict[row[1]] = {'id': row[0], 'unit': row[2]}
|
meter_dict[row[1]] = {'id': row[0], 'unit': row[2], 'name': row[3]}
|
||||||
# get all offline meters
|
# get all offline meters
|
||||||
offline_meter_dict = dict()
|
offline_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_offline_meters m, tbl_energy_categories ec "
|
" FROM tbl_offline_meters m, tbl_energy_categories ec "
|
||||||
" WHERE m.energy_category_id = ec.id ")
|
" WHERE m.energy_category_id = ec.id ")
|
||||||
cursor_system.execute(query)
|
cursor_system.execute(query)
|
||||||
|
@ -214,10 +214,10 @@ class Reporting:
|
||||||
|
|
||||||
if rows_offline_meters is not None and len(rows_offline_meters) > 0:
|
if rows_offline_meters is not None and len(rows_offline_meters) > 0:
|
||||||
for row in rows_offline_meters:
|
for row in rows_offline_meters:
|
||||||
offline_meter_dict[row[1]] = {'id': row[0], 'unit': row[2]}
|
offline_meter_dict[row[1]] = {'id': row[0], 'unit': row[2], 'name': row[3]}
|
||||||
# get all virtual meters
|
# get all virtual meters
|
||||||
virtual_meter_dict = dict()
|
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 "
|
" FROM tbl_virtual_meters m, tbl_energy_categories ec "
|
||||||
" WHERE m.energy_category_id = ec.id ")
|
" WHERE m.energy_category_id = ec.id ")
|
||||||
cursor_system.execute(query)
|
cursor_system.execute(query)
|
||||||
|
@ -225,32 +225,38 @@ class Reporting:
|
||||||
|
|
||||||
if rows_virtual_meters is not None and len(rows_virtual_meters) > 0:
|
if rows_virtual_meters is not None and len(rows_virtual_meters) > 0:
|
||||||
for row in rows_virtual_meters:
|
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:
|
if fraction_list is not None and len(fraction_list) > 0:
|
||||||
for fraction in fraction_list:
|
for fraction in fraction_list:
|
||||||
if fraction['numerator_meter_uuid'] in offline_meter_dict:
|
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_id'] = offline_meter_dict[fraction['numerator_meter_uuid']]['id']
|
||||||
fraction['numerator_meter_unit'] = offline_meter_dict[fraction['numerator_meter_uuid']]['unit']
|
fraction['numerator_meter_unit'] = offline_meter_dict[fraction['numerator_meter_uuid']]['unit']
|
||||||
fraction['numerator_meter_type'] = 'offline_meter'
|
fraction['numerator_meter_type'] = 'offline_meter'
|
||||||
elif fraction['numerator_meter_uuid'] in virtual_meter_dict:
|
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_id'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['id']
|
||||||
fraction['numerator_meter_unit'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['unit']
|
fraction['numerator_meter_unit'] = virtual_meter_dict[fraction['numerator_meter_uuid']]['unit']
|
||||||
fraction['numerator_meter_type'] = 'virtual_meter'
|
fraction['numerator_meter_type'] = 'virtual_meter'
|
||||||
elif fraction['numerator_meter_uuid'] in meter_dict:
|
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_id'] = meter_dict[fraction['numerator_meter_uuid']]['id']
|
||||||
fraction['numerator_meter_unit'] = meter_dict[fraction['numerator_meter_uuid']]['unit']
|
fraction['numerator_meter_unit'] = meter_dict[fraction['numerator_meter_uuid']]['unit']
|
||||||
fraction['numerator_meter_type'] = 'meter'
|
fraction['numerator_meter_type'] = 'meter'
|
||||||
|
|
||||||
if fraction['denominator_meter_uuid'] in offline_meter_dict:
|
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_id'] = offline_meter_dict[fraction['denominator_meter_uuid']]['id']
|
||||||
fraction['denominator_meter_unit'] = offline_meter_dict[fraction['denominator_meter_uuid']]['unit']
|
fraction['denominator_meter_unit'] = offline_meter_dict[fraction['denominator_meter_uuid']]['unit']
|
||||||
fraction['denominator_meter_type'] = 'offline_meter'
|
fraction['denominator_meter_type'] = 'offline_meter'
|
||||||
elif fraction['denominator_meter_uuid'] in virtual_meter_dict:
|
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_id'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['id']
|
||||||
fraction['denominator_meter_unit'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['unit']
|
fraction['denominator_meter_unit'] = virtual_meter_dict[fraction['denominator_meter_uuid']]['unit']
|
||||||
fraction['denominator_meter_type'] = 'virtual_meter'
|
fraction['denominator_meter_type'] = 'virtual_meter'
|
||||||
elif fraction['denominator_meter_uuid'] in meter_dict:
|
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_id'] = meter_dict[fraction['denominator_meter_uuid']]['id']
|
||||||
fraction['denominator_meter_unit'] = meter_dict[fraction['denominator_meter_uuid']]['unit']
|
fraction['denominator_meter_unit'] = meter_dict[fraction['denominator_meter_uuid']]['unit']
|
||||||
fraction['denominator_meter_type'] = 'meter'
|
fraction['denominator_meter_type'] = 'meter'
|
||||||
|
@ -406,6 +412,10 @@ class Reporting:
|
||||||
for fraction in fraction_list:
|
for fraction in fraction_list:
|
||||||
reporting[fraction['id']] = dict()
|
reporting[fraction['id']] = dict()
|
||||||
reporting[fraction['id']]['name'] = fraction['name']
|
reporting[fraction['id']]['name'] = fraction['name']
|
||||||
|
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']]['unit'] = fraction['numerator_meter_unit'] + '/' + \
|
reporting[fraction['id']]['unit'] = fraction['numerator_meter_unit'] + '/' + \
|
||||||
fraction['denominator_meter_unit']
|
fraction['denominator_meter_unit']
|
||||||
reporting[fraction['id']]['numerator_timestamps'] = list()
|
reporting[fraction['id']]['numerator_timestamps'] = list()
|
||||||
|
@ -636,10 +646,23 @@ class Reporting:
|
||||||
result['reporting_period_efficiency'] = dict()
|
result['reporting_period_efficiency'] = dict()
|
||||||
result['reporting_period_efficiency']['names'] = list()
|
result['reporting_period_efficiency']['names'] = list()
|
||||||
result['reporting_period_efficiency']['units'] = 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']['timestamps'] = list()
|
||||||
result['reporting_period_efficiency']['values'] = 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']['cumulations'] = list()
|
||||||
|
result['reporting_period_efficiency']['numerator_cumulation'] = list()
|
||||||
|
result['reporting_period_efficiency']['denominator_cumulation'] = list()
|
||||||
result['reporting_period_efficiency']['increment_rates'] = 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:
|
if fraction_list is not None and len(fraction_list) > 0:
|
||||||
for fraction in fraction_list:
|
for fraction in fraction_list:
|
||||||
result['base_period_efficiency']['timestamps'].append(base[fraction['id']]['timestamps'])
|
result['base_period_efficiency']['timestamps'].append(base[fraction['id']]['timestamps'])
|
||||||
|
@ -647,12 +670,43 @@ class Reporting:
|
||||||
result['base_period_efficiency']['cumulations'].append(base[fraction['id']]['cumulation'])
|
result['base_period_efficiency']['cumulations'].append(base[fraction['id']]['cumulation'])
|
||||||
result['reporting_period_efficiency']['names'].append(reporting[fraction['id']]['name'])
|
result['reporting_period_efficiency']['names'].append(reporting[fraction['id']]['name'])
|
||||||
result['reporting_period_efficiency']['units'].append(reporting[fraction['id']]['unit'])
|
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']['timestamps'].append(reporting[fraction['id']]['timestamps'])
|
||||||
result['reporting_period_efficiency']['values'].append(reporting[fraction['id']]['values'])
|
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']['cumulations'].append(reporting[fraction['id']]['cumulation'])
|
||||||
|
result['reporting_period_efficiency']['numerator_cumulation'].append(
|
||||||
|
reporting[fraction['id']]['numerator_cumulation'])
|
||||||
|
result['reporting_period_efficiency']['denominator_cumulation'].append(
|
||||||
|
reporting[fraction['id']]['denominator_cumulation'])
|
||||||
result['reporting_period_efficiency']['increment_rates'].append(
|
result['reporting_period_efficiency']['increment_rates'].append(
|
||||||
(reporting[fraction['id']]['cumulation'] - base[fraction['id']]['cumulation']) /
|
(reporting[fraction['id']]['cumulation'] - base[fraction['id']]['cumulation']) /
|
||||||
base[fraction['id']]['cumulation'] if base[fraction['id']]['cumulation'] > Decimal(0.0) else None)
|
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'] = {
|
result['parameters'] = {
|
||||||
"names": parameters_data['names'],
|
"names": parameters_data['names'],
|
||||||
|
|
|
@ -77,6 +77,8 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
|
|
||||||
//Results
|
//Results
|
||||||
const [cardSummaryList, setCardSummaryList] = useState([]);
|
const [cardSummaryList, setCardSummaryList] = useState([]);
|
||||||
|
const [totalOutput, settotalOutput] = useState({});
|
||||||
|
const [totalConsumption, settotalConsumption] = useState({});
|
||||||
const [equipmentLineChartLabels, setEquipmentLineChartLabels] = useState([]);
|
const [equipmentLineChartLabels, setEquipmentLineChartLabels] = useState([]);
|
||||||
const [equipmentLineChartData, setEquipmentLineChartData] = useState({});
|
const [equipmentLineChartData, setEquipmentLineChartData] = useState({});
|
||||||
const [equipmentLineChartOptions, setEquipmentLineChartOptions] = useState([]);
|
const [equipmentLineChartOptions, setEquipmentLineChartOptions] = useState([]);
|
||||||
|
@ -330,18 +332,50 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
cardSummaryItem['increment_rate'] = parseFloat(json['reporting_period_efficiency']['increment_rates'][index] * 100).toFixed(2) + "%";
|
cardSummaryItem['increment_rate'] = parseFloat(json['reporting_period_efficiency']['increment_rates'][index] * 100).toFixed(2) + "%";
|
||||||
cardSummaryArray.push(cardSummaryItem);
|
cardSummaryArray.push(cardSummaryItem);
|
||||||
});
|
});
|
||||||
|
console.log("cardSummaryArray")
|
||||||
|
console.log(cardSummaryArray)
|
||||||
setCardSummaryList(cardSummaryArray);
|
setCardSummaryList(cardSummaryArray);
|
||||||
|
|
||||||
|
let totalOutput = {}
|
||||||
|
json['reporting_period_efficiency']['numerator_names'].forEach((currentValue, index) => {
|
||||||
|
totalOutput['name'] = json['reporting_period_efficiency']['numerator_names'][index];
|
||||||
|
totalOutput['unit'] = json['reporting_period_efficiency']['numerator_units'][index];
|
||||||
|
totalOutput['cumulation'] = json['reporting_period_efficiency']['numerator_cumulation'][index];
|
||||||
|
totalOutput['increment_rate'] = parseFloat(json['reporting_period_efficiency']['increment_rates_num'][index] * 100).toFixed(2) + "%";
|
||||||
|
});
|
||||||
|
settotalOutput(totalOutput);
|
||||||
|
|
||||||
|
let totalConsumption = {}
|
||||||
|
json['reporting_period_efficiency']['denominator_names'].forEach((currentValue, index) => {
|
||||||
|
totalConsumption['name'] = json['reporting_period_efficiency']['denominator_names'][index];
|
||||||
|
totalConsumption['unit'] = json['reporting_period_efficiency']['denominator_units'][index];
|
||||||
|
totalConsumption['cumulation'] = json['reporting_period_efficiency']['denominator_cumulation'][index];
|
||||||
|
totalConsumption['increment_rate'] = parseFloat(json['reporting_period_efficiency']['increment_rates_den'][index] * 100).toFixed(2) + "%";
|
||||||
|
});
|
||||||
|
settotalConsumption(totalConsumption);
|
||||||
|
|
||||||
let timestamps = {}
|
let timestamps = {}
|
||||||
json['reporting_period_efficiency']['timestamps'].forEach((currentValue, index) => {
|
json['reporting_period_efficiency']['timestamps'].forEach((currentValue, index) => {
|
||||||
timestamps['a' + index] = currentValue;
|
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;
|
||||||
|
});
|
||||||
setEquipmentLineChartLabels(timestamps);
|
setEquipmentLineChartLabels(timestamps);
|
||||||
|
|
||||||
let values = {}
|
let values = {}
|
||||||
json['reporting_period_efficiency']['values'].forEach((currentValue, index) => {
|
json['reporting_period_efficiency']['values'].forEach((currentValue, index) => {
|
||||||
values['a' + index] = currentValue;
|
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;
|
||||||
|
});
|
||||||
setEquipmentLineChartData(values);
|
setEquipmentLineChartData(values);
|
||||||
|
|
||||||
let names = Array();
|
let names = Array();
|
||||||
|
@ -349,6 +383,14 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
let unit = json['reporting_period_efficiency']['units'][index];
|
let unit = json['reporting_period_efficiency']['units'][index];
|
||||||
names.push({ 'value': 'a' + index, 'label': currentValue + ' (' + unit + ')'});
|
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];
|
||||||
|
names.push({ 'value': 'b' + index, 'label': currentValue + ' (' + unit + ')'});
|
||||||
|
});
|
||||||
|
json['reporting_period_efficiency']['denominator_names'].forEach((currentValue, index) => {
|
||||||
|
let unit = json['reporting_period_efficiency']['denominator_units'][index];
|
||||||
|
names.push({ 'value': 'c' + index, 'label': currentValue + ' (' + unit + ')'});
|
||||||
|
});
|
||||||
setEquipmentLineChartOptions(names);
|
setEquipmentLineChartOptions(names);
|
||||||
|
|
||||||
timestamps = {}
|
timestamps = {}
|
||||||
|
@ -386,7 +428,20 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
detailed_value['a' + parameterIndex] = null;
|
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);
|
detailed_value_list.push(detailed_value);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -397,6 +452,14 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
json['reporting_period_efficiency']['cumulations'].forEach((currentValue, index) => {
|
json['reporting_period_efficiency']['cumulations'].forEach((currentValue, index) => {
|
||||||
detailed_value['a' + index] = currentValue;
|
detailed_value['a' + index] = currentValue;
|
||||||
});
|
});
|
||||||
|
json['reporting_period_efficiency']['numerator_cumulation'].forEach((currentValue, index) => {
|
||||||
|
detailed_value['b' + index] = currentValue;
|
||||||
|
});
|
||||||
|
json['reporting_period_efficiency']['denominator_cumulation'].forEach((currentValue, index) => {
|
||||||
|
detailed_value['c' + index] = currentValue;
|
||||||
|
});
|
||||||
|
console.log("detailed_value_list")
|
||||||
|
console.log(detailed_value_list)
|
||||||
detailed_value_list.push(detailed_value);
|
detailed_value_list.push(detailed_value);
|
||||||
setDetailedDataTableData(detailed_value_list);
|
setDetailedDataTableData(detailed_value_list);
|
||||||
|
|
||||||
|
@ -421,6 +484,38 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
json['reporting_period_efficiency']['numerator_names'].forEach((currentValue, index) => {
|
||||||
|
let unit = json['reporting_period_efficiency']['numerator_units'][index];
|
||||||
|
detailed_column_list.push({
|
||||||
|
dataField: 'b' + index,
|
||||||
|
text: currentValue + ' (' + unit + ')',
|
||||||
|
sort: true,
|
||||||
|
formatter: function (decimalValue) {
|
||||||
|
if (decimalValue !== null) {
|
||||||
|
return decimalValue.toFixed(2);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
json['reporting_period_efficiency']['denominator_names'].forEach((currentValue, index) => {
|
||||||
|
let unit = json['reporting_period_efficiency']['denominator_units'][index];
|
||||||
|
detailed_column_list.push({
|
||||||
|
dataField: 'c' + index,
|
||||||
|
text: currentValue + ' (' + unit + ')',
|
||||||
|
sort: true,
|
||||||
|
formatter: function (decimalValue) {
|
||||||
|
if (decimalValue !== null) {
|
||||||
|
return decimalValue.toFixed(2);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
console.log("detailed_column_list")
|
||||||
|
console.log(detailed_column_list)
|
||||||
setDetailedDataTableColumns(detailed_column_list);
|
setDetailedDataTableColumns(detailed_column_list);
|
||||||
|
|
||||||
setExcelBytesBase64(json['excel_bytes_base64']);
|
setExcelBytesBase64(json['excel_bytes_base64']);
|
||||||
|
@ -616,6 +711,20 @@ const EquipmentEfficiency = ({ setRedirect, setRedirectUrl, t }) => {
|
||||||
{cardSummaryItem['cumulation'] && <CountUp end={cardSummaryItem['cumulation']} duration={2} prefix="" separator="," decimal="." decimals={2} />}
|
{cardSummaryItem['cumulation'] && <CountUp end={cardSummaryItem['cumulation']} duration={2} prefix="" separator="," decimal="." decimals={2} />}
|
||||||
</CardSummary>
|
</CardSummary>
|
||||||
))}
|
))}
|
||||||
|
|
||||||
|
<CardSummary
|
||||||
|
rate={totalOutput['increment_rate'] || ''}
|
||||||
|
title={t('Reporting Period Output CATEGORY UNIT', { 'CATEGORY': totalOutput['name'], 'UNIT': '(' + totalOutput['unit'] + ')' })}
|
||||||
|
color="success" >
|
||||||
|
{totalOutput['cumulation'] && <CountUp end={totalOutput['cumulation']} duration={2} prefix="" separator="," decimal="." decimals={2} />}
|
||||||
|
</CardSummary>
|
||||||
|
|
||||||
|
<CardSummary
|
||||||
|
rate={totalConsumption['increment_rate'] || ''}
|
||||||
|
title={t('Reporting Period Consumption CATEGORY UNIT', { 'CATEGORY': totalConsumption['name'], 'UNIT': '(' + totalConsumption['unit'] + ')' })}
|
||||||
|
color="success" >
|
||||||
|
{totalConsumption['cumulation'] && <CountUp end={totalConsumption['cumulation']} duration={2} prefix="" separator="," decimal="." decimals={2} />}
|
||||||
|
</CardSummary>
|
||||||
</div>
|
</div>
|
||||||
<LineChart reportingTitle={t('Reporting Period Cumulative Efficiency VALUE UNIT', { 'VALUE': null, 'UNIT': null })}
|
<LineChart reportingTitle={t('Reporting Period Cumulative Efficiency VALUE UNIT', { 'VALUE': null, 'UNIT': null })}
|
||||||
baseTitle=''
|
baseTitle=''
|
||||||
|
|
Loading…
Reference in New Issue