[fix]缺少包

This commit is contained in:
PandaX-Go
2025-02-20 19:09:39 +08:00
parent e3eb707e59
commit fb8ff40f7c
2 changed files with 49 additions and 41 deletions

View File

@@ -2,8 +2,12 @@ package nodes
import ( import (
"errors" "errors"
"pandax/apps/device/entity"
"pandax/apps/device/services"
"pandax/pkg/global" "pandax/pkg/global"
"pandax/pkg/rule_engine/message" "pandax/pkg/rule_engine/message"
"strings"
"time"
) )
type saveAttributesNode struct { type saveAttributesNode struct {
@@ -40,28 +44,28 @@ func (n *saveAttributesNode) Handle(msg *message.Message) error {
} else { } else {
return errors.New("元数据中为获取到设备ID") return errors.New("元数据中为获取到设备ID")
} }
msgData := make(map[string]any) msgData := make(map[string]any)
// 去掉多余的参数 // 去掉多余的参数
if pid, ok := msg.Metadata.GetValue("productId").(string); ok { if pid, ok := msg.Metadata.GetValue("productId").(string); ok {
pts, err := services.ProductTemplateModelDao.FindList(entity.ProductTemplate{Pid: pid, Classify: strings.ToLower(message.AttributesMes)}) pts, err := services.ProductTemplateModelDao.FindList(entity.ProductTemplate{Pid: pid, Classify: strings.ToLower(message.AttributesMes)})
if err != nil { if err != nil {
return errors.New("为获取到设备物模型信息") return errors.New("为获取到设备物模型信息")
} }
for _, pt := range *pts { for _, pt := range *pts {
value := msg.Msg.GetValue(pt.key) value := msg.Msg.GetValue(pt.Key)
msgData[pt.key] = value msgData[pt.Key] = value
} }
} else { } else {
return errors.New("元素组中为获取到设备ID") return errors.New("元素组中为获取到设备ID")
} }
ts := msg.Msg.GetValue("ts") ts := msg.Msg.GetValue("ts")
if ts == nil { if ts == nil {
msgData["ts"] = time.Now().Local().Format("2006-01-02 15:04:05.000") msgData["ts"] = time.Now().Local().Format("2006-01-02 15:04:05.000")
} else { } else {
msgData["ts"] = ts msgData["ts"] = ts
} }
err := global.TdDb.InsertDevice(deviceName+"_telemetry", msgData) err := global.TdDb.InsertDevice(deviceName+"_telemetry", msgData)
err := global.TdDb.InsertDevice(deviceName+"_attributes", msg.Msg) err = global.TdDb.InsertDevice(deviceName+"_attributes", msg.Msg)
if err != nil { if err != nil {
n.Debug(msg, message.DEBUGOUT, err.Error()) n.Debug(msg, message.DEBUGOUT, err.Error())
if failureLabelNode != nil { if failureLabelNode != nil {

View File

@@ -2,8 +2,12 @@ package nodes
import ( import (
"errors" "errors"
"pandax/apps/device/entity"
"pandax/apps/device/services"
"pandax/pkg/global" "pandax/pkg/global"
"pandax/pkg/rule_engine/message" "pandax/pkg/rule_engine/message"
"strings"
"time"
) )
type saveTimeSeriesNode struct { type saveTimeSeriesNode struct {
@@ -40,26 +44,26 @@ func (n *saveTimeSeriesNode) Handle(msg *message.Message) error {
} else { } else {
return errors.New("元数据中为获取到设备ID") return errors.New("元数据中为获取到设备ID")
} }
msgData := make(map[string]any) msgData := make(map[string]any)
// 去掉多余的参数 // 去掉多余的参数
if pid, ok := msg.Metadata.GetValue("productId").(string); ok { if pid, ok := msg.Metadata.GetValue("productId").(string); ok {
pts, err := services.ProductTemplateModelDao.FindList(entity.ProductTemplate{Pid: pid, Classify: strings.ToLower(message.TelemetrgMes)}) pts, err := services.ProductTemplateModelDao.FindList(entity.ProductTemplate{Pid: pid, Classify: strings.ToLower(message.TelemetryMes)})
if err != nil { if err != nil {
return errors.New("为获取到设备物模型信息") return errors.New("为获取到设备物模型信息")
} }
for _, pt := range *pts { for _, pt := range *pts {
value := msg.Msg.GetValue(pt.key) value := msg.Msg.GetValue(pt.Key)
msgData[pt.key] = value msgData[pt.Key] = value
} }
} else { } else {
return errors.New("元素组中为获取到设备ID") return errors.New("元素组中为获取到设备ID")
} }
ts := msg.Msg.GetValue("ts") ts := msg.Msg.GetValue("ts")
if ts == nil { if ts == nil {
msgData["ts"] = time.Now().Local().Format("2006-01-02 15:04:05.000") msgData["ts"] = time.Now().Local().Format("2006-01-02 15:04:05.000")
} else { } else {
msgData["ts"] = ts msgData["ts"] = ts
} }
err := global.TdDb.InsertDevice(deviceName+"_telemetry", msgData) err := global.TdDb.InsertDevice(deviceName+"_telemetry", msgData)
if err != nil { if err != nil {
n.Debug(msg, message.DEBUGOUT, err.Error()) n.Debug(msg, message.DEBUGOUT, err.Error())