fix: equip_elec_data 计算

This commit is contained in:
zty 2024-08-16 18:44:00 +08:00
parent 71dd916dbf
commit 4cdc48e549
1 changed files with 11 additions and 6 deletions

View File

@ -546,10 +546,15 @@ def cal_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, month_s,
enstat.save() enstat.save()
# 计算一些其他数据 # 计算一些其他数据
if type == "month_st" and "material" in this_cal_attrs: # 如果计算的是班月,把主要设备电耗数据拉过来, 方便查询 if type == "month_st" and "material" in this_cal_attrs: # 如果计算的是班月,把主要设备电耗数据拉过来, 方便查询
res = MpointStat.objects.filter(type="sflog", year_s=year_s, month_s=month_s, sflog__team=enstat.team, mpoint__ep_monitored__isnull=False).values( res = MpointStat.objects.filter(type='sflog', year_s=year_s, month_s=month_s, sflog__team=enstat.team, mpoint__ep_monitored__power_kw__gte=100).values(
"elec_consume_unit", equipment=F("mpoint__ep_monitored__id"), equipment_name=F("mpoint__ep_monitored__name") equipment=F('mpoint__ep_monitored__id'), equipment_name=F('mpoint__ep_monitored__name')).annotate(consume=Sum('val'))
) res = list(res)
enstat.equip_elec_data = list(res) for item in res:
try:
item['consume_unit'] = item['consume'] / enstat.total_production
except ZeroDivisionError:
item['consume_unit'] = None
enstat.equip_elec_data = res
enstat.save() enstat.save()
if enstat.mgroup.name == "回转窑": # 算单位产品(综合电耗/标煤耗/综合能耗) if enstat.mgroup.name == "回转窑": # 算单位产品(综合电耗/标煤耗/综合能耗)
# 综合电耗 # 综合电耗
@ -732,9 +737,9 @@ def cal_enstat2(type: str, year_s: int, month_s: int, day_s: int, cascade=True):
) )
if use_mpoint_elec_val: if use_mpoint_elec_val:
if type == 'day_s': if type == 'day_s':
enstat2.elec_consume = MpointStat.objects.filter(type='day', mpoint__in=mp_elecs, year=year_s, month=month_s, day=day_s).aggregate(sum=Sum("val"))['sum'] enstat2.elec_consume = MpointStat.objects.filter(type='day_s', mpoint__in=mp_elecs, year=year_s, month=month_s, day=day_s).aggregate(sum=Sum("val"))['sum']
elif type == 'month_s': elif type == 'month_s':
enstat2.elec_consume = MpointStat.objects.filter(type='month', mpoint__in=mp_elecs, year=year_s, month=month_s).aggregate(sum=Sum("val"))['sum'] enstat2.elec_consume = MpointStat.objects.filter(type='month_s', mpoint__in=mp_elecs, year=year_s, month=month_s).aggregate(sum=Sum("val"))['sum']
if enstat2.elec_consume is None: if enstat2.elec_consume is None:
enstat2.elec_consume = 0 enstat2.elec_consume = 0
else: else: