fix: 执行测点函数的bug
This commit is contained in:
parent
a0955c401f
commit
e6127864e7
|
|
@ -42,17 +42,21 @@ def get_tag_val():
|
||||||
else:
|
else:
|
||||||
last_tag_id = mr.tag_id
|
last_tag_id = mr.tag_id
|
||||||
update_sysconfig({'enm': {'last_tag_id': last_tag_id}})
|
update_sysconfig({'enm': {'last_tag_id': last_tag_id}})
|
||||||
cursor.execute("select id, val, tag_code, update_time from tag_value where id > %s order by id", (last_tag_id))
|
cursor.execute("select id, val, tag_code, update_time from tag_value where id > %s order by update_time, id", (last_tag_id))
|
||||||
results = cursor.fetchall() # 获取数据后保存至本地
|
results = cursor.fetchall() # 获取数据后保存至本地
|
||||||
|
need_func = {} # 需要执行测点函数的字典, 此种情况只执行一次
|
||||||
for row in results:
|
for row in results:
|
||||||
|
mpoint, _ = Mpoint.objects.get_or_create(code=mr_one.tag_code, defaults={'name': mr_one.tag_code, 'code': mr_one.tag_code, 'unit': 'unknown'})
|
||||||
mr_one = MpLog()
|
mr_one = MpLog()
|
||||||
mr_one.tag_id, mr_one.tag_val, mr_one.tag_code, mr_one.tag_update = row
|
mr_one.tag_id, mr_one.tag_val, mr_one.tag_code, mr_one.tag_update = row
|
||||||
mpoint, _ = Mpoint.objects.get_or_create(code=mr_one.tag_code, defaults={'name': mr_one.tag_code, 'code': mr_one.tag_code, 'unit': 'unknown'})
|
|
||||||
mr_one.mpoint = mpoint
|
mr_one.mpoint = mpoint
|
||||||
mr_one.save()
|
mr_one.save()
|
||||||
last_tag_id = mr_one.tag_id
|
last_tag_id = mr_one.tag_id
|
||||||
if mpoint.func_on_change:
|
if mpoint.func_on_change:
|
||||||
mpoint_val_on_change.delay(mr_one.id)
|
need_func[mpoint.id] = mr_one.id
|
||||||
|
# 执行测点函数
|
||||||
|
for key in need_func:
|
||||||
|
mpoint_val_on_change.delay(need_func[key])
|
||||||
update_sysconfig({'enm': {'last_tag_id': last_tag_id}})
|
update_sysconfig({'enm': {'last_tag_id': last_tag_id}})
|
||||||
|
|
||||||
@shared_task(base=CustomTask)
|
@shared_task(base=CustomTask)
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ def cal_shut_hour(stlogId: str):
|
||||||
for stlog in stlogs:
|
for stlog in stlogs:
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
st_start = stlog.start_time
|
st_start = stlog.start_time
|
||||||
if st_start >= now:
|
if localtime(st_start) >= now:
|
||||||
break
|
break
|
||||||
if stlog.end_time is None: # 说明停机还未结束,此时也需要计算duration
|
if stlog.end_time is None: # 说明停机还未结束,此时也需要计算duration
|
||||||
st_end = now
|
st_end = now
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue