import logger from '@wisdom-utils/utils/lib/logger'; import { formatTime } from './format'; const parseMessageCase = messString => { const attr = messString.infoContent.split('\\n'); const caseContent = { caseType: attr[0].split('】')[0].split('【')[1], flowName: attr[0].split('】')[1], nodeName: attr[1], content: attr[2], }; return caseContent; }; const parseMessageAlarm = messString => { const attr = messString.infoContent.split('\\n'); const valueField = attr[2]?.split('【')?.[0] ?? ''; const alarmContent = { title: attr[0], alarmType: attr[0].split('】')[0].split('【')[1], deviceCode: '', alarmDevice: attr[0].split('】')[1], alarmContent: attr[1], alarmThreshold: valueField.includes(' / ') ? valueField.split('/')[1].trim(' ') : '', alarmValue: valueField.includes(' / ') ? valueField.split('/')[0].trim(' ') : valueField.includes(':') ? valueField.split(':')[1] : '', }; return alarmContent; }; const parseMessageNotice = messString => { const attr = messString.infoContent.split('\\n'); const noticeContent = { noticeType: attr[0].split('】')[0].split('【')[1], noticeTitle: attr[0].split('】')[1], noticeContent: attr[1], }; return noticeContent; }; /** * 解析1.0消息成消息对象格式 * @param {*} infoClasses * @param {*} messageContent * @returns */ const parseContentToJSON = (infoClasses, messageContent) => { let messageBody = messageContent; try { switch (infoClasses) { case 'alarmType': messageBody = parseMessageAlarm(messageContent); break; case 'caseType': messageBody = parseMessageCase(messageContent); break; case 'sysType': messageBody = parseMessageNotice(messageContent); break; case 'unknown': messageBody = parseMessageNotice(messageContent); break; default: break; } } catch (e) { logger.info(`1.0消息通知解析消息内容出错:${e.message}`, '消息对象:', messageBody); } finally { } return messageBody; }; export default parseContentToJSON