diff --git a/apps/enm/services.py b/apps/enm/services.py index e6d63da8..8022230c 100644 --- a/apps/enm/services.py +++ b/apps/enm/services.py @@ -157,9 +157,13 @@ class MpointCache: if reason == -2: is_rep_ep_running_state = self.data.get("is_rep_ep_running_state", False) ep_monitored_id = self.data.get("ep_monitored", None) + ep_belong_id = self.data.get("ep_belong") if is_rep_ep_running_state and ep_monitored_id: set_eq_rs(ep_monitored_id, timex, Equipment.OFFLINE) - + if ep_belong_id: + if is_rep_ep_running_state is False or ep_belong_id != ep_monitored_id: + set_eq_rs(ep_belong_id, timex, Equipment.OFFLINE) + def set(self, last_timex: datetime, last_val): current_cache_val = self.data cache_key = self.cache_key @@ -188,11 +192,13 @@ class MpointCache: # 下面开始更新设备信号 ep_belong_id = current_cache_val.get("ep_belong") ep_monitored_id = current_cache_val.get("ep_monitored") - # 更新设备状态值 - if ep_belong_id: - set_eq_rs(ep_belong_id, last_timex, Equipment.RUNING) if ep_monitored_id and mpoint_is_rep_ep_running_state: set_eq_rs(ep_monitored_id, last_timex, last_mrs) + # 更新设备状态值 + if ep_belong_id: + if mpoint_is_rep_ep_running_state is False or ep_belong_id != ep_monitored_id: + set_eq_rs(ep_belong_id, last_timex, Equipment.RUNING) + mf_code = current_cache_val.get('mpoint_affect') if mf_code: # 如果该测点影响到另一个测点,要同步更新另一个测点