fix: 执行测点函数的bug
This commit is contained in:
parent
a0955c401f
commit
e6127864e7
|
@ -42,17 +42,21 @@ def get_tag_val():
|
|||
else:
|
||||
last_tag_id = mr.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() # 获取数据后保存至本地
|
||||
need_func = {} # 需要执行测点函数的字典, 此种情况只执行一次
|
||||
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.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.save()
|
||||
last_tag_id = mr_one.tag_id
|
||||
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}})
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
|
|
|
@ -66,7 +66,7 @@ def cal_shut_hour(stlogId: str):
|
|||
for stlog in stlogs:
|
||||
now = datetime.datetime.now()
|
||||
st_start = stlog.start_time
|
||||
if st_start >= now:
|
||||
if localtime(st_start) >= now:
|
||||
break
|
||||
if stlog.end_time is None: # 说明停机还未结束,此时也需要计算duration
|
||||
st_end = now
|
||||
|
|
Loading…
Reference in New Issue