# 完善task
This commit is contained in:
parent
5401ce3ccd
commit
f908676d9b
|
@ -5,7 +5,7 @@ from datetime import datetime, time, timedelta
|
||||||
from django.db.models import Max
|
from django.db.models import Max
|
||||||
from celery import task
|
from celery import task
|
||||||
from counter.models import DeviceCount
|
from counter.models import DeviceCount
|
||||||
from mosquito.models import MosqPostStatistic
|
from mosquito.models import MosqPostStatistic, DevicePostStatistic
|
||||||
|
|
||||||
|
|
||||||
def max_count(x, y):
|
def max_count(x, y):
|
||||||
|
@ -53,7 +53,7 @@ def get_daily_statistic(enable_container=False):
|
||||||
if enable_container:
|
if enable_container:
|
||||||
for device_id in device_list:
|
for device_id in device_list:
|
||||||
device_container[device_id] = device_container[device_id] | \
|
device_container[device_id] = device_container[device_id] | \
|
||||||
{(entry.data_time, entry.count)
|
{(entry.data_time.date(), entry.count)
|
||||||
for entry in daily_queryset if entry.device_id == device_id}
|
for entry in daily_queryset if entry.device_id == device_id}
|
||||||
calc_result = sum(map(lambda x: int(x.count), daily_queryset))
|
calc_result = sum(map(lambda x: int(x.count), daily_queryset))
|
||||||
date = q.date
|
date = q.date
|
||||||
|
@ -61,6 +61,7 @@ def get_daily_statistic(enable_container=False):
|
||||||
return daily_ret, device_container
|
return daily_ret, device_container
|
||||||
|
|
||||||
|
|
||||||
|
@task()
|
||||||
def update_daily_statistic():
|
def update_daily_statistic():
|
||||||
full_ret = None
|
full_ret = None
|
||||||
# 计算每天聚合值
|
# 计算每天聚合值
|
||||||
|
@ -75,6 +76,19 @@ def update_daily_statistic():
|
||||||
container = dict(device_container[device_id])
|
container = dict(device_container[device_id])
|
||||||
full_daily_ret = fill_date(container, tz=pytz.timezone("UTC"))
|
full_daily_ret = fill_date(container, tz=pytz.timezone("UTC"))
|
||||||
|
|
||||||
|
_date_list = [k for k in full_daily_ret]
|
||||||
|
_date_list.sort()
|
||||||
|
for d in _date_list:
|
||||||
|
try:
|
||||||
|
obj = DevicePostStatistic.objects.get(device_id=device_id, date=d)
|
||||||
|
except DevicePostStatistic.DoesNotExist:
|
||||||
|
obj = None
|
||||||
|
if obj:
|
||||||
|
obj.total = full_daily_ret[d]
|
||||||
|
obj.save()
|
||||||
|
else:
|
||||||
|
DevicePostStatistic.objects.create(device_id=device_id, total=full_daily_ret[d], date=d)
|
||||||
|
|
||||||
# 写入数据库
|
# 写入数据库
|
||||||
if full_ret:
|
if full_ret:
|
||||||
_date_list = [k for k in full_ret]
|
_date_list = [k for k in full_ret]
|
||||||
|
|
Loading…
Reference in New Issue