Merge branch 'PR' into develop
commit
397b54b79c
|
@ -3,7 +3,9 @@ import simplejson as json
|
|||
import mysql.connector
|
||||
import config
|
||||
import uuid
|
||||
|
||||
from core.useractivity import user_logger, access_control
|
||||
from core.utilities import qrcode_to_base64
|
||||
|
||||
|
||||
class MeterCollection:
|
||||
|
@ -80,6 +82,7 @@ class MeterCollection:
|
|||
result = list()
|
||||
if rows_meters is not None and len(rows_meters) > 0:
|
||||
for row in rows_meters:
|
||||
meter_qrcode = qrcode_to_base64(data="meter" + row['uuid'])
|
||||
energy_category = energy_category_dict.get(row['energy_category_id'], None)
|
||||
cost_center = cost_center_dict.get(row['cost_center_id'], None)
|
||||
energy_item = energy_item_dict.get(row['energy_item_id'], None)
|
||||
|
@ -94,7 +97,8 @@ class MeterCollection:
|
|||
"cost_center": cost_center,
|
||||
"energy_item": energy_item,
|
||||
"master_meter": master_meter,
|
||||
"description": row['description']}
|
||||
"description": row['description'],
|
||||
"qrcode": meter_qrcode}
|
||||
result.append(meta_result)
|
||||
|
||||
cursor.close()
|
||||
|
@ -353,6 +357,7 @@ class MeterItem:
|
|||
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
|
||||
description='API.METER_NOT_FOUND')
|
||||
else:
|
||||
meter_qrcode = qrcode_to_base64(data="meter"+row['uuid'])
|
||||
energy_category = energy_category_dict.get(row['energy_category_id'], None)
|
||||
cost_center = cost_center_dict.get(row['cost_center_id'], None)
|
||||
energy_item = energy_item_dict.get(row['energy_item_id'], None)
|
||||
|
@ -367,7 +372,8 @@ class MeterItem:
|
|||
"cost_center": cost_center,
|
||||
"energy_item": energy_item,
|
||||
"master_meter": master_meter,
|
||||
"description": row['description']}
|
||||
"description": row['description'],
|
||||
"qrcode": meter_qrcode}
|
||||
|
||||
resp.text = json.dumps(meta_result)
|
||||
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
import base64
|
||||
import calendar
|
||||
import io
|
||||
from datetime import datetime, timedelta
|
||||
import mysql.connector
|
||||
import collections
|
||||
from decimal import Decimal
|
||||
import qrcode.image.svg
|
||||
import qrcode
|
||||
|
||||
import config
|
||||
import statistics
|
||||
|
||||
|
@ -1001,3 +1006,23 @@ def statistics_hourly_data_by_period(rows_hourly, start_datetime_utc, end_dateti
|
|||
variance = statistics.variance(sample_data)
|
||||
|
||||
return result_rows_yearly, mean, median, minimum, maximum, stdev, variance
|
||||
|
||||
|
||||
def qrcode_to_base64(version=1, error_correction=qrcode.ERROR_CORRECT_L, box_size=10, border=4,
|
||||
factory=qrcode.image.svg.SvgImage, data=None):
|
||||
if version < 1 or version > 40 or \
|
||||
box_size < 0 or border < 0 or \
|
||||
error_correction not in \
|
||||
(qrcode.ERROR_CORRECT_L, qrcode.ERROR_CORRECT_M, qrcode.ERROR_CORRECT_H, qrcode.ERROR_CORRECT_Q):
|
||||
return " "
|
||||
qr = qrcode.QRCode(
|
||||
version=1,
|
||||
error_correction=qrcode.ERROR_CORRECT_L,
|
||||
box_size=10,
|
||||
border=4,
|
||||
)
|
||||
qr.add_data(data)
|
||||
img = qr.make_image(image_factory=factory)
|
||||
f = io.BytesIO()
|
||||
img.save(f)
|
||||
return base64.b64encode(f.getvalue())
|
||||
|
|
Loading…
Reference in New Issue