zoukankan      html  css  js  c++  java
  • 代码块。

    @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;
    	}
    

      

  • 相关阅读:
    在centos7上使用packstack安装openstack
    解决 React-Native: Android project not found. Maybe run react-native android first?
    javascript_11-函数面试题
    javascript_10-函数
    前端面试记录NO.1
    javascript_09-数组
    javascript_08-while 和 do while
    javascript_07-break 和 continue
    javascript_05-操作符
    javascript_06-控制流程
  • 原文地址:https://www.cnblogs.com/-flq/p/10481309.html
Copyright © 2011-2022 走看看