From 1c1e0bae526b115937a41e0a8e433762c8ee3ffa Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 23 May 2025 19:56:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=BD=91=E5=85=83?= =?UTF-8?q?=E5=91=8A=E8=AD=A6ID=E4=B8=BARmUID,=E6=97=B6=E9=97=B4=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=AF=BC=E8=87=B4=E6=8F=92=E5=85=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ne_alarm_state_check.go | 7 ++- .../ne_alarm_state_check_cmd.go | 7 ++- .../ne_alarm_state_check_license.go | 7 ++- src/modules/network_data/model/alarm.go | 62 +++++++++---------- src/modules/network_data/service/all_alarm.go | 6 +- 5 files changed, 47 insertions(+), 42 deletions(-) diff --git a/src/modules/crontask/processor/ne_alarm_state_check/ne_alarm_state_check.go b/src/modules/crontask/processor/ne_alarm_state_check/ne_alarm_state_check.go index 760764b2..1d3d68cc 100644 --- a/src/modules/crontask/processor/ne_alarm_state_check/ne_alarm_state_check.go +++ b/src/modules/crontask/processor/ne_alarm_state_check/ne_alarm_state_check.go @@ -77,7 +77,7 @@ func (s *NeAlarmStateCheckProcessor) Execute(data any) (any, error) { // 检查网元告警ID是否唯一 alarmIdArr := s.alarmService.Find(neDataModel.Alarm{ NeType: neInfo.NeType, - NeId: neInfo.NeId, + NeId: neInfo.RmUID, AlarmId: params.AlarmId, }) // 告警状态 @@ -122,8 +122,9 @@ func (s NeAlarmStateCheckProcessor) alarmClear(neInfo neModel.NeInfo, v neDataMo v.AlarmId = fmt.Sprintf("%s%d", v.AlarmCode, v.EventTime.UnixMilli()) v.AlarmStatus = "0" // 告警清除 + clearTime := time.UnixMilli(neInfo.UpdateTime) v.ClearType = "1" - v.ClearTime = time.UnixMilli(neInfo.UpdateTime) + v.ClearTime = &clearTime v.ClearUser = "system" rows := s.alarmService.Update(v) if rows > 0 { @@ -135,7 +136,7 @@ func (s NeAlarmStateCheckProcessor) alarmClear(neInfo neModel.NeInfo, v neDataMo // alarmNew 新增告警 func (s NeAlarmStateCheckProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) { // seq 告警序号 - lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId) + lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.RmUID) lastTime := neInfo.UpdateTime // 网元最后更新时间 if lastTime < neInfo.CreateTime { lastTime = time.Now().UnixMilli() diff --git a/src/modules/crontask/processor/ne_alarm_state_check_cmd/ne_alarm_state_check_cmd.go b/src/modules/crontask/processor/ne_alarm_state_check_cmd/ne_alarm_state_check_cmd.go index d524d313..708fb04a 100644 --- a/src/modules/crontask/processor/ne_alarm_state_check_cmd/ne_alarm_state_check_cmd.go +++ b/src/modules/crontask/processor/ne_alarm_state_check_cmd/ne_alarm_state_check_cmd.go @@ -114,7 +114,7 @@ func (s *NeAlarmStateCheckCMDProcessor) Execute(data any) (any, error) { // 检查网元告警ID是否唯一 alarmIdArr := s.alarmService.Find(neDataModel.Alarm{ NeType: neInfo.NeType, - NeId: neInfo.NeId, + NeId: neInfo.RmUID, AlarmId: params.AlarmId, }) // 告警状态, 存在的需要手动清除 @@ -267,8 +267,9 @@ func (s NeAlarmStateCheckCMDProcessor) alarmClear(neInfo neModel.NeInfo, v neDat v.AlarmId = fmt.Sprintf("%s%d", v.AlarmCode, v.EventTime.UnixMilli()) v.AlarmStatus = "0" // 告警清除 + clearTime := time.UnixMilli(neInfo.UpdateTime) v.ClearType = "1" - v.ClearTime = time.UnixMilli(neInfo.UpdateTime) + v.ClearTime = &clearTime v.ClearUser = "system" rows := s.alarmService.Update(v) if rows > 0 { @@ -280,7 +281,7 @@ func (s NeAlarmStateCheckCMDProcessor) alarmClear(neInfo neModel.NeInfo, v neDat // alarmNew 新增告警 func (s NeAlarmStateCheckCMDProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) { // seq 告警序号 - lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId) + lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.RmUID) lastTime := neInfo.UpdateTime // 网元最后更新时间 if lastTime < neInfo.CreateTime { lastTime = time.Now().UnixMilli() diff --git a/src/modules/crontask/processor/ne_alarm_state_check_license/ne_alarm_state_check_license.go b/src/modules/crontask/processor/ne_alarm_state_check_license/ne_alarm_state_check_license.go index de644ddf..673f494d 100644 --- a/src/modules/crontask/processor/ne_alarm_state_check_license/ne_alarm_state_check_license.go +++ b/src/modules/crontask/processor/ne_alarm_state_check_license/ne_alarm_state_check_license.go @@ -98,7 +98,7 @@ func (s *NeAlarmStateCheckLicenseProcessor) Execute(data any) (any, error) { // 检查网元告警ID是否唯一 alarmIdArr := s.alarmService.Find(neDataModel.Alarm{ NeType: neInfo.NeType, - NeId: neInfo.NeId, + NeId: neInfo.RmUID, AlarmId: params.AlarmId, }) // 告警状态, 存在的需要手动清除 @@ -170,8 +170,9 @@ func (s NeAlarmStateCheckLicenseProcessor) alarmClear(neInfo neModel.NeInfo, v n v.AlarmId = fmt.Sprintf("%s%d", v.AlarmCode, v.EventTime.UnixMilli()) v.AlarmStatus = "0" // 告警清除 + clearTime := time.UnixMilli(neInfo.UpdateTime) v.ClearType = "1" - v.ClearTime = time.UnixMilli(neInfo.UpdateTime) + v.ClearTime = &clearTime v.ClearUser = "system" rows := s.alarmService.Update(v) if rows > 0 { @@ -183,7 +184,7 @@ func (s NeAlarmStateCheckLicenseProcessor) alarmClear(neInfo neModel.NeInfo, v n // alarmNew 新增告警 func (s NeAlarmStateCheckLicenseProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) { // seq 告警序号 - lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId) + lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.RmUID) lastTime := neInfo.UpdateTime // 网元最后更新时间 if lastTime < neInfo.CreateTime { lastTime = time.Now().UnixMilli() diff --git a/src/modules/network_data/model/alarm.go b/src/modules/network_data/model/alarm.go index 3c898ed8..aa19c8a2 100644 --- a/src/modules/network_data/model/alarm.go +++ b/src/modules/network_data/model/alarm.go @@ -4,37 +4,37 @@ import "time" // Alarm 告警数据对象 alarm type Alarm struct { - ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` - AlarmSeq string `json:"alarmSeq" gorm:"column:alarm_seq"` - AlarmId string `json:"alarmId" gorm:"column:alarm_id"` - AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` - NeType string `json:"neType" gorm:"column:ne_type"` - NeId string `json:"neId" gorm:"column:ne_id"` - AlarmCode string `json:"alarmCode" gorm:"column:alarm_code"` - EventTime time.Time `json:"eventTime" gorm:"column:event_time"` - AlarmType string `json:"alarmType" gorm:"column:alarm_type"` - OrigSeverity string `json:"origSeverity" gorm:"column:orig_severity"` // 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) - PerceivedSeverity string `json:"perceivedSeverity" gorm:"column:perceived_severity"` // 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) - PvFlag string `json:"pvFlag" gorm:"column:pv_flag"` - NeName string `json:"neName" gorm:"column:ne_name"` - ObjectUid string `json:"objectUid" gorm:"column:object_uid"` - ObjectName string `json:"objectName" gorm:"column:object_name"` - ObjectType string `json:"objectType" gorm:"column:object_type"` - LocationInfo string `json:"locationInfo" gorm:"column:location_info"` - Province string `json:"province" gorm:"column:province"` - AlarmStatus string `json:"alarmStatus" gorm:"column:alarm_status"` // 0:clear, 1:active - SpecificProblem string `json:"specificProblem" gorm:"column:specific_problem"` - SpecificProblemId string `json:"specificProblemId" gorm:"column:specific_problem_id"` - AddInfo string `json:"addInfo" gorm:"column:add_info"` - Counter string `json:"counter" gorm:"column:counter"` - LatestEventTime time.Time `json:"latestEventTime" gorm:"column:latest_event_time"` - AckState string `json:"ackState" gorm:"column:ack_state"` // 0: Unacked, 1: Acked - AckTime time.Time `json:"ackTime" gorm:"column:ack_time"` - AckUser string `json:"ackUser" gorm:"column:ack_user"` - ClearType string `json:"clearType" gorm:"column:clear_type"` // 0: Unclear, 1: AutoClear, 2: ManualClear - ClearTime time.Time `json:"clearTime" gorm:"column:clear_time"` - ClearUser string `json:"clearUser" gorm:"column:clear_user"` - Timestamp time.Time `json:"timestamp" gorm:"column:timestamp"` + ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` + AlarmSeq string `json:"alarmSeq" gorm:"column:alarm_seq"` + AlarmId string `json:"alarmId" gorm:"column:alarm_id"` + AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` + NeType string `json:"neType" gorm:"column:ne_type"` + NeId string `json:"neId" gorm:"column:ne_id"` + AlarmCode string `json:"alarmCode" gorm:"column:alarm_code"` + EventTime time.Time `json:"eventTime" gorm:"column:event_time"` + AlarmType string `json:"alarmType" gorm:"column:alarm_type"` + OrigSeverity string `json:"origSeverity" gorm:"column:orig_severity"` // 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) + PerceivedSeverity string `json:"perceivedSeverity" gorm:"column:perceived_severity"` // 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) + PvFlag string `json:"pvFlag" gorm:"column:pv_flag"` + NeName string `json:"neName" gorm:"column:ne_name"` + ObjectUid string `json:"objectUid" gorm:"column:object_uid"` + ObjectName string `json:"objectName" gorm:"column:object_name"` + ObjectType string `json:"objectType" gorm:"column:object_type"` + LocationInfo string `json:"locationInfo" gorm:"column:location_info"` + Province string `json:"province" gorm:"column:province"` + AlarmStatus string `json:"alarmStatus" gorm:"column:alarm_status"` // 0:clear, 1:active + SpecificProblem string `json:"specificProblem" gorm:"column:specific_problem"` + SpecificProblemId string `json:"specificProblemId" gorm:"column:specific_problem_id"` + AddInfo string `json:"addInfo" gorm:"column:add_info"` + Counter string `json:"counter" gorm:"column:counter"` + LatestEventTime *time.Time `json:"latestEventTime" gorm:"column:latest_event_time"` + AckState string `json:"ackState" gorm:"column:ack_state"` // 0: Unacked, 1: Acked + AckTime *time.Time `json:"ackTime" gorm:"column:ack_time"` + AckUser string `json:"ackUser" gorm:"column:ack_user"` + ClearType string `json:"clearType" gorm:"column:clear_type"` // 0: Unclear, 1: AutoClear, 2: ManualClear + ClearTime *time.Time `json:"clearTime" gorm:"column:clear_time"` + ClearUser string `json:"clearUser" gorm:"column:clear_user"` + Timestamp time.Time `json:"timestamp" gorm:"column:timestamp"` } // TableName 表名称 diff --git a/src/modules/network_data/service/all_alarm.go b/src/modules/network_data/service/all_alarm.go index 04c6d546..d28a914c 100644 --- a/src/modules/network_data/service/all_alarm.go +++ b/src/modules/network_data/service/all_alarm.go @@ -79,8 +79,9 @@ func (r Alarm) AlarmClearByIds(ids []string, clearUser string) (int64, error) { } v.AlarmStatus = "0" // 告警清除 + clearTime := time.Now() v.ClearType = "2" - v.ClearTime = time.Now() + v.ClearTime = &clearTime v.ClearUser = clearUser rows += r.alarmRepository.Update(v) } @@ -107,7 +108,8 @@ func (r Alarm) AlarmAckByIds(ids []string, ackUser string, ackState bool) (int64 } else { v.AckState = "0" } - v.AckTime = time.Now() + ackTime := time.Now() + v.AckTime = &ackTime v.AckUser = ackUser rows += r.alarmRepository.Update(v) }