from dataclasses import dataclass from pot_libs.sanic_api.column import Str, Int, Opt, List, Float from pot_libs.sanic_api import Model from unify_api.utils.response_code import DbErr from unify_api.modules.zhiwei_u.components.scope_operations_cps import \ ScopeContent @dataclass class ScopeRecordReq(Model): cid: int = Int("工厂id").eg(132) point_id: list = List("监测点id 0表示全部").eg( [1019, 1021, 1023, 1025, 1026, 1027, 1020]) start: str = Opt(Str("开始时间").eg("2021-07-01 00:00:00")) end: str = Opt(Str("结束时间").eg("2021-07-01 23:59:59")) page_size: int = Int("每页记录数").eg(20) page_num: int = Int("当前页码").eg(1) @dataclass class ScopeRecord(Model): trigger_time: str = Str("触发时间").eg("2021-07-01 23:59:59") point_id: int = Int("监测点id").eg("12") point_name: str = Str("监测点 ").eg("1#变压器") record_type: str = Str("over_res_cur").eg("错误类型") record_type_name: str = Str("漏电流或者电流越限").eg("错误类型") probability: float = Float("触发概率") reason: str = Str("触发原因") scope_id: str = Str("录波id") @dataclass class ScopeRecordResp(Model, DbErr): rows: list = List('报警信息').items(ScopeRecord) total: int = Int("总数") @dataclass class ScopeAnalyseReq(Model): scope_id: str = Str("录波id").eg("A1911000284_1630053507" " A2012121205_1628244954") @dataclass class ScopeAnalyseResp(Model): point_id: int = Int("监测点id").eg("12") point_name: str = Str("监测点 ").eg("1#变压器") trigger_time: str = Str("触发时间").eg("2021-07-01 23:59:59") trigger_params: list = List("触发参数").eg([""]) trigger_point: str = Str("触发点").eg("240") reason: list = List("识别原因和建议") contents: ScopeContent = ScopeContent @dataclass class LeakageCurrent(Model): ileak: list = List("漏电流实际值").items(Float()) ileak_rms: list = List("漏电流有效值").items(Float()) @dataclass class LeakageCurrentResp(Model): point_id: int = Int("监测点id").eg("12") point_name: str = Str("监测点 ").eg("1#变压器") trigger_time: str = Str("触发时间").eg("2021-07-01 23:59:59") trigger_point: str = Str("触发点").eg("240") trigger_params: list = List("触发参数").eg([]) reason: list = List("识别原因和建议") contents: LeakageCurrent = LeakageCurrent