@RequestMapping(value="/record/makeNow",method=RequestMethod.POST) @ApiOperation(value = "获取当前格节点记录",notes="获取当前格节点记录") public List<NodeTrafficRecord> Now(){ List<NetworkNodeInformation> nodeList = networkNodeService.findAllNode(); List<NodeTrafficRecord> recordList = new ArrayList<NodeTrafficRecord>(); List<String> nameList = new ArrayList<String>(); nameList.add("接口 $1 入访流量"); nameList.add("接口 $1 Up/Down状态"); nameList.add("接口 $1 出访流量"); String token = zabbixService.get_token(zabbix_url); Date now = new Date(); for (NetworkNodeInformation networkNodeInformation : nodeList) { if (null!=networkNodeInformation.getIp()&&!"".equals(networkNodeInformation.getIp())) { String hostid = zabbixService.get_hostid(networkNodeInformation.getIp(),token,zabbix_url); String rs = zabbixService.get_itemid_detail(hostid, token, zabbix_url); JSONObject result = JSONObject.fromObject(rs); JSONArray arr = JSONArray.fromObject(result.get("result")); List<NetworkNodePort> portList = networkNodeService.findPortsByNodeId(networkNodeInformation.getNodeId()); for (NetworkNodePort networkNodePort : portList) { String pattern = ".*[A-Za-z]"+networkNodePort.getPort()+"]$"; Map<String, JSONObject> map = new HashMap<String, JSONObject>(); for (Object object : arr) { JSONObject information = JSONObject.fromObject(object); String key = information.getString("key_"); String name = information.getString("name"); if (Pattern.matches(pattern, key)&&nameList.contains(name)) { map.put(name, information); } } if (map.size()>0) { NodeTrafficRecord record = new NodeTrafficRecord(); record.setExportFlow(Long.parseLong(map.get("接口 $1 出访流量").getString("lastvalue"))); record.setInletFlow(Long.parseLong(map.get("接口 $1 入访流量").getString("lastvalue"))); record.setState(Integer.parseInt(map.get("接口 $1 Up/Down状态").getString("lastvalue"))); record.setPortId(networkNodePort.getPortId()); record.setRecordTime(now); recordList.add(record); } } } } return networkNodeService.addNodeTrafficRecordList(recordList); } @RequestMapping(value="/record/getNodeNow",method=RequestMethod.GET) @ApiOperation(value = "获取全部节点最新记录",notes="获取全部节点最新记录") public List<JSONObject> getNodeNow(){ List<NodeTrafficRecord> recordList = networkNodeService.findAllRecordNow(); List<JSONObject> list = new ArrayList<JSONObject>(); BigDecimal b = new BigDecimal(1024*1024); for (NodeTrafficRecord record : recordList) { //out JSONObject entry = new JSONObject(); NetworkNodePort port = record.getPort(); NetworkNodeInformation source = port.getNode(); NetworkNodeInformation dest = port.getDest(); JSONArray coords = new JSONArray(); String sourceCoords = "["+source.get_x()+","+source.get_y()+"]"; String destCoords = "["+dest.get_x()+","+dest.get_y()+"]"; coords.add(JSONArray.fromObject(sourceCoords)); coords.add(JSONArray.fromObject(destCoords)); entry.element("coords", coords); JSONObject label = new JSONObject(); label.element("show", true); label.element("position", "middle"); label.element("color", "white"); label.element("formatter", new BigDecimal(record.getExportFlow()).divide(b,2,RoundingMode.HALF_UP)+"m/s"); entry.element("label", label); JSONObject lineStyle = new JSONObject(); lineStyle.element("width", 3); lineStyle.element("opacity", 1); lineStyle.element("curveness", port.getCurveness()); JSONObject color = new JSONObject(); color.element("type", "linear"); color.element("x", 0); color.element("y", 0); color.element("x2", 0); color.element("y2", 1); if (record.getState()==1) { JSONArray colorStops = JSONArray.fromObject("[{offset: 0, color: \"#EEEE00\"},{offset: 1, color: \"#32CD32\"}]"); color.element("colorStops", colorStops); }else { JSONArray colorStops = JSONArray.fromObject("[{offset: 0, color: \"#CCCCCC\"},{offset: 1, color: \"#CCCCCC\"}]"); color.element("colorStops", colorStops); } lineStyle.element("color", color); entry.element("lineStyle", lineStyle); list.add(entry); //in JSONObject entry_in = new JSONObject(); JSONArray coords_in = new JSONArray(); coords_in.add(JSONArray.fromObject(destCoords)); coords_in.add(JSONArray.fromObject(sourceCoords)); entry_in.element("coords", coords_in); JSONObject label_in = new JSONObject(); label_in.element("show", true); label_in.element("position", "middle"); label_in.element("color", "white"); label_in.element("formatter", new BigDecimal(record.getInletFlow()).divide(b,2,RoundingMode.HALF_UP)+"m/s"); entry_in.element("label", label_in); JSONObject lineStyle_in = new JSONObject(); lineStyle_in.element("width", 3); lineStyle_in.element("opacity", 1); lineStyle_in.element("color", color); lineStyle_in.element("curveness", port.getCurveness()); entry_in.element("lineStyle", lineStyle_in); list.add(entry_in); } return list; }