diff --git a/src/modules/network_element/controller/ne_info.go b/src/modules/network_element/controller/ne_info.go index 97b87225..e53f3d27 100644 --- a/src/modules/network_element/controller/ne_info.go +++ b/src/modules/network_element/controller/ne_info.go @@ -193,12 +193,18 @@ func (s *NeInfoController) Add(c *gin.Context) { return } - // 下发网管配置信息给网元 - _, err = neService.NeConfigOMC(body) - if err == nil { + // 获取网元状态是否正常 + _, err = neService.NeState(body) + if err != nil { body.Status = "1" } else { - body.Status = "0" + // 下发网管配置信息给网元 + _, err = neService.NeConfigOMC(body) + if err == nil { + body.Status = "0" + } else { + body.Status = "3" + } } insertId := s.neInfoService.Insert(body) @@ -238,12 +244,18 @@ func (s *NeInfoController) Edit(c *gin.Context) { return } - // 下发网管配置信息给网元 - _, err = neService.NeConfigOMC(body) - if err == nil { + // 获取网元状态是否正常 + _, err = neService.NeState(body) + if err != nil { body.Status = "1" } else { - body.Status = "0" + // 下发网管配置信息给网元 + _, err = neService.NeConfigOMC(body) + if err == nil { + body.Status = "0" + } else { + body.Status = "3" + } } rows := s.neInfoService.Update(body) diff --git a/src/modules/network_element/model/ne_info.go b/src/modules/network_element/model/ne_info.go index 86b1ba78..c08e71a0 100644 --- a/src/modules/network_element/model/ne_info.go +++ b/src/modules/network_element/model/ne_info.go @@ -14,7 +14,7 @@ type NeInfo struct { VendorName string `json:"vendorName"` Dn string `json:"dn"` NeAddress string `json:"neAddress"` - Status string `json:"status"` // 0: 在线 1: 下线 2: 备用 3: 工程 + Status string `json:"status"` // 0: 在线 1: 下线 2: 备用 3: 待下发配置 UpdateTime string `json:"updateTime"` HostIDs string `json:"hostIds"` // 网元主机ID组 数据格式(ssh,telnet,telnet) @@ -24,5 +24,5 @@ type NeInfo struct { ServerState map[string]any `json:"serverState,omitempty"` // 主机对象组 - Hosts []NeHost `json:"hosts,omitempty" binding:"hosts"` + Hosts []NeHost `json:"hosts,omitempty"` } diff --git a/src/modules/network_element/service/ne_info.impl.go b/src/modules/network_element/service/ne_info.impl.go index e4bc4d8e..95cea2e5 100644 --- a/src/modules/network_element/service/ne_info.impl.go +++ b/src/modules/network_element/service/ne_info.impl.go @@ -90,10 +90,24 @@ func (r *NeInfoImpl) SelectPage(query map[string]any, bandStatus bool) map[strin (*arr)[i].ServerState = map[string]any{ "online": false, } + // 网元状态设置为离线 + if v.Status != "1" { + v.Status = "1" + r.neInfoRepository.Update(v) + } continue } result["online"] = true (*arr)[i].ServerState = result + // 网元状态设置为在线 + if v.Status != "0" { + // 下发网管配置信息给网元 + _, err = NeConfigOMC(v) + if err == nil { + v.Status = "0" + r.neInfoRepository.Update(v) + } + } } } @@ -116,10 +130,24 @@ func (r *NeInfoImpl) SelectList(ne model.NeInfo, bandStatus bool) []model.NeInfo (*neList)[i].ServerState = map[string]any{ "online": false, } + // 网元状态设置为离线 + if v.Status != "1" { + v.Status = "1" + r.neInfoRepository.Update(v) + } continue } result["online"] = true (*neList)[i].ServerState = result + // 网元状态设置为在线 + if v.Status != "0" { + // 下发网管配置信息给网元 + _, err = NeConfigOMC(v) + if err == nil { + v.Status = "0" + r.neInfoRepository.Update(v) + } + } } }