energy.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. package model
  2. import "gorm.io/gorm"
  3. type Energy struct {
  4. gorm.Model
  5. }
  6. type EnergyTree struct {
  7. Data []struct {
  8. Id int `json:"id"`
  9. Name string `json:"name"`
  10. ParentId int `json:"parentId"`
  11. PackingCode string `json:"packing_code"`
  12. PackingBuildingId int `json:"packing_building_id"`
  13. BuildingName string `json:"building_name"`
  14. PackingSort int `json:"packing_sort"`
  15. PackingFormula int `json:"packing_formula"`
  16. PackingEnergyTypeCode string `json:"packing_energy_type_code"`
  17. EnergyType []interface{} `json:"energy_type"`
  18. Children []struct {
  19. Id int `json:"id"`
  20. Name string `json:"name"`
  21. ParentId int `json:"parentId"`
  22. PackingCode string `json:"packing_code"`
  23. PackingBuildingId int `json:"packing_building_id"`
  24. BuildingName string `json:"building_name"`
  25. PackingSort int `json:"packing_sort"`
  26. PackingFormula int `json:"packing_formula"`
  27. PackingEnergyTypeCode string `json:"packing_energy_type_code"`
  28. EnergyType []struct {
  29. EnergyTypeId int `json:"energy_type_id"`
  30. EnergyTypeCode string `json:"energy_type_code"`
  31. EnergyTypeName string `json:"energy_type_name"`
  32. EnergyTypeUnit string `json:"energy_type_unit"`
  33. EnergyTypeSystematic int `json:"energy_type_systematic"`
  34. EnergyTypeSort int `json:"energy_type_sort"`
  35. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  36. FieldKey string `json:"field_key"`
  37. EnergyTypeAlias string `json:"energy_type_alias"`
  38. EnergyTypeIcons string `json:"energy_type_icons"`
  39. } `json:"energy_type"`
  40. Children []struct {
  41. Id int `json:"id"`
  42. Name string `json:"name"`
  43. ParentId int `json:"parentId"`
  44. PackingCode string `json:"packing_code"`
  45. PackingBuildingId int `json:"packing_building_id"`
  46. BuildingName string `json:"building_name"`
  47. PackingSort int `json:"packing_sort"`
  48. PackingFormula int `json:"packing_formula"`
  49. PackingEnergyTypeCode string `json:"packing_energy_type_code"`
  50. EnergyType []struct {
  51. EnergyTypeId int `json:"energy_type_id"`
  52. EnergyTypeCode string `json:"energy_type_code"`
  53. EnergyTypeName string `json:"energy_type_name"`
  54. EnergyTypeUnit string `json:"energy_type_unit"`
  55. EnergyTypeSystematic int `json:"energy_type_systematic"`
  56. EnergyTypeSort int `json:"energy_type_sort"`
  57. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  58. FieldKey string `json:"field_key"`
  59. EnergyTypeAlias string `json:"energy_type_alias"`
  60. EnergyTypeIcons string `json:"energy_type_icons"`
  61. } `json:"energy_type"`
  62. Children []struct {
  63. Id int `json:"id"`
  64. Name string `json:"name"`
  65. ParentId int `json:"parentId"`
  66. PackingCode string `json:"packing_code"`
  67. PackingBuildingId int `json:"packing_building_id"`
  68. BuildingName string `json:"building_name"`
  69. PackingSort int `json:"packing_sort"`
  70. PackingFormula int `json:"packing_formula"`
  71. PackingEnergyTypeCode string `json:"packing_energy_type_code"`
  72. EnergyType []struct {
  73. EnergyTypeId int `json:"energy_type_id"`
  74. EnergyTypeCode string `json:"energy_type_code"`
  75. EnergyTypeName string `json:"energy_type_name"`
  76. EnergyTypeUnit string `json:"energy_type_unit"`
  77. EnergyTypeSystematic int `json:"energy_type_systematic"`
  78. EnergyTypeSort int `json:"energy_type_sort"`
  79. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  80. FieldKey string `json:"field_key"`
  81. EnergyTypeAlias string `json:"energy_type_alias"`
  82. EnergyTypeIcons string `json:"energy_type_icons"`
  83. } `json:"energy_type"`
  84. Children []interface{} `json:"children"`
  85. ValidAlert int `json:"valid_alert"`
  86. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  87. } `json:"children"`
  88. ValidAlert int `json:"valid_alert"`
  89. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  90. } `json:"children"`
  91. ValidAlert int `json:"valid_alert"`
  92. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  93. } `json:"children"`
  94. ValidAlert int `json:"valid_alert"`
  95. EnergyTypeCategoryTypeId int `json:"energy_type_category_type_id"`
  96. } `json:"data"`
  97. }
  98. type T struct {
  99. RespJson string `json:"resp_json"`
  100. }
  101. type Request struct {
  102. TimeType string `json:"time_type"`
  103. Nodes []int `json:"nodes"`
  104. StartTime string `json:"start_time"`
  105. EndTime string `json:"end_time"`
  106. }
  107. // EnergyTrend 能耗趋势结构体,用于表示某个建筑或组织在不同时间点的能源消耗趋势数据
  108. type EnergyTrend struct {
  109. BuildId int `json:"build_id"` // 建筑ID,表示该能耗数据所属的建筑编号
  110. EnergyType []struct { // 能源类型信息,描述该条记录涉及的能源类型
  111. EnergyTypeAlias string `json:"energy_type_alias"` // 能源类型别名,用于显示名称
  112. EnergyTypeIcons string `json:"energy_type_icons"` // 能源类型图标,用于前端展示
  113. EnergyTypeUnit string `json:"energy_type_unit"` // 能源单位,如“千瓦时”
  114. FieldKey string `json:"field_key"` // 字段标识符,用于后端识别该能源类型
  115. } `json:"energy_type"` // 能源类型数组,包含多个能源类型的详细信息
  116. Id int `json:"id"` // 记录唯一标识,用于区分不同的能耗趋势记录
  117. Index int `json:"index"` // 排序索引,用于排序展示多条记录
  118. Json []struct { // 时间维度下的能耗数据集合
  119. DeviceUsage []struct { // 设备使用情况,记录每个设备在该时间点的能耗数据
  120. EPE float64 `json:"EPE"` // 实际能耗值(Electric Power Equivalent)
  121. EPEForecast float64 `json:"EPE_forecast,omitempty"` // 预测能耗值
  122. Column int `json:"column"` // 列号,用于前端表格展示定位
  123. DevicesName string `json:"devices_name"` // 设备名称
  124. FormulaProportion int `json:"formula_proportion"` // 公式比例,参与计算总能耗的权重
  125. MaxEPE float64 `json:"max_EPE"` // 最大实际能耗值
  126. MaxEPEForecast float64 `json:"max_EPE_forecast,omitempty"` // 最大预测能耗值
  127. MinEPE float64 `json:"min_EPE"` // 最小实际能耗值
  128. MinEPEForecast float64 `json:"min_EPE_forecast,omitempty"` // 最小预测能耗值
  129. } `json:"device_usage"` // 设备使用情况数组
  130. Time string `json:"time"` // 时间点,表示当前记录的时间戳,格式如"2023-10-01"
  131. TotalUsage struct { // 总计能耗,表示该时间点所有设备的综合能耗
  132. EPE float64 `json:"EPE"` // 实际总能耗值
  133. EPEForecast float64 `json:"EPE_forecast"` // 预测总能耗值
  134. MaxEPE float64 `json:"max_EPE"` // 最大实际总能耗值
  135. MaxEPEForecast float64 `json:"max_EPE_forecast"` // 最大预测总能耗值
  136. MinEPE float64 `json:"min_EPE"` // 最小实际总能耗值
  137. MinEPEForecast float64 `json:"min_EPE_forecast"` // 最小预测总能耗值
  138. } `json:"total_usage"` // 总计能耗数据
  139. } `json:"json"` // 包含多个时间点的能耗数据集合
  140. OrgId int `json:"org_id"` // 组织ID,表示该能耗数据所属的组织编号
  141. PackingCode string `json:"packing_code"` // 打包代码,用于标识数据来源或分类规则
  142. PackingName string `json:"packing_name"` // 打包名称,用于前端展示打包的名称
  143. }
  144. // DayAndNightRequst 昼夜请求参数
  145. type DayAndNightRequst struct {
  146. TimeType string `json:"time_type"`
  147. Node int `json:"node"`
  148. StartTime string `json:"start_time"`
  149. EndTime string `json:"end_time"`
  150. DayTime string `json:"dayTime"`
  151. NightTime string `json:"nightTime"`
  152. }
  153. // DayAndNightRespone 昼夜返回参数
  154. type DayAndNightRespone struct {
  155. Data []struct {
  156. Time string `json:"time"`
  157. TotalUsage string `json:"total_usage"`
  158. DayUsage string `json:"day_usage"`
  159. } `json:"data"`
  160. }
  161. // CategoryStatistics 设备分类统计结构体
  162. type CategoryStatistics struct {
  163. CategoryStatistics []struct {
  164. CategoryId int `json:"category_id"`
  165. CategoryName string `json:"category_name"`
  166. Total int `json:"total"`
  167. TypeStatistics []struct {
  168. DevicesTypeId int `json:"devices_type_id"`
  169. DevicesTypeName string `json:"devices_type_name"`
  170. Total int `json:"total"`
  171. OnLine int `json:"on_line"`
  172. OffLine int `json:"off_line"`
  173. } `json:"type_statistics"`
  174. CategorySort int `json:"category_sort"`
  175. OnLine int `json:"on_line"`
  176. OffLine int `json:"off_line"`
  177. } `json:"category_statistics"`
  178. }
  179. // DevicesJsonObject 设备数据结构体
  180. type DevicesJsonObject struct {
  181. EPE float64 `json:"EPE"`
  182. DevUdid string `json:"dev_udid"`
  183. DisDevName string `json:"dis_dev_name"`
  184. }
  185. // TotalWater 总用水结构体
  186. type TotalWater struct {
  187. DevUdid string `json:"dev_udid"`
  188. DisDevName string `json:"dis_dev_name"`
  189. TotalWater int `json:"total_water"`
  190. }
  191. // HisData 历史数据结构体
  192. type HisData struct {
  193. Data []struct {
  194. DevicesId int `json:"devices_id"`
  195. DevicesUdid string `json:"devices_udid"`
  196. DevicesTypeId int `json:"devices_type_id"`
  197. DevicesName string `json:"devices_name"`
  198. DevicesReqInterval int `json:"devices_req_interval"`
  199. DevicesLastRequestTime string `json:"devices_last_request_time"`
  200. DevicesJsonObject string `json:"devices_json_object"`
  201. DevicesEnabled int `json:"devices_enabled"`
  202. DevicesCreated string `json:"devices_created"`
  203. DevicesSource string `json:"devices_source"`
  204. DevicesDescription string `json:"devices_description"`
  205. ExtendId int `json:"extend_id"`
  206. BaseId int `json:"base_id"`
  207. Longitude string `json:"longitude"`
  208. Latitude string `json:"latitude"`
  209. ExtendJson string `json:"extend_json"`
  210. Adcode string `json:"adcode"`
  211. McuFirmwareVer string `json:"mcu_firmware_ver"`
  212. WifiFirmwareVer string `json:"wifi_firmware_ver"`
  213. McuProgramCode string `json:"mcu_program_code"`
  214. UpdatePrior int `json:"update_prior"`
  215. LastUpdateQueueTime string `json:"last_update_queue_time"`
  216. LastUpdateValue int `json:"last_update_value"`
  217. UtcDeviation int `json:"utc_deviation"`
  218. ConsecutiveUpdateTimes int `json:"consecutive_update_times"`
  219. UpgradeOption int `json:"upgrade_option"`
  220. DevicesTypeCode string `json:"devices_type_code"`
  221. DevicesTypeName string `json:"devices_type_name"`
  222. DevicesTypeWiredWireless int `json:"devices_type_wired_wireless"`
  223. DevicesTypeCategoryId int `json:"devices_type_category_id"`
  224. DevicesTypeSort int `json:"devices_type_sort"`
  225. DevicesTypeCharging int `json:"devices_type_charging"`
  226. CategoryId int `json:"category_id"`
  227. CategoryClassification string `json:"category_classification"`
  228. CategoryName string `json:"category_name"`
  229. CategorySystematic int `json:"category_systematic"`
  230. CategorySort int `json:"category_sort"`
  231. GatewayId int `json:"gateway_id"`
  232. GatewayCode string `json:"gateway_code"`
  233. GatewayDescription string `json:"gateway_description"`
  234. GatewayOrgId int `json:"gateway_org_id"`
  235. GatewayStatus int `json:"gateway_status"`
  236. GatewayLastRequestTime string `json:"gateway_last_request_time"`
  237. DevicesGatewayId int `json:"devices_gateway_id"`
  238. RoomId int `json:"room_id"`
  239. RoomRegionId int `json:"room_region_id"`
  240. RoomName string `json:"room_name"`
  241. RoomUserId int `json:"room_user_id"`
  242. RoomCheckinDate string `json:"room_checkin_date"`
  243. RoomCheckoutDate string `json:"room_checkout_date"`
  244. RegionId int `json:"region_id"`
  245. RegionBuildingId int `json:"region_building_id"`
  246. RegionName string `json:"region_name"`
  247. RegionParentId int `json:"region_parent_id"`
  248. OnLine int `json:"on_line"`
  249. RealDeviceName string `json:"real_device_name"`
  250. DeviceDataStatus int `json:"device_data_status"`
  251. BuildingId int `json:"building_id"`
  252. BuildingName string `json:"building_name"`
  253. ProvinceId int `json:"province_id"`
  254. ProvinceName string `json:"province_name"`
  255. CityId int `json:"city_id"`
  256. CityName string `json:"city_name"`
  257. CountyId int `json:"county_id"`
  258. CountyName string `json:"county_name"`
  259. OfflineConsecutiveTimes int `json:"offline_consecutive_times"`
  260. OfflineInterval int `json:"offline_interval"`
  261. OfflineLastRequestTime string `json:"offline_last_request_time"`
  262. DataFrom string `json:"data_from"`
  263. OriginalMcuFirmwareVer string `json:"original_mcu_firmware_ver"`
  264. OriginalWifiFirmwareVer string `json:"original_wifi_firmware_ver"`
  265. Ip string `json:"ip"`
  266. LastRequestTimestampInSeconds string `json:"lastRequestTimestampInSeconds"`
  267. RoomType string `json:"room_type"`
  268. GatewayName string `json:"gateway_name"`
  269. LastFreqTimestamp string `json:"last_freq_timestamp"`
  270. UpgradeFreq bool `json:"upgrade_freq"`
  271. DeviceVer string `json:"device_ver"`
  272. LastUpdateSuccessTime string `json:"last_update_success_time"`
  273. DownloadPercent int `json:"download_percent"`
  274. FileDeviceVersion string `json:"file_device_version"`
  275. ProgramName string `json:"program_name"`
  276. GatewayType int `json:"gateway_type"`
  277. FullRegionName string `json:"full_region_name"`
  278. DevicesReplaceStatus int `json:"devices_replace_status"`
  279. DevicesReplaceApplyStatus int `json:"devices_replace_apply_status"`
  280. } `json:"data"`
  281. Count int `json:"count"`
  282. }
  283. func (m *Energy) TableName() string {
  284. return "energy"
  285. }