fix: kpi接收neinfo信息局部赋值

This commit is contained in:
TsMask
2025-08-12 17:05:48 +08:00
parent 695d2e6c8f
commit 4629c8b7d6

View File

@@ -32,7 +32,6 @@ type KPI struct {
wsService *wsService.WSSend wsService *wsService.WSSend
kpiReportService *neDataService.KpiReport kpiReportService *neDataService.KpiReport
kpiCReportService *neDataService.KpiCReport kpiCReportService *neDataService.KpiCReport
neInfo neModel.NeInfo
} }
// Resolve 接收处理 // Resolve 接收处理
@@ -41,8 +40,8 @@ func (s *KPI) Resolve(k oam.KPI) error {
return fmt.Errorf("kpi data is nil") return fmt.Errorf("kpi data is nil")
} }
// 是否存在网元 // 是否存在网元
s.neInfo = s.neInfoService.FindByRmuid(k.NeUid) neInfo := s.neInfoService.FindByRmuid(k.NeUid)
if s.neInfo.NeType == "" || s.neInfo.RmUID != k.NeUid { if neInfo.NeType == "" || neInfo.RmUID != k.NeUid {
return fmt.Errorf("resolve kpi network element does not exist %s", k.NeUid) return fmt.Errorf("resolve kpi network element does not exist %s", k.NeUid)
} }
@@ -51,17 +50,17 @@ func (s *KPI) Resolve(k oam.KPI) error {
curSeconds := curTime.Hour()*3600 + curTime.Minute()*60 + curTime.Second() curSeconds := curTime.Hour()*3600 + curTime.Minute()*60 + curTime.Second()
index := int64(curSeconds) / k.Granularity index := int64(curSeconds) / k.Granularity
if err := s.saveKPIData(k, index); err != nil { if err := s.saveKPIData(neInfo, k, index); err != nil {
return err return err
} }
if err := s.saveKPIDataC(k, index); err != nil { if err := s.saveKPIDataC(neInfo, k, index); err != nil {
return err return err
} }
return nil return nil
} }
// saveKPIData 存储KPI数据并推送到ws订阅组 // saveKPIData 存储KPI数据并推送到ws订阅组
func (s *KPI) saveKPIData(k oam.KPI, index int64) error { func (s KPI) saveKPIData(neInfo neModel.NeInfo, k oam.KPI, index int64) error {
// 时间数据处理 // 时间数据处理
recordTime := time.Now() recordTime := time.Now()
if k.RecordTime > 1e12 { if k.RecordTime > 1e12 {
@@ -75,7 +74,7 @@ func (s *KPI) saveKPIData(k oam.KPI, index int64) error {
recordStartTime := date.ParseDateToStr(startTime, "15:04:05") recordStartTime := date.ParseDateToStr(startTime, "15:04:05")
// kpi data数据json // kpi data数据json
kpiTitles := s.kpiReportService.FindTitle(s.neInfo.NeType) kpiTitles := s.kpiReportService.FindTitle(neInfo.NeType)
KpiValues := make([]map[string]any, 0) KpiValues := make([]map[string]any, 0)
for _, kt := range kpiTitles { for _, kt := range kpiTitles {
item := map[string]any{ item := map[string]any{
@@ -99,9 +98,9 @@ func (s *KPI) saveKPIData(k oam.KPI, index int64) error {
// KPI 信息 // KPI 信息
kpiData := neDataModel.KpiReport{ kpiData := neDataModel.KpiReport{
NeType: s.neInfo.NeType, NeType: neInfo.NeType,
NeName: s.neInfo.NeName, NeName: neInfo.NeName,
RmUid: s.neInfo.RmUID, RmUid: neInfo.RmUID,
Date: recordDate, Date: recordDate,
StartTime: recordStartTime, StartTime: recordStartTime,
EndTime: recordEndTime, EndTime: recordEndTime,
@@ -130,18 +129,18 @@ func (s *KPI) saveKPIData(k oam.KPI, index int64) error {
} }
// 推送到ws订阅组 // 推送到ws订阅组
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, s.neInfo.NeType, s.neInfo.NeId), data) s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, neInfo.NeType, neInfo.NeId), data)
// 更新UPF总流量 // 更新UPF总流量
if s.neInfo.NeType == "UPF" { if neInfo.NeType == "UPF" {
upValue := parse.Number(data["UPF.03"]) upValue := parse.Number(data["UPF.03"])
downValue := parse.Number(data["UPF.06"]) downValue := parse.Number(data["UPF.06"])
s.kpiReportService.UPFTodayFlowUpdate(s.neInfo.RmUID, upValue, downValue) s.kpiReportService.UPFTodayFlowUpdate(neInfo.RmUID, upValue, downValue)
} }
return nil return nil
} }
// saveKPIDataC 存储自定义KPI数据并推送到ws订阅组 // saveKPIDataC 存储自定义KPI数据并推送到ws订阅组
func (s *KPI) saveKPIDataC(k oam.KPI, index int64) error { func (s KPI) saveKPIDataC(neInfo neModel.NeInfo, k oam.KPI, index int64) error {
// 时间数据处理 // 时间数据处理
recordTime := time.Now() recordTime := time.Now()
if k.RecordTime > 1e12 { if k.RecordTime > 1e12 {
@@ -155,7 +154,7 @@ func (s *KPI) saveKPIDataC(k oam.KPI, index int64) error {
recordStartTime := date.ParseDateToStr(startTime, "15:04:05") recordStartTime := date.ParseDateToStr(startTime, "15:04:05")
// kpi data数据json // kpi data数据json
kpiCTitles := s.kpiCReportService.FindTitle(s.neInfo.NeType) kpiCTitles := s.kpiCReportService.FindTitle(neInfo.NeType)
KpiValues := make([]map[string]any, 0) KpiValues := make([]map[string]any, 0)
// 自定义指标的表达式环境变量 // 自定义指标的表达式环境变量
KpiExprEnv := make(map[string]any, 0) KpiExprEnv := make(map[string]any, 0)
@@ -206,9 +205,9 @@ func (s *KPI) saveKPIDataC(k oam.KPI, index int64) error {
// KPI 信息 // KPI 信息
kpiCData := neDataModel.KpiCReport{ kpiCData := neDataModel.KpiCReport{
NeType: s.neInfo.NeType, NeType: neInfo.NeType,
NeName: s.neInfo.NeName, NeName: neInfo.NeName,
RmUid: s.neInfo.RmUID, RmUid: neInfo.RmUID,
Date: recordDate, Date: recordDate,
StartTime: recordStartTime, StartTime: recordStartTime,
EndTime: recordEndTime, EndTime: recordEndTime,
@@ -237,6 +236,6 @@ func (s *KPI) saveKPIDataC(k oam.KPI, index int64) error {
} }
// 推送到ws订阅组 // 推送到ws订阅组
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, s.neInfo.NeType, s.neInfo.NeId), data) s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, neInfo.NeType, neInfo.NeId), data)
return nil return nil
} }