| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- package dto
- import (
- "fwh-toolbox-server/domain"
- "go.mongodb.org/mongo-driver/bson/primitive"
- "go.uber.org/zap"
- )
- type SiteInfoRequest struct {
- Search string `json:"search"`
- Filter *domain.SiteInfoFilter `json:"filter"`
- PageSize uint `json:"pageSize"`
- PageNum uint `json:"pageNum"`
- }
- type SiteInfoDTO struct {
- Sn string `json:"sn"` // aGate SN
- Name *string `json:"name,omitempty"`
- DistributorId *int `json:"distributorId,omitempty"` // 经销商ID
- DistributorName *string `json:"distributorName,omitempty"` // 经销商名称
- InstallerId *int `json:"installerId,omitempty"` // 安装商ID
- InstallerAccountId *int `json:"installerAccountId,omitempty"` // 安装商账号ID
- InstallerAccount *string `json:"installerAccount,omitempty"` // 安装商账号
- InstallerName *string `json:"installerName,omitempty"` // 安装商名称
- MaintId *int `json:"maintId,omitempty"` // 维护商ID
- MaintName *string `json:"maintName,omitempty"` // 维护商名称
- Account *string `json:"account,omitempty"` // 绑定的用户账号
- AccountName *string `json:"accountName,omitempty"` // 绑定账号名
- Longitude string `json:"longitude"` // 经度
- Latitude string `json:"latitude"` // 纬度
- Address *string `json:"address,omitempty"`
- InstallTime *string `json:"installTime,omitempty"` // 安装时间
- ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-激活
- ActiveTime string `json:"activeTime"` // 激活时间(北京时间)
- LocalActiveTime string `json:"localActiveTime"` // 激活时间(站点当地时间)
- Status int `json:"status"` // 网络状态 0-离线 1-在线
- OnLineTime *string `json:"onLineTime,omitempty"` // 最后上线时间 YYYY-MM-DD HH:mm:SS
- OffLineTime *string `json:"offLineTime,omitempty"` // 最后离线时间 YYYY-MM-DD HH:mm:SS
- // model * ??? 未知字段 (TODO:后续处理)
- DeviceIp *string `json:"deviceIp,omitempty"` // 设备联网IP
- Subnet *string `json:"subnet,omitempty"` // 子掩码
- Mac *string `json:"mac,omitempty"` // MAC地址
- GatewayIp *string `json:"gatewayIp,omitempty"` // 网关IP
- Signal *string `json:"signal,omitempty"` // 信号强度
- ICCID string `json:"iccId"`
- IMEI string `json:"imei"`
- FirmUpgradeTime *string `json:"firmUpgradeTime,omitempty"` // 固件最后更新时间 YYYY-MM-DD HH:mm:SS
- TurnoverTime *string `json:"turnoverTime,omitempty"` // 周转时间??? YYYY-MM-DD HH:mm:SS
- CreateTime *string `json:"createTime,omitempty"` // 设备首次登录时间 YYYY-MM-DD HH:mm:SS
- // 忽略部分功率字段powerSun、powerGen、powerUti、powerFhp、powerLoad
- BatterySoc *float32 `json:"batterySoc,omitempty"` // 系统电池SOC
- RunStatus int `json:"runStatus"` // 设备运行状态 0-待机 1-充电 2-放电 3-故障
- EmsModel *int `json:"emsModel,omitempty"` // 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,omitempty"` // 电表版本
- MbVersion *string `json:"mbVersion,omitempty"` // MODBUS版本
- AwsVersion *string `json:"awsVersion,omitempty"` // AWS版本
- AppVersion *string `json:"appVersion,omitempty"` // APP版本(与APP通讯的模块软件)
- ElecnetStatus int `json:"elecnetStatus"` // 电网状态 0-离网 1-并网
- SlaverStat int `json:"slaverStat"` // EMS-DSP状态
- Dst *int `json:"dst,omitempty"` // 夏令时 0-否 1-是
- ZoneInfo string `json:"zoneInfo"` // 时区信息 America/Los_Angeles
- PostCode string `json:"postCode"` // 邮编
- DeviceTime *string `json:"deviceTime,omitempty"` // 设备时间 YYYY-MM-DD HH:mm:SS
- ProtocolVer string `json:"protocolVer"` // 协议版本
- SysHdVersion int `json:"sysHdVersion"` // aGate硬件版本
- RealSysHdVersion *string `json:"realSysHdVersion,omitempty"` // aGate系统版本名称
- WifiSignal string `json:"wifiSignal"` // WIFI信号
- ConnType int `json:"connType"` // 网络连接类型 0-未连接 1-eth0 2-eth1 3-WIFI 4-4G
- UserName *string `json:"userName,omitempty"`
- ContactNumber *string `json:"contactNumber,omitempty"` // 联系方式(手机号)
- // 忽略部分未知字段totalData、usedData、resourceList
- FinancierName *string `json:"financierName,omitempty"` // 大客户名称
- FinancierContractNumber *string `json:"financierContractNumber,omitempty"` // 大客户联系方式(手机号)
- CountryId *int `json:"countryId,omitempty"` // 国家ID
- ProvinceId *int `json:"provinceId,omitempty"` // 州/省ID
- FinancierId *int `json:"financierId,omitempty"` // 大客户ID
- FirstName *string `json:"firstName,omitempty"` // 用户名
- LastName *string `json:"lastName,omitempty"` // 用户姓
- // region * ??? 未知字段 (TODO:后续处理)
- Remark *string `json:"remark,omitempty"` // 备注信息
- GenEn int `json:"genEn"` // 发电机是否使能 0-不使能 1-使能
- UserId *int `json:"userId,omitempty"` // 用户ID
- Country string `json:"country"` // 国家
- Province string `json:"province"` // 州/省
- City string `json:"city"` // 城市
- AddressSecondLast *string `json:"addressSecondLast,omitempty"`
- DeviceAddress *string `json:"deviceAddress,omitempty"` // 设备地址
- // whetherEncrypt * ??? 未知字段 (TODO:后续处理)
- EmsDeviceVer *int `json:"emsDeviceVer,omitempty"` // EMS版本
- Site *string `json:"site,omitempty"` // 站点ID名
- // 忽略部分字段newHomeFlag、sleepStatus、isJoinJA12
- SiteId *uint `json:"siteId,omitempty"` // 站点ID号
- JobCode *string `json:"jobCode,omitempty"` // Job Code (Sunrun相关)
- // 非原始数据
- ExtTags []SiteTagDTO `json:"extTags,omitempty"` // (扩展)设备标签
- }
- type SiteTagDTO struct {
- Id string `json:"id,omitempty"` // 标签ID
- Name string `json:"name"` // 标签名
- Count uint `json:"count"` // 标签关联设备数量
- Color string `json:"color"` // 标签颜色
- Description string `json:"description"` // 标签描述
- }
- // Code generated. SiteInfoDomain -> SiteInfoDTO
- func SiteInfoDomainToSiteInfoDTO(src *domain.SiteInfoDomain, tagMap *map[string]*SiteTagDTO) *SiteInfoDTO {
- if src == nil {
- return nil
- }
- tagList := []SiteTagDTO{}
- if src.ExtTags != nil && tagMap != nil {
- for _, tagId := range *src.ExtTags {
- tagInfo := (*tagMap)[tagId]
- if tagInfo != nil {
- tagList = append(tagList, *tagInfo)
- }
- }
- }
- return &SiteInfoDTO{
- Sn: src.Sn,
- Name: src.Name,
- DistributorId: src.DistributorId,
- DistributorName: src.DistributorName,
- InstallerId: src.InstallerId,
- InstallerAccountId: src.InstallerAccountId,
- InstallerAccount: src.InstallerAccount,
- InstallerName: src.InstallerName,
- MaintId: src.MaintId,
- MaintName: src.MaintName,
- Account: src.Account,
- AccountName: src.AccountName,
- Longitude: src.Longitude,
- Latitude: src.Latitude,
- Address: src.Address,
- InstallTime: src.InstallTime,
- ActiveStatus: src.ActiveStatus,
- ActiveTime: src.ActiveTime,
- Status: src.Status,
- OnLineTime: src.OnLineTime,
- OffLineTime: src.OffLineTime,
- DeviceIp: src.DeviceIp,
- Subnet: src.Subnet,
- Mac: src.Mac,
- GatewayIp: src.GatewayIp,
- Signal: src.Signal,
- ICCID: src.ICCID,
- IMEI: src.IMEI,
- FirmUpgradeTime: src.FirmUpgradeTime,
- TurnoverTime: src.TurnoverTime,
- CreateTime: src.CreateTime,
- BatterySoc: src.BatterySoc,
- RunStatus: src.RunStatus,
- EmsModel: src.EmsModel,
- ElectricityType: src.ElectricityType,
- FhpSn: src.FhpSn,
- TimeZone: src.TimeZone,
- Version: src.Version,
- SlVersion: src.SlVersion,
- SlVersionJson: src.SlVersionJson,
- MeterVersion: src.MeterVersion,
- MbVersion: src.MbVersion,
- AwsVersion: src.AwsVersion,
- AppVersion: src.AppVersion,
- ElecnetStatus: src.ElecnetStatus,
- SlaverStat: src.SlaverStat,
- Dst: src.Dst,
- ZoneInfo: src.ZoneInfo,
- PostCode: src.PostCode,
- DeviceTime: src.DeviceTime,
- ProtocolVer: src.ProtocolVer,
- SysHdVersion: src.SysHdVersion,
- RealSysHdVersion: src.RealSysHdVersion,
- WifiSignal: src.WifiSignal,
- ConnType: src.ConnType,
- UserName: src.UserName,
- ContactNumber: src.ContactNumber,
- FinancierName: src.FinancierName,
- FinancierContractNumber: src.FinancierContractNumber,
- CountryId: src.CountryId,
- ProvinceId: src.ProvinceId,
- FinancierId: src.FinancierId,
- FirstName: src.FirstName,
- LastName: src.LastName,
- Remark: src.Remark,
- GenEn: src.GenEn,
- UserId: src.UserId,
- Country: src.Country,
- Province: src.Province,
- City: src.City,
- AddressSecondLast: src.AddressSecondLast,
- DeviceAddress: src.DeviceAddress,
- EmsDeviceVer: src.EmsDeviceVer,
- Site: src.Site,
- SiteId: src.SiteId,
- // 非原始数据
- ExtTags: tagList,
- }
- }
- // Code generated. []SiteInfoDomain -> []SiteInfoDTO
- func SiteInfoDomainListToSiteInfoDTOList(src []domain.SiteInfoDomain, tagMap *map[string]*SiteTagDTO) []SiteInfoDTO {
- if src == nil {
- return nil
- }
- infoList := []SiteInfoDTO{}
- for _, info := range src {
- tagList := []SiteTagDTO{}
- if info.ExtTags != nil && tagMap != nil {
- for _, tagId := range *info.ExtTags {
- tagInfo := (*tagMap)[tagId]
- if tagInfo != nil {
- tagList = append(tagList, *tagInfo)
- }
- }
- }
- infoList = append(infoList, SiteInfoDTO{
- Sn: info.Sn,
- Name: info.Name,
- DistributorId: info.DistributorId,
- DistributorName: info.DistributorName,
- InstallerId: info.InstallerId,
- InstallerAccountId: info.InstallerAccountId,
- InstallerAccount: info.InstallerAccount,
- InstallerName: info.InstallerName,
- MaintId: info.MaintId,
- MaintName: info.MaintName,
- Account: info.Account,
- AccountName: info.AccountName,
- Longitude: info.Longitude,
- Latitude: info.Latitude,
- Address: info.Address,
- InstallTime: info.InstallTime,
- ActiveStatus: info.ActiveStatus,
- ActiveTime: info.ActiveTime,
- Status: info.Status,
- OnLineTime: info.OnLineTime,
- OffLineTime: info.OffLineTime,
- DeviceIp: info.DeviceIp,
- Subnet: info.Subnet,
- Mac: info.Mac,
- GatewayIp: info.GatewayIp,
- Signal: info.Signal,
- ICCID: info.ICCID,
- IMEI: info.IMEI,
- FirmUpgradeTime: info.FirmUpgradeTime,
- TurnoverTime: info.TurnoverTime,
- CreateTime: info.CreateTime,
- BatterySoc: info.BatterySoc,
- RunStatus: info.RunStatus,
- EmsModel: info.EmsModel,
- ElectricityType: info.ElectricityType,
- FhpSn: info.FhpSn,
- TimeZone: info.TimeZone,
- Version: info.Version,
- SlVersion: info.SlVersion,
- SlVersionJson: info.SlVersionJson,
- MeterVersion: info.MeterVersion,
- MbVersion: info.MbVersion,
- AwsVersion: info.AwsVersion,
- AppVersion: info.AppVersion,
- ElecnetStatus: info.ElecnetStatus,
- SlaverStat: info.SlaverStat,
- Dst: info.Dst,
- ZoneInfo: info.ZoneInfo,
- PostCode: info.PostCode,
- DeviceTime: info.DeviceTime,
- ProtocolVer: info.ProtocolVer,
- SysHdVersion: info.SysHdVersion,
- RealSysHdVersion: info.RealSysHdVersion,
- WifiSignal: info.WifiSignal,
- ConnType: info.ConnType,
- UserName: info.UserName,
- ContactNumber: info.ContactNumber,
- FinancierName: info.FinancierName,
- FinancierContractNumber: info.FinancierContractNumber,
- CountryId: info.CountryId,
- ProvinceId: info.ProvinceId,
- FinancierId: info.FinancierId,
- FirstName: info.FirstName,
- LastName: info.LastName,
- Remark: info.Remark,
- GenEn: info.GenEn,
- UserId: info.UserId,
- Country: info.Country,
- Province: info.Province,
- City: info.City,
- AddressSecondLast: info.AddressSecondLast,
- DeviceAddress: info.DeviceAddress,
- EmsDeviceVer: info.EmsDeviceVer,
- Site: info.Site,
- SiteId: info.SiteId,
- // 非原始数据
- ExtTags: tagList,
- })
- }
- return infoList
- }
- // Code generated. SiteTagDomain -> SiteTagDTO
- func SiteTagDomainToSiteTagDTO(src *domain.SiteTagDomain) *SiteTagDTO {
- if src == nil {
- return nil
- }
- return &SiteTagDTO{
- Id: src.Id.Hex(),
- Name: src.Name,
- Count: src.Count,
- Color: src.Color,
- Description: src.Description,
- }
- }
- // Code generated. SiteTagDTO -> SiteTagDomain
- func SiteSiteTagDTOToTagDomain(src *SiteTagDTO) *domain.SiteTagDomain {
- if src == nil {
- return nil
- }
- id, err := primitive.ObjectIDFromHex(src.Id)
- if err != nil {
- id = primitive.NilObjectID
- zap.L().Warn("SiteSiteTagDTOToTagDomain illegal ID", zap.String("err", err.Error()), zap.String("id", src.Id))
- }
- return &domain.SiteTagDomain{
- Id: id,
- Name: src.Name,
- Count: src.Count,
- Color: src.Color,
- Description: src.Description,
- }
- }
|