/** * 接收第三方系统发生过来的报警数据 节目报警: * * @param msg <Msg Version="4" MsgID="4310" Type="MonUp" DateTime="2010-12-20 04:02:36" * SrcCode="440600M01" DstCode="440000G01" Priority="1" ReplyID="4310"> <Return * Type="AlarmSearchPSet" Value="0" Desc="成功" /> <ReturnInfo> <AlarmSearchPSet Index="7" * Freq="339000" ServiceID="104" VideoPID="163" AudioPID="92"> <AlarmSearchP Type="31" * Desc="静帧" AlarmID="123121212" Value="1" Time="2011-02-28 14:26:00" /> </AlarmSearchPSet> * </ReturnInfo> </Msg> 码流报警: <Msg Version="4" MsgID="4310" Type="MonUp" DateTime="2010-12-20 * 04:02:36" SrcCode="440600M01" DstCode="440000G01" Priority="1" ReplyID="4310"> <Return * Type="AlarmSearchFSet" Value="0" Desc="成功" /> <ReturnInfo> <AlarmSearchFSet Index="7" * Freq="339000"> <AlarmSearchF Type="1" Desc="失锁" AlarmID="123121212" Value="1" * Time="2011-02-28 14:26:00" /> </AlarmSearchPSet> </ReturnInfo> </Msg> 可以接收同一对象的多个报警数据 * @return 结果 */ public WSResult bmpReceiveAlarmData(String msg) { WSResult retObj = new WSResult(); try { ClassWrapper.wrap(ReceiveTaskBase.class).receive(msg); } catch (Exception ex) { errorProcess(retObj, "接收报警数据失败!", ex); } return retObj; }
/** * 接收第三方系统发生过来的性能数据 * * @param objXml 数据格式如下 <ObjSet> <Obj ID="000942" IP="192.168.8.58"> <IndexSet * DateTime="2012-04-13 12:00:00"> <Index ID="If1Out" Value="101"/> <Index ID="If1In" * Value="88"/> </IndexSet> </Obj> </ObjSet> 可以同时接收多个对象的性能数据, 可以同时接收多个子对象的性能数据, * 可以同时接收多个时间段的性能数据, 可以同时接收同一时间段多个指标的性能数据 * @return 结果 */ public WSResult bmpReceivePerfData(String objXml) { WSResult retObj = new WSResult(); try { ClassWrapper.wrap(CollDataReceiver.class).receive(objXml); } catch (Exception ex) { errorProcess(retObj, "接收性能数据失败!", ex); } return retObj; }
/** * 获取某对象的某属性的性能数据,可能为多个对象属性 * * @param objId 对象ID * @param attrId 属性ID * @param fetchSize 获取性能数据的条数 * @return 性能数据XML * @throws Exception 异常 */ public String getPerfDataByObjAndAttrib(int objId, int attrId, int fetchSize) throws Exception { // 定义一个Document作为返回结果 Document result_doc = DocumentHelper.parseText( "<?xml version=\"1.0\" encoding=\"UTF-8\"?><DataSource></DataSource>"); // 先查询该对象该属性下所有的对象属性 List<ObjAttribEntity> lst = ClassWrapper.wrapTrans(ObjAttribDal.class) .getByObjIdAndAttribId(objId, attrId, new Integer[] {1}); if (lst != null && lst.size() > 0) { List<QueryParam> para = new ArrayList<QueryParam>(); // 对所有对象属性组装QueryParam,并保存到List for (ObjAttribEntity entity : lst) { QueryParam qp = new QueryParam(); qp.setObjId(objId); qp.setObjAttrId(entity.getObjAttrId()); qp.setAttrType(entity.getAttribType()); qp.setFetchSize(fetchSize); para.add(qp); } // 调用接口取性能数据 QueryParam[] arr = para.toArray(new QueryParam[para.size()]); Map<Integer, List<QueryResult>> values = CollDataQuery.getInstance().query(Integer.valueOf(objId), arr); // 根据结果组装XML if (values != null && values.size() > 0) { // 获取该属性枚举信息 List<String> attrIdArr = new ArrayList<String>(); attrIdArr.add(String.valueOf(attrId)); List<ValueTableEntity> valueTables = getValueTableByAttrIds(attrIdArr); // 组装 for (ObjAttribEntity entity : lst) { String objattrId = String.valueOf(entity.getObjAttrId()); String objattrName = String.valueOf(entity.getAttribType()); Element ele = result_doc.getRootElement().addElement("Data"); ele.addAttribute("OBJATTR_ID", objattrId); ele.addAttribute("OBJATTR_NAME", objattrName); List<QueryResult> resultLst = values.get(Integer.valueOf(objattrId)); // 循环读取每个QueryResult对象,并转化为指定XML格式 ele.appendContent( queryResultListToXml( resultLst, objattrId, objattrName, String.valueOf(fetchSize), String.valueOf(entity.getAttribType()), valueTables) .getRootElement()); } } } return result_doc.asXML(); }
public AlarmEventFilterDef() { aedal = ClassWrapper.wrapTrans(AlarmEventDal.class); }