diff --git a/apps/wpm/tasks.py b/apps/wpm/tasks.py index 7bb1e7d9..b9beeea1 100644 --- a/apps/wpm/tasks.py +++ b/apps/wpm/tasks.py @@ -11,7 +11,7 @@ import datetime from django.db.models import Sum from apps.wpm.services import make_sflogs from apps.wpm.models import SfLog, StLog, SfLogExp -from django.utils.timezone import localtime +from django.utils import timezone from django.db.models import F @shared_task(base=CustomTask) @@ -35,13 +35,13 @@ def get_total_hour_now(sflogId: str): 获取当前总时长, 当传入的是一个sflog时, 返回其total_hour_now 否则更新所有total_hour_now """ - now = datetime.datetime.now() + now = timezone.now() if sflogId: sflog = SfLog.objects.get(id=sflogId) - if localtime(sflog.end_time) <= now: + if sflog.end_time <= now: sflog.total_hour_now = 12 else: - total_hour_now = (now-localtime(i.start_time).replace(tzinfo=None)).total_seconds()/3600 + total_hour_now = (now-i.start_time).total_seconds()/3600 sflog.total_hour_now = total_hour_now if total_hour_now > 0 else 0 sflog.save() return sflog.total_hour_now @@ -49,7 +49,7 @@ def get_total_hour_now(sflogId: str): 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: - total_hour_now = (now-localtime(i.start_time).replace(tzinfo=None)).total_seconds()/3600 + total_hour_now = (now-i.start_time).total_seconds()/3600 i.total_hour_now = total_hour_now if total_hour_now > 0 else 0 i.save() @@ -63,10 +63,10 @@ def cal_shut_hour(stlogId: str): stlogs = StLog.objects.filter(id=stlogId) else: stlogs = StLog.objects.filter(end_time=None) + now = timezone.now() for stlog in stlogs: - now = datetime.datetime.now() st_start = stlog.start_time - if localtime(st_start) >= now: + if st_start >= now: break if stlog.end_time is None: # 说明停机还未结束,此时也需要计算duration st_end = now @@ -95,7 +95,7 @@ def cal_shut_hour(stlogId: str): sflog.shut_hour = ret['sum'] sflog.save() # 更新sflog总时长 - if localtime(sflog.end_time) > now: + if sflog.end_time > now: get_total_hour_now(sflog.id) if stlogId: cal_enstat('sflog', sflog.id, sflog.mgroup.id, None, None, None, None, None, None, None, cascade=True, cal_attrs=['run_hour'])