From 53ce0ea0f76bd787cbadf9331f268c8d50ebe86c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 24 Apr 2024 16:23:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20runningstate=E7=BB=9F=E4=B8=80=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/em/models.py | 14 ++++++-------- apps/em/services.py | 9 ++++----- apps/em/tasks.py | 6 +++--- apps/enm/services.py | 18 +++++++++--------- 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/apps/em/models.py b/apps/em/models.py index f796a439..13c85e84 100644 --- a/apps/em/models.py +++ b/apps/em/models.py @@ -6,14 +6,6 @@ from enum import Enum # Create your models here. -class RuningState(Enum): - RUNING = 10 - STANDBY = 20 - STOP = 30 - FAILURE = 40 - OFFLINE = 50 - - etype_choices = ((10, "生产设备"), (20, "计量设备"), (30, "治理设备"), (40, "监测设备"), (50, "监控设备")) @@ -34,6 +26,12 @@ class Equipment(CommonBModel): 设备台账信息 其中belong_dept是责任部门 """ + RUNING = 10 + STANDBY = 20 + STOP = 30 + FAILURE = 40 + OFFLINE = 50 + EQUIP_STATE_OK = 10 EQUIP_STATE_LIMIT = 20 diff --git a/apps/em/services.py b/apps/em/services.py index a8d906c9..4cca78e3 100644 --- a/apps/em/services.py +++ b/apps/em/services.py @@ -2,7 +2,6 @@ from .models import Equipment from apps.system.models import Dept from apps.mtm.models import Mgroup import datetime -from .models import RuningState def shutdown_or_startup(equipId: str, last_timex: datetime, last_mrs): @@ -22,17 +21,17 @@ def shutdown_or_startup(equipId: str, last_timex: datetime, last_mrs): if mgroup and indicate: mrun = None - if last_mrs in [RuningState.STOP, RuningState.FAILURE, RuningState.STANDBY]: # 设备停止信号 + if last_mrs in [Equipment.STOP, Equipment.FAILURE, Equipment.STANDBY]: # 设备停止信号 if indicate in [Equipment.IM_DANDAN, Equipment.IM_DOUDAN]: mrun= False else: - if not Equipment.objects.filter(mgroup=mgroup, indicate_mgroup_running=indicate, running_state=RuningState.RUNING).exists(): + if not Equipment.objects.filter(mgroup=mgroup, indicate_mgroup_running=indicate, running_state=Equipment.RUNING).exists(): mrun = False - elif last_mrs == RuningState.RUNING: # 设备启动信号 + elif last_mrs == Equipment.RUNING: # 设备启动信号 if indicate in [Equipment.IM_DANDAN, Equipment.IM_DANDOU]: mrun= True else: - if not Equipment.objects.filter(mgroup=mgroup, indicate_mgroup_running=indicate, running_state__in=[RuningState.STOP, RuningState.FAILURE, RuningState.STANDBY]).exists(): + if not Equipment.objects.filter(mgroup=mgroup, indicate_mgroup_running=indicate, running_state__in=[Equipment.STOP, Equipment.FAILURE, Equipment.STANDBY]).exists(): mrun = True if mrun is not None: diff --git a/apps/em/tasks.py b/apps/em/tasks.py index 4d66c866..2a7245bf 100644 --- a/apps/em/tasks.py +++ b/apps/em/tasks.py @@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals from apps.utils.tasks import CustomTask from celery import shared_task from django.utils import timezone -from apps.em.models import Equipment, RuningState +from apps.em.models import Equipment from django.core.cache import cache @@ -23,6 +23,6 @@ def check_equipment_offline(seconds=20): last_timex = cache_value.get("running_state_timex", None) if last_timex and (now - last_timex).total_seconds() <= seconds: is_offline = False - if is_offline and equip.running_state != RuningState.OFFLINE: - equip.running_state = RuningState.OFFLINE + if is_offline and equip.running_state != Equipment.OFFLINE: + equip.running_state = Equipment.OFFLINE equip.save(update_fields=["running_state"]) \ No newline at end of file diff --git a/apps/enm/services.py b/apps/enm/services.py index b6567cd0..dc0ae42d 100644 --- a/apps/enm/services.py +++ b/apps/enm/services.py @@ -14,7 +14,7 @@ from django.db import IntegrityError from apps.utils.tasks import ctask_run from .serializers import MpointSerializer from apps.enp.models import EnvData -from apps.em.models import Equipment, RuningState +from apps.em.models import Equipment myLogger = logging.getLogger("log") @@ -130,13 +130,13 @@ def update_mpoint_cache(cache_key: str, current_cache_val: dict, last_timex: dat cache.set(cache_key, current_cache_val, timeout=None) # 更新设备状态缓存值 if ep_belong_id: - cache.set(f"equipment_{ep_belong_id}", {"running_state": RuningState.RUNING, "running_state_timex": last_timex}, timeout=None) + cache.set(f"equipment_{ep_belong_id}", {"running_state": Equipment.RUNING, "running_state_timex": last_timex}, timeout=None) if ep_monitored_id: cache.set(f"equipment_{ep_monitored_id}", {"running_state": last_mrs, "running_state_timex": last_timex}, timeout=None) # 如果state变动则触发函数 if last_data["pre_mrs"] != last_mrs: if ep_belong_id: - ctask_run("apps.em.services.shutdown_or_startup", ep_belong_id, last_timex, RuningState.RUNING) + ctask_run("apps.em.services.shutdown_or_startup", ep_belong_id, last_timex, Equipment.RUNING) if ep_monitored_id: ctask_run("apps.em.services.shutdown_or_startup", ep_belong_id, last_timex, last_mrs) @@ -147,15 +147,15 @@ def transfer_mpoint_val_to_ep_running_state(current_val, base_val1: float): """ if isinstance(current_val, bool): if current_val: - return RuningState.RUNING - return RuningState.STOP - rs = RuningState.RUNING + return Equipment.RUNING + return Equipment.STOP + rs = Equipment.RUNING if base_val1: if current_val < base_val1: - rs = RuningState.STOP + rs = Equipment.STOP else: if current_val == 0: - rs = RuningState.STOP + rs = Equipment.STOP return rs @@ -303,7 +303,7 @@ def insert_mplogx_from_king_mqtt_chunk(objs: list, oval, otime_obj: datetime, is "mpoint": Mpoint.objects.get(id=mpoint_data["id"]), } save_dict[f"val_{val_type}"] = val - val_mrs = RuningState.RUNING + val_mrs = Equipment.RUNING if mpoint_is_rep_ep_running_state: save_dict["val_mrs"] = transfer_mpoint_val_to_ep_running_state(val, mpoint_ep_base_val1) try: