changed meter qrcode from svg to string

pull/113/MERGE
13621160019@163.com 2022-01-12 11:58:36 +08:00
parent 397b54b79c
commit 85a2728faf
3 changed files with 7 additions and 36 deletions

View File

@ -1089,6 +1089,7 @@ Result
| energy_item | Object | Energy Item Object | | energy_item | Object | Energy Item Object |
| master_meter | Object | Master Meter Object | | master_meter | Object | Master Meter Object |
| description | string | Meter description | | description | string | Meter description |
| qrcode | string | Meter QRCode String |
* GET All Meters * GET All Meters
```bash ```bash

View File

@ -1,11 +1,9 @@
import falcon import falcon
import simplejson as json import simplejson as json
import mysql.connector import mysql.connector
import config
import uuid import uuid
from core.useractivity import user_logger, access_control from core.useractivity import user_logger, access_control
from core.utilities import qrcode_to_base64 import config
class MeterCollection: class MeterCollection:
@ -82,7 +80,6 @@ class MeterCollection:
result = list() result = list()
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_qrcode = qrcode_to_base64(data="meter" + row['uuid'])
energy_category = energy_category_dict.get(row['energy_category_id'], None) energy_category = energy_category_dict.get(row['energy_category_id'], None)
cost_center = cost_center_dict.get(row['cost_center_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None)
energy_item = energy_item_dict.get(row['energy_item_id'], None) energy_item = energy_item_dict.get(row['energy_item_id'], None)
@ -98,7 +95,7 @@ class MeterCollection:
"energy_item": energy_item, "energy_item": energy_item,
"master_meter": master_meter, "master_meter": master_meter,
"description": row['description'], "description": row['description'],
"qrcode": meter_qrcode} "qrcode": "meter:" + row['uuid']}
result.append(meta_result) result.append(meta_result)
cursor.close() cursor.close()
@ -357,7 +354,6 @@ class MeterItem:
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND', raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
description='API.METER_NOT_FOUND') description='API.METER_NOT_FOUND')
else: else:
meter_qrcode = qrcode_to_base64(data="meter"+row['uuid'])
energy_category = energy_category_dict.get(row['energy_category_id'], None) energy_category = energy_category_dict.get(row['energy_category_id'], None)
cost_center = cost_center_dict.get(row['cost_center_id'], None) cost_center = cost_center_dict.get(row['cost_center_id'], None)
energy_item = energy_item_dict.get(row['energy_item_id'], None) energy_item = energy_item_dict.get(row['energy_item_id'], None)
@ -373,7 +369,7 @@ class MeterItem:
"energy_item": energy_item, "energy_item": energy_item,
"master_meter": master_meter, "master_meter": master_meter,
"description": row['description'], "description": row['description'],
"qrcode": meter_qrcode} "qrcode": "meter:"+row['uuid']}
resp.text = json.dumps(meta_result) resp.text = json.dumps(meta_result)

View File

@ -1,15 +1,9 @@
import base64
import calendar
import io
from datetime import datetime, timedelta from datetime import datetime, timedelta
import mysql.connector import mysql.connector
import collections import collections
from decimal import Decimal from decimal import Decimal
import qrcode.image.svg
import qrcode
import config
import statistics import statistics
import config
######################################################################################################################## ########################################################################################################################
@ -253,7 +247,7 @@ def get_energy_category_tariffs(cost_center_id, energy_category_id, start_dateti
query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, price " query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, price "
" FROM tbl_tariffs_timeofuses " " FROM tbl_tariffs_timeofuses "
" WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")" " WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")"
" ORDER BY tariff_id, start_time_of_day ") " ORDER BY tariff_id, start_time_of_day ")
cursor.execute(query_timeofuse_tariffs, ) cursor.execute(query_timeofuse_tariffs, )
rows_timeofuse_tariffs = cursor.fetchall() rows_timeofuse_tariffs = cursor.fetchall()
except Exception as e: except Exception as e:
@ -357,7 +351,7 @@ def get_energy_category_peak_types(cost_center_id, energy_category_id, start_dat
query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, peak_type " query_timeofuse_tariffs = (" SELECT tariff_id, start_time_of_day, end_time_of_day, peak_type "
" FROM tbl_tariffs_timeofuses " " FROM tbl_tariffs_timeofuses "
" WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")" " WHERE tariff_id IN ( " + ', '.join(map(str, tariff_dict.keys())) + ")"
" ORDER BY tariff_id, start_time_of_day ") " ORDER BY tariff_id, start_time_of_day ")
cursor.execute(query_timeofuse_tariffs, ) cursor.execute(query_timeofuse_tariffs, )
rows_timeofuse_tariffs = cursor.fetchall() rows_timeofuse_tariffs = cursor.fetchall()
except Exception as e: except Exception as e:
@ -1006,23 +1000,3 @@ def statistics_hourly_data_by_period(rows_hourly, start_datetime_utc, end_dateti
variance = statistics.variance(sample_data) variance = statistics.variance(sample_data)
return result_rows_yearly, mean, median, minimum, maximum, stdev, variance 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())