feat: get_total_hour_now 修改

This commit is contained in:
caoqianming 2023-08-01 16:41:47 +08:00
parent 80b61c9f8b
commit 251e373d5b
2 changed files with 27 additions and 8 deletions

View File

@ -3,6 +3,7 @@ from apps.mtm.models import Shift, Mgroup
import datetime import datetime
from django.utils.timezone import localtime from django.utils.timezone import localtime
from django.db.models import Sum from django.db.models import Sum
from django.core.cache import cache
def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.date): def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.date):
for shift in Shift.objects.all(): for shift in Shift.objects.all():
@ -25,8 +26,20 @@ def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.da
def get_pcoal_val(year_s: int, month_s: int, day_s: int): def get_pcoal_val(year_s: int, month_s: int, day_s: int):
""" """
获取煤粉热值 获取煤粉热值
只有回转窑需要录入煤粉热值
""" """
sflog = SfLog.objects.filter(end_time__year=year_s, end_time__month=month_s, end_time__day=day_s).exclude(pcoal_val=None).first() key = f'pgoal_val_{year_s}_{month_s}_{day_s}'
if sflog: pcoal_val = cache.get(key, None)
return sflog.coal_val if pcoal_val is not None:
return None return pcoal_val
else:
try:
qs = SfLog.objects.get(end_time__year=year_s, end_time__month=month_s, end_time__day=day_s,
mgroup__name='回转窑', shift__name='夜班')
if qs.pcoal_val is None:
qs.pcoal_val = 0
qs.save()
cache.set(f'pgoal_val_{year_s}_{month_s}_{day_s}', qs.pcoal_val)
return qs.pcoal_val
except:
return 0

View File

@ -37,14 +37,16 @@ def get_total_hour_now(sflogId: str):
if localtime(sflog.end_time) <= now: if localtime(sflog.end_time) <= now:
sflog.total_hour_now = 12 sflog.total_hour_now = 12
else: else:
sflog.total_hour_now = (now - localtime(sflog.start_time).replace(tzinfo=None)).total_seconds()/3600 total_hour_now = (now-localtime(i.start_time).replace(tzinfo=None)).total_seconds()/3600
sflog.total_hour_now = total_hour_now if total_hour_now > 0 else 0
sflog.save() sflog.save()
return sflog.total_hour_now return sflog.total_hour_now
else: else:
SfLog.objects.filter(end_time__lte=now).exclude(total_hour_now=12).update(total_hour_now=12) SfLog.objects.filter(end_time__lte=now).exclude(total_hour_now=12).update(total_hour_now=12)
sf_qs = SfLog.objects.filter(end_time__gt=now) sf_qs = SfLog.objects.filter(end_time__gt=now)
for i in sf_qs: for i in sf_qs:
i.total_hour_now = (now-localtime(i.start_time).replace(tzinfo=None)).total_seconds()/3600 total_hour_now = (now-localtime(i.start_time).replace(tzinfo=None)).total_seconds()/3600
i.total_hour_now = total_hour_now if total_hour_now > 0 else 0
i.save() i.save()
@shared_task(base=CustomTask) @shared_task(base=CustomTask)
@ -52,7 +54,7 @@ def cal_shut_hour(stlogId: str):
""" """
计算停机记录对应的班停时长 计算停机记录对应的班停时长
""" """
from apps.enm.tasks import compute_enstat from apps.enm.tasks import cal_enstat
if stlogId: if stlogId:
stlogs = StLog.objects.filter(id=stlogId) stlogs = StLog.objects.filter(id=stlogId)
else: else:
@ -85,4 +87,8 @@ def cal_shut_hour(stlogId: str):
if ret.get('sum', 0): if ret.get('sum', 0):
sflog.shut_hour = ret['sum'] sflog.shut_hour = ret['sum']
sflog.save() sflog.save()
compute_enstat('sflog') cal_enstat('sflog')
@shared_task(base=CustomTask)
def cal_enstat_when_pcoal_val_change():