增加变量
This commit is contained in:
parent
2db17ffe77
commit
a37b1508d7
@ -121,6 +121,7 @@ class LineAlarmSettingIn(BaseModel):
|
|||||||
line_no: int
|
line_no: int
|
||||||
over_limit_alarm: List[AlarmRule] = Field(default_factory=list)
|
over_limit_alarm: List[AlarmRule] = Field(default_factory=list)
|
||||||
fault_alarm: List[AlarmRule] = Field(default_factory=list)
|
fault_alarm: List[AlarmRule] = Field(default_factory=list)
|
||||||
|
transformer_change: List[AlarmRule] = Field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
class AiAlarmSettingIn(BaseModel):
|
class AiAlarmSettingIn(BaseModel):
|
||||||
|
|||||||
@ -331,6 +331,10 @@ class PlatformService:
|
|||||||
{"category": "频率", "limit": 180, "delay": 180, "output_node": "开出1", "enabled": False},
|
{"category": "频率", "limit": 180, "delay": 180, "output_node": "开出1", "enabled": False},
|
||||||
],
|
],
|
||||||
"fault_alarm": [{"category": "PT断线", "delay": 180, "output_node": "开出1", "enabled": True}],
|
"fault_alarm": [{"category": "PT断线", "delay": 180, "output_node": "开出1", "enabled": True}],
|
||||||
|
"transformer_change": [
|
||||||
|
{"category": "PT变化", "limit": 0.0, "delay": 0, "output_node": "", "enabled": False},
|
||||||
|
{"category": "CT变化", "limit": 0.0, "delay": 0, "output_node": "", "enabled": False},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
def _normalize_line_alarm_settings(self, raw: Any) -> List[Dict[str, Any]]:
|
def _normalize_line_alarm_settings(self, raw: Any) -> List[Dict[str, Any]]:
|
||||||
@ -345,16 +349,28 @@ class PlatformService:
|
|||||||
if not isinstance(current, dict):
|
if not isinstance(current, dict):
|
||||||
current = {}
|
current = {}
|
||||||
line_alarm_list = self._normalize_line_alarm_settings(current.get("line_alarm_setting"))
|
line_alarm_list = self._normalize_line_alarm_settings(current.get("line_alarm_setting"))
|
||||||
payload_data = payload.model_dump()
|
payload_data = payload.model_dump(exclude_unset=True)
|
||||||
|
payload_data["line_no"] = payload.line_no
|
||||||
|
|
||||||
updated = False
|
updated = False
|
||||||
for index, item in enumerate(line_alarm_list):
|
for index, item in enumerate(line_alarm_list):
|
||||||
if item.get("line_no") == payload.line_no:
|
if item.get("line_no") == payload.line_no:
|
||||||
line_alarm_list[index] = payload_data
|
merged = dict(item)
|
||||||
|
merged.update(payload_data)
|
||||||
|
default = self._default_line_alarm_setting(payload.line_no)
|
||||||
|
for key in ("over_limit_alarm", "fault_alarm", "transformer_change"):
|
||||||
|
if not isinstance(merged.get(key), list):
|
||||||
|
merged[key] = default[key]
|
||||||
|
line_alarm_list[index] = merged
|
||||||
updated = True
|
updated = True
|
||||||
break
|
break
|
||||||
if not updated:
|
if not updated:
|
||||||
line_alarm_list.append(payload_data)
|
merged = self._default_line_alarm_setting(payload.line_no)
|
||||||
|
merged.update(payload_data)
|
||||||
|
for key in ("over_limit_alarm", "fault_alarm", "transformer_change"):
|
||||||
|
if not isinstance(merged.get(key), list):
|
||||||
|
merged[key] = self._default_line_alarm_setting(payload.line_no)[key]
|
||||||
|
line_alarm_list.append(merged)
|
||||||
|
|
||||||
current["line_alarm_setting"] = line_alarm_list
|
current["line_alarm_setting"] = line_alarm_list
|
||||||
path = self.config_repo.write_setting_config(current)
|
path = self.config_repo.write_setting_config(current)
|
||||||
@ -366,7 +382,12 @@ class PlatformService:
|
|||||||
line_alarm_list = self._normalize_line_alarm_settings(current)
|
line_alarm_list = self._normalize_line_alarm_settings(current)
|
||||||
for item in line_alarm_list:
|
for item in line_alarm_list:
|
||||||
if item.get("line_no") == line_no:
|
if item.get("line_no") == line_no:
|
||||||
return item
|
merged = self._default_line_alarm_setting(line_no)
|
||||||
|
merged.update(item)
|
||||||
|
for key in ("over_limit_alarm", "fault_alarm", "transformer_change"):
|
||||||
|
if not isinstance(merged.get(key), list):
|
||||||
|
merged[key] = self._default_line_alarm_setting(line_no)[key]
|
||||||
|
return merged
|
||||||
return self._default_line_alarm_setting(line_no)
|
return self._default_line_alarm_setting(line_no)
|
||||||
|
|
||||||
def save_ai_alarm_setting(self, payload: List[AiAlarmSettingIn]) -> Dict[str, Any]:
|
def save_ai_alarm_setting(self, payload: List[AiAlarmSettingIn]) -> Dict[str, Any]:
|
||||||
|
|||||||
@ -54,6 +54,22 @@
|
|||||||
"output_node": "",
|
"output_node": "",
|
||||||
"enabled": false
|
"enabled": false
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"transformer_change": [
|
||||||
|
{
|
||||||
|
"category": "PT变化",
|
||||||
|
"limit": 0.0,
|
||||||
|
"delay": 0,
|
||||||
|
"output_node": "",
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "CT变化",
|
||||||
|
"limit": 0.0,
|
||||||
|
"delay": 0,
|
||||||
|
"output_node": "",
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -110,6 +126,22 @@
|
|||||||
"output_node": "",
|
"output_node": "",
|
||||||
"enabled": false
|
"enabled": false
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"transformer_change": [
|
||||||
|
{
|
||||||
|
"category": "PT变化",
|
||||||
|
"limit": 0.0,
|
||||||
|
"delay": 0,
|
||||||
|
"output_node": "",
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"category": "CT变化",
|
||||||
|
"limit": 0.0,
|
||||||
|
"delay": 0,
|
||||||
|
"output_node": "",
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -223,6 +223,8 @@ def test_save_line_alarm_setting_stores_list(tmp_path) -> None:
|
|||||||
saved = platform_service.config_repo.read_setting_config()
|
saved = platform_service.config_repo.read_setting_config()
|
||||||
assert isinstance(saved["line_alarm_setting"], list)
|
assert isinstance(saved["line_alarm_setting"], list)
|
||||||
assert saved["line_alarm_setting"][0]["line_no"] == 3
|
assert saved["line_alarm_setting"][0]["line_no"] == 3
|
||||||
|
assert "transformer_change" in saved["line_alarm_setting"][0]
|
||||||
|
assert len(saved["line_alarm_setting"][0]["transformer_change"]) == 2
|
||||||
finally:
|
finally:
|
||||||
platform_service.config_repo = old_repo
|
platform_service.config_repo = old_repo
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user