| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package dto
- /************ updateOrSaveIotTouTemplate(新增/更新模板) ************/
- // FwhTestTouTemplateDetailVo 时段明细
- // 说明:数值字段直接用数值类型;可选字段用指针 + omitempty —— 未设置(nil)时该字段整个从 JSON 中省略。
- // - startHourTime/endHourTime/name/briefDescribe/solarPriority/loadPriority/powerOffApower 为字符串
- // - waveType 每段必填(数值)
- // - 功率(kW,精度0.1) 与 SOC/使能/时间类可选字段:有值填数字,未设置留 nil(不发送该 key)
- type FwhTestTouTemplateDetailVo struct {
- StartHourTime string `json:"startHourTime"` // 开始时间 格式 HH:mm,如 06:30
- EndHourTime string `json:"endHourTime"` // 结束时间 格式 HH:mm,需与下一个 startHourTime 重叠,所有时段需覆盖一整天
- WaveType int `json:"waveType"` // 峰平谷定义(flag) 数值:0-谷 1-平 2-峰 3-尖峰 4-低谷
- Name string `json:"name"` // 时段名 一般为 supper-off-peak、off-peak、mid-peak、on-peak、supper-on-peak 等
- BriefDescribe string `json:"briefDescribe"` // 时段描述
- SolarPriority string `json:"solarPriority"` // 光伏供电优先级 格式 "市电,负载,FHP",如 "1,3,2";优先级 0/1/2/3,可相同(表示按比例/功率分配),0-不涉及,数字越大优先级越高
- GridDischargeMax *float64 `json:"gridDischargeMax,omitempty"` // 电池最大允许馈网功率 数值(单位kW,精度0.1);可选,默认0不能馈网;0-不可馈网,-1-不限制
- GridChargeMax *float64 `json:"gridChargeMax,omitempty"` // 电网允许最大充电功率 数值(单位kW,精度0.1);可选,默认0不允许;0-不允许,-1-不限制
- ChargePower *float64 `json:"chargePower,omitempty"` // 固定电池充电功率 数值(单位kW,精度0.1),按单台功率计算;可选,默认-1未设置
- DischargePower *float64 `json:"dischargePower,omitempty"` // 固定电池放电功率 数值(单位kW,精度0.1),按单台功率计算;可选,默认-1未设置
- ChargeMax *float64 `json:"chargeMax,omitempty"` // 电池最大允许充电功率 数值(单位kW,精度0.1),按单台功率计算;-1-无限制,默认-1
- DischargeMax *float64 `json:"dischargeMax,omitempty"` // 电池最大允许放电功率 数值(单位kW,精度0.1),按单台功率计算;-1-无限制,默认-1
- GcaoMax *float64 `json:"gcaoMax,omitempty"` // GCAO(grid charge after an outage) 停电后补电至预留SOC的单台市电取电功率 可选;0-不允许,-1-不限制;默认未设置(-3);使能后未设值则为 5kw*N(用-2标识)
- LoadPriority string `json:"loadPriority"` // 负载取电优先级 格式 "市电,光伏,FHP",如 "1,3,2";优先级 0/1/2/3,可相同(表示按比例/功率分配),0-不使用此源,数字越大优先级越高
- GridFeedMax *float64 `json:"gridFeedMax,omitempty"` // 电网允许最大馈网功率 数值(单位kW,精度0.1);可选,默认-2;0-不允许,-1-不限制,-2-未设置
- GridMax *float64 `json:"gridMax,omitempty"` // 电网允许最大取电功率 数值(单位kW,精度0.1);可选,默认-1不限制;0-不允许,-1-不限制
- MinDischargeSoc *int `json:"minDischargeSoc,omitempty"` // 放电截止SOC 数值(单位%,整数);达到此SOC后电池不放电,可选,默认0%;若 reserved_soc 大于此值则以 reserved_soc 为准
- MaxChargeSoc *int `json:"maxChargeSoc,omitempty"` // 充电截止SOC 数值(单位%,整数);可选,默认100%
- HeatEnable *int `json:"heatEnable,omitempty"` // 充电加热使能 数值:0-未设置(默认) 1-不使能 2-使能
- PowerOffApower string `json:"powerOffApower"` // 主动关闭APower 可选,0-不控制(默认) 1-关机 2-开机(预留)
- RampTime *int `json:"rampTime,omitempty"` // 爬坡时间 数值(单位秒,0~300);默认0,BB套餐默认300
- OffGrid *int `json:"offGrid,omitempty"` // 主动断开市电继电器 数值:0-不控制(默认) 1-断开 2-闭合(预留)
- SolarCutoff int `json:"solarCutoff"` // 主动断开光伏继电器 数值:0-不控制(默认) 1-断开 2-闭合(预留)
- }
- // FwhTestTouTemplateStrategy 策略(季节/日类型 + 时段明细列表)
- //
- // ccociateType / ccociateSn / dayType / dayName 四个字段配套填写,表示该策略的「日类型」及配对关系:
- // 1. 每天(Every day): ccociateType=1, ccociateSn="", dayType=3, dayName="Every day"
- // 2. 工作日(Weekdays): ccociateType=2, ccociateSn=序号, dayType=1, dayName="Weekdays"
- // 3. 周末或节假日(Weekends,Holidays):ccociateType=3, ccociateSn=同组工作日的序号, dayType=2, dayName="Weekends,Holidays"
- //
- // 说明:工作日(2)与周末/节假日(3)成对出现,通过相同的 ccociateSn 关联为同一组。
- // ccociateSn 是从 "0" 开始的序号字符串,每新增一对「工作日+周末/节假日」就 +1(第一对 "0",第二对 "1"...)。
- // 每天(1) 是独立策略,无需配对,ccociateSn 恒为空串 ""。
- type FwhTestTouTemplateStrategy struct {
- CcociateType int `json:"ccociateType"` // 关联类型:1-每天 2-工作日 3-周末/节假日(与 dayType/dayName 配套)
- CcociateSn string `json:"ccociateSn"` // 关联序号:每天为 "";工作日与其配对的周末/节假日共用同一序号(从 "0" 递增)
- DetailVoList []FwhTestTouTemplateDetailVo `json:"detailVoList"` // 时段策略表,所有配置的时间需覆盖一整天
- SeasonName string `json:"seasonName"` // 季节名 用于标识策略范围,可自定义,如 summer、All months
- Month string `json:"month"` // 逗号分隔的月份,如 1,2,3...
- DayName string `json:"dayName"` // 日类型可读名:每天=Every day 工作日=Weekdays 周末/节假日=Weekends,Holidays(与 dayType 对应)
- DayType int `json:"dayType"` // 日类型编码:1-工作日 2-周末/节假日 3-每天(可读名见 dayName)
- // 购电电价(各时段单价;未设置留 nil,序列化时省略该字段)
- EleticRatePeak *float64 `json:"eleticRatePeak,omitempty"` // 峰时购电电价
- EleticRateShoulder *float64 `json:"eleticRateShoulder,omitempty"` // 平时购电电价
- EleticRateValley *float64 `json:"eleticRateValley,omitempty"` // 谷时购电电价
- EleticRateSharp *float64 `json:"eleticRateSharp,omitempty"` // 尖峰购电电价
- EleticRateSuperOffPeak *float64 `json:"eleticRateSuperOffPeak,omitempty"` // 超低谷购电电价
- EleticRateGridFee *float64 `json:"eleticRateGridFee,omitempty"` // 电网附加费
- // 卖电(上网)电价(各时段单价;未设置留 nil,序列化时省略该字段)
- EleticSellPeak *float64 `json:"eleticSellPeak,omitempty"` // 峰时卖电电价
- EleticSellShoulder *float64 `json:"eleticSellShoulder,omitempty"` // 平时卖电电价
- EleticSellValley *float64 `json:"eleticSellValley,omitempty"` // 谷时卖电电价
- EleticSellSharp *float64 `json:"eleticSellSharp,omitempty"` // 尖峰卖电电价
- EleticSellSuperOffPeak *float64 `json:"eleticSellSuperOffPeak,omitempty"` // 超低谷卖电电价
- }
- // FwhTestTouTemplateInfo 模板主体
- // templateId:创建模板时省略此字段(nil);更新模板时必须带此字段并填入模板ID。读取(detail/list)返回时该字段必定存在。
- type FwhTestTouTemplateInfo struct {
- CountryId int `json:"countryId"` // 国家ID 数值
- ProvinceId int `json:"provinceId"` // 州/省ID 数值
- DerSchdule string `json:"derSchdule"` // DER 调度配置
- EleCompanyFullName string `json:"eleCompanyFullName"` // 电力公司全称
- ElectricCompany string `json:"electricCompany"` // 电力公司
- GridType string `json:"gridType"` // 电网类型
- ElectricityType int `json:"electricityType"` // 电价类型 数值:1-分时电价 2-阶梯电价 3-固定电价 4-分时&阶梯电价 5-BB套餐 6-Peak Demand
- Name string `json:"name"` // 模板/策略表名称
- MookRunCount int `json:"mookRunCount"` // 模式执行次数(loop) 数值:0-不限次数 1-执行一次
- Priority int `json:"priority"` // 模式优先级 数值,默认0,0最低,数字越大优先级越高
- Env int `json:"env"` // 模式使用条件 数值(位域),默认0;bit0~1 光伏;bit2~3 馈网;bit4~5 电网充电
- TemplateId *int `json:"templateId,omitempty"` // 模板ID 数值;创建时省略(nil),更新时必填。读取返回时必定存在
- SourceType int `json:"sourceType"` // 模板类型 数值,必填;当前仅允许 0-系统模板(1-API模板 2-用户推荐 暂不支持写入)
- }
- // FwhTestUpdateOrSaveTouTemplatePayload 新增/更新模板请求体(JSON)
- type FwhTestUpdateOrSaveTouTemplatePayload struct {
- Template FwhTestTouTemplateInfo `json:"template"`
- StrategyList []FwhTestTouTemplateStrategy `json:"strategyList"`
- Lang string `json:"lang"`
- }
- /************ selectCitesList(查询国家下的省/市列表) ************/
- // FwhTestCityInfo 城市
- type FwhTestCityInfo struct {
- Id int `json:"id"`
- NameEn string `json:"nameEn"`
- NameZh string `json:"nameZh"`
- Latitude string `json:"latitude"`
- Longitude string `json:"longitude"`
- }
- // FwhTestProvinceInfo 省/州(可能包含 cityList)
- type FwhTestProvinceInfo struct {
- Id int `json:"id"`
- NameEn string `json:"nameEn"`
- NameZh string `json:"nameZh"`
- Latitude string `json:"latitude"`
- Longitude string `json:"longitude"`
- CityList []FwhTestCityInfo `json:"cityList"`
- }
- // FwhTestCountryInfo 国家
- type FwhTestCountryInfo struct {
- Id int `json:"id"`
- NameEn string `json:"nameEn"`
- NameZh string `json:"nameZh"`
- Latitude string `json:"latitude"`
- Longitude string `json:"longitude"`
- }
- // FwhTestCitesListData selectCitesList 返回结构
- type FwhTestCitesListData struct {
- CountryList []FwhTestCountryInfo `json:"countryList"`
- ProvinceList []FwhTestProvinceInfo `json:"provinceList"`
- CityList []FwhTestCityInfo `json:"cityList"`
- }
|