electric_pds.py 1.22 KB
Newer Older
lcn's avatar
lcn committed
1 2
import pendulum

lcn's avatar
lcn committed
3
from pot_libs.settings import SETTING
lcn's avatar
lcn committed
4
from unify_api.constants import CST
lcn's avatar
lcn committed
5 6
from unify_api.modules.common.service.td_engine_service import \
    get_td_engine_data
lcn's avatar
lcn committed
7
from unify_api.utils.taos_new import parse_td_columns, td3_tbl_compate
lcn's avatar
lcn committed
8
from unify_api.utils.time_format import get_15min_ago
lcn's avatar
lcn committed
9 10


ZZH's avatar
ZZH committed
11
async def elec_current_data(mtids, cid):
lcn's avatar
lcn committed
12
    res_map = {}
lcn's avatar
lcn committed
13
    last_15min_time = get_15min_ago()
wang.wenrong's avatar
wang.wenrong committed
14
    url = f"{SETTING.stb_url}db_electric?tz=Asia/Shanghai"
lcn's avatar
lcn committed
15 16 17 18 19 20
    
    table_name = ["mt{}_ele".format(mtid) for mtid in mtids]
    td_tables = td3_tbl_compate(table_name)
    sql = f"select last_row(*) from electric_stb " \
          f"where TBNAME IN {td_tables} and ts >= '{last_15min_time}' " \
          f"group by tbname"
lcn's avatar
lcn committed
21 22
    is_succ, results = await get_td_engine_data(url, sql)
    if is_succ:
wang.wenrong's avatar
wang.wenrong committed
23
        head = parse_td_columns(results)
lcn's avatar
lcn committed
24 25
        for res in results["data"]:
            data = dict(zip(head, res))
lcn's avatar
lcn committed
26 27
            if data["mtid"] in mtids:
                res_map[data["mtid"]] = data
lcn's avatar
lcn committed
28
    return res_map
lcn's avatar
lcn committed
29 30 31 32 33 34 35 36


def trans_electric_tdengine_data(results):
    head = parse_td_columns(results)
    if not results["data"]:
        results["data"] = ['' for i in range(len(head))]
    res = dict(zip(head, results["data"][0]))
    return res