| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- package domain
- // 定义枚举类型
- type CountryType int
- const (
- CTRY_ALL CountryType = 0 // 所有国家
- CTRY_US CountryType = 2 // 美国
- CTRY_AU CountryType = 3 // 澳大利亚
- )
- type FwhResponse[T any] struct {
- Code int `json:"code"` // 401 - invalid token
- Message string `json:"message"`
- Result *T `json:"result"`
- Success *bool `json:"success"`
- }
- type FwhPageResponse[T any] struct {
- Code int `json:"code"` // 401 - invalid token
- Message string `json:"message"`
- Result *T `json:"result"`
- Success *bool `json:"success"`
- Total uint64 `json:"total"`
- }
- type FwhResponseA[T any] struct {
- Code int `json:"code"` // 401 - invalid token
- Msg string `json:"msg"`
- Result *T `json:"result"`
- }
- type FwhResponseB[T any] struct {
- Code int `json:"code"` // 401 - invalid token
- Msg string `json:"msg"`
- Data *T `json:"data"`
- }
- type AlarmSnapshotInfo struct {
- Id int64 `json:"id"`
- CodeType int32 `json:"codeType"` // 作用未知
- FileName string `json:"fileName"`
- FileUrl string `json:"fileUrl"`
- LinkId string `json:"linkId"` // site SN
- LogTime string `json:"logTime"` // format YYYY-MM-DD
- SerialNumber string `json:"serialNumber"`
- StartTime string `json:"startTime"` // format YYYY-MM-DD HH:mm:SS
- EndTime string `json:"endTime"` // format YYYY-MM-DD HH:mm:SS
- Status int `json:"status"` // 1-完成
- CompleteTime string `json:"completeTime"` // format YYYY-MM-DD HH:mm:SS
- }
- type EventAlarmItem struct {
- ID *string `json:"id"` // UUID or null
- CmdType string `json:"cmdType"` // 命令说明
- CmdName string `json:"cmdName"` // 命令类型 exp:201...
- GatewayId string `json:"gatewayId"` // SN
- GatewayType *string `json:"gatewayType"`
- GatewayStatus *string `json:"gatewayStatus"`
- ActiveStatus *string `json:"activeStatus"` // 激活状态
- ActiveTime *string `json:"activeTime"` // 激活时间
- AlarmCode string `json:"alarmCode"` // 告警码,事件则为0
- LogName string `json:"logName"`
- LogType string `json:"logType"` // 日志类型 0-事件 1-告警
- LogData string `json:"logData"` // JSON数据
- LogTime string `json:"logTime"` // 设备时间(日志上传时间,告警未结束为开始时间,结束为结束时间)
- Time string `json:"time"` // UTC时间
- StartTime string `json:"startTime"` // 事件或告警的开始时间
- EndTime *string `json:"endTime"` // 告警结束时间,事件没有结束时间为null,告警枚举结束时间则未结束
- }
- type ShutdownRecord struct {
- GatewayId string `json:"gatewayId"` // SN
- ShutdownType int `json:"shutdownType"` // 1-系统停机 2-aPower停机
- Country string `json:"country"` // 国家
- Province string `json:"province"` // 州/省
- ActiveTime string `json:"activeTime"` // 激活时间
- DeviceTime string `json:"deviceTime"` // 告警时的设备时间 (Shutdown开始时间)
- }
- type EmsLogRecordInfo struct {
- Id int64 `json:"id"`
- FileName string `json:"fileName"` // 不含后缀
- CallTime string `json:"callTime"`
- CompleteTime string `json:"completeTime"`
- Status int `json:"status"` // 召唤状态 1-成功 0-召唤中 -1-失败
- FileUrl string `json:"fileUrl"`
- LinkId string `json:"linkId"` // SN
- LogTime string `json:"logTime"`
- CodeType int `json:"codeType"` // 日志类型 4-IBG运行日志 7-电池日志 9-设备系统资源监控日志 10-4G日志 11-AWS日志 12-主进程日志
- }
- type FaultRecordInfo struct {
- Id int64 `json:"id"`
- DeviceType int `json:"deviceType"` // 0-aPower-PE 1-aGate/MCA 2-aPower-MPPT 3-aHub
- ApowerId *string `json:"apowerId"` // aPower SN, deviceType不为0或2时为null
- GatewayId string `json:"gatewayId"` // aGate SN
- PowerlinkId *string `json:"powerlinkId"` // aHub SN, deviceType不为3时为null
- TriggerType int `json:"triggerType"` // 触发类中:1-手动 2-自动
- FaultRecordsCount int `json:"faultRecordsCount"` // 故障录波召唤数量
- EarliestFaultTime string `json:"earliestFaultTime"` // 故障录波列表Format: YYY-MM-DD hh:mm:ss / 召唤记录Format: 时间戳
- LatestFaultTime string `json:"latestFaultTime"` // 故障录波列表Format: YYY-MM-DD hh:mm:ss / 召唤记录Format: 时间戳
- CellTime string `json:"cellTime"` // 召唤时间 Format: YYY-MM-DD hh:mm:ss
- FileUrl string `json:"fileUrl"` // 文件下载路径
- FileName string `json:"fileName"` // 文件名,不含后缀
- Status *int `json:"status"` // 录波数据查询为null,召唤记录查询则为召唤状态 0-开始召唤 2-召唤成功 -1-召唤失败
- FaultReason *string `json:"faultReason"` // 录波数据查询为null,status为-1时为失败原因,否则为null
- }
- type FaultRecordCallableInfo struct {
- Idx int `json:"idx"` // 数据序号
- IndexNumber string `json:"indexNumber"` // 数据序号 exg."01"
- FailureTime string `json:"failureTime"` // 故障时间 Format: YYY-MM-DD hh:mm:ss
- ParamVersionNumber string `json:"paramVersionNumber"` // 故障信息
- TriggerSourceCode string `json:"triggerSourceCode"` // 故障码
- }
- type FaultRecordChannelInfo struct {
- Code string `json:"code"`
- Describe string `json:"describe"` // 说明
- Index int `json:"index"`
- }
- type FaultRecordSubInfo struct {
- DeviceType int `json:"deviceType"` // 0-aPower-PE 1-aGate/MCA 2-aPower-MPPT 3-aHub
- ApowerId *string `json:"apowerId"` // aPower SN
- GatewayId string `json:"gatewayId"` // aGate SN
- FileName string `json:"fileName"` // 不含后缀
- Id int64 `json:"id"` // 本条记录的ID
- FaultId int64 `json:"faultId"`
- EventTriggerSource string `json:"eventTriggerSource"` // 故障码
- EventTriggerSourceName string `json:"eventTriggerSourceName"` // 故障码解释
- SamplingCount uint `json:"samplingCount"` // 采样通道数量
- FailureTime string `json:"failureTime"` //故障发送时间 Format: YYY-MM-DD hh:mm:ss
- SnapshotCount string `json:"snapshotCount"` // 快照采样通道数量
- SamplingPoints string `json:"samplingPoints"` // 采样点总数
- MaxFrequency string `json:"maxFrequency"` // 最大采样频率
- CurrFrequency string `json:"currFrequency"` // 当前采样频率
- SnapshotMeaningVal string `json:"snapshotMeaningVal"` // 快照含义?
- SnapshotChannel []FaultRecordChannelInfo `json:"snapshotChannel"` // 快照通道信息
- SamplingMeaning string `json:"samplingMeaning"` // 采样含义?
- SamplingChannel []FaultRecordChannelInfo `json:"samplingChannel"` // 采样通道信息
- }
- type SystemUpdateRecordInfo struct {
- Id int64 `json:"id"`
- OrderNo string `json:"orderNo"` // 升级单号
- Name string `json:"name"` //
- UpgradeType int `json:"upgradeType"` // 升级类型标识(上游返回数值)
- UpgradeTime string `json:"upgradeTime"` // 升级开始时间 - UTC时间
- UpgradeNum int `json:"upgradeNum"` // 升级设备数量
- Result int `json:"result"` // 升级结果 1-升级中 2-升级成功 3-升级失败
- Status int `json:"status"`
- SuccessNum int `json:"successNum"`
- FailuresNum int `json:"failuresNum"`
- TurnoverTime string `json:"turnoverTime"` // 升级完成时间 - UTC时间
- OrderUpgradeTypeName string `json:"orderUpgradeTypeName"` // 升级类型 exg.无感升级
- }
- type AHubUpdateRecordInfo struct {
- AHubSn string `json:"ahubSn"` // aHub SN
- OrderNo string `json:"orderNo"` // 升级单号
- GatewayId string `json:"gatewayId"` // Gate SN
- EndTime int64 `json:"endTime"` // 升级结束时间 - 时间戳(ms) - 只能显示北京时间
- UpgradeResult int `json:"upgradeResult"` // 升级结果 0-成功
- DetailList []struct {
- UpgradeFileName string `json:"upgradeFileName"` // 升级包名
- UpgradeFileOrder string `json:"upgradeFileOrder"` // 升级包单号
- UpgradeResult string `json:"upgradeResult"` // 升级结果 '0'-成功
- UpgradeResultDesc string `json:"upgradeResultDesc"` // 升级结果说明
- OldVersion string `json:"oldVersion"` // 升级前版本
- NewVersion string `json:"newVersion"` // 升级后版本
- } `json:"detailList"`
- }
- type SystemUpdateDetailInfo struct {
- Id int64 `json:"id"`
- OrderNo string `json:"orderNo"` // 升级单号
- GatewayId string `json:"gatewayId"` // SN
- GatewayName string `json:"gatewayName"`
- GatewayStatus int `json:"gatewayStatus"`
- ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-已激活
- Result int `json:"result"` // 升级结果 1-升级中 2-升级成功 3-升级失败
- UpgradeTime string `json:"upgradeTime"` // 升级开始时间
- TurnoverTime string `json:"turnoverTime"` // 升级完成时间
- IbgVersion string `json:"ibgVersion"` // 设备版本信息(同IbgVersionNew) JSON string
- IbgVersionNew []struct { // Gate 版本
- Type string `json:"type"` // 版本类型
- OldVersion string `json:"oldVersion"` // 升级前版本
- Version string `json:"version"` // 升级后版本
- Children []struct {
- Type string `json:"type"` // 版本类型
- OldVersion string `json:"oldVersion"` // 升级前版本
- Version string `json:"version"` // 升级后版本
- } `json:"children"`
- } `json:"ibgVersionNew"`
- ErrCode int `json:"errCode"` // 错误码 0-无错误
- ErrMsg string `json:"errMsg"` // 错误信息
- DownloadAfterStatus int `json:"downloadAfterStatus"`
- CoverOrderNo string `json:"coverOrderNo"`
- SysHdVersion int `json:"sysHdVersion"` // 系统硬件版本 int eg.104=FHP1.4
- RealSysHdVersion string `json:"realSysHdVersion"` // 系统硬件版本 string
- EmsDeviceVer int `json:"emsDeviceVer"`
- OldEmsDeviceVer int `json:"oldEmsDeviceVer"`
- SonNewDevices []struct { // 子设备版本 (aPower、aHub)
- ApowerSn string `json:"apowerSn"` // 子设备SN
- FirstList []struct { // 1级菜单
- BigType string `json:"bigType"` // 设备类型
- DeviceSn string `json:"deviceSn"` // 设备SN
- Secondlist []struct { // 2级菜单
- Type string `json:"type"` // 版本类型
- Thirdlist []struct { // 3级类型
- SubType string `json:"subType"` // 版本类型
- Version string `json:"version"` // 升级后版本
- OldVersion string `json:"oldVersion"` // 升级前版本
- } `json:"thirdlist"`
- } `json:"secondlist"`
- } `json:"firstList"`
- } `json:"sonNewDevices"`
- // sonDevices ??? TODO
- // apboxVersion ??? TODO
- // apboxVersionVOList ??? TODO
- }
- type AlarmStatisticsInfo struct {
- LogName string `json:"logName"`
- LogNameEn string `json:"logNameEn"`
- AlarmCount int `json:"alarmCount"`
- AlarmCode string `json:"alarmCode"`
- Level int `json:"level"`
- AlarmPercent float32 `json:"alarmPercent"` // 告警数量占比
- }
- type AlarmStatisticsFromCodeInfo struct {
- GatewayId string `json:"gatewayId"` // aGateSN
- ApowerList []string `json:"apowerList"` // aPowerSn List
- Mode string `json:"mode"` // 站点工作模式
- Name string `json:"name"` // 站点工作模式名
- LogTime string `json:"logTime"` // 告警日志上传时间(北京时间) format: YYYY-MM-DD HH:mm:SS
- }
- type AlarmStatisticsData[T any] struct {
- PageNo int `json:"pageNo"`
- PageSize int `json:"pageSize"`
- PageTotal int `json:"pageTotal"`
- Records []T `json:"records"`
- Total int `json:"total"`
- }
- type FwhSiteInfo struct {
- Id string `json:"id"` // aGate SN
- Name *string `json:"name"`
- DistributorId *int `json:"distributorId"` // 经销商ID
- DistributorName *string `json:"distributorName"` // 经销商名称
- InstallerId *int `json:"installerId"` // 安装商ID
- InstallerAccountId *int `json:"installerAccountId"` // 安装商账号ID
- InstallerAccount *string `json:"installerAccount"` // 安装商账号
- InstallerName *string `json:"installerName"` // 安装商名称
- MaintId *int `json:"maintId"` // 维护商ID
- MaintName *string `json:"maintName"` // 维护商名称
- Account *string `json:"account"` // 绑定的用户账号
- AccountName *string `json:"accountName"` // 绑定账号名
- Longitude string `json:"longitude"` // 经度
- Latitude string `json:"latitude"` // 纬度
- Address *string `json:"address"`
- InstallTime *string `json:"installTime"` // 安装时间
- ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-激活
- ActiveTime string `json:"activeTime"` // 激活时间(北京时间)
- LocalActiveTime string `json:"localActiveTime"` // 激活时间(站点当地时间)
- Status int `json:"status"` // 网络状态 0-离线 1-在线
- OnLineTime *string `json:"onLineTime"` // 最后上线时间 YYYY-MM-DD HH:mm:SS
- OffLineTime *string `json:"offLineTime"` // 最后离线时间 YYYY-MM-DD HH:mm:SS
- // model * ??? 未知字段 (TODO:后续处理)
- DeviceIp *string `json:"deviceIp"` // 设备联网IP
- Subnet *string `json:"subnet"` // 子掩码
- Mac *string `json:"mac"` // MAC地址
- GatewayIp *string `json:"gatewayIp"` // 网关IP
- Signal *string `json:"signal"` // 信号强度
- ICCID string `json:"iccId"`
- IMEI string `json:"imei"`
- FirmUpgradeTime *string `json:"firmUpgradeTime"` // 固件最后更新时间 YYYY-MM-DD HH:mm:SS
- TurnoverTime *string `json:"turnoverTime"` // 周转时间??? YYYY-MM-DD HH:mm:SS
- CreateTime *string `json:"createTime"` // 设备首次登录时间 YYYY-MM-DD HH:mm:SS
- // 忽略部分功率字段powerSun、powerGen、powerUti、powerFhp、powerLoad
- BatterySoc *float32 `json:"batterySoc"` // 系统电池SOC
- RunStatus int `json:"runStatus"` // 设备运行状态 0-待机 1-充电 2-放电 3-故障
- EmsModel *int `json:"emsModel"` // EMS调度运行模式(策略) 参考调度ID
- ElectricityType int `json:"electricityType"` // 电网类型 0-离网运行 1-并网运行
- // workMode * ??? 未知字段 (TODO:后续处理)
- FhpSn string `json:"fhpSn"` // aPower SN 多设备用,分割
- TimeZone float32 `json:"timeZone"` // 时区数值
- Version string `json:"version"` // 设备固件版本
- SlVersion string `json:"slVersion"` // EMS-DSP版本
- SlVersionJson string `json:"slVersionJson"` // EMS-DSP版本详细信息JSON
- MeterVersion *string `json:"meterVersion"` // 电表版本
- MbVersion *string `json:"mbVersion"` // MODBUS版本
- AwsVersion *string `json:"awsVersion"` // AWS版本
- AppVersion *string `json:"appVersion"` // APP版本(与APP通讯的模块软件)
- ElecnetStatus int `json:"elecnetStatus"` // 电网状态 0-离网 1-并网
- SlaverStat int `json:"slaverStat"` // EMS-DSP状态
- Dst *int `json:"dst"` // 夏令时 0-否 1-是
- ZoneInfo string `json:"zoneInfo"` // 时区信息 America/Los_Angeles
- PostCode string `json:"postCode"` // 邮编
- DeviceTime *string `json:"deviceTime"` // 设备时间 YYYY-MM-DD HH:mm:SS
- ProtocolVer string `json:"protocolVer"` // 协议版本
- SysHdVersion int `json:"sysHdVersion"` // aGate硬件版本
- RealSysHdVersion *string `json:"realSysHdVersion"` // aGate系统版本名称
- WifiSignal string `json:"wifiSignal"` // WIFI信号
- ConnType int `json:"connType"` // 网络连接类型 0-未连接 1-eth0 2-eth1 3-WIFI 4-4G
- UserName *string `json:"userName"`
- ContactNumber *string `json:"contactNumber"` // 联系方式(手机号)
- // 忽略部分未知字段totalData、usedData、resourceList
- FinancierName *string `json:"financierName"` // 大客户名称
- FinancierContractNumber *string `json:"financierContractNumber"` // 大客户联系方式(手机号)
- CountryId *int `json:"countryId"` // 国家ID
- ProvinceId *int `json:"provinceId"` // 州/省ID
- FinancierId *int `json:"financierId"` // 大客户ID
- FirstName *string `json:"firstName"` // 用户名
- LastName *string `json:"lastName"` // 用户姓
- // region * ??? 未知字段 (TODO:后续处理)
- Remark *string `json:"remark"` // 备注信息
- GenEn int `json:"genEn"` // 发电机是否使能 0-不使能 1-使能
- UserId *int `json:"userId"` // 用户ID
- Country string `json:"country"` // 国家
- Province string `json:"province"` // 州/省
- City string `json:"city"` // 城市
- AddressSecondLast *string `json:"addressSecondLast"`
- DeviceAddress *string `json:"deviceAddress"` // 设备地址
- // whetherEncrypt * ??? 未知字段 (TODO:后续处理)
- EmsDeviceVer *int `json:"emsDeviceVer"` // EMS版本
- Site *string `json:"site"` // 站点ID名
- // 忽略部分字段newHomeFlag、sleepStatus、isJoinJA12
- SiteId *uint `json:"siteId"` // 站点ID号
- JobCode *string `json:"jobCode"` // Job Code (Sunrun相关)
- }
- /*************** 设备信息 /hes-gateway/manage/getDeviceInfo ***************/
- // FwhDeviceInfoAPower getDeviceInfo.apowerList 项
- type FwhDeviceInfoAPower struct {
- Id string `json:"id"` // aPower SN
- RatedPwr *int `json:"ratedPwr"` // 额定功率
- RateBatCap *int `json:"rateBatCap"` // 额定电池容量
- ModelName string `json:"modelName"` // 型号,如 aPower 2、aPower S
- }
- // FwhDeviceInfo 网关设备信息(只解析故障录波需要的字段)
- type FwhDeviceInfo struct {
- FhpSn string `json:"fhpSn"` // aPower SN,多设备用 , 分割
- PeHwVerList []int `json:"peHwVerList"` // 各 aPower 的 PE 硬件版本,顺序与 fhpSn 一致;21、24 支持 MPPT
- ApowerList []FwhDeviceInfoAPower `json:"apowerList"` // 各 aPower 信息
- MpptEnFlag *bool `json:"mpptEnFlag"` // 站点是否启用 MPPT
- Apbox20Num *int `json:"apbox20Num"` // aHub(aPbox2.0) 数量
- EquipType *int `json:"equipType"`
- }
- /*************** 网关功率 /hes-gateway/manage/selectGatewayPower ***************/
- // FwhApbox20Info selectGatewayPower.apbox20List 项(aHub 即 aPbox2.0)
- type FwhApbox20Info struct {
- Apbox20Sn string `json:"apbox20Sn"` // aHub SN
- Apbox20HardwareVer *int `json:"apbox20HardwareVer"` // 硬件版本
- Apbox20AppVer string `json:"apbox20AppVer"` // 软件版本
- }
- // FwhGatewayPower 网关功率信息(只解析故障录波需要的字段)
- type FwhGatewayPower struct {
- Apbox20List []FwhApbox20Info `json:"apbox20List"`
- MpptSta []int `json:"mpptSta"` // 各 aPower 的 MPPT 状态,顺序与 aPower 一致
- }
|