Przeglądaj źródła

添加告警恢复和盘头剩余恢复逻辑

liling 1 rok temu
rodzic
commit
044fe7baf4
1 zmienionych plików z 67 dodań i 26 usunięć
  1. 67 26
      main.html

+ 67 - 26
main.html

@@ -1237,6 +1237,7 @@
         devAlarmAutoLoadTimter: null,//告警自动切计时器
         AlarmData: null,
         Pan:null,//盘头数据
+        PanAlarm:{},//盘头告警记录
         AlarmType: {
             "1": "GB1伺服通讯故障",
             "2": "GB2伺服通讯故障",
@@ -1285,23 +1286,44 @@
             if (data == null || data.length == 0) {
                 $("#dev_alarm .content").hide();
                 $("#dev_alarm .title").html("当前无告警");
+                for(var devcode in modelsMap){
+                    if(this.PanAlarm[devcode]==null){
+                        //还原设备状态
+                        ChangeModelColor(devcode);
+                    }
+                }
                 return
             }
+            var alarmDev={};
+            for (var i = 0; i < this.AlarmData.length; i++) {
+                alarmDev[this.AlarmData[i].code]=this.AlarmData[i].type;
+            }
             $("#dev_alarm .title").html("");
             $("#dev_alarm .content").show();
             var tpl = '<tr style="font-weight:bold" devno="{1}"><td style="width: 30%;">{1}#</td><td style="width: 70%;color:{COLOR}">{2}</td></tr>';
             var lst = [];
-            for (var i = 0; i < data.length; i++) {
-                var color = "rgb(206,161,94)" //默认告警文本颜色
-                var typeName = this.AlarmType[data[i]["type"]];
-                if (typeName.indexOf("故障") > -1) color = "rgb(195,70,76)" //红色提醒
-                lst.push(tpl.replace(/\{1\}/gi, data[i]["code"].replace(/C_/g, "")).replace(/\{2\}/g, typeName).replace('{COLOR}', color))
-                if (MODEL_LOADED == 1) {
-                    //机器告警提示
-                    ChangeModelColor(data[i]["code"], DEV_ALAR_COLOR, this.AlarmType[data[i]["type"]])
-                } else {
-                    //记录下来,等待模型加载完成时处理
-                    ALARM_DEVS.push(data[i]["code"] + ">" + this.AlarmType[data[i]["type"]])
+            var noAlarmDevs=[];
+            for(var devcode in modelsMap){
+                var alarmInfo = alarmDev[devcode];
+                if(alarmInfo!=null){
+                    var color = "rgb(206,161,94)" //默认告警文本颜色
+                    var typeName = this.AlarmType[alarmInfo];
+                    if (typeName.indexOf("故障") > -1) color = "rgb(195,70,76)" //红色提醒
+                    lst.push(tpl.replace(/\{1\}/gi, devcode.replace(/C_/g, "")).replace(/\{2\}/g, typeName).replace('{COLOR}', color))
+                    if (MODEL_LOADED == 1) {
+                        //机器告警提示
+                        ChangeModelColor(devcode, DEV_ALAR_COLOR, typeName)
+                    } else {
+                        //记录下来,等待模型加载完成时处理
+                        ALARM_DEVS.push(devcode + ">" + typeName)
+                    }
+                }else{
+                    if(this.PanAlarm[devcode]==null) noAlarmDevs.push(devcode);
+                }
+            }
+            if(noAlarmDevs.length>0){
+                for (var i = 0; i < noAlarmDevs.length; i++) {
+                    ChangeModelColor(noAlarmDevs[i]) //还原设备的无告警状态
                 }
             }
             t.html(lst.join(''))
@@ -1910,38 +1932,57 @@
                 alarmDev[this.AlarmData[i].code]=1;
             }
             for (var i = 0; i < data.length; i++) {
-                this.Pan[data[i].code] = data[i].panPercent
-                if( alarmDev[data[i].code]==1){
+                var devCode = data[i].code;
+                this.Pan[devCode] = data[i].panPercent
+                if( alarmDev[devCode]==1){
                     continue; //该设备有告警,不处理盘头
                 }
                 //判断盘头中是否有低于20的
                 var panTmp = data[i].panPercent;
+                var is20=false;//是否是小于20%的
                 for (var p = 0; p < panTmp.length; p++) {
-                    if(panTmp[p]<20){
+                    if(panTmp[p]<20&& this.PanAlarm[devCode]!=20){
                         //该设备进行告警
                         if (MODEL_LOADED == 1) {
                             //机器告警提示
-                            ChangeModelColor(data[i]["code"], DEV_ALAR_COLOR, this.AlarmType["1000"])
+                            ChangeModelColor(devCode, DEV_ALAR_COLOR, this.AlarmType["1000"])
                         } else {
                             //记录下来,等待模型加载完成时处理
-                            ALARM_DEVS.push(data[i]["code"] + ">"+this.AlarmType["1000"])
+                            ALARM_DEVS.push(devCode + ">"+this.AlarmType["1000"])
                         }
+                        is20=true
+                        this.PanAlarm[devCode]=20
                         break
                     }
                 }
+                if(is20){
+                    //当前盘头有小于20%的,则不再做其他判断了
+                    break
+                }
                 //判断盘头中是否有低于50的,但大于20%的
+                var is50=false;
                 for (var p = 0; p < panTmp.length; p++) {
-                        if(panTmp[p]<50 && panTmp[p]>=20){
-                            //该设备进行提醒
-                            if (MODEL_LOADED == 1) {
-                                //机器提醒提示
-                                ChangeModelColor(data[i]["code"], DEV_HINT_COLOR, this.AlarmType["1001"])
-                            } else {
-                                //记录下来,等待模型加载完成时处理
-                                ALARM_DEVS.push(data[i]["code"] + ">"+this.AlarmType["1001"])
-                            }
-                            break
+                    if(panTmp[p]<50 && panTmp[p]>=20 && this.PanAlarm[devCode]!=50){
+                        //该设备进行提醒
+                        if (MODEL_LOADED == 1) {
+                            //机器提醒提示
+                            ChangeModelColor(devCode, DEV_HINT_COLOR, this.AlarmType["1001"])
+                        } else {
+                            //记录下来,等待模型加载完成时处理
+                            ALARM_DEVS.push(devCode + ">"+this.AlarmType["1001"])
                         }
+                        is50=true
+                        this.PanAlarm[devCode]=50
+                        break
+                    }
+                }
+                if(is50){
+                    break
+                }
+                if (MODEL_LOADED == 1) {
+                    this.PanAlarm[devCode]=null;
+                    //盘头剩余比例正常,隐藏提示标签
+                    ChangeModelColor(devCode)
                 }
             }