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
from django.utils.timezone import localtime
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):
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):
"""
获取煤粉热值
只有回转窑需要录入煤粉热值
"""
sflog = SfLog.objects.filter(end_time__year=year_s, end_time__month=month_s, end_time__day=day_s).exclude(pcoal_val=None).first()
if sflog:
return sflog.coal_val
return None
key = f'pgoal_val_{year_s}_{month_s}_{day_s}'
pcoal_val = cache.get(key, None)
if pcoal_val is not 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:
sflog.total_hour_now = 12
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()
return sflog.total_hour_now
else:
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)
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()
@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:
stlogs = StLog.objects.filter(id=stlogId)
else:
@ -85,4 +87,8 @@ def cal_shut_hour(stlogId: str):
if ret.get('sum', 0):
sflog.shut_hour = ret['sum']
sflog.save()
compute_enstat('sflog')
cal_enstat('sflog')
@shared_task(base=CustomTask)
def cal_enstat_when_pcoal_val_change():