Commit 3eca62e3 authored by peng.xiaozhe's avatar peng.xiaozhe

zd-info-factory接口修复

parent 6d640792
...@@ -38,6 +38,60 @@ from unify_api.modules.electric_optimization.dao.power_index import ( ...@@ -38,6 +38,60 @@ from unify_api.modules.electric_optimization.dao.power_index import (
async def other_info(company_id): async def other_info(company_id):
"""
今日报警数和累计安全运行天数,报警数
"""
alarm_sql = f"""
SELECT
DATE(pevent.event_datetime) event_date,
COUNT(*) event_count
FROM
point_1min_event pevent
WHERE
cid = %s
GROUP BY
DATE(pevent.event_datetime)
"""
now_time = datetime.now()
# 获取到工厂安装时间create_time
async with MysqlUtil() as conn:
company_sql = "select create_time from company where cid = %s"
alarm_data = await conn.fetchone(alarm_sql, (company_id,))
company = await conn.fetchone(company_sql, (company_id,))
create_time_timestamp = company["create_time"]
create_time = datetime.fromtimestamp(create_time_timestamp)
today_alarm_count = 0
alarm_count = 0
if not alarm_data:
log.warn(
"No alarm data %s" % (company_id)
)
# 1. 增加逻辑,新增工厂如果还没有事件产生
# 系统安全运行天数: 当前时间 - 工厂安装时间 + 1
safe_run_days = (now_time - create_time).days + 1
return today_alarm_count, safe_run_days, alarm_count
# 5. 构造返回
# 如果每天都有报警, 防止安全运行天数-1天, 所以total_days +2
total_days = (now_time - create_time).days + 2
has_alarm_days = 0
for data in alarm_data:
create_time.strftime("%Y-%m-%d")
if data["event_date"].strftime("%Y-%m-%d") == str(now_time)[:10]:
today_alarm_count += data["event_count"]
if data["event_count"] != 0:
# 没有报警,看做是安全运行了,统计累计安全运行的天数
has_alarm_days += 1
alarm_count += data["event_count"]
safe_run_days = total_days - has_alarm_days
log.info(
f"today_alarm_count={today_alarm_count} safe_run_days={safe_run_days}")
return today_alarm_count, safe_run_days, alarm_count
async def other_info_old(company_id):
""" """
今日报警数和累计安全运行天数,报警数 今日报警数和累计安全运行天数,报警数
:param company_id: :param company_id:
......
...@@ -13,7 +13,7 @@ from unify_api.modules.common.procedures.points import proxy_points, list_point ...@@ -13,7 +13,7 @@ from unify_api.modules.common.procedures.points import proxy_points, list_point
from unify_api.modules.elec_charge.dao.elec_charge_dao import \ from unify_api.modules.elec_charge.dao.elec_charge_dao import \
query_charge_aggs_points, point_aggs_kwh query_charge_aggs_points, point_aggs_kwh
from unify_api.modules.elec_charge.procedures.elec_charge_pds import \ from unify_api.modules.elec_charge.procedures.elec_charge_pds import \
proxy_power proxy_power, proxy_power15
from unify_api.modules.home_page.components.count_info_proxy_cps import \ from unify_api.modules.home_page.components.count_info_proxy_cps import \
IycResp, IycmResp, RtrResp, AlarmLevelCnt, AlarmContentCnt, CmResp, \ IycResp, IycmResp, RtrResp, AlarmLevelCnt, AlarmContentCnt, CmResp, \
ApcResp, AsiResp, HsiResp, AiiResp ApcResp, AsiResp, HsiResp, AiiResp
...@@ -51,7 +51,7 @@ async def post_zd_info_factory_service(cid_list): ...@@ -51,7 +51,7 @@ async def post_zd_info_factory_service(cid_list):
safe_operation_days += safe_run_days safe_operation_days += safe_run_days
total_alarm += alarm_count total_alarm += alarm_count
# 4. 累计监测用电 # 4. 累计监测用电
total_power = await proxy_power(cid_list) total_power = await proxy_power15(cid_list)
# 5. 日均碳排放 = 累计用电 * 0.754 / 总运行天数 # 5. 日均碳排放 = 累计用电 * 0.754 / 总运行天数
# 运行天数 # 运行天数
sql = "select create_time from company where cid = %s" sql = "select create_time from company where cid = %s"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment