fix: 完善2代数据统计入库逻辑
This commit is contained in:
parent
2c79d8dcd9
commit
712943b4c2
|
@ -5,7 +5,7 @@ import django
|
|||
from typing import Dict
|
||||
from pathlib import Path
|
||||
from enum import Enum
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
import paho.mqtt.client as mqtt
|
||||
|
||||
|
||||
|
@ -123,22 +123,27 @@ def create_mosq_post(device_id: str, post_data: Dict):
|
|||
|
||||
|
||||
def update_mosq_device_statistic(device_id: str, post_data: Dict):
|
||||
device = DeviceInfo.objects.filter(device_id=device_id).first()
|
||||
datetime_format = "%Y-%m-%d %H:%M:%S"
|
||||
cur_date = datetime.strptime(post_data['time'], datetime_format).date()
|
||||
old_record = DevicePostStatistic.objects.filter(device_id=device_id, date=cur_date).first()
|
||||
org = Org.objects.get(id=1)
|
||||
incr = 0
|
||||
cur_total = post_data['count']
|
||||
if old_record:
|
||||
device = DeviceInfo.objects.filter(device_id=device_id).first()
|
||||
if device:
|
||||
org = device.org
|
||||
incr = cur_total - old_record.total
|
||||
DevicePostStatistic.objects.create(device_id=device_id,
|
||||
date=cur_date,
|
||||
total=cur_total,
|
||||
increment=incr,
|
||||
org=org)
|
||||
cur_record = DevicePostStatistic.objects.filter(device_id=device_id, date=cur_date).first()
|
||||
last_record = DevicePostStatistic.objects.filter(device_id=device_id, date=cur_date - timedelta(days=1)).first()
|
||||
if last_record and cur_record:
|
||||
incr = cur_record.total - last_record.total
|
||||
else:
|
||||
incr = 0
|
||||
|
||||
mqtt_total = post_data['count']
|
||||
if cur_record:
|
||||
cur_record.total = mqtt_total
|
||||
cur_record.increment = incr
|
||||
cur_record.save()
|
||||
else:
|
||||
DevicePostStatistic.objects.create(device_id=device_id,
|
||||
date=cur_date,
|
||||
total=mqtt_total,
|
||||
increment=incr,
|
||||
org=device.org)
|
||||
|
||||
|
||||
def to_string(post_data: Dict, power_type: PowerType) -> str:
|
||||
|
|
Loading…
Reference in New Issue