fixed issue in Meter Batch Analysis Report of API
parent
557f8f72b8
commit
7b1961656e
|
@ -123,10 +123,11 @@ class Reporting:
|
||||||
for node in LevelOrderIter(node_dict[space_id]):
|
for node in LevelOrderIter(node_dict[space_id]):
|
||||||
space_dict[node.id] = node.name
|
space_dict[node.id] = node.name
|
||||||
|
|
||||||
cursor_system_db.execute(" SELECT m.id, m.name AS meter_name, s.name AS space_name, "
|
cursor_system_db.execute(" SELECT m.id, m.name AS meter_name, m.energy_category_id, "
|
||||||
" cc.name AS cost_center_name, m.description "
|
" s.name AS space_name, "
|
||||||
|
" cc.name AS cost_center_name"
|
||||||
" FROM tbl_spaces s, tbl_spaces_meters sm, "
|
" FROM tbl_spaces s, tbl_spaces_meters sm, "
|
||||||
" tbl_meters m, tbl_cost_centers cc "
|
" tbl_meters m, tbl_cost_centers cc "
|
||||||
" WHERE s.id IN ( " + ', '.join(map(str, space_dict.keys())) + ") "
|
" WHERE s.id IN ( " + ', '.join(map(str, space_dict.keys())) + ") "
|
||||||
" AND sm.space_id = s.id AND sm.meter_id = m.id "
|
" AND sm.space_id = s.id AND sm.meter_id = m.id "
|
||||||
" AND m.cost_center_id = cc.id ", )
|
" AND m.cost_center_id = cc.id ", )
|
||||||
|
@ -134,9 +135,9 @@ 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['id']] = {"meter_name": row['meter_name'],
|
meter_dict[row['id']] = {"meter_name": row['meter_name'],
|
||||||
|
"energy_category_id": row['energy_category_id'],
|
||||||
"space_name": row['space_name'],
|
"space_name": row['space_name'],
|
||||||
"cost_center_name": row['cost_center_name'],
|
"cost_center_name": row['cost_center_name'],
|
||||||
"description": row['description'],
|
|
||||||
"values": list()}
|
"values": list()}
|
||||||
|
|
||||||
################################################################################################################
|
################################################################################################################
|
||||||
|
@ -147,14 +148,10 @@ class Reporting:
|
||||||
|
|
||||||
# query energy categories in reporting period
|
# query energy categories in reporting period
|
||||||
energy_category_set = set()
|
energy_category_set = set()
|
||||||
cursor_energy_db.execute(" SELECT DISTINCT(energy_category_id) "
|
|
||||||
" FROM tbl_meter_input_category_hourly "
|
if rows_meters is not None or len(rows_meters) > 0:
|
||||||
" WHERE start_datetime_utc >= %s AND start_datetime_utc < %s ",
|
for row_meter in rows_meters:
|
||||||
(reporting_start_datetime_utc, reporting_end_datetime_utc))
|
energy_category_set.add(row_meter['energy_category_id'])
|
||||||
rows_energy_categories = cursor_energy_db.fetchall()
|
|
||||||
if rows_energy_categories is not None or len(rows_energy_categories) > 0:
|
|
||||||
for row_energy_category in rows_energy_categories:
|
|
||||||
energy_category_set.add(row_energy_category[0])
|
|
||||||
|
|
||||||
# query all energy categories
|
# query all energy categories
|
||||||
cursor_system_db.execute(" SELECT id, name, unit_of_measure "
|
cursor_system_db.execute(" SELECT id, name, unit_of_measure "
|
||||||
|
@ -187,12 +184,11 @@ class Reporting:
|
||||||
################################################################################################################
|
################################################################################################################
|
||||||
for meter_id in meter_dict:
|
for meter_id in meter_dict:
|
||||||
|
|
||||||
cursor_energy_db.execute(" SELECT energy_category_id, SUM(actual_value) "
|
cursor_energy_db.execute(" SELECT SUM(actual_value) "
|
||||||
" FROM tbl_meter_input_category_hourly "
|
" FROM tbl_meter_hourly "
|
||||||
" WHERE meter_id = %s "
|
" WHERE meter_id = %s "
|
||||||
" AND start_datetime_utc >= %s "
|
" AND start_datetime_utc >= %s "
|
||||||
" AND start_datetime_utc < %s "
|
" AND start_datetime_utc < %s ",
|
||||||
" GROUP BY energy_category_id ",
|
|
||||||
(meter_id,
|
(meter_id,
|
||||||
reporting_start_datetime_utc,
|
reporting_start_datetime_utc,
|
||||||
reporting_end_datetime_utc))
|
reporting_end_datetime_utc))
|
||||||
|
@ -200,8 +196,8 @@ class Reporting:
|
||||||
for energy_category in energy_category_list:
|
for energy_category in energy_category_list:
|
||||||
subtotal = Decimal(0.0)
|
subtotal = Decimal(0.0)
|
||||||
for row_meter_energy in rows_meter_energy:
|
for row_meter_energy in rows_meter_energy:
|
||||||
if energy_category['id'] == row_meter_energy[0]:
|
if energy_category['id'] == meter_dict[meter_id]['energy_category_id']:
|
||||||
subtotal = row_meter_energy[1]
|
subtotal = row_meter_energy[0]
|
||||||
break
|
break
|
||||||
meter_dict[meter_id]['values'].append(subtotal)
|
meter_dict[meter_id]['values'].append(subtotal)
|
||||||
|
|
||||||
|
@ -225,7 +221,6 @@ class Reporting:
|
||||||
"meter_name": meter['meter_name'],
|
"meter_name": meter['meter_name'],
|
||||||
"space_name": meter['space_name'],
|
"space_name": meter['space_name'],
|
||||||
"cost_center_name": meter['cost_center_name'],
|
"cost_center_name": meter['cost_center_name'],
|
||||||
"description": meter['description'],
|
|
||||||
"values": meter['values'],
|
"values": meter['values'],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue