import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { request } from '@/plugins/http-fetch'; import { parseObjLineToHump } from '@/utils/parse-utils'; /** * 获取活动告警数 * @returns object */ export async function getActiveAlarmTotal() { // 发起请求 const result = await request({ url: `/neData/alarm/list`, method: 'GET', params: { alarmStatus: 'Active', sortField: 'event_time', sortOrder: 'desc', pageNum: 1, pageSize: 1, }, }); return { code: result.code, msg: result.msg, data: result.data.total ?? 0, }; } /** * 查询列表 * @param query 查询参数 * @returns object */ export async function listAct(query: Record) { return await request({ url: `/neData/alarm/list`, method: 'GET', params: query, }); } /** * 确认告警信息 * @param ids 记录ID * @param state 状态 true确认 false取消确认 * @returns object */ export function ackAlarm(ids: number[], state: boolean) { return request({ url: `/neData/alarm/ack'`, method: 'PUT', data: { ids: ids, ackState: state, }, }); } /** * 设置告警显示过滤 * @param data 鉴权对象 * @returns object */ export function showPass(data: Record) { let querySQL = ''; querySQL += data.alarm_code ? ` and alarm_code != ${data.alarm_code} ` : ''; querySQL += data.alarm_type ? ` and alarm_type !=\\'${data.alarm_type}\\'` : ''; querySQL += data.pv_flag ? ` and pv_flag !=\\'${data.pv_flag} \\'` : ''; querySQL += data.orig_severity ? ` and orig_severity !=\\'${data.orig_severity}\\'` : ''; querySQL += data.ne_id ? ` and ne_id !=\\'${data.ne_id}\\' ` : ''; querySQL += data.ne_type ? ` and ne_type !=\\'${data.ne_type}\\' ` : ''; let toBackJson = { data: { value: querySQL, value_json: JSON.stringify(data), }, }; return request({ url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='displayFilter'`, method: 'PUT', data: toBackJson, }); } /** * 获取告警显示过滤条件 * @param data 鉴权对象 * @returns object */ export function getPass() { return request({ url: `/api/rest/databaseManagement/v1/select/omc_db/config`, method: 'GET', params: { SQL: "SELECT value_json,value FROM config WHERE config_tag ='displayFilter'", }, }); } /** * 清除告警信息 * @param ids 记录ID * @returns object */ export function clearAlarm(ids: number[]) { return request({ url: `/neData/alarm/clear`, method: 'PUT', data: { ids }, }); } /** * 告警信息导出 * @param params 查询列表条件 * @returns object */ export function exportAlarm(params: Record) { return request({ url: '/neData/alarm/export', method: 'GET', params: params, responseType: 'blob', timeout: 180_000, }); } /** * 手工同步 * @param data 鉴权对象 * @returns object */ export function listSync() { return request({ url: `/api/rest/faultManagement/v1/elementType/all/objectType/alarms`, method: 'GET', timeout: 180_000, }); } /** * 活动告警导出 * @param query 查询参数 * @returns bolb */ export async function exportAll(query: Record) { let rowsSQL = `select * from alarm where alarm_status='1'`; // 查询 let querySQL = ''; querySQL += query.alarm_code ? ` and alarm_code = '${query.alarm_code}' ` : ''; querySQL += query.alarm_type ? ` and alarm_type = '${query.alarm_type}' ` : ''; querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : ''; querySQL += query.orig_severity ? ` and orig_severity in('${query.orig_severity}' )` : ''; querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : ''; querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : ''; querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : ''; querySQL += query.beginTime && query.endTime ? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'` : ''; // 发起请求 const result = await request({ url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`, method: 'GET', params: { rowsSQL: rowsSQL + querySQL, }, }); if (result.code === RESULT_CODE_SUCCESS) { let v = result.data.data[0]; const vArr = parseObjLineToHump(v['alarm']); result.data = vArr == null ? [] : vArr; } return result; } /** * 展示页全部告警 * @param query 查询参数 * @returns bolb */ export async function origGet() { return await request({ url: `/neData/alarm/count/severity`, method: 'GET', params: { alarmStatus: 'Active', }, }); } /** * 查询前三的网元 * @param filterFlag 查询参数 * @returns object */ export async function top3Sel() { return await request({ url: `/neData/alarm/count/ne`, method: 'GET', params: { alarmStatus: 'Active', top: 3, }, }); }