package fwh_pro import ( "fmt" "fwh-toolbox-server/config" "fwh-toolbox-server/domain" "fwh-toolbox-server/dto" "net/url" "strconv" ) // 查询站点告警信息 func querySiteAlarmList(sn string) (*domain.FwhPageResponse[[]dto.SiteAlarmList], error) { // 构造 query 参数 params := url.Values{} params.Add("gatewayId", sn) params.Add("land", "ZH_CN") reqUrl := fmt.Sprintf("https://%s/hes-gateway/manage/getEquipmentAlarm", config.FWH_ENERGY) response, err := FwhHttpGetUnmarshalPage[[]dto.SiteAlarmList](reqUrl, params) if err != nil { return nil, err } return response, nil } // 从fwh_pro获取站点告警列表 func QuerySiteAlarmList(site string) (*domain.FwhPageResponse[[]dto.SiteAlarmList], error) { siteAlarmListRes, err := querySiteAlarmList(site) if err != nil { return nil, err } if siteAlarmListRes.Code != 200 { return nil, fmt.Errorf("[QuerySiteAlarmList] 查询失败 code: %d, message: %s", siteAlarmListRes.Code, siteAlarmListRes.Message) } return siteAlarmListRes, nil } // 查询实时告警统计数据 func queryAlarmStatistics(country domain.CountryType, page int) (*domain.FwhResponseB[domain.AlarmStatisticsData[domain.AlarmStatisticsInfo]], error) { // 构造 query 参数 params := url.Values{} if country == domain.CTRY_ALL { params.Add("countryId", "") // 0-ALL } else { params.Add("countryId", strconv.Itoa(int(country))) // 2-美国 3-澳大利亚 5-加拿大 6-新西兰 51-巴巴多斯 } params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10)) params.Add("pageNum", strconv.Itoa(page)) params.Add("land", "ZH_CN") reqUrl := fmt.Sprintf("https://%s/api-inspect/currentAlarm/listCurrentAlarm", config.FWH_ENERGY) response, err := FwhHttpGetUnmarshalB[domain.AlarmStatisticsData[domain.AlarmStatisticsInfo]](reqUrl, params) if err != nil { return nil, err } return response, nil } // 从fwh_pro获取实时告警统计数据 func QueryAlarmStatistics(country domain.CountryType, page int) (*domain.FwhResponseB[domain.AlarmStatisticsData[domain.AlarmStatisticsInfo]], error) { alarmStatisticsListRes, err := queryAlarmStatistics(country, page) if err != nil { return nil, err } if alarmStatisticsListRes.Code != 200 { return nil, fmt.Errorf("[QueryAlarmStatistics] 查询失败 code: %d, message: %s", alarmStatisticsListRes.Code, alarmStatisticsListRes.Msg) } return alarmStatisticsListRes, nil } // 查询实时告警码的站点统计数据 func queryAlarmStatisticsFromCode(country domain.CountryType, alarmCode string, page int) (*domain.FwhResponseB[domain.AlarmStatisticsData[domain.AlarmStatisticsFromCodeInfo]], error) { // 构造 query 参数 params := url.Values{} if country == domain.CTRY_ALL { params.Add("countryId", "") // 0-ALL } else { params.Add("countryId", strconv.Itoa(int(country))) // 2-美国 3-澳大利亚 5-加拿大 6-新西兰 51-巴巴多斯 } params.Add("alarmCode", alarmCode) params.Add("pageSize", strconv.FormatUint(REQ_PAGE_SIZE, 10)) params.Add("pageNum", strconv.Itoa(page)) params.Add("land", "ZH_CN") reqUrl := fmt.Sprintf("https://%s/api-inspect/currentAlarm/listDeviceByAlarm", config.FWH_ENERGY) response, err := FwhHttpGetUnmarshalB[domain.AlarmStatisticsData[domain.AlarmStatisticsFromCodeInfo]](reqUrl, params) if err != nil { return nil, err } return response, nil } // 从fwh_pro获取实时告警码的站点统计数据 func QueryAlarmStatisticsFromCode(country domain.CountryType, alarmCode string, page int) (*domain.FwhResponseB[domain.AlarmStatisticsData[domain.AlarmStatisticsFromCodeInfo]], error) { alarmStatisticsListRes, err := queryAlarmStatisticsFromCode(country, alarmCode, page) if err != nil { return nil, err } if alarmStatisticsListRes.Code != 200 { return nil, fmt.Errorf("[QueryAlarmStatisticsFromCode] 查询失败 code: %d, message: %s", alarmStatisticsListRes.Code, alarmStatisticsListRes.Msg) } return alarmStatisticsListRes, nil }