分享
查看: 636|回复: 0

[分享] ThingJSX - 告警图表处理/关闭 实施详解

[复制链接]

ThingJSX - 告警图表处理/关闭 实施详解

发表于 2023-8-28 14:44:24 来自 分享 阅读模式 倒序浏览
zzv_icon636 zzr_icon0 查看全部
本帖最后由 张雨婷 于 2023-8-28 14:52 编辑

ThingJSX - 告警图表处理/关闭 实施详解
告警图表展现如上图示,这里可以看出产品提供了两个按钮:“处理”、“关闭”,当然你如果不需要这两个按钮,该资源提供了可隐藏其按钮的设置;
  • 处理
    从字面意思看,是要执行某一个动作,点击处理不管要干什么,UI界面上该条告警消息改为“已处理”的状态(这个“已处理”的文本可以自定义配置),不会删除该条告警信息;具体操作可能是请求接口,修改了该告警记录的状态为“已处理”,紧接着可能执行一个操作集等;
  • 关闭
    相对处理就比较简单了,通过调用接口删除该条告警记录;

通过上面的文档可以推送告警信息到指定的孪生体上
点击“处理”:就是处理该条告警记录 status:11
点击“关闭”:可以理解移除这个告警数据,也就是删除的意思 status:2
以ThingJS-X4为例,图表内处理的代码应该这样写:

(obj) => {    console.info('obj',obj) // 查看前端点击的告警对象信息
    // 固定获取点击告警记录id的格式
    let temp = obj.ALARM.filter((item)=>{
        console.log( _.values(item)[0],' _.values(item)[0]')
        if(curData.desc == _.values(item)[0].ALARM_INFORMATION && curData.name == _.values(item)[0].ciName){
            return true;
        }
    });
    // console.log('obj.ALARM:'+ JSON.stringify(obj.ALARM));
    // console.log('temp:'+JSON.stringify(temp));
    let curParam = JSON.stringify(temp);
    $.post('http://10.100.32.97:10021/http/rest',{'eventId': curParam }, function(res) {
        let temp = JSON.parse(res);
        //res为接口返回数据
        if (temp.data=='success') {  
            console.log('请求处理业务成功')
        }else{
            console.log('请求处理业务失败')
        }
    });
}

DIX接口代码如下:
//应用http用到的java请求方法
var HttpClient = Java.type("com.uinnova.di.dicom.util.HTTPClient");
//定义用于存放java对象的map
var HashMap = Java.type("java.util.HashMap");
//定义用于存放java对象的数组
var ArrayList = Java.type("java.util.ArrayList");
function run(args) {
    // 处理args字段省略
    // ....
   
    var curl = 'http://10.100.32.97:8088/thing/provider/rest/monitor/alarms/616930059600034'
    //定义数组用来封装数据
    var list = new ArrayList();
    // status 1表示开启,2表示关闭,11表示已处理
    list = [
            {
                "twinID": "设备001",
                "severity": 1,
                "status": 11,
                "sourceAlertKey": "CPU使用率",
                "summary": "CPU使用率超过90%,已连续发生超过3次",
                "sourceIdentifier": "xxx",
                "lastOccurrence": "2020-07-29 09:33:06"
            }
    ]            //打印需要发送的数据内容
    logger.info("\n\n\n发送的模拟数据为" + JSON.stringify(list)+'\n\n\n')
    //调用ThingJS-X标准性能API
    var result = HttpClient.httpPost(curl, null, JSON.stringify(list), "utf-8");
    //打印保存后API返回的结果
    logger.info("\n\n\n保存结果为:" + result);
    // heartBeat.addOutCount(list.length);
   
}

avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t