package fwh_pro import ( "fmt" "fwh-toolbox-server/domain" "fwh-toolbox-server/dto" "net/url" "time" ) // 查询站点功率流信息 func querySitePowerFlow(sn string, day time.Time) (*domain.FwhResponseA[dto.SitePowerFlow], error) { // 构造 query 参数 params := url.Values{} params.Add("gatewayId", sn) params.Add("dayTime", day.Format(time.DateOnly)) // 会自动 URL 编码 response, err := FwhHttpGetUnmarshalA[dto.SitePowerFlow](getFullEnergyUrl("/api-energy/power/getFhpPowerByDayOld"), params) if err != nil { return nil, err } return response, nil } // 从fwh_pro获取站点功率流 // // 限制条件:day 仅取其字面「年月日」(内部 day.Format(time.DateOnly)),时分秒与时区被丢弃。 // 调用方需保证 day 的字面日期就是目标日期;若传入的时间因时区换算会跨天(如本地 00:00 换算到 // UTC 落到前一天),会查错日期。DataDownload 传本地时区当天 00:00,字面日期正确。 // 本函数不做按天分片,无 QueryMqttLogListOnTimeRange 那类 Truncate 死循环风险。 func QuerySitePowerFlow(site string, day time.Time) (*domain.FwhResponseA[dto.SitePowerFlow], error) { sitePowerFlowRes, err := querySitePowerFlow(site, day) if err != nil { return nil, err } if sitePowerFlowRes.Code != 200 { return nil, fmt.Errorf("[queryMqttLogListOnePage] 查询失败 code: %d, message: %s", sitePowerFlowRes.Code, sitePowerFlowRes.Msg) } return sitePowerFlowRes, nil }