xu преди 7 месеца
родител
ревизия
c47b0f7849
променени са 5 файла, в които са добавени 48 реда и са изтрити 7 реда
  1. 15 0
      server/api/v1/admin/device.go
  2. 15 2
      server/dao/power_statistics.go
  3. 1 0
      server/initialize/gorm.go
  4. 1 0
      server/router/admin/device.go
  5. 16 5
      server/service/admin/device.go

+ 15 - 0
server/api/v1/admin/device.go

@@ -125,3 +125,18 @@ func (da *DeviceApi) DeleteDevice(c *gin.Context) {
 	}
 	response.OkWithMessage("删除成功", c)
 }
+
+func (da *DeviceApi) QueryPowerStatisticsBySn(c *gin.Context) {
+	sn := c.Query("sn")
+	if sn == "" {
+		response.FailWithMessage("序号不能为空", c)
+		return
+	}
+	statistics, err := deviceService.QueryPowerStatisticsBySn(sn)
+	if err != nil {
+		logger.Get().Error("QueryPowerStatisticsBySn ---- " + err.Error())
+		response.FailWithMessage("查询功率统计失败", c)
+		return
+	}
+	response.OkWithDetailed(statistics, "查询功率统计成功", c)
+}

+ 15 - 2
server/dao/power_statistics.go

@@ -2,11 +2,24 @@ package dao
 
 import (
 	"server/global"
-	"time"
 )
 
 type PowerStatistics struct {
 	global.GVA_MODEL
+	TunnelSn         string  `json:"tunnelSn" gorm:"comment:隧道sn"`
 	TotalActivePower float64 `json:"totalActivePower" gorm:"comment:总有功功率"`
-	UploadTime       time.Time
+	UploadTime       string  `json:"uploadTime" gorm:"comment:时间"`
+}
+
+func (PowerStatistics) TableName() string {
+	return "power_statistics"
+}
+
+func (p PowerStatistics) CreatePowerStatistics() error {
+	return global.GVA_DB.Create(&p).Error
+}
+
+func QueryPowerStatisticsBySn(tunnelSn string) (powerStatistics []PowerStatistics, err error) {
+	err = global.GVA_DB.Where("tunnel_sn = ?", tunnelSn).Find(&powerStatistics).Error
+	return powerStatistics, err
 }

+ 1 - 0
server/initialize/gorm.go

@@ -55,6 +55,7 @@ func RegisterTables() {
 		dao.EnvData{},
 		dao.OpticalData{},
 		dao.InductanceDetails{},
+		dao.PowerStatistics{},
 	)
 	if err != nil {
 		global.GVA_LOG.Error("register table failed", zap.Error(err))

+ 1 - 0
server/router/admin/device.go

@@ -18,6 +18,7 @@ func (dr *DeviceRouter) InitDeviceRouter(Router *gin.RouterGroup) {
 		deviceRouter.POST("deviceSwitch", deviceRouterApi.DeviceSwitch)
 		deviceRouter.PUT("updateDevice", deviceRouterApi.UpdateDevice)
 		deviceRouter.DELETE("deleteDevice", deviceRouterApi.DeleteDevice)
+		deviceRouter.GET("queryPowerStatisticsBySn", deviceRouterApi.QueryPowerStatisticsBySn)
 	}
 	{
 		deviceRouterWithoutRecord.GET("queryAllDevices", deviceRouterApi.QueryAllDevices)

+ 16 - 5
server/service/admin/device.go

@@ -6,6 +6,7 @@ import (
 	"server/model/common/request"
 	"server/model/common/response"
 	"server/utils/data"
+	"server/utils/logger"
 	"server/utils/protocol"
 	"strconv"
 	"time"
@@ -33,8 +34,8 @@ func (ds *DeviceService) GenerateDeviceFile(id int) (data response.DeviceFileDat
 	for _, d := range devices {
 		if d.DeviceGenre.Type == "环境设备" {
 			envDev := response.EnvDev{
-				Sn:       d.Sn,
 				Name:     d.Name,
+				Sn:       d.Sn,
 				Address:  d.Address,
 				TaskTime: d.TaskTime,
 				WaitTime: d.WaitTime,
@@ -73,8 +74,8 @@ func (ds *DeviceService) DeviceSwitch(info request.SwitchTunnel) error {
 	} else {
 		i = 0
 	}
-	data := strconv.Itoa(info.RadarId) + strconv.Itoa(info.RelayId) + strconv.Itoa(i)
-	err = MqttService.Publish(MqttService.GetTopic(info.TunnelSn, protocol.TopicSwitchControl), []byte(data))
+	data1 := strconv.Itoa(info.RadarId) + strconv.Itoa(info.RelayId) + strconv.Itoa(i)
+	err = MqttService.Publish(MqttService.GetTopic(info.TunnelSn, protocol.TopicSwitchControl), []byte(data1))
 	if err != nil {
 		return fmt.Errorf("error updating: %v", err)
 	}
@@ -133,9 +134,19 @@ func InductanceStatistics() error {
 		}
 
 		consumption := data.CalculateDailyEnergyConsumption(preprocessData)
-		fmt.Println(time.Now())
-		fmt.Println(consumption)
+
+		err = dao.PowerStatistics{
+			TunnelSn:         tunnel.TunnelSn,
+			TotalActivePower: consumption,
+			UploadTime:       time.Now().Add(-1).Local().Format("2006-01-02"),
+		}.CreatePowerStatistics()
+
+		logger.Get().Errorf("电感数据统计 隧道:%v 错误%v", tunnel.TunnelSn, err)
 	}
 
 	return nil
 }
+
+func (ds *DeviceService) QueryPowerStatisticsBySn(sn string) (powerStatistics []dao.PowerStatistics, err error) {
+	return dao.QueryPowerStatisticsBySn(sn)
+}