import pendulum from pot_libs.settings import SETTING from unify_api.constants import CST from unify_api.modules.common.service.td_engine_service import \ get_td_engine_data from unify_api.utils.taos_new import parse_td_columns, td3_tbl_compate from unify_api.utils.time_format import get_15min_ago async def elec_current_data(mtids, cid): res_map = {} last_15min_time = get_15min_ago() url = f"{SETTING.stb_url}db_electric?tz=Asia/Shanghai" 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" is_succ, results = await get_td_engine_data(url, sql) if is_succ: head = parse_td_columns(results) for res in results["data"]: data = dict(zip(head, res)) if data["mtid"] in mtids: res_map[data["mtid"]] = data return res_map 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