From 1fda1e433489e43387dbd082f8aba37d136755b2 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 31 七月 2025 10:46:04 +0800
Subject: [PATCH] 算力管理增加事件等级,预警规则(任务描述)
---
camera-service/controllers/camera.go | 14 ++++++++++++++
chanmanage-service/models/camera.go | 23 +++++++++++++++++++++++
chanmanage-service/controllers/pollSet.go | 14 +++++++++++++-
camera-common/models/Record.go | 1 +
4 files changed, 51 insertions(+), 1 deletions(-)
diff --git a/camera-common/models/Record.go b/camera-common/models/Record.go
index e615e31..6901768 100644
--- a/camera-common/models/Record.go
+++ b/camera-common/models/Record.go
@@ -183,6 +183,7 @@
Ids []string `json:"ids"`
VideoIds []string `json:"treeNodes"`
TaskIds []int64 `json:"taskIds`
+ TaskName []string `json:"taskName"`
Warning int64 `json:"warning`
Page int64 `json:"page"`
PageSize int64 `json:"pageSize"`
diff --git a/camera-service/controllers/camera.go b/camera-service/controllers/camera.go
index 4cb9ce3..fe88085 100644
--- a/camera-service/controllers/camera.go
+++ b/camera-service/controllers/camera.go
@@ -1023,6 +1023,7 @@
pageSize := info.PageSize
idsStr := info.Ids
TaskIds := info.TaskIds
+ TaskName := info.TaskName
videoIdStr := info.VideoIds
Warning := info.Warning
@@ -1068,6 +1069,19 @@
filter += fmt.Sprintf(" and array_contains(task_id, %d)", TaskIds[0])
}
+ //鏍规嵁浠诲姟鍚嶇О
+ if len(TaskName) > 0 {
+ quotedNames := make([]string, len(TaskName))
+ for i, name := range TaskName {
+ quotedNames[i] = "'" + name + "'" // 姣忎釜鍏冪礌鍔犲崟寮曞彿
+ }
+ filter += fmt.Sprintf(" and %s in [%s]", "task_name", strings.Join(quotedNames, ","))
+ } else {
+ if Warning > 0 {
+ return &bhomeclient.Reply{Success: true, Msg: "鑾峰彇鎴愬姛", Data: nil}
+ }
+ }
+
//鏄惁棰勮
if Warning > 0 {
filter += fmt.Sprintf(" and is_waning == %d", Warning)
diff --git a/chanmanage-service/controllers/pollSet.go b/chanmanage-service/controllers/pollSet.go
index 49488b2..275584e 100644
--- a/chanmanage-service/controllers/pollSet.go
+++ b/chanmanage-service/controllers/pollSet.go
@@ -282,7 +282,19 @@
// }
var ids []string = []string{}
ids = append(ids, cE.Id)
- cri.AllTasks, _ = models.GetListTask(ids)
+ tasks, _ := models.GetListTask(ids)
+ //rules
+ ruleMap := models.GetAllRule()
+
+ cri.AllTasks = []commonModel.TaskM{}
+ for _, item := range tasks {
+ temp := &commonModel.TaskM{
+ TaskName: item.TaskName,
+ EventName: item.EventName,
+ TaskDescription: ruleMap[item.TaskId],
+ }
+ cri.AllTasks = append(cri.AllTasks, *temp)
+ }
//澶勭悊鎽勫儚鏈虹殑鐘舵��
if cE.RunType == commonModel.TYPE_RUNTYPE_POLL || cE.RunType == commonModel.TYPE_RUNTYPE_REALTIME {
diff --git a/chanmanage-service/models/camera.go b/chanmanage-service/models/camera.go
index 7bb51cd..5b77606 100644
--- a/chanmanage-service/models/camera.go
+++ b/chanmanage-service/models/camera.go
@@ -28,6 +28,29 @@
return
}
+func GetAllRule() map[int64]string {
+ var items []models.RuleOption
+ sqlStr := `
+ SELECT a.file_name,a.rule_id,b.task_id
+ FROM mal_warning_rule a
+ LEFT JOIN mal_task_rule_link b ON a.rule_id = b.rule_id
+ WHERE task_id>0
+ group BY a.rule_id
+ `
+ if err := db2.Raw(sqlStr).Scan(&items).Error; err != nil {
+ fmt.Println(err.Error())
+ return nil
+ }
+
+ ruleMap := make(map[int64]string)
+ for _, d2 := range items {
+ if d2.TaskId > 0 {
+ ruleMap[d2.TaskId] = d2.FileName
+ }
+ }
+ return ruleMap
+}
+
type VideoLink struct {
ID int `gorm:"column:id" json:"id"`
VideoId string `gorm:"column:video_id" json:"videoId"`
--
Gitblit v1.8.0